FaceFusion 本地部署教程:4 条命令跑通视频换脸,参数与坑一次讲完
【免费下载链接】facefusionIndustry leading face manipulation platform项目地址: https://gitcode.com/GitHub_Trending/fa/facefusion
FaceFusion 是可本地部署的开源人脸融合平台:给一张源脸照片加一段目标视频,它就把视频里的人脸替换成源脸,还能顺带做人脸增强和年龄修改。会基础命令行,10 分钟读完本文,你即可跑通部署并交付一段换脸后的 mp4。
先定位:FaceFusion 最终交给你什么
它本质是一条"帧级处理器流水线":每一帧画面先过人脸检测,再依次进你勾选的处理模块,最后合成输出(当前版本 3.8.0,见 metadata.py)。它不是单点工具,而是一组模块的组合拳:
- face_swapper管"脸是谁"——把源脸贴到目标视频的每一张脸上
- face_enhancer管"脸清不清"——修复模糊、低分辨率的脸
- age_modifier管"脸像多大"——把整张脸往幼态或老态偏移
- 另有lip_syncer管口型、face_editor管五官表情
本文面向想在自己机器上跑 FaceFusion 的开发者,最终交付物是:一个能本地打开的 Web 控制台,加一段换脸完成、画质可选的输出视频。
环境自检:开跑前确认三件事
结论先行:硬性依赖只有 Python 3.10+ 和 ffmpeg,全程免费无付费组件。
| 依赖 | 版本 / 要求 | 作用 |
|---|---|---|
| Python | 3.10 及以上 | install.py 启动时会检查 |
| ffmpeg | 近版即可,需在 PATH 中 | 负责输出视频编码 |
| Python 依赖包 | requirements.txt 共 8 项(onnxruntime、opencv、gradio 等) | ONNX 推理与 Web 控制台 |
硬件建议:
- NVIDIA 显卡:执行 provider 可选
cuda或tensorrt,速度最快;显存 8G 以上再考虑大模型或高分辨率 - 纯 CPU:也能跑,provider 改
cpu,线程数设到物理核心数附近,别盲目开满 - 其余平台(rocm、coreml、openvino 等)的执行 provider 清单在 facefusion/choices.py
首跑通路:从 clone 到出片的 4 条命令
顺序执行下面命令,唯一要盯的成功标志是:跑完后输出路径出现新的 mp4,且第一帧人脸已经变了。
git clone https://gitcode.com/GitHub_Trending/fa/facefusion cd facefusion python -m pip install -r requirements.txt python install.pyinstall.py会自动下载全部模型权重,不用手动找文件。只跑一次单换脸,最小命令是:
python facefusion.py run --source-paths source.jpg --target-path target.mp4 --output-path output.mp4想点选配置就去掉run相关参数打开 Web 控制台,勾选 processor、拖参数即可(上图为该界面)。中途若提示模型文件缺失,先重跑python install.py补齐。
参数手册:最该动的 5 个参数
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 档,越慢同画质文件越小 |
最小可落地配置,写入 facefusion.ini 即可:
[execution] execution_providers = cuda [memory] video_memory_strategy = strictCPU 机器把execution_providers改成cpu。长视频先用--target-frame-amount 10只处理 10 帧试参,参数对了再跑全量。
能力组合:把处理器串成流水线
多个能力靠--processors逗号分隔串起来,顺序即处理顺序。"换脸 + 修画质"示例:
python facefusion.py run --processors face_swapper,face_enhancer \ --face-swapper-model inswapper_128 --face-enhancer-model gfpgan_1.4各模块一句话定位:
- face_swapper:换脸基本盘。
inswapper_128默认款,快且稳;ghost_1_256、hyperswap_1a_256等更大模型细节更足,但显存和时间明显上升,完整清单见 face_swapper/choices.py - face_enhancer:人脸修复。
face_enhancer_blend取 0~100,70 是"清楚但不显塑料感"的起点;40 以下偏去噪,90 以上锐利但易失真 - age_modifier:年龄整体偏移。
--age-modifier-direction 30变年轻、-30变年长,范围 -100~+100;它不重排五官,幅度超 50 往往开始不自然 - frame_enhancer:整帧超分(不只修脸),适合画面整体糊的视频
- lip_syncer:口型跟随音频重做,
edtalk_256、wav2lip_96可选
问题速查:对号入座
现象:一跑就报模型文件缺失→ 原因:install.py没跑完或下载中断,缓存不全。 → 解法:重跑python install.py,或执行python facefusion.py force-download强制补齐。
现象:人脸边缘有"贴上去"感,或中途脸在飘→ 原因:检测框不准、mask 羽化不足;跟踪阈值太松导致中途换脸。 → 解法:--face-detector-margin从 0 提到 20 给检测框留余量,face_mask_blur提到 0.3;脸在飘就把face_tracker_score从 0.5 降到 0.3。
现象:显存爆了,或长视频处理到一半卡死→ 原因:分辨率 × pixel_boost × tolerant 策略的乘积超出显存。 → 解法:先切 strict,pixel_boost退回 256x256,用--target-frame-amount先试少量帧。
现象:输出视频比原片糊→ 原因:output_video_quality或output_video_scale被调低。 → 解法:quality 保持 90 以上、scale 用 1.0,并先确认源视频自身分辨率够。
进阶入口:想继续深挖去哪
三条路值得收藏:
- 写自定义处理器:照着 processors/modules 下任一模块的四件套(
core.py实现、choices.py选项、locales.py文案、types.py类型)复制一份,就是一个新处理器的完整骨架 - 改参数前先跑测试:tests 目录 里每个模块都有对应
test_cli_*.py用例,改动后跑一遍能立刻发现回归 - 查全部配置键:facefusion.ini 键名与命令行参数一一对应,遇到不认识的参数先来查键名;模型清单指向对应模块的 choices 文件即可
模型权重由install.py统一托管下载,uniface_256、simswap_256等第三方人脸模型已在 face_swapper 的 choices 清单里预留,装好即可在界面或命令行直接选。
动作链复盘:五步走顺
clone 仓库 →install.py下模型 →run带三个路径跑通第一次换脸 → 用pixel_boost、face_mask_blur、video_memory_strategy找速度与显存的平衡 → 出问题对号入座速查表。这条链走顺之后,剩下的事就是换更重的交换模型、拼更长的处理器流水线了。
【免费下载链接】facefusionIndustry leading face manipulation platform项目地址: https://gitcode.com/GitHub_Trending/fa/facefusion
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考