FaceFusion 教程:本地部署视频换脸,10 分钟完整跑通
【免费下载链接】facefusionIndustry leading face manipulation platform项目地址: https://gitcode.com/GitHub_Trending/fa/facefusion
这是一份面向首次使用者的 FaceFusion 本地部署视频换脸指南:给一张源脸照片和一段目标素材,画面里的人脸会被整体替换成源脸,还可以接着做画质修复与年龄偏移。写给有基础命令行操作习惯、想在自己电脑上跑视频换脸的朋友,带 NVIDIA 显卡的机器体验最佳。
🚀 FaceFusion 本地部署步骤:四步跑通环境
先确认环境门槛,只有三条:Python 3.10 及以上(项目启动时会自行校验)、ffmpeg 在系统 PATH 中(输出视频由它编码)、有 NVIDIA 显卡更好,纯 CPU 也能跑只是更慢。
把下面这条主线按顺序执行完,环境就齐了:
git clone https://gitcode.com/GitHub_Trending/fa/facefusion cd facefusion python -m pip install -r requirements.txt python install.py所有模型权重由install.py统一拉取,不需要手动找文件。接着执行第一次换脸:
python facefusion.py run \ --source-path 照片.jpg \ --target-path 视频.mp4 \ --output-path 输出.mp4生成 mp4 且首帧人脸已发生变化,即代表部署成功。
关于能力面,版本为 3.8.0(见 metadata.py),内部是一组模块流水线:每帧先过人脸检测,再依次穿过你勾选的模块,最后合成输出。常用组合就三类:face_swapper 换脸、face_enhancer 修画质、age_modifier 改年龄,外加 lip_syncer、face_editor 等独立能力;每个模块在 facefusion/processors/modules/ 下独占一个文件夹,文件夹名即模块 ID。
🎯 按任务选能力组合:换脸、修画质、改年龄
目标一:让画面里的脸变成指定人。开启 face_swapper 即可:
python facefusion.py run \ --processors face_swapper \ --face-swapper-model inswapper_128 \ --source-path 照片.jpg --target-path 视频.mp4模型怎么选:inswapper_128是默认款,速度与稳定性最稳,首跑推荐它;blendswap_256、ghost_1_256、hyperswap_1a_256这类更大规格的面部细节更足,代价是显存和时间双双明显上涨(完整清单在 face_swapper 的 choices.py)。一句避坑:源照片尽量正脸、清晰,否则整段输出的上限就被它锁死。
目标二:把糊掉的脸修清楚。在逗号后追加 face_enhancer,接在同一条流水线上:
python facefusion.py run \ --processors face_swapper,face_enhancer \ --face-enhancer-model gfpgan_1.4face_enhancer_blend取值 0~100,70 前后是"修得清楚但没塑料感"的起点;40 以下基本只做去噪,90 以上细节锐利但容易失真。一句避坑:增强只能补救,救不回完全糊成色块的脸。
目标三:让脸显得更年轻或更年长。接入 age_modifier:
python facefusion.py run \ --processors face_swapper,age_modifier \ --age-modifier-direction 30+30偏年轻、-30偏年长,全区间 -100 到 +100。说直白点,它属于整脸层面的平移,不会重排五官结构,幅度越过 50 就容易产生明显违和感。
⚖️ 视频换脸最快参数配置:速度、画质、显存三方平衡
调参主战场是 facefusion.ini,其中每个键都与命令行参数一一对应,写进文件或直接运行时传参都可以。最值得动的五项如下:
| 参数 | 推荐值 | 什么时候该动它 |
|---|---|---|
face_swapper_pixel_boost | 256x256 | 输出细节不够时提到 512x512,速度约降一半;显存低于 8G 别碰 1024x1024 |
face_detector_score(0~1) | 0.5~0.7 | 漏检侧面小脸就往下调,调到 0.3 会把背景杂物也框进来就往上收 |
face_mask_blur(0~1) | 0.2~0.4 | 低于 0.1 边缘生硬像贴片,高于 0.5 额头边界发糊 |
video_memory_strategy | 1080p 以上选 strict | strict 最省显存但会反复重载帧,tolerant 最省时间但最吃显存,按需取舍 |
output_video_preset | 交付用 medium,预览用 fast | ultrafast 到 veryslow 共 9 档,同画质下档位越慢文件越小 |
一份能直接落地的最小配置:
[execution] execution_providers = cuda [memory] video_memory_strategy = strict纯 CPU 机器把该项改为cpu,再把execution_thread_count放到物理核心数附近即可,不必拉满。
🔧 FaceFusion 报错排查清单:看到什么做什么
| 看到什么 | 做什么 |
|---|---|
| 一启动就提示模型文件缺失 | 重跑python install.py,或用python facefusion.py force-download强制补齐 |
| 脸边缘有"贴片感",或中途人脸漂移 | face_detector_margin从 0 提到 20、face_mask_blur提到 0.3;仍漂移就把face_tracker_score从 0.5 降到 0.3 |
| 显存爆掉,长视频处理到一半卡死 | 策略切回 strict、pixel_boost退回 256x256,并用--target-frame-amount先只跑部分帧做验证 |
| 成片比原片更糊 | output_video_quality保持 90 以上、output_video_scale维持 1.0,同时核对源视频本身分辨率 |
🧩 再进一步:自定义模块、回归测试与全量配置
三个值得看的地方:
- 加自定义处理器:照 face_swapper 模块 的四件套复制一份——
core.py写实现、choices.py定选项、locales.py管文案、types.py声明类型——就是一个新处理器的完整骨架 - 改参数前先跑测试:tests/ 目录里每个模块都有对应的
test_cli_*.py用例,改完执行对应文件,回归问题当场暴露 - 查全量配置清单:facefusion.ini 列出所有键名,遇到不认识的参数先来这里对键名
模型生态方面,uniface、simswap 等第三方权重已列在 face_swapper 的 choices 清单中,装好环境后即可在界面或命令行里直接选用。
下一步怎么走
- 显存低于 8G:先固定 strict + 256x256 把画质跑稳,再谈锐度
- 长视频:先用
--target-frame-amount小范围验证,参数定型后再跑全量 - inswapper_128 跑通之后,逐个换成 blendswap_256 或 ghost_1_256,肉眼对比细节差异再定主力模型
【免费下载链接】facefusionIndustry leading face manipulation platform项目地址: https://gitcode.com/GitHub_Trending/fa/facefusion
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考