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 是一款开源的实时换脸工具:给一张正脸照片,就能在摄像头画面或任意视频里实时替换面孔,全程本地运行,不碰在线服务、不收费。新手跟着这篇安装教程能拿到实时换脸预览,进阶读者能查全命令行参数和源码入口。
先出画面 🎬:跑通 Deep-Live-Cam 实时换脸的最短路径
不用看任何解释,按顺序复制执行:
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 秒,换脸预览就上屏了。哪一步报错,回到下面对应章节找答案。
你的机器能不能跑:自查清单过一遍
- 系统:Windows / macOS / Linux 任一都行
- Python:3.11–3.14(推荐 3.14),
python --version看一眼 - ffmpeg:已安装,没装的话视频处理会直接报错(验证方法见后文报错排查)
- git + pip:clone 仓库、装依赖要用的
- 仅 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 - 都没有:一个参数都不用加,程序自动选当前环境里最快的后端
- NVIDIA:CUDA Toolkit 12.8.0 + cuDNN v8.9.7(bin 目录加进 PATH)+
没有独显也能跑:纯 CPU 模式下 480p–720p 勉强实时,看预览完全够用;有独显则更顺滑。
三步装好运行环境:不踩坑
第 1 步:clone + 虚拟环境。把仓库 clone 下来后,用python -m venv venv建个隔离环境,免得污染系统 Python。激活时注意平台差异:Linux/macOS 执行source venv/bin/activate,Windows 执行venv\Scripts\activate(macOS 另外先brew install python-tk@3.14,否则窗口打不开)。怎么算装好了:终端提示符前面多了(venv)前缀。
第 2 步:装依赖。执行pip install -r requirements.txt。怎么算装好了:pip list里能同时看到 opencv、onnxruntime、insightface。
第 3 步:备模型。首次运行会自动下载约 300MB 的两个模型:inswapper_128_fp16.onnx(换脸用)和gfpgan-1024.onnx(人脸增强用)。不想等就提前下载好放进models/目录,文件名见 models/instructions.txt。怎么算装好了:ls models/能看到这两个文件,或者首次启动只是在下模型。
Deep-Live-Cam 实时换脸用法一:摄像头立刻出预览
操作顺序是固定的:选源脸 → 选摄像头 → 按 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:目标视频(也可以是单张图片)--keep-audio:保留原片音轨,默认就是开的,写上更保险--keep-fps:保持原始帧率- 视频太长、想压小文件:加
--video-encoder libx265换编码器;质量用--video-quality(0–51,默认 18)调
输出在哪:成品存进一个以目标视频命名的文件夹,就躺在源视频旁边——clip.mp4的结果在clip.mp4/目录里,这是新手最常说的"找不到结果"的地方。
让换脸更自然:三个高频调优点
口型对不上。源脸和画面里的人嘴型不同,整脸替换后说话就穿帮。开--mouth-mask(GUI 里叫 Mouth Mask 开关),程序保留你自己的嘴,只换脸上其余部分——说话时口型自然跟着画面里的人走。
群像里每人变成同一张脸。先加--many-faces处理画面里每一张脸,再加--map-faces:程序先用身份向量把目标里的人自动聚类分组,你再手动做"谁换谁"的绑定,群里每人各得一张自己的脸。
python run.py -s face.jpg -t group.mp4 --many-faces --map-faces换完脸偏糊。生成是 128×128 尺寸,放大回原帧后纹理发软。打开 Face Enhancer 开关,GFPGAN(对应 models/ 里的 gfpgan-1024.onnx)会把五官细节补回来。
卡住了 ⚡:报错排查速查
窗口打不开、报_tkinter?macOS 缺 tkinter 图形库。brew reinstall python-tk@3.14,重开终端再跑。
提示 ffmpeg 缺失?没装或不在 PATH。装好后ffprobe -version能打印出版本号才算数。
inswapper 模型一直下载 / 找不到?首次自动下载约 300MB,等它下完即可;等不及就手动把两个 .onnx 文件放进models/。
有 GPU 却退回 CPU 跑?通常是 cuDNN 不在 PATH 或版本不对——对照上文自查清单里的 NVIDIA 一行逐项修,启动带--execution-provider cuda验证。
实时预览明显掉帧?先关 Face Enhancer、降--max-memory;还不行就调低检测分辨率(见用法一的参数表)。
它是怎么做到的 + 去哪读源码
流水线对每一帧都跑一遍,一帧里依次发生四件事:检测——insightface 包的 buffalo_l 模型找出画面里所有脸,算出边界框、关键点和身份向量(相当于这张脸的"指纹");生成——inswapper 在 128×128 尺寸下,把源照片的身份合成到目标脸的结构上,只换身份,姿态和表情保持原样;贴回——椭圆羽化软掩膜做 alpha 混合,把新脸贴回原帧,避免硬边方块露馅;增强(可选)——GFPGAN 把糊掉的五官细节补回来。全程本地,没有在线服务。
想深入,直接对这五处:
| 模块 | 干什么 | 相对路径 |
|---|---|---|
| 人脸检测与分析 | 找脸、身份向量、关键点 | modules/face_analyser.py |
| 换脸执行 | 合成新脸、椭圆掩膜贴回 | modules/face_swapper.py |
| 人脸增强 | GFPGAN 提升五官细节 | modules/face_enhancer.py |
| 摄像头与视频 IO | 抽帧、编码、音轨还原 | modules/video_capture.py |
| 命令行入口 | 参数解析、整条流水线调度 | modules/core.py |
四条使用底线
- 只换自己的脸,或已明确取得本人同意的脸
- 公开发布时标注"AI 合成 / deepfake"
- 不用于诈骗、冒充、诽谤等任何欺骗目的
- 不碰战争画面、隐私场景等敏感素材,程序内置的 opennsfw2 过滤也会拦这类内容
现在就去跑
回到文章开头那段命令,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),仅供参考