FaceFusion 视频换脸本地部署教程:一条命令跑通换脸、增强与改龄全流程
【免费下载链接】facefusionIndustry leading face manipulation platform项目地址: https://gitcode.com/GitHub_Trending/fa/facefusion
FaceFusion 是一款可完全本地运行的开源人脸融合(视频换脸)平台:丢进一张源脸照片加一段目标视频,它就能逐帧替换画面里的人脸,并顺带完成画质增强、年龄偏移等处理。全文按"装环境 → 看功能菜单 → 跑最小用例 → 调参数 → 排故障"的路径带读者实操一遍,适合会基础命令行、想在本地显卡或 CPU 上跑视频换脸的新手。当前代码库版本为 3.8.0(见 facefusion/metadata.py)。
一、部署前自检清单:逐项打勾再开工
结论:只要下面 4 项全部满足,3 条命令就能装完。任何一项不满足都会在后半段以"报错"的形式找上门。
- Python ≥ 3.10:
python --version确认。低于 3.10 会直接被 install.py 拦住 - ffmpeg 在 PATH 中:
ffmpeg -version有输出即可。输出视频的编码工作全部交给它 - 仓库已克隆:
git clone https://gitcode.com/GitHub_Trending/fa/facefusion - 模型权重已下载:
python install.py会自动拉取全部模型,无需手动找文件。若中途断网,用python facefusion.py force-download补齐即可
安装命令(在仓库根目录执行):
python -m pip install -r requirements.txt python install.py有 NVIDIA 显卡的机器性能最好;纯 CPU 也能跑,只是速度慢一个量级。
二、功能全景图:把模块当菜单点
FaceFusion 的本质是一条处理器流水线:每一帧先做人脸检测,再依次经过你用--processors勾选的模块,最后合成输出。每个模块独立成目录,目录名就是模块 ID(完整清单在 processors 模块目录)。
| 模块 ID | 管什么事 | 什么时候用 |
|---|---|---|
face_swapper | 源脸替换目标脸,换脸基本盘 | 默认必选 |
face_enhancer | 修复糊脸、低分辨率脸 | 源片画质差、远距离小脸 |
age_modifier | 整脸往幼态/老态偏移,幅度 -100~+100 | 做年龄变化类内容 |
lip_syncer | 口型同步 | 配音换口型 |
face_editor | 微调眼神、嘴角、头部姿态等 | 局部表情修正 |
expression_restorer | 表情还原 | 换脸后表情僵硬 |
background_remover | 抠背景 | 需要透明底/换背景 |
frame_enhancer/frame_colorizer | 整帧超分 / 黑白上色 | 非人脸部分也要修 |
deep_swapper/face_debugger | 深度换脸 / 调试可视化 | 进阶与排查用 |
一句话记忆:交换管"脸是谁",增强管"脸清不清",改龄管"脸多大",三者可以一条命令串起来。
三、最小可运行用例:3 个参数出片
最短命令只需要 3 个路径参数,其余全部走默认值:
python facefusion.py run \ --source-path 照片.jpg \ --target-path 视频.mp4 \ --output-path 输出.mp4跑多模块时把--processors逗号分隔即可,例如换脸 + 增强:
python facefusion.py run \ --processors face_swapper,face_enhancer \ --face-swapper-model inswapper_128 \ --face-enhancer-model gfpgan_1.4跑成功的判断标准(满足任意两条即可):
- 输出目录出现与目标视频同名的
输出.mp4 - 终端日志走完
processing step 1 of 1并打印耗时 - 播放输出,第一帧起人脸已是源脸
四、参数决策指引:什么症状动哪个旋钮
调参主战场是 facefusion.ini——ini 里每个键都有同名命令行参数,不认识的参数先查 ini 键名。下面按"症状 → 参数"给出建议区间:
| 你的症状 | 动哪个参数 | 建议值 | 理由 |
|---|---|---|---|
| 脸部细节发虚、不够锐 | face_swapper_pixel_boost | 256x256 起步,512x512 提细节 | 每升一档速度约降一半;显存 <8G 别碰 1024x1024(可选清单见 face_swapper/choices.py) |
| 脸糊得像磨了柔光 | face_enhancer_blend | 70 左右起步 | 0~100;<40 只去噪不重构,>90 锐利但易失真 |
| 边缘"贴片感"、像贴上去的 | face_mask_blur | 0.2~0.4 | <0.1 边缘生硬,>0.5 额头边界糊 |
| 侧面/遮挡的小脸没被换掉 | face_detector_score | 0.5~0.7 | 调高会漏脸,调低到 0.3 会把背景鬼脸也框进来 |
| 检测框紧贴脸部、边缘裁切 | face_detector_margin | 0 → 20 | 给检测框留余量 |
| 视频中后段脸"飘"、中途换脸 | face_tracker_score | 0.5 → 0.3 | 跟踪阈值太松导致参考脸被替换 |
| 显存爆 / 长视频卡死 | video_memory_strategy | strict / moderate / tolerant | 1080p 以上建议 strict;tolerant 最快但吃显存 |
| 输出文件太大或太糊 | output_video_preset/output_video_quality | medium / ≥90 | preset 从 ultrafast 到 veryslow 共 9 档,交付用 medium,预览用 fast |
最小可落地配置(写进 facefusion.ini):
[execution] execution_providers = cuda [memory] video_memory_strategy = strict纯 CPU 机器把execution_providers改成cpu,execution_thread_count设到物理核心数附近即可,不必拉满。
五、故障对照:高频问题三连查
| 现象 | 原因 | 解法 |
|---|---|---|
| 一跑就报模型文件缺失 | install.py没跑完或下载中断,缓存不全 | 重跑python install.py,或python facefusion.py force-download强制补齐 |
| 脸边缘生硬、整段脸在飘 | 检测框太紧 + mask 羽化不足 + 跟踪阈值太松 | face_detector_margin提至 20、face_mask_blur提至 0.3、face_tracker_score降至 0.3 |
| 显存爆 / 长视频处理到一半卡死 | 分辨率 × pixel_boost × tolerant 策略的乘积超显存 | 切 strict、pixel_boost 退 256x256;长视频先加--target-frame-amount只测部分帧 |
| 输出比原片还糊 | output_video_quality/output_video_scale被调低 | quality 保持 ≥90、scale 用 1.0,并先确认源片本身分辨率够 |
六、进阶与生态:扩展入口与配置全集
- 加自定义处理器:照 face_swapper 模块 的四件套结构(
core.py实现、choices.py选项、locales.py文案、types.py类型)复制一份,就是一个新处理器的完整骨架 - 改参数前先跑测试:tests 目录 下每个模块都有对应的
test_cli_*.py用例,改动后跑一遍对应文件能立刻发现回归 - 查配置全集:facefusion.ini 列出全部键名,命令行参数与 ini 键一一对应,遇到不认识的参数先来查键名
- 模型生态:所有权重由
install.py统一托管下载;uniface、simswap等非官方第三方模型已预留在 face_swapper 的可选清单中,装好即可在界面或命令行里直接选
七、收尾速记
走顺这条动作链就完成了一半:clone 仓库 →install.py拉模型 →run命令加 3 个路径参数跑通第一次换脸 → 按"症状 → 参数"对照表用pixel_boost、face_mask_blur、video_memory_strategy三个旋钮找速度与画质的平衡 → 出问题对着第五节的表排。剩下的事,就是换更重的交换模型、拼更长的处理器流水线了。
【免费下载链接】facefusionIndustry leading face manipulation platform项目地址: https://gitcode.com/GitHub_Trending/fa/facefusion
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考