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 预览,再讲清楚常用参数、硬件加速和排错方法,全程只依赖仓库自带文件,不用改一行代码。
先说效果:三下鼠标就换完
不用看参数文档,先看它实际长什么样。整个界面只有三个动作:Select a face(选源脸)→ Select a target(选摄像头或视频)→ 点 Live 或 Start。下面的演示就是完整的操作过程:
点 Live 后等 10–30 秒,预览窗口会亮起来,换脸就开始实时运行。摄像头里的人,变成了你照片里的人。
十分钟装好:最小安装路径
环境要求很轻,对照这张表自查即可:
| 项目 | 要求 |
|---|---|
| 系统 | Windows / macOS / Linux |
| Python | 3.11–3.14(官方推荐 3.14) |
| 依赖 | git、pip、ffmpeg(必须,处理视频用) |
| 硬件 | 纯 CPU 可跑,NVIDIA 显卡或 Apple 芯片更快 |
| Windows 额外项 | Visual Studio 2022 运行库 |
安装命令一条接一条,照抄即可:
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 里; - 不手动放置也行,首次运行
python run.py会自动下载(约 300MB,耐心等第一次启动)。
按硬件选推理后端
--execution-provider决定推理跑在哪块芯片上。什么都没装额外驱动的机器直接python run.py,程序会自动挑当前环境里最好的可用后端。
| 你的硬件 | 安装步骤 | 启动命令 | 量级感受(直播预览) | 建议分辨率 |
|---|---|---|---|---|
| 纯 CPU / 核显 | 无 | python run.py | 勉强实时,够用 | 480p–720p |
| NVIDIA 中端独显 | CUDA Toolkit 12.8.0 + cuDNN v8.9.7(bin 目录加进 PATH),再pip install onnxruntime-gpu==1.26.0 | python run.py --execution-provider cuda | 流畅 | 720p |
| NVIDIA 高端独显 | 同上 | python run.py --execution-provider cuda --execution-threads 2,可开 Face Enhancer | 接近摄像头原生帧率 | 1080p |
| Apple M 系列 | brew install python@3.14 python-tk@3.14,requirements 已带 CoreML 支持 | python3.14 run.py --execution-provider coreml | 流畅 | 720p |
| Intel 平台 | pip install onnxruntime-openvino==1.21.0 | --execution-provider openvino | 视 CPU 而定 | 480p–720p |
| Windows + AMD 核显 | pip install onnxruntime-directml==1.21.0 | --execution-provider directml | 视显卡而定 | 480p–720p |
下面这段是真实跑起来的预览窗口,左上角能看到实时 FPS 读数,可以用来直观验收自己的硬件表现:
第一次换脸:Live 与 Start 两条路
启动后就是前面演示过的 GUI,两种模式:
实时模式(Webcam):python run.py→ 选源脸 → 点Live→ 等预览亮起来。之后想换脸,直接重新选一张源图即可。要推流直播,用 OBS 之类工具截取预览窗口;加--live-mirror可得到镜像预览,更像前置摄像头。
离线模式(视频文件):两条路都行——
- GUI:选源脸 → 选目标视频 → 点Start,输出保存在以目标视频命名的目录里;
- 命令行(带
-s参数即进入 CLI 模式):
python run.py -s face.jpg -t clip.mp4 --keep-fps几个常用 CLI 参数(完整列表见python run.py -h):
| 参数 | 作用 |
|---|---|
-s/-t/-o | 源照片 / 目标视频 / 输出路径 |
--keep-fps/--keep-audio | 保留原帧率 / 原音轨(音轨默认保留) |
--many-faces/--map-faces | 处理画面里每张脸 / 按人指定"谁换谁" |
--mouth-mask | 嘴部保留,口型不失真 |
--frame-processor face_swapper face_enhancer | 指定处理链,face_enhancer即 GFPGAN 增强 |
--live-mirror/--live-resizable | 镜像预览 / 预览窗口可缩放 |
--max-memory | 内存上限(GB),掉帧时可下调 |
--nsfw-filter | 开启不当素材过滤(基于 opennsfw2 模型) |
--video-encoder/--video-quality | 输出编码器(libx264 等)/ 质量 0–51 |
三个开关,让结果更自然
嘴部保留(Mouth Mask)——说话的人最容易在嘴部穿帮。源脸的嘴型和你的嘴型对不上,直接全换会导致口型错位。打开 GUI 里的 Mouth Mask 开关或加--mouth-mask,程序会把下半张脸的嘴部区域留给你自己,说话时口型自然一致:
多人脸映射(Many Faces + Map Faces)——画面里有多个人时,--many-faces处理每一张脸;再加--map-faces,程序用特征向量聚类把目标视频里的人自动分组,每人绑定不同的源脸,而不是全换成同一张:
源照片质量——三条就够:正脸、光线均匀(别用侧脸或逆光);脸上无遮挡(口罩、手、贴纸);人脸在照片里占比大一些,检测更稳。
离线整段视频换脸的效果参考:
看懂每一帧是怎么生成的
不需要改代码,但知道流水线在哪,出问题好定位。每一帧走同一条路:
检测目标帧里的人脸(buffalo_l:检测 + 身份特征 + 106 点关键点) → 用源照片身份 + 目标脸结构,合成 128×128 新脸(inswapper) → 椭圆羽化软掩膜 + alpha 混合贴回原帧,避免方形边界露馅 → 可选 face_enhancer(GFPGAN)补回被糊掉的五官细节| 环节 | 源码位置 |
|---|---|
| 人脸检测与分析(找脸、算特征向量与关键点) | modules/face_analyser.py |
| 换脸执行(合成新脸、椭圆掩膜贴回) | modules/processors/frame/face_swapper.py |
| GFPGAN 面部增强 | modules/processors/frame/face_enhancer.py |
| GPU 加速算子(模糊、缩放、锐化) | modules/gpu_processing.py |
| 视频捕获与帧处理 | modules/video_capture.py |
| 参数解析与流水线调度 | modules/core.py |
| 多人脸聚类映射 | modules/cluster_analysis.py |
一个细节值得留意:modules/processors/frame/face_swapper.py 里掩膜是基于换脸自身的仿射变换生成的并带缓存,而不是逐帧重新检测关键点——这避免了直播时人脸边缘"抖动"的常见瑕疵。
常见坑速查
| 症状 | 原因 | 解法 |
|---|---|---|
窗口打不开,报_tkinter | macOS 缺 tkinter | brew reinstall python-tk@3.14 |
提示ffmpeg is not installed | ffmpeg 没装或不在 PATH | 安装后用ffprobe -version验证 |
| 状态栏找不到 inswapper 模型 | models/ 里缺换脸模型 | 等首次自动下载完成,或按 models/instructions.txt 手动放入 |
| 有 GPU 却退回 CPU | cuDNN 不在 PATH,或 onnxruntime-gpu 版本不符 | 按上文装 cuDNN v8.9.7 +onnxruntime-gpu==1.26.0 |
| 直播预览掉帧明显 | 内存/显存吃紧或开了增强 | 下调--max-memory、关掉 Face Enhancer |
| macOS 装了多个 Python,行为怪异 | python指向了旧版本 | 一律用python3.14命令启动 |
想给项目贡献代码:从仓库拉功能分支,跑一遍 tests/ 下的测试(如 test_core_map_faces_fallback.py),对照 CONTRIBUTING.md 清单自测(实时换脸开/关增强、Map Faces、FPS 不掉、GPU 压测 ≥15 分钟),然后提 Pull Request(先走premain分支,稳定后才进main)。
安全底线:只换该换的脸
README 开宗明义:这是给 AI 内容创作用的生产力工具,但使用责任在用户。
- 只换你自己、或已明确取得同意的脸
- 公开发布时标注"AI 合成 / deepfake"
- 不用于诈骗、冒充、诽谤等目的
- 不处理战争画面、隐私场景等敏感素材
程序内置了一层内容检查:用 opennsfw2 模型过滤不当素材(GUI 勾选 NSFW Filter 或加--nsfw-filter),项目方也声明会遵守法律要求,必要时关停项目或给输出加水印。
从克隆仓库到 Live 按钮亮起,通常只需要十几分钟。挑一张正脸照片,把python run.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),仅供参考