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 是一个免费开源的本地换脸工具:只需一张源人脸照片,就能把摄像头或视频里的人脸实时替换掉,不需要训练数据集,纯 CPU 也能跑。它适合直播换形象、短视频二创、多人趣味视频这类追求快速出结果的场景;对院线级写实质感有硬性要求的影视后期,则不在它的能力范围里。
界面布局很直观:左侧选择源脸和目标,右侧是预览窗口,点 Live 即可开始。整条流程本地运行,画面不经过任何服务器。项目内置了内容过滤检查,遇到违规素材会直接拒绝处理,这是使用它前需要了解的一条底线。
搭一个最小可运行环境
先把基础依赖备齐
官方手动安装的前提条件很少,逐条核对即可:
- Python(3.11~3.14,推荐 3.14)
- pip、git
- ffmpeg(处理视频帧离不开它)
- 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激活虚拟环境(Linux/macOS 用source venv/bin/activate,Windows 用venv\Scripts\activate),然后安装依赖并启动:
pip install -r requirements.txt python run.pypip install一行装完所有运行库;python run.py是唯一的启动入口,图形界面和命令行批处理都从这里分发。
模型文件必须原样放进 models/ 目录
这是最容易卡住的环节。需要两个模型,文件名和后缀一个字符都不能差,清单写在 models/instructions.txt:
inswapper_128_fp16.onnx:换脸核心模型GFPGANv1.4.pth:面部画质增强模型
程序按固定文件名精确匹配,改名、下成别的格式、放错目录都会触发"找不到模型"的报错。首次运行还会自动下载约 300MB 的检测相关模型,网络不佳时注意等待。
怎么确认环境真的跑通了
启动后看两个信号:主窗口正常弹出;点 Live 后,预览窗口约 10~30 秒内出现人脸,并带有绿色检测框。两条都满足就算部署成功。如果窗口弹出了但预览是黑框,九成是摄像头被别的程序占用,关掉占用方再试。
预览窗口左上角常驻 FPS 读数(如图中 15.9),右下角有推理耗时,这两个数字是后续所有调优判断的依据。
三种典型用法,按需求挑一种
图片/视频模式:一条命令出成片
不想开图形界面时,用-s(源脸)和-t(目标)参数即可进入命令行批处理:
python run.py -s 源图.jpg -t 目标视频.mp4 --keep-audio--keep-audio保留原音轨,处理完的成片会保存在以目标视频命名的目录里。影视二创、批量混剪走这条路最省事。
摄像头直播模式:边拍边换
图形界面里选一张源脸、选定摄像头,点 Live。预览稳定后,用 OBS 这类屏幕采集工具把预览窗口的画面推流出去即可。换人只需要重新选择源图,不用重启。
多人脸与嘴部蒙版:精细化控制
画面里有多人、且想让每个人换上不同脸时,启用 Many Faces + Map Faces(命令行对应--many-faces --map-faces),源图按顺序与目标人物一一对应,避免"一张脸覆盖所有人"。
直播聊天、翻唱这类以说话为主的内容,建议勾上 Mouth Mask(--mouth-mask)。它把嘴部区域排除在替换范围之外,保留原始口型,避免换脸后唇形和声音对不上的违和感。
帧率不足时,按这个顺序调
调优不要同时动多个参数,按收益从高到低逐项来:
先看 FPS 读数,判断瓶颈。预览窗口的 FPS 是最直接的指标,对照系统资源占用:CPU 打满说明算力不够,内存告急则是另一回事。
第一步:换执行器。这是帧率提升最大的一步。NVIDIA 显卡装好 CUDA 12.8 + cuDNN 后启动加--execution-provider cuda;Windows 可装onnxruntime-directml用--execution-provider directml;Apple Silicon 用--execution-provider coreml;Intel 平台用--execution-provider openvino。各执行器的前置依赖细节都在 README 的 GPU Acceleration 一节,不建议跳过。
第二步:关面部增强。增强器(face_enhancer)对帧率消耗明显。命令行模式下默认管线只跑face_swapper;如果你在图形界面勾了 Face Enhancer,先取消它再看 FPS 变化,确认收益后再决定要不要加回。
第三步:压资源占用。内存吃紧时用--max-memory限制上限(单位 GB,默认 16,macOS 默认 4);线程行为可用--execution-threads控制。注意 CUDA 执行器下线程数并非越多越好,程序默认会给 2 个线程,先保持默认观察。
最后才降分辨率。前面都调完仍不达标,再考虑降低预览分辨率,画质损失放在最后一步接受。
四个高频问题的排查思路
启动报找不到模型文件。把inswapper_128_fp16.onnx和GFPGANv1.4.pth按原文件名放进models/目录。原因是程序按文件名精确匹配,下载源给错了后缀或文件放进了子目录都会失败。
CPU 下又卡又糊。先关面部增强再谈加速,增强叠在 CPU 执行上开销成倍增加;有条件就切 GPU 执行器,顺序反过来收益很小。
换出来的脸边界发硬、融合感差。优先换一张正面、光线均匀、清晰度高的人物照。融合蒙版放大的是源图本身的缺陷,源图模糊或逆光时,再怎么调参数都救不回来。
摄像头打不开或黑屏。逐个关闭占用摄像头的软件,再检查系统隐私权限里相机是否授权。摄像头是独占设备,同一时刻只能有一个进程拿到画面。
想深入代码,从这三处入手
- modules/processors/frame/:单帧处理管线,
face_swapper.py负责替换、face_enhancer.py负责增强、core.py定义处理器加载规则。想理解"一帧是怎么被处理的"或替换管线时看这里。 - modules/ui.py:基于 PySide6 的界面与交互逻辑,选项面板、预览窗口、Live 线程都在这里,改交互行为前必读。
- modules/core.py:全部命令行参数的定义与默认值,包括执行器优先级(cuda > rocm > coreml > openvino > dml > cpu)和内存/线程默认策略,排查"为什么默认行为是这样"时查这里。
最后提一句合规:换脸工具降低的是技术门槛,不是责任门槛。只使用本人或已获书面授权的人脸素材,公开分享时明确标注内容为 AI 合成。
【免费下载链接】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),仅供参考