ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Deep-Live-Cam:一张照片本地实时换脸,免费零门槛

Deep-Live-Cam:一张照片本地实时换脸,免费零门槛

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
    • 都没有:一个参数都不用加,程序自动选当前环境里最快的后端

没有独显也能跑:纯 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。

  1. python run.py打开主窗口;
  2. 选源人脸照片,三个要求:正脸、光线均匀、脸上无遮挡——口罩、贴纸、逆光都会拖累检测,人脸在画面里占比越大越稳;
  3. 在窗口里选摄像头,推理后端程序自己挑,不用管;
  4. 按Live,首次加载等 10–30 秒,预览一出现换脸就生效了;想换人,重新选一张源照片就行;
  5. 推流:用 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),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进