菜单

命令行界面

相关源文件

本文档介绍了如何通过命令行界面 (CLI) 使用 Deep-Live-Cam,使您无需图形用户界面即可运行换脸操作。CLI 支持自动化、脚本编写以及与其他工具的集成。

有关使用图形界面的信息,请参阅 用户界面

注意:如文档所示,命令行界面当前标记为“未维护”,这意味着它可能不会获得常规更新或错误修复。

CLI 操作概述

命令行界面允许您直接从终端或命令提示符执行所有核心换脸功能。当提供源、目标或输出参数时,Deep-Live-Cam 会自动以“无头”(CLI) 模式运行,而不是启动 GUI。

命令行流程图

源:modules/core.py31-109 modules/core.py248-259

基本用法

要从命令行运行 Deep-Live-Cam,请执行 run.py 脚本并带上所需的参数

python run.py [arguments]

示例命令

处理图像

python run.py --source "person1.jpg" --target "person2.jpg" --output "result.jpg"

处理视频

python run.py --source "face.jpg" --target "video.mp4" --output "result.mp4" --keep-audio

使用 GPU 加速

python run.py --source "face.jpg" --target "video.mp4" --execution-provider cuda

您也可以使用提供的批处理文件进行常见配置

run-cuda.bat     # Run with CUDA acceleration
run-directml.bat # Run with DirectML acceleration

源:run-cuda.bat1-2 run-directml.bat1-2

参数处理系统

当您提供命令行参数时,它们会由 parse_args() 函数进行处理,并存储在 modules.globals 模块中,从而使它们可供系统的其余部分使用。

源:modules/core.py31-109 modules/core.py173-239 modules/core.py248-259

可用的命令行参数

Deep-Live-Cam 支持以下命令行参数

参数描述默认值
-s, --source用于换脸的源图像
-t, --target应用换脸的目标图像或视频
-o, --output输出文件或目录自动生成
--frame-processor要应用的帧处理器['face_swapper']
--keep-fps保持原始视频帧率
--keep-audio保留原始音频True
--keep-frames保留临时帧
--many-faces处理所有面部
--map-faces映射源目标面部
--mouth-mask遮罩嘴部区域
--video-encoder要使用的视频编码器libx264
--video-quality视频质量 (0-51,数值越低越好)18
--live-mirror镜像实时摄像头视图
--live-resizable使实时摄像头帧可调整大小
--max-memory最大内存使用量 (GB)系统相关
--execution-provider神经网络执行提供程序['cpu']
--execution-threads执行线程数8
-v, --version显示程序版本-

源:modules/core.py31-109 README.md310-331 run-cuda.bat1-2 run-directml.bat1-2

执行提供程序

Deep-Live-Cam 支持多种用于神经网络推理的执行提供程序,这会显著影响性能

提供商标志硬件
CPU--execution-provider cpu任何 CPU
CUDA--execution-provider cudaNVIDIA GPU
DirectML--execution-provider directmlWindows GPU 支持
CoreML--execution-provider coremlApple Silicon/MacOS
OpenVINO--execution-provider openvinoIntel 硬件

执行提供程序决定了神经网络模型如何在您的硬件上运行

源:modules/core.py112-129 run-cuda.bat1-2 run-directml.bat1-2

CLI 模式与 GUI 模式

Deep-Live-Cam 根据特定参数的存在来决定是运行在 CLI 模式还是 GUI 模式

  • 如果提供了 --source--target--output 中的任何一个参数,程序将以无头 (CLI) 模式运行
  • 如果未提供这些路径参数中的任何一个,程序将以 GUI 模式启动

此行为由 modules.globals.headless 变量控制,该变量在 parse_args() 函数中设置。

源:modules/core.py67 modules/core.py248-259

处理管道

在 CLI 模式运行时,Deep-Live-Cam 遵循以下处理流程

  1. 预检查 - 验证 Python 版本和 ffmpeg 安装情况
  2. 帧处理器初始化 - 设置换脸器和增强器模块
  3. 资源限制 - 控制内存使用
  4. 处理方式:
    • 对于图像:直接处理和输出
    • 对于视频:帧提取、逐帧处理、视频创建、音频恢复

源:modules/core.py178-238

示例和用法模式

基本换脸(图像到图像)

python run.py --source "person1.jpg" --target "person2.jpg" --output "result.jpg"

带音频保留的视频处理

python run.py --source "person1.jpg" --target "video.mp4" --output "result.mp4" --keep-audio --keep-fps

处理图像/视频中的所有面部

python run.py --source "person1.jpg" --target "group.jpg" --output "result.jpg" --many-faces

高质量视频处理

python run.py --source "person1.jpg" --target "video.mp4" --output "result.mp4" --video-encoder libx265 --video-quality 15

使用 GPU 加速 (NVIDIA)

python run.py --source "face.jpg" --target "video.mp4" --output "result.mp4" --execution-provider cuda

源:README.md310-331 run-cuda.bat1-2

限制和注意事项

  • 命令行界面在文档中被标记为“未维护”,这意味着它可能不会获得常规更新或错误修复。
  • GUI 中可用的一些功能可能无法通过 CLI 完全访问。
  • CLI 不提供实时预览或交互式面部映射,而 GUI 提供。
  • 对于复杂换脸操作或在使用 CLI 时遇到问题,请考虑使用图形用户界面。
  • 如果不指定执行提供程序,将默认使用 CPU,其速度可能比 GPU 加速慢得多。

源:README.md308-309

参考实现

为了更好地理解 CLI 的实现,请参考以下关键文件

  1. modules/core.py - 包含参数解析器和处理逻辑
  2. run.py - 应用程序的主入口点
  3. run-cuda.bat / run-directml.bat - 用于使用特定执行提供程序运行的快捷脚本

来源: modules/core.py31-109 run-cuda.bat1-2 run-directml.bat1-2