Deep-Live-Cam 一张照片三步实时换脸
【免费下载链接】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 是一个免费开源的实时换脸工具:一张人脸图片作输入,即可在摄像头或视频文件中实时替换面部。它完全在本地运行,画面不出你的机器,从装好到出第一帧大约三分钟。
三步跑起来:安装 → 选图 → 首次运行
1. 安装环境
先确认机器上有 Python 3.11 到 3.14(推荐 3.14)、git 和 ffmpeg,然后克隆仓库并建立虚拟环境:
git clone https://gitcode.com/GitHub_Trending/de/Deep-Live-Cam cd Deep-Live-Cam python -m venv venv source venv/bin/activate pip install -r requirements.txtWindows 上把第四行换成venv\Scripts\activate。虚拟环境能避免系统级依赖互相污染,出问题删掉venv目录重来即可。依赖装完后,换脸所需的两个模型(约 300MB)会在首次运行时自动下载;如果你希望手动管理,也可以按 models/instructions.txt 的说明把.onnx文件放进models/目录。
2. 准备源脸图片
挑一张照片作为源脸:正面、光线均匀、表情中性,脸部区域分辨率 512 像素以上。侧脸、遮挡、强阴影都会降低识别成功率,不需要做任何裁剪或预处理。
3. 运行并首次出片
python run.py窗口打开后,点Select a Face导入源脸图片,再点Select a Target导入一张目标图片或一段目标视频,然后按Start,处理结果会保存到以目标视频命名的目录里;把电影片段选为目标,就能边播边看换脸后的画面。想直接上摄像头,导入源图后按Live,等 10~30 秒出现预览窗口即可,直播时用 OBS 等软件截取这个窗口就行。如果窗口打不开或报缺库错误,先确认当前终端激活的是刚建的虚拟环境。
完成 Deep-Live-Cam 安装教程后首次运行的界面:左侧选择源图与目标,右侧实时预览换脸效果。
各硬件的预期表现如下,帧率为 720p 下的近似范围,实际会受是否开启增强影响:
| 硬件类型 | 最低要求 | 对应后端 | 预期帧率 |
|---|---|---|---|
| NVIDIA 独显 | GTX 1650 级别,装 CUDA 12.8 | cuda | 25~30 FPS |
| AMD 独显 | RX 580 级别,仅 Windows | dml | 20~25 FPS |
| 苹果 M 系列芯片 | M1 及以上 | coreml | 20~30 FPS |
| CPU / Intel 核显 | 四核 CPU / 11 代核显 | cpu/openvino | 5~15 FPS |
核心功能逐个过
Mouth Mask:保留原始口型
解决换脸后嘴型与原始口部不同步、近景一眼假的问题。界面里勾选Mouth Mask(参数--mouth-mask),工具只替换嘴部上方的区域,保留原始口型与发音口形。适合视频通话、直播这类嘴部清晰可见的场景。
Deep-Live-Cam 实时换脸教程中的 Mouth Mask 演示:嘴部区域保留原始口型,说话时口型不同步的问题明显减少。
Many Faces 与 Face Mapping:多人同屏替换
解决默认只替换最突出一张脸、画面里其他人不动的问题。勾选Many Faces处理画面中每一张脸;再配合Face Mapping,可以为不同人物指定不同的源脸,一一映射。适合群像视频、多人会议和表情包式素材。
Many Faces 开启后的 Deep-Live-Cam 多脸换脸效果:画面中每位人物都被替换成不同的面孔。
Face Enhancer:低清素材增强
解决换出的脸偏糊、有纹理瑕疵的问题。勾选Face Enhancer后,换脸区域会再走一遍增强模型,细节更干净。适合老片、压缩流这类低分辨率素材;代价是 GPU 负载明显上升,低端机器建议保持关闭。
Keep FPS 与 Keep Audio:输出保真
解决输出视频与源片帧率、音轨不一致的问题。勾选Keep FPS按源片帧率输出,勾选Keep Audio保留原始音轨。需要控制编码时,用命令行参数--video-encoder(libx264或libx265)和--video-quality(0~51,数值越小质量越高)指定。适合成片交付、二次剪辑前的粗剪。
Live:实时摄像头模式
解决在视频通话、直播中以另一张脸实时出镜的问题。导入源脸后按 Live 按钮,预览起来后把窗口投进 OBS 或任何支持屏幕捕获的软件;预览窗口可以调整大小,中途更换源图不用重启程序。适合直播、通话和线下表演这类实时场景。
性能调优与帧率达标
降帧三招
帧率不够时,按顺序试这三招:
- 降低输出分辨率:从 1080p 降到 720p 甚至 480p。
- 给帧率设上限:目标 15~30 FPS,不追源片帧率。
- 关闭 Face Enhancer:GPU 负载大约下降三成。
各后端启动参数
--execution-provider决定推理跑在哪块硬件上,按你的硬件选一个:
# NVIDIA / AMD / Intel / CPU python run.py --execution-provider cuda python run.py --execution-provider dml python run.py --execution-provider openvino python run.py --execution-provider cpu # Apple Silicon(注意 python3.14 前缀) python3.14 run.py --execution-provider coremlAMD 与 Intel 需要先装对应的onnxruntime-directml或onnxruntime-openvino包,NVIDIA 需要先备好 CUDA 12.8 与 cuDNN,装包细节以仓库 README 为准。GUI 模式下也可以在界面里直接选择后端,命令行参数只适合进阶用法。
Deep-Live-Cam 性能调优参考:普通 PC 上通过降分辨率、限帧率和关闭增强,可以获得流畅的实时帧率。
故障速查
| 现象 | 常见原因 | 解法 |
|---|---|---|
| 明显掉帧、卡顿 | 显存或 CPU 负载过高 | 降分辨率,关闭增强 |
| 预览严重延迟 | 帧率上限设得过高 | 限制到 15~30 FPS,关掉占用 GPU 的后台程序 |
| 脸没被识别、无替换 | 源图侧脸、遮挡或偏暗 | 换一张光线均匀的正面照 |
| Live 超过 30 秒无预览 | 后端与硬件不匹配 | 更换--execution-provider重新运行 |
底层怎么工作
处理管线只有三步。第一步,人脸检测:检测模型在每帧中找出所有人脸的位置。第二步,特征对齐:提取两张脸的关键点,把源脸对齐到目标脸的姿态,再编码出身份特征。第三步,融合输出:身份特征与目标脸的几何结构合成新脸,按原位置贴回画面,边缘用遮罩过渡,避免生硬接缝。逐帧循环执行,也就是你看到的实时效果。
帧 → 人脸检测(定位所有脸) → 关键点提取与姿态对齐 → 身份特征编码 → 合成融合(生成新脸) → 贴回原帧(遮罩过渡) → 可选:Face Enhancer → 输出合规与使用边界
四条硬性规则:
- 隐私:只使用已获本人明确同意的人脸图像。
- 标注:发布含真人面孔的内容时,明确标注为 AI 生成的深度伪造。
- 法律:不得用于欺诈、冒充、诽谤等任何非法用途。
- 未成年人:任何涉及未成年人的换脸内容一律不做。
本工具不提供内容过滤。它不做输入审查,也不做输出审核,使用场景是否合规由你自行判断并承担责任。
下一步:你可以继续做什么
- 换脸、增强、遮罩每一步都是独立处理器,看 modules/processors/frame/。
- GPU 线程数与显存上限的分配逻辑在 modules/gpu_processing.py。
- 界面布局与全部参数定义在 modules/ui.py。
- 模型文件的放置说明在 models/instructions.txt。
- 二次开发前先看现有用例 tests/。
装好环境,先跑通你的第一帧。
【免费下载链接】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),仅供参考