AI 教程AI教程33 次浏览 · 2026-10-30
Deep Live Cam:实时换脸实战教程
原文链接
https://x.com/zzuurn/status/2116012643211505909?s=46一、核心亮点与背景概述
- 项目名称:Deep Live Cam(GitHub 主分支)
- 开源地址:https://github.com/DeepLiveCam/DeepLiveCam
- Stars:截至 2026‑10 已接近 10 万
- 版本信息:README 标记 2.1.6,程序内部 metadata 为 2.1.5 GitHub Edition;Ultimate 商业版已发布 2.7.5(2026‑09)
- 授权:代码采用 AGPL‑3.0;InsightFace 模型另有单独授权,商用前需核实模型许可
- 核心功能:将任意源脸实时贴到摄像头画面,实现表情、眨眼、转头同步;支持嘴部融合、边缘平滑、人脸增强、GPU 加速、OBS 虚拟摄像机输出
- 技术突破:在 128×128 的 ONNX 人脸交换模型上实现 30 FPS+ 的实时换脸,且提供 Poisson Blend、Transparency、Sharpness 等细粒度调节
内容整理自 X 博主 @zzuurn。
二、核心机制与技术细节拆解
- 整体工作流
- 摄像头 → 人脸检测 → 关键点对齐 → inswapper_128_fp16.onnx 换脸 → Mouth Mask、Poisson Blend、Transparency、Sharpness 处理 → 可选 GFPGAN / GPEN‑512 / GPEN‑256 增强 → Live Preview → OBS 虚拟摄像机
- 模型与分辨率
- 换脸模型使用 128×128 的特征图,源脸尺寸超过 1024×1024 仍有提升空间(更干净的眼睛、嘴角),但超过 4K 并不会显著提升换脸质量
- Det size(检测尺寸)可选 160、320、640;数值越小检测越快,但远距离小脸识别率下降
- 融合与后处理
- Mouth Mask:0‑100,0 完全使用换脸后嘴部,100 逐渐恢复原摄像头人物的嘴‑下巴区域;推荐从 20‑30 起步,依据张嘴幅度微调
- Poisson Blend:柔化脸部边缘,适用于额头、颊部、下颌明显的情况;开启后若出现模糊可关闭
- Transparency:0‑1,100% 完全换脸;肤色差异大时可调至 0.95 左右
- Sharpness:0‑5,默认 0;实时视频建议 0.2‑0.5,防止边缘抖动
- Fix Blueish Cam:针对摄像头偏蓝/偏绿的白平衡问题,非必要不建议开启
- 人脸增强器
- None、GFPGAN、GPEN‑512、GPEN‑256 四档
- 增强器会提升细节但显著增加推理时延,常导致表情卡顿或帧率波动;实际使用时需在同一分辨率、同一动作下逐一测试 1 min 以上,记录 FPS 稳定性与卡顿情况
- GPU 加速
- 推荐 CUDA Toolkit 12.8.0 + cuDNN 8.9.7,ONNX Runtime GPU 1.26.0
- 启动指令:
python run.py --execution-provider cuda -l zh - 运行前可检查可用 Provider:
python -c "import onnxruntime as ort; print(ort.get_available_providers())" - 若仅出现
CPUExecutionProvider,需检查显卡驱动、CUDA 环境、虚拟环境是否激活 - AMD/其他显卡可尝试 DirectML:
python run.py --execution-provider dml -l zh
三、安装配置与实操上手
1. 环境准备
- 操作系统:Windows 10/11(建议使用短路径,如
D:\\AI\\DeepLiveCam,避免中文、空格、同步目录) - 必装软件:Git、FFmpeg、Visual Studio 2022 Runtime
- Python:3.11‑3.14(推荐 3.14)
2. 项目获取与依赖安装
# 下载源码(ZIP)并解压到 D:\\AI\\DeepLiveCam
cd D:\\AI\\DeepLiveCam
python -m venv venv
venv\\Scripts\\activate
python -m pip install --upgrade pip
pip install -r requirements.txt
- 关键模型文件放置位置(相对项目根目录):
inswapper_128_fp16.onnxgfpgan-1024.onnx(若使用 GFPGAN)
- 首次运行会自动下载约 300 MB 的人脸分析数据
3. 基础功能验证(CPU)
python run.py -l zh # 中文界面
- 窗口出现、能选源脸、能检测摄像头即表示环境搭建成功
4. 实时换脸基本参数 | 参数 | 推荐值 | |---|---| | 分辨率 | 640×480(首选) | | Det size | 320 | | Face Enhancer | None | | Many faces | 关 | | Map faces | 关 | | Poisson Blend | 关 | | Fix Blueish Cam | 关 | | Show FPS | 开 | | Transparency | 1.0 | | Sharpness | 0.0 | | Mouth Mask | 20‑30(根据张嘴幅度微调) |
5. GPU 加速切换
python run.py --execution-provider cuda -l zh # 使用 CUDA
python -c "import onnxruntime as ort; print(ort.get_available_providers())"
- 确认输出包含
CUDAExecutionProvider
6. OBS 虚拟摄像机集成
- 打开 OBS → 新建场景 → 添加 → 窗口捕获 → 选择 Deep Live Cam 的 Live Preview 窗口
- 如有边框可按
Alt拖动边缘裁切,缩放至画布大小 - 在右侧 控制 区点击 启动虚拟摄像机
- 任何支持摄像头输入的软件(Zoom、Discord、Bilibili 直播等)即可选择 “OBS Virtual Camera” 作为视频源
7. 长时运行与性能监控
- 建议连续运行 10 min 以上,观察显存占用、FPS 稳定性以及是否出现逐帧卡顿
- 如出现显存泄漏或帧率下降,先关闭所有增强器、降回 640×480 再逐项排查
四、适用场景与避坑建议
适用场景
- 成人虚拟人物、二次元角色、游戏角色的实时表演与直播
- 虚拟主播、角色扮演(Cosplay)视频制作
- 教学演示、交互式 AI 角色对话原型
禁止用途
- 不得对真实人物(明星、熟人、偷拍对象)进行换脸、脱衣或其他侵犯隐私的操作
- 商业化使用前务必确认 InsightFace 模型的商业授权,否则仅限个人学习研究
常见坑点 & 对策
- 模型授权:AGPL 只覆盖代码,模型需单独检查许可证
- 源脸质量:正面、光线均匀、无遮挡、闭嘴或微张是最佳;建议使用 ComfyUI 生成 1024×1024 的干净头像
- Mouth Mask 重置:每次启动程序默认回到 0,正式直播前务必重新调节并记录数值
- GPU 未生效:先执行 Provider 检查,确认
CUDAExecutionProvider存在;若仅有 CPU,检查 CUDA、cuDNN 与 onnxruntime‑gpu 版本匹配 - USB 带宽限制:USB 2.0 摄像头在 1280×720 或以上分辨率会出现帧率骤降,必要时降至 960×540 或更低
- 调参顺序:一次只改动一个参数(如先调 Mouth Mask → 再调 Poisson Blend → 最后调 Sharpness),便于定位根因
- 故障排查流程:窗口不启动 → 检查 Python/venv/requirements;摄像头列表为空 → 关闭占用摄像头的其他程序;找不到人脸 → 调整 Det size、靠近摄像头、换更清晰的源脸
记录与复现
- 将最终工作流的关键参数(源图路径、分辨率、Det size、增强器、Transparency、Sharpness、Mouth Mask、Poisson Blend、Provider)保存为
config.txt - 更新代码或更换硬件后先恢复此基准,再逐项对比性能变化
本教程旨在帮助技术爱好者快速搭建并稳定运行 Deep Live Cam 的实时换脸工作流,遵循开源许可并避免不当使用。

