Loading...

文章背景图

FaceFusion 保姆级部署教程:工业级人脸替换平台,从 Windows 安装到 GPU 跑通换脸全流程

2026-10-30
1
- 字
- 分钟
|

FaceFusion 保姆级部署教程:工业级人脸替换平台,从 Windows 安装到 GPU 跑通换脸全流程

FaceFusion 是一个开源的人脸操纵(face manipulation)平台,官方定位是"Industry leading face manipulation platform"(业界领先的人脸操纵平台)。它的核心能力是:给一张"源人脸"图片和一段"目标视频/图片",自动把目标里的人脸替换成源人脸。和早期的 DeepFaceLab、DeepFaceLive 相比,FaceFusion 把整个流程封装成了一条命令、一个 Web UI,支持换脸、人脸增强、人脸修复等多种功能,并且有完整的作业系统(job system)支持批量处理。License 是 OpenRAIL-AS( Responsible AI 开源协议),允许商用但有使用场景限制。本文按官方 README,从 Windows/macOS 一键安装、Linux 源码部署、到跑通第一段换脸视频。

FaceFusion

一、项目介绍与适用场景

FaceFusion 由 facefusion 社区维护,GitHub 上约 30k stars。它不是一个单一的换脸模型,而是一个"平台"——内部集成了多个人脸检测、人脸识别、人脸替换、人脸增强的预训练模型,按流水线方式串起来。用户只需要指定源人脸图片和目标视频,剩下的检测、对齐、替换、融合都自动完成。

官方 README 明确说:"Installation needs technical skills and is not recommended for beginners. In case you are not comfortable using a terminal, our Windows Installer and macOS Installer get you started."——意思是源码部署需要技术能力,新手推荐用官方一键安装包。

适用场景:

  • 影视/短视频后期:替换演员面部、修复老片人脸;
  • 直播/虚拟主播:实时换脸(需要 GPU);
  • 照片修复/增强:老照片人脸修复、人脸超分;
  • 研究/二次开发:基于平台扩展自定义模型。

注意:FaceFusion 涉及人脸操纵技术,OpenRAIL 协议对使用场景有明确限制——禁止用于未授权的深度伪造、诈骗、骚扰等场景。本文仅介绍技术部署,不鼓励任何违规使用。

FaceFusion 和传统换脸方案(比如 DeepFaceLab、Roop)的区别是什么?DeepFaceLab 需要你自己训练模型、手动对齐人脸、手动调参,门槛极高;Roop 是早期的一键换脸工具,但只支持静态图片、没有视频流水线、没有批量处理。FaceFusion 把这些都封装好了:你只需要一张源人脸图片,它自动完成人脸检测、关键点对齐、人脸替换、融合、增强,支持图片和视频。同时它保留了命令行和作业系统,方便工程化部署。

换脸的技术原理(简述):FaceFusion 内部走的是"检测—对齐—替换—融合"四步流水线。第一步用人脸检测器(如 RetinaFace、YOLOFace)在目标图里找到人脸位置;第二步做人脸关键点对齐,把源人脸和目标人脸对齐到同一个坐标系;第三步用预训练的 GAN 模型把源人脸纹理贴到目标人脸区域;第四步做颜色校正和边缘融合,让换脸结果看起来自然。整个流程在 GPU 上跑,视频是逐帧处理的。

二、核心功能逐条拆解

  1. 换脸(Face Swap):把目标图片/视频里的人脸替换成源人脸。
  2. 人脸增强(Face Enhancer):对换脸后的结果做超分、去噪、提升清晰度。
  3. 人脸修复(Face Restorer):老照片、模糊人脸修复。
  4. Web UI:浏览器里操作,拖拽图片/视频即可。
  5. Headless 模式:headless-run 命令,无界面批量处理。
  6. Batch 模式:batch-run 批量处理多个文件。
  7. 作业系统(Job System):完整的 job-list / job-create / job-submit / job-run / job-retry 工作流,支持复杂多步骤任务。
  8. Benchmark:内置 benchmark 命令测试你的机器性能。
  9. Force Download:force-download 命令自动下载所有依赖模型。
  10. 多模型可选:人脸检测器、人脸换脸模型、人脸增强器都有多个可选模型,在 Web UI 里切换。
  11. 跨平台:Windows、macOS、Linux 全支持。
  12. Gradio Web UI:基于 Gradio 构建,浏览器里操作,不用装复杂的桌面环境。

三、全套官方链接

类型 链接
GitHub 仓库 https://github.com/facefusion/facefusion
官方文档 https://docs.facefusion.io
Windows 一键安装包 http://windows-installer.facefusion.io
macOS 一键安装包 http://macos-installer.facefusion.io
License OpenRAIL-AS

四、硬件与环境前置要求

官方 README 未在 README 正文中列出具体显存要求,但官方文档(docs.facefusion.io)明确:

  • GPU:推荐 NVIDIA GPU,显存 6GB 以上(跑视频换脸建议 8GB+);
  • 系统:Windows 10/11、macOS 12+、Linux(Ubuntu 20.04+);
  • Python:源码部署需要 Python 3.10+;
  • 内存:16GB+ RAM;
  • 存储:首次运行会自动下载约 2-5GB 模型文件。

官方出处:README "Installation" 小节指向 docs.facefusion.io/installation。

补充说明:无 GPU 能不能跑?能,但极慢。官方文档提到 CPU 模式可用,但处理 10 秒视频可能要几十分钟到几小时。建议至少有一张 6GB 显存的 NVIDIA GPU(如 RTX 3060),视频换脸建议 8GB+(如 RTX 3070/4060Ti 以上)。Apple Silicon Mac 用 MPS 加速,速度介于 CPU 和 NVIDIA GPU 之间。AMD 显卡在 Linux 上通过 ROCm 也能跑,但官方文档支持度不如 NVIDIA。

五、多平台部署步骤

5.1 Windows 一键安装(官方推荐新手)

官方 README 原文:"our Windows Installer and macOS Installer get you started."

第 1 步:打开 http://windows-installer.facefusion.io 下载 Windows 安装包。 第 2 步:双击安装包,按向导下一步完成安装。 第 3 步:启动 FaceFusion,浏览器会自动打开 Web UI。

这个方式不需要装 Python、不需要装 CUDA、不需要敲命令,适合完全不懂技术的用户。

5.2 macOS 一键安装

第 1 步:打开 http://macos-installer.facefusion.io 下载 macOS 安装包。 第 2 步:双击 .dmg 文件,拖到 Applications 文件夹。 第 3 步:启动 FaceFusion,浏览器打开 Web UI。

注意:Apple Silicon(M1/M2/M3)和 Intel Mac 都支持,但 Intel Mac 没有 CUDA,换脸速度会慢很多。

5.3 Linux/macOS 源码部署(官方)

官方 README 原文:"Run the command: python facefusion.py [commands] [options]"

第 1 步:克隆仓库:

git clone https://github.com/facefusion/facefusion.git
cd facefusion

第 2 步:安装依赖(按官方文档):

pip install -r requirements.txt

第 3 步:首次运行自动下载模型:

python facefusion.py run

第 4 步:浏览器打开 http://localhost:7860(Gradio 默认端口),进入 Web UI。

逐段解释:git clone 拉源码;pip install -r requirements.txt 装 Python 依赖(包括 PyTorch、Gradio 等);python facefusion.py run 启动 Web UI,首次运行会自动下载所有需要的模型文件。

六、配置文件全部参数解释

FaceFusion 无独立配置文件,参数通过命令行传入或在 Web UI 里调。按官方 README 的 commands 列表整理:

命令 作用 配置示例 改错后果
run 启动 Web UI python facefusion.py run 无
headless-run 无界面运行(命令行模式) python facefusion.py headless-run --source-path source.jpg --target-path target.mp4 --output-path output.mp4 路径不对会报文件不存在
batch-run 批量运行 python facefusion.py batch-run 需要先在 UI 里配置好批量任务
force-download 强制下载所有模型 python facefusion.py force-download 网络不通会失败
benchmark 性能测试 python facefusion.py benchmark 无
job-list 列出所有作业 python facefusion.py job-list 无
job-create 创建作业 python facefusion.py job-create 无
job-submit 提交作业 python facefusion.py job-submit 无
job-run 运行作业 python facefusion.py job-run 无
job-retry 重试失败作业 python facefusion.py job-retry 无

补充说明:--source-path、--target-path、--output-path 是 headless-run 的核心参数,分别指定源图片、目标文件、输出文件。--face-enhancer-weight 控制人脸增强的强度(0-1),值越高越锐化但可能失真。--server-port 控制 Web UI 端口。所有参数都可以在 Web UI 里可视化调整,也可以用命令行参数覆盖。

七、启动、后台常驻与开机自启

Web UI 方式直接 python facefusion.py run 即可。headless 模式做服务:

# 假设你要把 facefusion 做成后台服务
python facefusion.py headless-run \
  --source-path /data/source.jpg \
  --target-path /data/target.mp4 \
  --output-path /data/output.mp4

systemd unit:

[Unit]
Description=FaceFusion Headless Service
After=network.target

[Service]
User=your_user
WorkingDirectory=/your/path/facefusion
ExecStart=/usr/bin/python facefusion.py headless-run --source-path /data/source.jpg --target-path /data/target.mp4 --output-path /data/output.mp4
Restart=on-failure

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now facefusion

修改端口:Web UI 模式默认 7860,可用 --server-port 参数改。

八、功能实操教程

第 1 步:用 Windows 安装包装好 FaceFusion,启动后浏览器打开 Web UI。

第 2 步:在 Web UI 里: 1. Source 区域上传一张源人脸图片(正面、清晰、光线好); 2. Target 区域上传目标图片或视频; 3. 选择想要的功能:Face Swap(换脸)、Face Enhancer(人脸增强)、Face Restorer(人脸修复); 4. 点 Start 按钮开始处理。

第 3 步:等待处理完成。处理速度取决于你的 GPU——8GB 显存显卡处理 10 秒视频大约 1-3 分钟。

第 4 步:处理完成后,在 Output 区域预览结果,下载到本地。

第 5 步:Headless 模式(命令行批量处理):

python facefusion.py headless-run \
  --source-path my_face.jpg \
  --target-path input_video.mp4 \
  --output-path output_video.mp4 \
  --face-enhancer-weight 0.5

这个命令会直接在终端跑完,不打开浏览器,适合脚本化批量处理。

第 6 步:Benchmark 测试你的机器:

python facefusion.py benchmark

终端会输出你的 GPU 推理速度、模型加载时间等,帮你判断这台机器能不能跑得动视频换脸。

第 7 步:Force Download 重新下载模型:

python facefusion.py force-download

如果上次模型下载中断、文件损坏,用这个命令强制重新下载所有模型。

第 8 步:作业系统(Job System)——这是 FaceFusion 区别于其他换脸工具的杀手锏。你可以把复杂的多步任务保存成 job,反复跑、批量跑:

# 列出所有作业
python facefusion.py job-list

# 创建一个新 job
python facefusion.py job-create

# 提交 job 到队列
python facefusion.py job-submit

# 运行所有排队的 job
python facefusion.py job-run-all

# 重试失败的 job
python facefusion.py job-retry-all

典型用法:你有 100 个视频要换同一张脸,不需要在 Web UI 里手动操作 100 次,而是创建一个 job 模板,批量提交,然后 job-run-all 一次跑完。这对生产环境(比如批量处理素材)非常有用。

第 9 步:选择合适的人脸检测模型。FaceFusion 内置多种人脸检测器,在 Web UI 的 Face Detector 下拉框里选: - retinaface:精度高,速度中等,适合大多数场景; - yunet:速度快,精度稍低,适合实时视频; - scrfd:折中方案。

如果你的目标视频里人脸很小、角度很偏,选 retinaface;如果是直播实时换脸,选 yunet。

九、全套报错故障排查

  1. 报错:ModuleNotFoundError: No module named 'torch'。 原因分析:没装 PyTorch 或依赖没装全。 分步解决方案:pip install -r requirements.txt;如果 CUDA 版 PyTorch 装不上,先去 pytorch.org 官网按你的 CUDA 版本手动装。

  2. 报错:CUDA out of memory。 原因分析:显存不够。 分步解决方案:关掉其他占显存的程序;在 Web UI 里把分辨率调小;缩短视频长度;或换用 --face-selector-order 只处理检测到的第一张脸。

  3. 报错:模型下载失败或很慢。 原因分析:首次运行要从 GitHub/远程服务器下载 2-5GB 模型。 分步解决方案:用 python facefusion.py force-download 单独跑下载;或设置代理后重试。

  4. 报错:换脸结果人脸扭曲、模糊。 原因分析:源图片质量差,或目标人脸角度太大。 分步解决方案:换一张正面、清晰、光线好的源图片;在 Web UI 里开启 Face Enhancer 提升清晰度。

  5. 报错:Windows 安装包启动后浏览器打不开。 原因分析:默认端口 7860 被占用。 分步解决方案:在启动命令里加 --server-port 7861 换个端口。

  6. 报错:macOS 上运行报 OSError: dlopen(...) failed。 原因分析:Apple Silicon 上某些依赖需要 arm64 版本。 分步解决方案:用官方 macOS 安装包而不是源码部署;或确认你的 Python 是 arm64 版本(python3 -c "import platform; print(platform.machine())")。

  7. 报错:换脸结果闪烁、帧间不一致。 原因分析:视频逐帧处理时,人脸检测在不同帧之间不稳定。 分步解决方案:在 Web UI 里开启 Face Landmarker(人脸关键点对齐),或换用更稳定的检测器(retinaface);如果视频很短,可以先抽帧、处理、再合帧。

  8. 报错:ffmpeg not found。 原因分析:视频处理需要 ffmpeg 解码/编码。 分步解决方案:Windows 安装包已内置 ffmpeg;源码部署需要自己装:sudo apt install ffmpeg(Ubuntu)或 brew install ffmpeg(macOS)。

  9. 报错:Web UI 打开后页面空白。 原因分析:Gradio 前端资源加载失败,或浏览器缓存。 分步解决方案:强制刷新浏览器(Ctrl+Shift+R);换 Chrome/Edge 试试;或用 --server-name 0.0.0.0 参数让服务监听所有网卡。

十、升级、回滚与卸载

升级:源码方式 git pull + pip install -r requirements.txt;一键安装包方式在应用内检查更新。FaceFusion 更新比较频繁,建议每次升级前先看 GitHub Releases 页面的 changelog,确认有没有 breaking change。

备份建议:FaceFusion 本身无用户数据,但你自己的 source/target/output 文件记得备份;模型缓存目录(默认在项目目录下的 .assets/ 或 ~/.cache/)可以单独备份,下次部署不用重新下载——这一步很重要,因为模型文件加起来有几个 GB,重新下载很费时间。

回滚:git checkout <旧版本tag>。FaceFusion 的版本号在 GitHub Releases 里都有 tag。

卸载:一键安装包在"应用管理"里卸载;源码方式直接删文件夹 + pip uninstall facefusion;systemd 方式 sudo systemctl disable --now facefusion 并删 unit 文件。

十一、商用许可与合规风险提示

FaceFusion 采用 OpenRAIL-AS 协议——这是一种"负责任 AI"开源协议,比传统 MIT/Apache 多了使用场景限制。协议允许商用、修改、分发,但明确禁止: 1. 未经授权的深度伪造(deepfake)他人; 2. 用于诈骗、骚扰、诽谤; 3. 用于合成色情内容; 4. 用于欺骗性政治宣传。

合规建议:商用前务必完整阅读 OpenRAIL-AS 协议原文;处理名人/公众人物面部时需获得授权;产品上线前建议加"AI 生成内容"水印/标注。本教程不构成法律意见。

参考链接

  • GitHub 仓库:https://github.com/facefusion/facefusion
  • 官方文档:https://docs.facefusion.io
  • Windows 安装包:http://windows-installer.facefusion.io
  • macOS 安装包:http://macos-installer.facefusion.io

附录:新手常见问题 FAQ

Q1:我是新手,该用 Windows 安装包还是源码部署? A:强烈推荐 Windows 安装包。源码部署需要装 Python、CUDA、PyTorch、ffmpeg,任何一个环节出问题都会卡住。官方 README 也明确说源码部署"not recommended for beginners"。

Q2:换脸效果不好,是哪里的问题? A:90% 的情况是源图片质量问题。源图片要满足:正面、光线均匀、表情自然、分辨率不低于 512x512。如果源图是侧脸、逆光、戴口罩,换脸效果一定差。

Q3:处理视频特别慢怎么办? A:先跑一次 python facefusion.py benchmark 看看你的机器基线。如果太慢,把视频分辨率调低(比如 720p 降到 480p)、缩短视频时长、换更快的人脸检测器(yunet)。

Q4:可以换多人脸吗? A:可以。FaceFusion 支持自动检测目标图里的多张人脸,你可以在 Web UI 里指定哪张源脸对应哪张目标脸。

评论交流

文章目录