Deep-Live-Cam 实战:从克隆到多脸实时换脸的 5 个关键调参点
【免费下载链接】Deep-Live-Camreal time face swap and one-click video deepfake with only a single image项目地址: https://gitcode.com/GitHub_Trending/de/Deep-Live-Cam
Deep-Live-Cam 的核心能力是只用一张正面照片,就在摄像头画面或视频文件里完成实时换脸,顺带支持一键导出成片。本文覆盖从克隆仓库、放置模型到多脸替换与排障的完整链路,重点放在那些真正影响帧率的开关上。
🚀 先跑起来:环境、模型、启动三步
整个安装流程只有三条主线:克隆仓库、装依赖、补模型。
git clone https://gitcode.com/GitHub_Trending/de/Deep-Live-Cam cd Deep-Live-Cam python -m venv venv # 激活 venv 后执行:pip install -r requirements.txt- 模型文件:需要
inswapper_128_fp16.onnx(换脸核心)与GFPGANv1.4.pth(面部增强)两个文件,从项目的模型托管页下载后放入models/目录。两者合计约 300MB。 - 启动:装完依赖后直接运行主程序,界面左侧是操作面板,右侧是实时预览。
python run.py首次运行会打印一行平台横幅,标明当前选中的加速器(CUDA / CoreML / DirectML / CPU)。选"Select a face"加载源人脸图片,再点"Live",摄像头画面即开始实时换脸。
🎛 执行提供者选型:六种加速路径对照
换脸推理跑在 ONNX Runtime 上,--execution-provider决定用哪条硬件路径。不传该参数时程序自动探测,启动横幅会告诉你结果。
| 执行提供者 | 适用硬件 | 启动参数 |
|---|---|---|
| cuda | NVIDIA 独显 | --execution-provider cuda |
| rocm | AMD 显卡(ROCm 环境) | --execution-provider rocm |
| directml | AMD 及其他 Windows 显卡 | --execution-provider directml |
| coreml | Apple M 系列芯片 | --execution-provider coreml |
| openvino | Intel 核显 / NPU | --execution-provider openvino |
| cpu | 任意环境(兜底) | --execution-provider cpu |
两个常被忽略的配套参数:
--execution-threads:推理线程数,程序默认按硬件给出建议值;NVIDIA 卡上调成单线程有时反而更快(源码注释如此)。--max-memory:限制可用内存上限(GB),低配机器可主动压低,避免内存吃满后整机变慢。
python run.py --execution-provider cuda --execution-threads 6📉 影响帧率的 4 个界面开关(按影响从大到小)
硬件之外,界面里的选项决定单帧耗时。以下顺序即优化收益从高到低:
- Face Enhancer:增强器挂在换脸之后再做一轮修复,是 GPU 负载的大头。关掉它可省出最多的算力,代价是脸部细节略糊。
- Mouth mask:嘴部遮罩滑动条大于 0 时即生效,额外一次区域运算。口型同步要求不高的场景可直接拉回 0。
- Many faces:替换画面中每一张脸时,检测与替换都成倍增加。单人直播默认关闭即可。
- Keep frames:保留临时帧会占用磁盘 I/O,调试检测框时再开,日常关闭。
面板里的 Video Process 数值是最直接的帧耗时指标,优先盯它来判断是哪个开关拖慢了管线。
🩺 排障速查表
| 症状 | 最常见原因 | 一条命令解决 |
|---|---|---|
| 启动即崩溃或黑屏 | 模型文件未放入models/ | 检查目录下是否同时存在两个模型文件 |
| 横幅显示 CPU,预期应有 GPU | onnxruntime-gpu 缺失或显卡驱动过旧 | pip install -r requirements.txt重装依赖并更新驱动 |
| 实时预览低于 10 fps | Face Enhancer 与 Mouth mask 同时开启 | 界面取消勾选增强器,Mouth mask 滑条归零 |
| 多人视频里只换了一张脸 | 未启用多脸模式 | python run.py --many-faces启动 |
| 成片画质差、噪点明显 | 输出质量参数偏大 | 追加--video-quality 18(0–51,越小越清晰) |
--video-encoder默认 libx264,兼容性最好;文件体积优先时可选 libx265 或 libvpx-vp9。
🎬 三个感知差异最大的进阶能力
多脸同时替换。开启 Many faces 后,画面中所有检测到的人脸都会被替换成源人脸,适合群像视频与直播连麦场景。
电影级实时换脸。把视频文件作为目标输入,程序按帧处理并合成成片。headless 模式下不需要打开界面:
python run.py -s face.jpg -t movie.mp4 -o out.mp4 --keep-fps --keep-audio直播实时输出。处理后的画面可直接投给 OBS 等推流软件,形成直播换脸效果;--live-mirror可把预览镜像成前置摄像头视角,方便对着自己调试。
🔭 往深处走:一条命令与两个源码入口
想跳过界面做批量处理,headless 参数组合就是完整入口:-s源脸、-t目标视频、-o输出,再加--keep-fps --keep-audio保持原帧率与音轨。需要更精细的控制时,换掉--frame-processor的取值(如face_enhancer_gpen256、face_enhancer_gpen512)即可切换增强方案。
两个值得先读的源码位置:
modules/processors/frame/core.py:帧处理流水线的总装,检测、替换、增强按此文件串接,改处理顺序从这里入手。modules/face_analyser.py:人脸检测与关键点对齐,检测漏脸或角度问题时先看这里。
下一步动作:打开modules/processors/frame/core.py,找到帧处理器列表的装配函数,把当前不需要的环节注释掉,重跑一次python run.py,对比面板里 Video Process 的数值变化。这就是本项目最直接的调优回路。
【免费下载链接】Deep-Live-Camreal time face swap and one-click video deepfake with only a single image项目地址: https://gitcode.com/GitHub_Trending/de/Deep-Live-Cam
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考