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 就是干这件事的开源实时换脸工具:全程本地运行,摄像头与视频文件都支持,视频输出保留原音轨。这篇实时换脸教程面向零基础,读完你就能让预览窗口出现在自己屏幕上。
🔍 它能干什么
- 换脸直播:点 Live 后,摄像头里的人实时变成照片里的人,配合 OBS 等工具截取预览窗即可推流,加
--live-mirror可得到镜像预览。 - 整段视频换脸:给一个 mp4,输出一整段换脸后的版本,音轨和帧率都保留。
- 多人按人映射:群像场景里每张脸可以绑定不同的源脸,而不是全换成同一张。
本地视频整体换脸命令:
python run.py -s face.jpg -t clip.mp4 --keep-audio --keep-fps输出保存在以目标视频命名的目录里,--keep-audio保留原音轨,--keep-fps保留原帧率。
⚙️ 装好并跑起来
先对照环境要求,免得中途卡住:
- 系统:Windows / macOS / Linux
- Python 3.11–3.14,推荐 3.14
- 必备三件套:git、pip、ffmpeg(负责读写视频)
- 纯 CPU 就能跑,NVIDIA 独显或 Apple 芯片更快
- Windows 需装 Visual Studio 2022 运行库
环境过关后,完整安装就是下面一段命令。先克隆仓库,再用 venv 建隔离环境,避免依赖污染系统 Python:
git clone --depth 1 https://gitcode.com/GitHub_Trending/de/Deep-Live-Cam cd Deep-Live-Cam python -m venv venv # Windows: venv\Scripts\activate ;macOS/Linux: source venv/bin/activate pip install -r requirements.txt # 模型:inswapper_128_fp16.onnx 与 GFPGANv1.4.onnx 放入 models/ # (下载地址见 models/instructions.txt;不手动放,首跑自动下载约 300MB)然后直接启动:
python run.py窗口里分三区:左边选源人脸照片,中间选目标(摄像头或视频文件),右边是 Live 和 Start 两个按钮。摄像头模式按 Live,等 10–30 秒加载完成后预览出现,换脸就开始;视频模式按 Start,成片写入以目标命名的目录。
🎚️ 让换脸更自然的开关
口型对不上?这是换脸口型不一致的典型症状:源脸和你的嘴型不同,整脸替换会让嘴巴跟不上原画面。对应开关是 Mouth Mask——GUI 里拖动滑块,或命令行加--mouth-mask。它把下半张脸的嘴部区域留给你自己,说话时口型自然一致。
画面里有好几个人?默认只处理一张脸,加--many-faces会让画面里每张脸都被处理。若希望不同人换成不同的脸,再加--map-faces:程序用特征向量聚类,把目标视频里的人自动分组,逐人绑定源脸。
python run.py -s face.jpg -t group.mp4 --many-faces --map-faces源照片质量决定上限,记住三条:正脸、光线均匀;脸上无遮挡(口罩、手、浓重贴纸);人脸在照片里占比大一些,检测更稳。
🖥️ 按硬件选跑法
--execution-provider决定推理跑在哪块芯片上。不指定时程序会自动挑当前环境里最优的后端,所以python run.py就能起步。有独显的话手动指定,帧率更稳:
- NVIDIA 中端独显:先装 CUDA Toolkit 12.8.0 和 cuDNN v8.9.7,再
pip install onnxruntime-gpu==1.26.0,然后:
python run.py --execution-provider cuda- NVIDIA 高端独显:FP16 模型与 CUDA Graph 自动生效,还能开面部增强:
python run.py --execution-provider cuda --execution-threads 2- Apple M1–M5:先
brew install python@3.14 python-tk@3.14(requirements 已带 CoreML 支持),然后:
python3.14 run.py --execution-provider coreml- Intel 平台:装
onnxruntime-openvino==1.21.0后加--execution-provider openvino。 - Windows 上的 AMD 核显:装
onnxruntime-directml==1.21.0后加--execution-provider directml。
帧率预期(按 720p 直播预览的量级):
| 硬件 | 推荐跑法 | 体感 | 建议分辨率 |
|---|---|---|---|
| 集显 / 纯 CPU | 默认python run.py | 勉强实时,够用 | 480p–720p |
| Apple M 系列 | --execution-provider coreml | 流畅(检测与换脸并行调度) | 720p |
| NVIDIA 中端独显 | --execution-provider cuda | 流畅 | 720p |
| NVIDIA 高端独显 | cuda + 开启 face_enhancer | 接近摄像头原生帧率 | 1080p |
换脸掉帧排查,基本逃不出五种情况:
- 窗口打不开、报
_tkinter:macOS 缺 tkinter,执行brew reinstall python-tk@3.14。 - 提示
ffmpeg is not installed:装上 ffmpeg,再用ffprobe -version验证。 - 状态栏报找不到 inswapper 模型:等首次自动下载完成,或手动把模型放进 models/。
- 有 GPU 却退回 CPU:检查 cuDNN 是否在 PATH、
onnxruntime-gpu是否为 1.26.0。 - 直播预览掉帧明显:调低
--max-memory,或关掉 face_enhancer。
幕后:一帧画面经历了什么
每一帧都走同一条流水线:InsightFace 的 buffalo_l 模型包先检测人脸,提取身份特征与关键点;inswapper 以 128×128 的人脸尺寸把源脸身份合成进目标脸——可以理解为身份向量像一枚印章,目标脸像一张纸,印章落下去就盖出新脸;随后用椭圆羽化软掩膜加 alpha 混合把新脸贴回原帧,方形边界不露馅;最后可选 GFPGAN(face_enhancer)把糊掉的五官细节补回来。
查源码时直接定位这几个文件:
- 人脸检测与分析:modules/face_analyser.py
- 换脸执行:modules/processors/frame/face_swapper.py
- 人脸增强:modules/processors/frame/face_enhancer.py
- 命令行与入口:modules/core.py
- 视频捕获与帧处理:modules/video_capture.py
安全红线
- 只换你自己、或已明确取得同意的脸
- 公开发布时标注"AI 合成 / deepfake"
- 不用于诈骗、冒充、诽谤等目的
- 不处理战争画面、隐私场景等敏感素材
程序内置了一层内容检查:用 opennsfw2 模型过滤不当素材,GUI 勾选 NSFW Filter 或加--nsfw-filter即可启用。
继续深入
参与贡献三步走:
- 拉出功能分支:
git checkout -b feature/your-change - 按 CONTRIBUTING.md 清单自测:实时换脸开/关增强、Map Faces 开/关、FPS 不降、GPU 压测至少 15 分钟
- 推分支提 PR——变更先进
premain分支,跑过稳定性验证后才合并进main
关键资源:
- 完整参数列表:README.md
- 模型放置说明:models/instructions.txt
- 贡献规范与测试清单:CONTRIBUTING.md
- 多语言文案:locales/
新特性与问题的讨论在仓库 Issues 页跟进。
挑一张正脸照片,把python run.py跑起来,十几分钟后你的第一段实时换脸预览就会出现在屏幕上。跑起来之前,先确认你对画面里的每张脸都有权限;公开发布时,记得标注 AI 合成。
【免费下载链接】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),仅供参考