Deep-Live-Cam 实时换脸实操:一张照片跑通 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
开播前 3 分钟,主播临时想把形象换成数字分身。打开 Deep-Live-Cam,丢进一张照片,点下 Live,摄像头画面实时换脸成另一个人,没有绿幕,没有渲染。这个开源工具完全由单张照片驱动。本文带你从零装环境,到 10 分钟内跑通第一次换脸,顺手把常见坑指出来。
它能干什么,不能干什么
Deep-Live-Cam(当前版本 2.1.6)是开源实时换脸工具。一张人脸照片,可以换到摄像头、视频或图片上,全程一键完成。无需训练、不需要任何数据,跑起来就是纯推理,支持 Windows、macOS、Linux。
三个核心能力:
- 面部交换:选一张源脸、一个目标,点 Start 就出结果。
- 嘴部遮罩(mouth mask):换完脸保留原来的嘴,口型动作不出戏。
- 多脸映射(face mapping):一帧里多个人,每人配一张不同的脸。
先说清两条边界:它单图驱动,不做语音口型同步;换的是整张脸,不做局部特征微调。程序还内置内容过滤,拒绝处理不当素材。
一张照片换脸,全程实时
第一次跑通换脸视频,要多久
环境要求和获取项目
你需要:Python 3.11–3.14(推荐 3.14)、pip、git、ffmpeg。macOS 还要装 tkinter(python-tk),Windows 要装 Visual Studio C++ 运行时。
git clone --depth 1 https://gitcode.com/GitHub_Trending/de/Deep-Live-Cam cd Deep-Live-Cam你应该看到:本地出现项目文件,里面有 run.py 和 models/ 目录。
安装依赖并首次运行
先准备模型:把inswapper_128_fp16.onnx和GFPGANv1.4放进models/文件夹(下载地址见 models/instructions.txt),也可以让首次运行时自动下载约 300MB 的模型。
python -m venv venv source venv/bin/activate # Windows 用 venv\Scripts\activate pip install -r requirements.txt python run.py你应该看到:终端打印平台信息横幅,随后弹出图形界面。没有 GPU 时它自动用 CPU 跑。官方说明手动安装需要一点技术基础,中途卡住先检查 Python 和 ffmpeg 是否在终端里可用。
验收输出
在界面里选一张源脸照片,选一个目标图片或视频,点 Start。
你应该看到:终端滚动处理进度,完成后打印成功信息和耗时。输出视频保存在以目标视频命名的目录里,打开一看,脸已经换了。
核心能力拆解:一张照片怎么换掉一帧
整条流水线可以理解成三段,每段输入输出都很清楚。
第一段:检测与对齐。用 insightface 的buffalo_l模型包(人脸识别模型集合)在每帧里找脸。输入是原始帧,经过 640×640 检测和 106 个二维关键点定位,输出人脸框和对齐坐标。实现在 modules/face_analyser.py。
第二段:换脸。inswapper_128ONNX 模型(换脸用的神经网络文件)做身份特征融合,人脸先归一化到 128 标准空间。输入是源脸加目标帧,输出是替换后的帧。融合遮罩直接从换脸变换本身缓存生成,避免边缘逐帧抖动。实现在 modules/processors/frame/face_swapper.py。
第三段:后处理与输出。嘴部遮罩把原始嘴部写回;多脸映射用聚类算法把画面里多个人稳定匹配到不同源脸。视频模式走内存内的 FFmpeg 管道直接编码,省掉逐帧落盘。
命令行控制示例:--frame-processor face_swapper是换脸本体,可追加face_enhancer增强清晰度,--mouth-mask开嘴部保留,--many-faces处理每张脸。
没有独显能跑吗:硬件怎么选
| 平台 | 计算后端 | 典型要求 | 适合谁 |
|---|---|---|---|
| NVIDIA 显卡 | CUDA | CUDA 12.8 + cuDNN 8.9.7 | 流畅直播,速度最快 |
| Apple 芯片 | CoreML | Python 3.11 以上,macOS | M 系列 MacBook |
| AMD 等其他 Windows 显卡 | DirectML | Windows 系统 | AMD 卡用户 |
| Intel 核显 | OpenVINO | openvino 配套版本 | 低功耗设备 |
| 纯 CPU | CPU | 建议 8GB 以上内存 | 只求跑通,较慢 |
如果你只有核显或 CPU,推荐--execution-provider cpu直接跑,目标视频控制在 720p 以内,能出结果,但别指望实时。
工作流一:开播前 30 秒上直播
目标:把摄像头画面变成"另一个人",接进 OBS 开播。
准备:一张光线清晰的正脸源照片;装好 OBS。
操作步骤:
- 运行
python run.py打开界面 - 选源脸,选摄像头,按 Live
- 等 10–30 秒出预览
- OBS 里用"窗口采集"选中 Deep-Live-Cam 预览窗
验收标准:预览里出现换脸后的画面,动作流畅;开嘴部遮罩时口型跟自己的声音走。换人只需选一张新照片。
工作流二:一部电影一次换完
目标:把一部电影换成自己主演,音画完整。
准备:目标视频文件、源脸照片。
操作步骤:
- 界面里选源脸和目标视频,点 Start;
- 或者命令行一条搞定:
python run.py -s face.jpg -t movie.mp4 --keep-fps --keep-audio --video-quality 18验收标准:同名输出目录里出现新视频,片长与原作一致,音频完整,帧率跟随原片。输出太大时,把--video-quality(0–51,默认 18)调大即可。
常见坑:出现这些现象怎么办
- 看到
ffmpeg is not installed→ ffmpeg 没进 PATH → 先装 ffmpeg 再运行。 - 看到首次运行"卡住"很久 → 在自动下载约 300MB 模型 → 耐心等,或提前把两个 onnx 文件放进
models/。 - 看到脸没检测到 → 光线差、侧后脸或人脸太小 → 换清晰正脸照。
- 看到直播卡顿 → 开了增强器 → 只跑
--frame-processor face_swapper。 - 看到内存溢出 → 默认上限 16GB(macOS 为 4GB)→ 用
--max-memory 8调低。 - 看到 macOS 报
_tkinter错误 → 缺 tkinter →brew install python-tk@3.14。
合规与伦理红线
项目内置基于 opennsfw2 的内容过滤器,拒绝处理裸露、血腥等敏感素材,还可以加--nsfw-filter开关做额外检查。这是工具方主动守住的线。
另一条线在你这边。README 明确要求:使用真人面孔必须先取得本人同意,输出分享到线上时必须标注为 deepfake。项目方也保留依法关停或给输出加水印的权利,并明确声明不对终端用户行为负责。
所以按下 Start 之前,只问自己一个问题:这张脸,我有没有资格用?
- 绝对不要:未经同意,用真人面孔伪造任何言论或场景
- 绝对不要:用于诈骗、冒充或任何形式的身份欺骗
- 绝对不要:不标注 AI 生成就把产出传到任何平台
还能往哪走
帧处理器实现都在 modules/processors/frame/,多脸映射的聚类逻辑在 modules/cluster_analysis.py,命令行入口与全部参数定义在 modules/core.py。想读源码或提交贡献,先看 CONTRIBUTING.md。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
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考