news 2026/9/19 13:50:33

免显卡部署 Deep-Live-Cam:一张照片实现实时换脸的完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
免显卡部署 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

想把手里的照片换进视频或摄像头画面,却被"必须 N 卡 + 配 CUDA 环境"劝退?Deep-Live-Cam 是一条换脸路线里少有的例外:它基于 onnxruntime(推理框架,CPU、GPU 两种后端都能跑)做人脸替换,没有本地显卡时直接用云端免费 Python 环境就能出片。本文覆盖从建环境、装依赖,到首次跑通、排坑和进阶参数调节的全部路径,前提是你会在网页里敲几行命令,不需要懂深度学习。

一、先搞懂:为什么没有显卡也能跑

换脸工具常见的门槛来自模型推理只能压在 GPU 上。Deep-Live-Cam 的推理链路全部走 ONNX 格式,CPU 执行后端可以直接承担检测、替换和修复三步计算。代价是帧率不如 GPU 快,收益则是普通云主机(无显卡的那种)就能完成短视频批处理;实时摄像头场景在配置尚可的机器上同样能出预览。它用到的模型分工明确:

  • insightface:在每一帧里定位人脸位置和五官坐标的检测模型;
  • inswapper_128:真正执行"把 A 脸贴到 B 脸上"的替换模型;
  • GFPGAN:对换完的脸做超分辨率修复,消除模糊和拼接痕迹的增强模型。

三条落地路线摆在一起对比,就能看清该选哪条:

方案硬件门槛上手成本适合谁
本地 + 显卡独立 GPU + CUDA 环境高,环境调试耗时有卡且常跑长视频
本地无显卡任意 PC中,需处理系统依赖有可显示屏幕的电脑
免费云端平台无,浏览器即可低,装完即用零基础、只想快速出片

本文走第三条:云端会话自带 Python 和 ffmpeg(拼接、转码视频的多媒体工具),省掉大半环境搭建,失败重开的成本也接近于零。

二、云端环境三步准备:克隆、装依赖、传素材

图形界面依赖本地屏幕,云端没有显示器——但这恰好不是障碍:项目内置无界面模式,只要给入口命令传入-s(源脸)参数,它就跳过窗口、直接按命令行流程批处理素材,见 参数解析与模式判断逻辑。

2.1 拉取代码并安装推理依赖

新建一个云端 notebook,在单元格里依次执行:

!git clone --depth 1 https://gitcode.com/GitHub_Trending/de/Deep-Live-Cam %cd Deep-Live-Cam !pip install -r requirements.txt

--depth 1只取最新一次提交,仓库体积小、速度快;requirements.txt 里列好了 opencv(读写图像和视频帧)、insightface、onnxruntime、PySide6 等全部依赖。

怎么判断成功:输出末尾出现Successfully installed ...,全程没有红色 Traceback。若后续报 ffmpeg 缺失(概率很低),补一行!apt-get install -y ffmpeg即可。

2.2 源脸照片与目标视频怎么准备

素材只需两样,标准如下:

  • 源脸(要被贴上去的脸):正脸、光线充足、五官清晰无遮挡,分辨率建议不低于 512×512;
  • 目标(被换的脸所在画面):一段视频即可,首次测试别超过 1 分钟。

在 Python 单元格里上传:

from google.colab import files files.upload()

点击弹出的文件选择框,依次传入face.jpgtarget.mp4。看到输出区出现saved to memory即上传成功。

三、第一次换脸只需一条命令

素材就位后,执行:

!python run.py -s face.jpg -t target.mp4

含义拆解:-s指定源脸,-t指定目标视频;音轨保留默认开启,无需额外参数。预期过程分两段——先等模型下载,再等逐帧处理。

3.1 首次运行会自动下载什么

第一次执行时,自动下载器 会把模型拉进models/目录,核心是约 278MB 的inswapper_128_fp16.onnx(换脸模型),外加 buffalo_l 系列检测模型(insightface 的定位权重),总计约 300MB。看到进度条滚动就是正常现象,不用干预。

3.2 成功判定与成品位置

处理跑完后,成品输出到目标视频所在的目录,文件名为源脸名-目标名.扩展名——本例即同目录下的face-target.mp4,规则来自 输出路径归一化函数。用下面的代码把成品拉到本地:

files.download("face-target.mp4")

判定成功:本地能播放、画面里目标人物的脸已被源脸替换、口型和头部姿态仍跟随原画面。

电影场景的逐帧替换效果,动图取自项目仓库自带演示

无显卡环境下实际能达到的速度,可参考仓库里普通 PC 的 CPU 实测动图:

仅靠 CPU 推理时的实际运行表现

四、卡住时的排查手册:四个高频故障的现象与解法

4.1 模型下载失败或中途卡死

现象:进度条停在某个百分比,或直接报网络异常。原因:模型约 300MB,云端网络抖动或会话超时都会掐断传输;下载器 会保留.part部分文件并支持断点续传。解法:重跑同一条run.py命令,下载从断点继续;若网络长期不稳,就把inswapper_128_fp16.onnx(及需要的 GFPGAN 模型文件)手动放进models/目录后再执行。

4.2 云端会话超时,视频处理到一半没了

现象:长视频处理中途,页面提示会话已断开。原因:免费云端会话有存活时长上限,长素材往往跑不完。解法:先用 ffmpeg 把视频裁成 30 秒以内的片段分段处理;任务结束立即files.download()拉走成品,别等。新开会话后依赖和模型都还在,续跑很快。

4.3 提示检测不到人脸

现象:日志报出未检测到目标人脸,程序直接终止。原因:绝大多数是源脸照片不合格——光线暗、侧脸角度大、画面模糊或有刘海/口罩遮挡;目标画面中人脸过小或被物体挡住时也会漏检。解法:换一张光线足、角度正、清晰无遮挡的正脸照;若目标画面问题,截取人脸占比较大的片段重试。

4.4 画面里有好几张脸,默认只换了一张

现象:多人同框时,只有其中一张脸被替换。原因:默认策略只处理画面中主脸(最大/最清晰的那张)。解法:追加--many-faces参数,让程序替换全部检测到的人脸:

!python run.py -s face.jpg -t target.mp4 --many-faces

五、进阶参数调优:帧率、口型与多脸映射

基础流程跑通后,按需叠加开关即可,不必改任何代码:

参数作用适用场景
--keep-fps保持源视频原始帧率对慢放/加速效果敏感时
--mouth-mask保留目标人物的嘴部区域不替换对话片段,想让口型更自然
--map-faces给画面中不同人脸分别指定不同源脸多人同框、各换各的
-o手动指定成品输出路径不想按默认命名规则时
--video-quality调整输出编码质量(5–51)在体积与清晰度间取舍

多脸分别映射的实际效果,仓库自带这段直播画面演示:

直播场景中不同人物被替换为不同源脸

六、想继续往下改:核心源码入口

不满足于命令行参数、想改换脸行为本身的读者,按这个路径找入口:

  • 实时换脸核心逻辑:参数解析、无界面/图形模式切换、视频批处理主流程都在这里;
  • 图形界面:本地装好后直接python run.py打开窗口,选源脸、选摄像头、点 Live 出预览,再用 OBS 之类工具捕获窗口推流;
  • 逐帧处理模块:具体的人脸替换在face_swapper.py,各类修复增强在face_enhancer.py

摄像头实时模式的画面输出演示

七、合规提醒与下一步

合规底线:使用真人照片必须先取得本人明确同意;对外发布成品时,标注内容属于深度伪造(deepfake)/AI 生成。只处理自己或已授权素材,是最稳妥的做法。

接下来可以试两件事

  1. 切回带摄像头的本地电脑,python run.py进入图形界面跑实时模式,体验"对着镜子换脸";
  2. 同一段视频分别跑一次带与不带--mouth-mask,对比口型自然度,决定自己常用哪套参数。

【免费下载链接】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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/19 13:49:19

打造专属地图集:从坐标清洗到交互地图渲染全攻略

大概每个喜欢往外跑的人,手机里都攒了一堆位置截图和收藏地点。我之前也是这样,去哪都开着地图App,收藏夹里躺了几百个点,可真要回头翻的时候,反而不知道从哪看起。后来我干脆自己动手做了个小项目,把去过的…

作者头像 李华
网站建设 2026/9/19 13:49:16

CubePlex与DeerFlow:面向个人与团队的Agent工作空间操作系统

1. 项目概述:这不是两个工具的简单对比,而是一场工作流范式的迁移CubePlex 和 DeerFlow 这两个名字最近在开发者社区里频繁出现,但很多人点开文档的第一反应是:“这到底是个啥?跟 LangChain、LlamaIndex 有啥区别&…

作者头像 李华
网站建设 2026/9/19 13:47:06

深度学习在GDP预测中的应用:基于先行指标的非线性建模

简介:一份PDF资料,聚焦深度学习在GDP指标预测中的应用,面向经济学研究者、数据分析师及政策制定者,针对GDP非线性、不确定性导致传统预测精度不高的问题,提出基于深度学习的解决思路。资源为单个PDF文件,大…

作者头像 李华
网站建设 2026/9/19 13:46:54

Chrome控制台进阶指南:从console.log到浏览器命令行实战技巧

1. 为什么我劝你别再把Console当“打印日志的地方”很多人对Chrome控制台的认知,停留在“代码里写了console.log,出问题时打开看看”。这个认知本身没错,但只开发了它不到一成的能力。我见过太多前端同行,排查一个接口返回异常&am…

作者头像 李华