本文档介绍了如何通过命令行界面 (CLI) 使用 Deep-Live-Cam,使您无需图形用户界面即可运行换脸操作。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 cuda | NVIDIA GPU |
| DirectML | --execution-provider directml | Windows GPU 支持 |
| CoreML | --execution-provider coreml | Apple Silicon/MacOS |
| OpenVINO | --execution-provider openvino | Intel 硬件 |
执行提供程序决定了神经网络模型如何在您的硬件上运行
源:modules/core.py112-129 run-cuda.bat1-2 run-directml.bat1-2
Deep-Live-Cam 根据特定参数的存在来决定是运行在 CLI 模式还是 GUI 模式
--source、--target 或 --output 中的任何一个参数,程序将以无头 (CLI) 模式运行此行为由 modules.globals.headless 变量控制,该变量在 parse_args() 函数中设置。
源:modules/core.py67 modules/core.py248-259
在 CLI 模式运行时,Deep-Live-Cam 遵循以下处理流程
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
python run.py --source "face.jpg" --target "video.mp4" --output "result.mp4" --execution-provider cuda
源:README.md310-331 run-cuda.bat1-2
为了更好地理解 CLI 的实现,请参考以下关键文件
modules/core.py - 包含参数解析器和处理逻辑run.py - 应用程序的主入口点run-cuda.bat / run-directml.bat - 用于使用特定执行提供程序运行的快捷脚本来源: modules/core.py31-109 run-cuda.bat1-2 run-directml.bat1-2