开源实时换脸指南: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 是一个开源换脸工具:给它一张正脸照片,就能在摄像头画面或任意视频里实时替换面孔,输出视频还保留原片音轨。本文面向没装过此类项目的初学者,带你完成开源换脸工具安装,看懂画面为什么会变,并绕开黑窗、掉帧这类最常见的坑。
一、它适合谁,机器要满足什么
一句话原理:程序每帧先"认出"画面里的脸,再把照片里那张脸的身份"画"回去,最后可选地做一遍清晰度增强。整个过程在本地完成,不依赖在线服务。
能做的事
- 摄像头实时换脸:你本人出镜,画面里变成照片里的人,可配合 OBS 推流
- 视频离线换脸:整段视频批量处理,保留音轨和帧率
- 多人脸映射:群里每个人绑不同的源脸
环境要求
| 项目 | 要求 |
|---|---|
| 系统 | Windows / macOS / Linux 均可 |
| Python | 3.11–3.14,推荐 3.14 |
| 必装依赖 | git、pip、ffmpeg(缺了它视频处理直接报错) |
| 硬件 | 纯 CPU 就能跑,NVIDIA 显卡或 Apple 芯片更快 |
| Windows 额外项 | Visual Studio 2022 运行库 |
没有独显也别担心:CPU 模式下 480p–720p 勉强能实时,够你用。
二、从零安装开源换脸工具并打开主窗口
1. 拿到代码
git clone --depth 1 https://gitcode.com/GitHub_Trending/de/Deep-Live-Cam cd Deep-Live-Cam2. 建虚拟环境并装依赖(强烈建议用 venv,避免污染系统 Python)
python -m venv venv # Windows: venv\Scripts\activate ;macOS/Linux: source venv/bin/activate pip install -r requirements.txt3. 模型文件(可选)
把inswapper_128_fp16.onnx(换脸)和GFPGANv1.4.onnx(增强)放进models/目录,下载地址写在 models/instructions.txt 里。不放也行——首次运行会自动下载约 300MB 模型,只是第一次要等一会儿。
4. 启动
python run.py窗口打开后布局很简单:上方左边选源人脸照片、右边选目标(视频文件)或选摄像头;中间一排开关(Keep audio、Many faces、Face Enhancer 等);下方是 Start、Live 两个按钮。macOS 用户注意两点:用brew install python@3.14装对应 Python,再brew install python-tk@3.14补图形库,缺了会报_tkinter错误。
三、摄像头实时换脸:标准流程三步走
步骤 1:选一张源人脸照片。要求就三条——正脸、光线均匀、脸上无遮挡(口罩、贴纸、逆光都会拖累检测),人脸在画面里占比大些更稳。
步骤 2:选摄像头。窗口里选好要用的摄像头即可,程序会自己挑最快的推理后端,你不用管。
步骤 3:按 Live。首次加载要等 10–30 秒,预览出来换脸就开始生效。要换人?重新选一张源照片就行。
直播推流:用 OBS 等工具对预览窗口做窗口捕获推出去;预览默认是镜像的(像前置摄像头),如果推出去的画面方向不对,加--live-mirror调一下。
四、视频文件换脸:一条命令批量出片
不想开窗口,直接命令行跑整段视频:
python run.py -s face.jpg -t clip.mp4 --keep-audio --keep-fps-s/-t:源脸照片、目标视频--keep-audio:保留原片音轨(默认开启,写上更保险)--keep-fps:保持原始帧率
处理完的输出会存进一个以目标视频命名的文件夹,这是新手最常找不到的地方。
五、画面为什么自然:一帧的旅程
不用读源码,知道这一条流水线就够了:
- 检测:buffalo_l 模型包在目标帧里找脸,算出边界框、关键点和身份向量(可以理解成这张脸的"指纹")
- 生成:inswapper 模型以 128×128 尺寸,把源照片的身份"合成"进目标脸的结构上
- 贴回:用椭圆羽化软掩膜做 alpha 混合,把新脸贴回原帧,避免硬方形边界露馅
- 增强(可选):GFPGAN 把换脸后糊掉的五官细节补回来
想查源码时,直接对号入座:
| 模块 | 职责 | 路径 |
|---|---|---|
| 人脸检测与分析 | 找脸、特征向量、106 点关键点 | modules/face_analyser.py |
| 换脸执行 | 合成新脸、椭圆掩膜贴回 | modules/processors/frame/face_swapper.py |
| 人脸增强 | GFPGAN 提升清晰度 | modules/processors/frame/face_enhancer.py |
| GPU 加速算子 | 模糊/缩放/锐化走 GPU | modules/gpu_processing.py |
| 摄像头读取 | 抽帧、编码 | modules/video_capture.py |
| 命令行入口 | 参数解析、流水线调度 | modules/core.py |
知道它们在哪即可,普通使用完全不需要改。
六、掉帧、黑窗、模型缺失怎么排查
普通 PC(无独显)上的实际表现参考下图,CPU/GPU 占用和预览窗口都在画面里,可对照自己的机器预期:
按硬件选推理后端:--execution-provider决定算在哪个芯片上,不写任何参数时程序自动选当前环境里最好的后端,新手直接python run.py即可。
| 平台 | 做法 |
|---|---|
| 无独显 / 核显 | 什么都不加,python run.py |
| 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 平台 | 装onnxruntime-openvino==1.21.0,加--execution-provider openvino |
| Windows + AMD 核显 | 装onnxruntime-directml==1.21.0,加--execution-provider directml |
高频故障对照表
| 症状 | 原因 | 解法 |
|---|---|---|
打不开窗口,报_tkinter | macOS 缺 tkinter | brew reinstall python-tk@3.14 |
| 提示 ffmpeg 缺失 | ffmpeg 没装或不在 PATH | 装好后用ffprobe -version验证 |
| 状态栏找不到 inswapper 模型 | models/ 缺文件 | 等首次自动下载完,或手动放入 |
| 有 GPU 却退回 CPU 跑 | cuDNN 不在 PATH 或 onnxruntime-gpu 版本不对 | 按上表装 cuDNN v8.9.7 +onnxruntime-gpu==1.26.0 |
| 预览明显掉帧 | 内存吃紧或增强开着 | 降--max-memory,关掉 Face Enhancer |
| 预览方向反了 | 摄像头镜像习惯不同 | 加--live-mirror |
七、进阶玩法:嘴部保留与多人脸映射
Mouth Mask:说话口型不穿帮
源脸和你本人嘴型不一样,整脸替换后口型对不上原画面。打开 Mouth Mask(GUI 滑块或--mouth-mask),程序会把下半张脸的嘴部区域留给你自己,只换其余部分——说话时口型自然一致,效果见下图:
Many Faces + Map Faces:群里每人换不同的脸
--many-faces:处理画面里每一张脸,适合群像--map-faces:在"谁换谁"上按人指定。程序先用特征向量聚类把目标里的人自动分组,你再做绑定
python run.py -s face.jpg -t group.mp4 --many-faces --map-faces八、使用之前必须知道的边界
换脸工具能力越大,边界越要清楚,记住四条即可:
- 只换自己、或已明确取得本人同意的脸
- 公开发布时标注"AI 合成 / deepfake"
- 不用于诈骗、冒充、诽谤等任何欺骗目的
- 不处理战争画面、隐私场景等敏感素材
程序自身也内置了 opennsfw2 内容过滤(GUI 勾选 NSFW 或--nsfw-filter),会自动拦截不当素材;CONTRIBUTING.md 里也写明了项目的合规立场。
现在就可以动手:把git clone和pip install -r requirements.txt两条命令跑完,放一张自己的正脸照片进窗口,点 Live 等 30 秒——你的第一段实时换脸预览马上就会出现在屏幕上。想继续深入,就从 README.md 的完整参数列表和 models/instructions.txt 开始看。
【免费下载链接】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),仅供参考