☰
Deep-Live-Cam 实时换脸完整指南:一张照片,三步让摄像头变成照片里的人
2026/10/21 10:55:56 网站建设 项目流程

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 是一个开源实时换脸工具:给它一张正脸照片,摄像头或视频画面里的人就会被换成照片里那张脸,全程本地计算。跟着本文走,大约 15 分钟能跑通安装、摄像头实时换脸和视频批量处理。

环境自查:这台机器能不能跑起来

先对照这张表,缺哪项补哪项:

项目要求
系统Windows / macOS / Linux 均可
Python3.11–3.14,推荐 3.14
必装工具git、pip、ffmpeg(缺 ffmpeg 程序会直接提示 "ffmpeg is not installed" 并拒绝启动)
Windows 额外项Visual Studio 2022 运行库
硬件无独显也能跑,NVIDIA 独显或 Apple M 系列芯片更快

纯 CPU 模式下,默认 640×480 的摄像头分辨率基本能跟上实时速度,足够你体验全部功能;下图中无独显 PC 的实测画面(含 CPU 占用与预览窗口)可以当作性能参照:

最小安装路径:4 条命令到主窗口

  1. 克隆代码

    git clone --depth 1 https://gitcode.com/GitHub_Trending/de/Deep-Live-Cam cd Deep-Live-Cam

    成功标志:当前目录出现Deep-Live-Cam文件夹,里面有run.py、requirements.txt、models/、modules/。

  2. 建虚拟环境并激活

    python -m venv venv

    激活方式:Windows 执行venv\Scripts\activate,macOS / Linux 执行source venv/bin/activate。

    成功标志:命令行开头多出(venv)前缀。依赖装在 venv 里,不会弄脏系统 Python。

  3. 安装依赖

    pip install -r requirements.txt

    成功标志:结尾出现 "Successfully installed ...",且没有红色 ERROR 行。

  4. 启动

    python run.py

    成功标志:主窗口打开——左侧选源脸照片、右侧选目标视频或摄像头,中间一排开关和滑块,底部是 Start 和 Live 两个按钮。

两步可选增强,不做也没关系:

  • 模型文件:首次运行会自动下载约 300MB 模型(控制台有进度条),只是头一次启动慢。想手动处理,把inswapper_128_fp16.onnx(换脸核心)和gfpgan-1024.onnx(细节增强)放进models/目录,下载地址写在 models/instructions.txt。
  • GPU 后端:不配置时程序会自动挑当前环境里最好的(cuda > rocm > coreml > openvino > dml > cpu 依次优选);只有自动选择不符合预期时才需要手动加--execution-provider,各平台做法见文末表格。

平台差异说明:

  • Windows:激活命令是venv\Scripts\activate,提前装好 Visual Studio 2022 运行库。
  • macOS:先brew install python@3.14和brew install python-tk@3.14,再用python3.14 -m venv venv建环境,避免用到系统旧版 Python。
  • macOS 若报_tkinter错误:brew reinstall python-tk@3.14。
  • Linux:流程与 macOS 一致,source venv/bin/activate激活即可。

三个换脸场景,由浅入深

摄像头实时换脸:选照片、选相机、按 Live

目标:你对着摄像头说话时,画面里的人实时变成源照片里的人,预览窗口可被 OBS 捕获推流。

操作:

  1. python run.py打开主窗口,选择一张源人脸照片。照片讲究:正对镜头、光线均匀、无口罩贴纸等遮挡,逆光会拉低检测率,人脸在画面里占比越大越稳。
  2. 在摄像头列表里选你要用的那台相机。用哪块芯片计算由程序自动决定,不用你配。
  3. 按Live。

验证:首次按下 Live 后,程序加载模型需要 10–30 秒,等预览窗口出现活动画面,换脸就生效了。想换人?重新选一张源照片即可,不必重启程序。

口型不穿帮(Mouth Mask):源脸的嘴型和你的不一样时,整脸替换会让口型对不上。把 GUI 里 Mouth Mask 滑块从 0 往右拖(0 为关闭,数值越大保留区域从嘴向下巴延伸越多),命令行对应--mouth-mask参数。程序只换上半张脸,嘴部区域留给原主人,说话口型自然一致。

推流直播:用 OBS 对预览窗口做窗口捕获即可推出去。预览默认是镜像的(像前置摄像头),推出去的画面方向不对时,启动参数加--live-mirror调正。

视频文件批量换脸:一条命令跑完整段,保留音轨帧率

目标:整段视频一次处理完,输出保留原音轨和原帧率。

操作:终端里直接跑(不想开窗口就用这条):

python run.py -s face.jpg -t clip.mp4 -o out/ --keep-fps
  • -s face.jpg:源脸照片,支持 .png / .jpg / .jpeg / .bmp / .webp
  • -t clip.mp4:目标视频,支持 .mp4 / .mkv
  • -o out/:输出目录;不指定时使用默认输出位置
  • --keep-fps:输出帧率与原片一致,不加的话输出按 30fps 编码

注意两点:保留音轨是默认开启的(--keep-audio默认开),写上更保险;带-s/-t参数时程序走命令行模式,不弹窗口。

也可以走 GUI:选源照片 → 选目标视频 → 按 Start。

验证:状态栏出现 "Video processing succeeded! Total time: xxxs"。成品保存在以目标视频命名的文件夹里,文件名形如"源照片名-目标视频名.mp4",不在原片旁边,别白找。打开成品:画面里的人已换掉,音轨正常,帧率与原片一致。

多人脸映射:群里每个人换不同的脸

目标:群像画面里不同的人物绑定不同的源照片,各换各的,而不是所有脸都换成同一张。

操作:两个开关配合使用:

  • --many-faces:处理画面里的每一张脸(不配合映射时,全部换成同一张源脸,适合"给一群人统一换脸"的玩法)
  • --map-faces:程序先按身份向量把目标画面里的人自动分组,再逐人绑定"谁换哪张照片"。GUI 里打开 Map faces 开关后会弹出映射窗口,为每个人挑选源照片
python run.py -s face.jpg -t group.mp4 -o out/ --many-faces --map-faces

验证:输出视频里每个人对应各自绑定的脸,且同一人在前后帧之间保持稳定。

提示:开启 face mapping 后,视频处理会切换到基于磁盘的流水线(逐帧存盘再回贴),长视频比单脸模式更慢,属正常现象。

原理速览:一帧画面经过的 5 个工位

理解下面这条流水线就够,普通使用完全不用动代码:

  1. 检测:输入一帧画面,buffalo_l 模型包(首次运行自动下载)输出人脸边界框、106 点关键点、身份向量。身份向量就是用来认人的"指纹",多人映射的分组靠它。
  2. 合成:拿源脸的身份向量和目标脸的结构,inswapper 模型以 128×128 分辨率合成出新脸。
  3. 贴回:新脸通过椭圆羽化软掩膜贴回原帧,附带肤色校正,边缘与周围融合,不会出现硬方框。
  4. 增强(可选):GFPGAN 或 GPEN 模型把换脸过程中糊掉的五官细节补回来,就是 GUI 里的 Face Enhancer。
  5. 合成输出:ffmpeg 把处理后的帧重新编码成视频,并把原音轨贴回去。

想翻源码时,对照这张表:

模块职责仓库路径
人脸检测与分析找脸、106 点关键点、身份向量modules/face_analyser.py
换脸执行inswapper 合成、椭圆软掩膜贴回、口型遮罩modules/processors/frame/face_swapper.py
人脸增强GFPGAN/GPEN 模型补细节modules/processors/frame/face_enhancer.py
摄像头采集抽帧、测帧率、帧回调modules/video_capture.py
视频拼装ffmpeg 抽帧、编码、音频恢复modules/utilities.py
NSFW 内容检查拦截不合规素材modules/predicter.py
参数与调度参数解析、后端自动选择、流水线调度modules/core.py
模型下载自动下载、断点续传、证书校验modules/model_downloader.py

故障快查:对症状,再找解法

症状原因解法
启动即提示 "ffmpeg is not installed"ffmpeg 没装,或不在 PATH 里装好 ffmpeg,用ffprobe -version验证能输出版本
macOS 窗口打不开,报_tkinter错误缺 tkinter 图形库brew reinstall python-tk@3.14
状态栏提示找不到模型models/目录为空等首次自动下载(约 300MB)完成,或手动放入inswapper_128_fp16.onnx和gfpgan-1024.onnx
有独显却退回 CPU 跑cuDNN 不在 PATH,或 onnxruntime-gpu 版本不对装 CUDA 12.8.0 + cuDNN v8.9.7,pip install onnxruntime-gpu==1.26.0,启动加--execution-provider cuda
预览一片黑窗摄像头被别的程序占用,或模型还在加载关掉占摄像头的程序,等状态栏提示就绪
预览明显掉帧内存吃紧或增强开着调低--max-memory(默认 16GB,macOS 为 4GB),关掉 Face Enhancer,或调小--det-size(默认 640)
输出帧率和原片对不上没加--keep-fps命令里补上--keep-fps
预览方向反了摄像头镜像习惯不同启动参数加--live-mirror

按芯片选加速后端:

平台做法
无独显 / 核显什么都不加,直接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 支持,直接加--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

使用边界:四条红线

  • 只换自己的脸,或已明确取得本人同意的脸
  • 公开发布时标注"AI 合成 / deepfake"
  • 不用于诈骗、冒充、诽谤等任何欺骗目的
  • 不处理战争画面、隐私场景等敏感素材;程序内置 NSFW 内容过滤(GUI 开关列表里启用 NSFW 过滤,或命令行加--nsfw-filter),项目的合规立场写在 README.md 的 Disclaimer 部分

收尾:最短上手路径

跑通git clone和pip install -r requirements.txt两条命令后,python run.py打开窗口,放一张自己的正脸照片,按 Live,10–30 秒内就能看到第一段实时换脸效果。

想深入时翻这几个文件:

  • README.md:完整安装、GPU 加速与参数说明
  • models/instructions.txt:模型下载地址
  • CONTRIBUTING.md:项目协作与质量规范
  • 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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询