Deep-Live-Cam 实时换脸上手指南:一张照片,5 分钟跑通本地 Deepfake 工具
【免费下载链接】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 是一款开源的实时换脸工具:丢给它一张正脸照片,就能在摄像头画面或视频里把脸实时替换掉,全程在本机运行,不经过任何在线服务,不花一分钱。新手按这篇走完,能拿到自己的实时换脸预览;想批量处理视频的人,能直接抄走完整的命令行参数。
5 分钟出画面:最短启动路径
不用先懂原理,按顺序敲下面这 6 行:
git clone --depth 1 https://gitcode.com/GitHub_Trending/de/Deep-Live-Cam cd Deep-Live-Cam python -m venv venv source venv/bin/activate # Windows 改用 venv\Scripts\activate pip install -r requirements.txt python run.py主窗口弹出来后,选源脸照片 → 选摄像头 → 按Live,等 10–30 秒,换脸预览就出现了。哪一行报错,就跳到下文对应的"安装四步"或"报错速查"一节找解法。
跑之前先自查:这台机器够不够
必选项,缺一个就跑不起来:
- Python 版本在 3.11–3.14 之间(官方推荐 3.14),
python --version可查 - 装了 git 和 pip(克隆仓库、装依赖要用)
- 装了 ffmpeg,且终端里
ffprobe -version能打印版本号——视频模式依赖它处理画面和音轨 - 仅 Windows:装好 Visual Studio 2022 运行库
可选项,只影响快慢,不影响能不能跑:
- NVIDIA 显卡:CUDA Toolkit 12.8.0 + cuDNN v8.9.7(bin 目录加进 PATH),再执行
pip install onnxruntime-gpu==1.26.0,启动时带--execution-provider cuda - Apple M1–M5 芯片:依赖文件里已含 CoreML 支持,
python3.14 run.py --execution-provider coreml直接跑 - Intel 平台:
pip install onnxruntime-openvino==1.21.0,启动加--execution-provider openvino - Windows + AMD 核显:
pip install onnxruntime-directml==1.21.0,启动加--execution-provider dml - 一样都不装:不加任何参数,程序会自动挑当前环境里最快的后端
没有独显的纯 CPU 机器也出得了画面,480p–720p 勉强实时,看预览没问题;有显卡则更顺滑。
安装四步:每步都有"算装好了"的标准
第 1 步:克隆仓库 + 建虚拟环境。上一条命令块里的前 4 行就干完了这件事——虚拟环境的作用是把依赖装进隔离空间,不污染系统 Python。 ✅ 怎么算装好了:终端提示符前面多了(venv)。
第 2 步:装依赖。执行pip install -r requirements.txt,包比较多时耐心等待。 ✅ 怎么算装好了:pip list里能同时看到opencv-python、onnxruntime、insightface。
第 3 步:备模型。两个核心文件要放进models/目录:inswapper_128_fp16.onnx(负责换脸合成)和gfpgan-1024.onnx(负责五官细节增强),合计约 300MB。首次启动会自动下载;等不及就提前手动下载好丢进去,文件名以 models/instructions.txt 为准。 ✅ 怎么算装好了:ls models/能列出这两个 .onnx 文件,或首次启动只是在下模型进度条。
第 4 步:启动。执行python run.py。 ✅ 怎么算装好了:出现主窗口,界面里有源脸选择、摄像头列表和 Live 按钮。
窗口模式:摄像头实时预览
操作顺序是固定的三步:选源脸 → 选摄像头 → 按 Live。
- 执行
python run.py打开主窗口; - 挑一张源脸照片。三个硬性要求:正脸、光线均匀、脸上无遮挡——口罩、贴纸、逆光都会拖垮检测效果,人脸在照片里占比越大越稳;
- 在窗口里选一台摄像头,推理后端程序自己挑,不用管;
- 按Live,首次加载要等 10–30 秒,预览一出现换脸就生效;想换人,直接重新选一张源照片;
- 推流:用 OBS 对预览窗口做窗口捕获即可。
窗口模式常用参数:
| 参数 | 干什么 | 什么时候用 |
|---|---|---|
--live-mirror | 预览按前置相机视角镜像 | 推出去的画面方向反了 |
--live-resizable | 允许拖动调整预览窗口大小 | 想按推流版式放大或缩小预览 |
--max-memory | 限制内存上限,单位 GB | 内存吃紧、预览开始掉帧 |
--det-size | 人脸检测输入尺寸,160 / 320 / 640 三档,默认 640 | 画面里脸偏小、或机器性能不够时调低 |
--nsfw-filter | 启用内置 opennsfw2 内容过滤 | 希望自动拦截不当素材 |
命令行模式:一条命令批量出片
命令行有个隐藏开关:只要带上-s,程序就不再弹窗口,直接进入无界面模式。
python run.py -s face.jpg -t clip.mp4 --keep-audio --keep-fps参数逐个说:
-s/--source:源脸照片,同时是"切到命令行模式"的开关-t/--target:目标图片或视频-o/--output:手动指定输出位置--keep-audio:保留原片音轨(默认本来就是开的,写上更保险)--keep-fps:保持原始帧率--many-faces:画面里每张脸都处理,默认只换一张--map-faces:配合--many-faces,把目标里的人聚类分组后手动绑定"谁换谁"--frame-processor:指定帧处理器,可选face_swapper、face_enhancer等--video-encoder:输出编码器,libx264/libx265/libvpx-vp9--video-quality:输出质量 0–51,默认 18,数字越小体积越小、质量越低
⚠️结果文件在哪,新手最容易懵:成品不会直接躺在当前目录,而是存进以目标视频命名的文件夹——clip.mp4的换脸结果就在源视频旁边的clip.mp4/目录里。找不到输出,先去那儿翻。
进阶调优:三个高频痛点的解法
口型对不上
现象:源脸和画面里的人嘴型不同,整脸替换后一开口就穿帮。原因:全脸替换把嘴也一起换掉了,动作不再跟原画面同步。解法:开--mouth-mask(窗口模式里叫 Mouth Mask 开关),程序保留原画面里的嘴,只替换脸上其余区域,说话时口型自然跟着原画面走。
群像里所有人变成同一张脸
现象:目标视频里有多个人,却都被换成了源脸。原因:默认行为是把源脸应用到识别到的第一张目标脸上。解法:--many-faces让程序逐张处理每一张脸,再叠--map-faces:程序先用人脸身份向量(可以理解为每张脸的"指纹")把目标里的人自动聚类,你再手动绑定"谁对应谁",群里每人各得一张自己的脸。
python run.py -s face.jpg -t group.mp4 --many-faces --map-faces换完脸偏糊
现象:放大看五官,细节发软。原因:换脸生成是 128×128 小尺寸,放大回原帧后纹理自然损失。解法:窗口模式打开 Face Enhancer 开关,或命令行加--frame-processor face_swapper face_enhancer,GFPGAN 会把糊掉的五官细节补回来。
报错速查:卡住了先翻这里
报_tkinter错、窗口打不开?macOS 缺 tkinter 图形库。执行brew reinstall python-tk@3.14,重开终端再跑一次。
提示找不到 ffmpeg?没装,或装了但不在 PATH 里。装好后用ffprobe -version验证,能打印版本号才算数。
两个 .onnx 模型一直下载或提示缺失?首次启动会自动拉取约 300MB 的模型,等它下完即可;等不及就手动把inswapper_128_fp16.onnx和gfpgan-1024.onnx放进models/目录。
有 N 卡却退回 CPU 跑?十有八九是 cuDNN 没进 PATH 或版本不对。对照上文自查清单里 NVIDIA 那一行逐项修,启动时带--execution-provider cuda验证是否命中 GPU。
实时预览明显掉帧?按顺序试:先关 Face Enhancer,再调低--max-memory,最后把--det-size从 640 降到 320 或 160。
它是怎么做到的,源码从哪读
流水线对每一帧跑一遍,一帧内部依次发生四件事:
- 检测——insightface 包的 buffalo_l 模型找出画面里所有脸,算出边界框、关键点和身份向量;
- 生成——inswapper 模型在 128×128 尺寸下,把源照片的身份"合成"到目标脸的结构上,只换身份,姿态和表情保持原样;
- 贴回——用椭圆羽化软掩膜做 alpha 混合,把新脸贴回原帧,避免硬边方块露馅;
- 增强(可选)——GFPGAN 把糊掉的五官细节补回来。
全程本地完成,没有任何在线环节。想深入读代码,直接对这五处:
| 模块 | 职责 | 相对路径 |
|---|---|---|
| 人脸检测与分析 | 找脸、算身份向量和关键点 | modules/face_analyser.py |
| 换脸合成 | 生成新脸、椭圆掩膜贴回原帧 | modules/processors/frame/face_swapper.py |
| 人脸增强 | GFPGAN 补回五官细节 | modules/processors/frame/face_enhancer.py |
| 视频输入输出 | 抽帧、编码、音轨还原 | modules/video_capture.py |
| 命令行入口 | 参数解析、整条流水线调度 | modules/core.py |
四条使用底线
- 只换自己的脸,或事先明确取得本人同意
- 公开发布时标注"AI 合成 / deepfake"
- 不用于诈骗、冒充、诽谤等任何欺骗目的
- 不碰战争画面、隐私场景等敏感素材,内置的 opennsfw2 过滤也会拦这类内容
现在就去跑
回到文首那 6 行命令,python run.py跑起来,选一张自己的正脸照片,按 Live——10–30 秒后你的第一段实时换脸预览就在屏幕上了。想继续深入,从这三处顺着读:README.md 里的完整参数列表、models/instructions.txt 的模型文件说明、modules/core.py 的流水线调度代码。
【免费下载链接】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),仅供参考