一、项目速览

入门 · 1 分钟版

DeepFaceLive 是一个实时人脸替换工具,能在 PC 直播或视频通话过程中,将你的面部实时替换成另一个人的脸。它基于深度学习模型,在本地 GPU 上运行,延迟控制在可接受范围内。

一句话判断:如果你需要「在直播/视频会议中换成另一张脸实时出镜」,这个项目是目前唯一成熟的开源方案。但如果你只是想做离线视频换脸,请直接去看 DeepFaceLab。

作者视角:DeepFaceLive 是 DeepFaceLab 的实时分支,两者共享模型格式。这意味着你可以在 DeepFaceLab 里训练一个高精度的换脸模型,然后导出给 DeepFaceLive 做实时推理。但反过来不行——DeepFaceLive 不能训练模型,它只负责「跑」。

核心受众:直播主播、视频会议整活玩家、AI 特效爱好者。对硬件要求较高,需要一张 DirectX 12 兼容的独立显卡(推荐 RTX 2070 以上)。


二、核心功能与架构

进阶 · 推荐细读

功能一:实时摄像头换脸

它是什么:DeepFaceLive 读取你的摄像头画面,检测人脸,将预先训练好的面部模型(.dfm 文件)叠加到你的脸上,输出替换后的画面。整个过程在本地完成,不需要上传数据到云端。

它解决什么问题:传统换脸需要离线渲染数小时,DeepFaceLive 把延迟压到 200-500ms,让换脸能用于直播、视频通话这类实时场景。

谁最该用:想在 OBS 直播或 Zoom 会议中实时换脸的主播/玩家。

功能二:视频文件换脸

它是什么:除了摄像头,DeepFaceLive 也可以加载一个视频文件,将其中的人脸替换后输出到窗口或保存为文件。

它解决什么问题:如果你有一段录制好的视频需要快速换脸,又不想等 DeepFaceLab 渲染几小时,可以用 DeepFaceLive 做低质量快速预览,确认效果后再用离线方案精修。

谁最该用:需要快速出片验证效果的内容创作者。

架构一句话

DeepFaceLive = 摄像头/视频输入 → 人脸检测器(RetinaFace) → 面部对齐 → 换脸模型推理(ONNX Runtime + DirectML) → 画面融合输出。所有推理在 GPU 上完成,CPU 负责画面处理和 UI。

作者视角:这个项目的架构有一个隐藏门槛——它依赖 DirectML(微软的 DirectX 12 机器学习加速),所以只支持 Windows 10/11。Linux 和 macOS 用户无法直接使用。如果你用 Linux 做开发,需要跑在 Windows 虚拟机或双系统上。


三、动手实践

入门

环境准备

DeepFaceLive 不需要手动安装 Python 环境,作者提供了预编译的 Windows 安装包。这是最省事的方式:

# 从 GitHub Releases 下载最新版
# 访问 https://github.com/iperov/DeepFaceLive/releases
# 下载 DeepFaceLive_xxx_win64.7z
# 解压到不含中文和空格的路径,例如 D:\DeepFaceLive

解压后,以管理员身份运行 run.bat。首次启动会弹出命令窗口加载模型,后续打开主界面。

最小可运行示例

假设你已经下载了项目自带的示例模型(在 models/ 目录下):

  1. 打开 DeepFaceLive,在 Source 区域选择 Webcam,选你的摄像头
  2. Face model 区域点击 Load model,选择 models/ 目录下的 .dfm 文件(例如 Keanu_Reeves.dfm
  3. 点击 Start 按钮
  4. 面对摄像头,你应该能在预览窗口中看到自己的脸被替换成模型的脸

预期效果:画面延迟约 0.3-1 秒,面部轮廓基本贴合,但细节(特别是侧脸、遮挡、快速转头时)会有明显瑕疵。

常见踩坑

坑 1:启动报错 D3D12_CORE not found
原因:显卡不支持 DirectX 12。检查你的显卡是否支持 DX12,老显卡(GTX 900 系列以下)基本没戏。更新显卡驱动到最新版。

坑 2:画面卡死或黑屏
原因:虚拟内存不足。项目要求 32GB+ 页面文件。设置方法:系统属性 → 高级 → 性能设置 → 高级 → 虚拟内存 → 自定义大小,设为 32768 MB(32GB)。

坑 3:模型加载失败,提示 ONNX Runtime error
原因:模型文件损坏或版本不匹配。重新下载模型,确保 .dfm 文件是 DeepFaceLab 2.0 格式,不要混用旧版。


四、进阶玩法

深入 · 老手可选

使用自定义模型

DeepFaceLive 只能使用 .dfm 格式的模型,这需要你先用 DeepFaceLab 训练一个换脸模型,然后导出为 DFM 格式。

导出命令(在 DeepFaceLab 目录下运行):

# 假设你的 DeepFaceLab workspace 里有训练好的模型
# 运行 export DFM.bat (Windows 批处理文件)
# 或者手动执行:
python main.py --export-dfm --model-dir workspace/model --output model.dfm

将生成的 model.dfm 放到 DeepFaceLive 的 models/ 目录下,重启软件即可加载。

配置 OBS 直播推流

DeepFaceLive 支持输出到虚拟摄像头(OBS Virtual Camera),配合 OBS 做直播:

  1. 安装 OBS Studio 和 OBS Virtual Camera 插件
  2. 在 DeepFaceLive 的 Output 区域选择 OBS Virtual Camera
  3. 启动 DeepFaceLive
  4. 在 OBS 中添加「视频捕获设备」,选择 OBS Virtual Camera
  5. 即可在 OBS 中看到换脸后的画面,进行推流

性能调优参数

config.ini 中(位于 DeepFaceLive 根目录),可以调整推理参数:

[performance]
# 降低分辨率以提升帧率(默认 320)
face_resolution = 256
# 跳帧策略:0=不跳帧,1=每帧处理,2=隔帧处理
frame_skip = 1
# 启用半精度推理(需要显卡支持)
use_fp16 = true

作者视角frame_skip = 1 在大多数场景下是平衡点——画面看起来还是流畅的,但 GPU 负载能降 30-40%。如果你只是做视频通话(不是直播),可以开到 2,帧率会降到 15fps 左右但 GPU 温度友好很多。


五、判断与建议

进阶 · 推荐细读

应该选 DeepFaceLive 的场景

  • 你需要实时换脸:直播、视频通话、在线会议,延迟 1 秒以内可接受
  • 你有一张 RTX 2070 以上的显卡:硬件达标才能流畅运行(1080p 30fps)
  • 你愿意花时间训练模型:用 DeepFaceLab 先训练好模型,再导入 DeepFaceLive 使用
  • 你只做 Windows 平台:项目不支持 Linux/macOS

不该选 DeepFaceLive 的场景

  • 你需要高精度离线换脸:DeepFaceLab 或 FaceFusion 效果更好,DeepFaceLive 的实时画质有妥协
  • 你的显卡是 GTX 1060 或以下:帧率可能不到 15fps,体验极差
  • 你只是好奇想试一下,没有明确用途:下载 3GB+ 的安装包、准备 32GB 虚拟内存、下载模型,前期准备成本较高
  • 你需要换脸后导出高清视频:DeepFaceLive 的输出分辨率受限于模型和实时处理能力,导出质量不如离线工具

一句话结论

DeepFaceLive 是「实时换脸」这个细分赛道上唯一的开源成熟方案,但它的使用门槛(硬件、Windows 独占、模型训练)决定了它只适合有明确需求且愿意折腾的玩家。 如果你只是想玩玩,推荐先下载作者提供的预训练模型体验一下,再决定是否投入时间训练自己的模型。

项目信息

项目
仓库 iperov/DeepFaceLive
语言 Python
Star 31,014
Fork 1,299
主页

参考链接