FaceFusion 3.5.0 人脸融合流水线:从启动到出片只需三步
【免费下载链接】facefusionIndustry leading face manipulation platform项目地址: https://gitcode.com/GitHub_Trending/fa/facefusion
FaceFusion 是一个开源的人脸融合平台,负责把一张源人脸换进视频或图片,并顺带完成增强、修边和导出。这篇文章按「输入 → 换脸 → 增强 → 输出」这条流水线,把每个环节由哪个模块负责、关键参数在哪调,一次讲清楚。
快速上手:3 步跑通第一次人脸融合 🛠️
拿到代码并安装依赖:
git clone https://gitcode.com/GitHub_Trending/fa/facefusion python install.py启动界面:
python facefusion.py run。首次启动会提示下载模型,让它把默认模型拉完即可。在界面里分别选定 source(源人脸照片)和 target(目标视频),勾上 face_swapper,点运行。第一次不追求质量,先确认整条链路能出片。
全部参数都能落进 facefusion.ini,调好一组后就不用每次重填。
流水线拆解:输入、换脸、增强、输出各管什么
输入端:把人脸找对、盯住
- 做的事:在每帧里检测人脸、打关键点、跨帧跟踪,并决定换哪一张脸。
- 负责模块:face_detector、face_landmarker、face_selector、face_tracker(见 facefusion/ 根目录下的同名文件)。
- 关键参数:
face_detector_model(常用 scrfd 或 many,640x640 规格)、reference_face_distance(参考脸匹配距离)。多人群视频里最该动的是后者。
换脸环节:face_swapper 是主菜
- 做的事:把源脸特征迁移到目标脸上,替换区域怎么画由掩码决定。
- 负责模块:facefusion/processors/modules/face_swapper/。
- 关键参数:
face_swapper_model:常用 inswapper_128、hyperswap_1a_256,显存紧可上 inswapper_128_fp16;轻量场景可选 hypermap_v1.256。face_swapper_weight:0~1 之间,控制换脸的"硬度"。- 掩码:
face_mask_types支持 box、occlusion、area、region 四类;遮挡模型可用 xseg_1/2/3,解析模型可选 bisenet_resnet_18。
增强环节:face_enhancer 负责回血
- 做的事:把换完后略糊的纹理修细,提升面部清晰度。
- 负责模块:facefusion/processors/modules/face_enhancer/。
- 关键参数:
face_enhancer_model(gfpgan_1.4、codeformer 等)、face_enhancer_blend(0~100,混合比例)、face_enhancer_weight。
输出端:导出与质量
- 做的事:编码、缩放、混音,生成最终文件或图片。
- 负责模块:workflows 与 ffmpeg 相关封装,参数集中在
output_creation段。 - 关键参数:
output_video_quality(0~100)、output_video_scale(0.25~8.0 倍)、output_video_fps。
参数调优:按目标效果直接抄作业
| 目标效果 | 推荐参数组合 | 预期耗时(短片段参考) |
|---|---|---|
| 极速预览、直播向 | inswapper_128(或 hypermap_v1.256)+ 默认 box 掩码,不挂增强 | 3~5 秒 |
| 日常均衡、短视频 | hyperswap_1a_256 + gfpgan_1.4,blend 70~90 | 6~10 秒 |
| 质量优先、交付向 | xseg_3 遮挡掩码 + region 分区 + gfpgan_1.4 blend 90,face_swapper_weight0.4~0.6,output_video_quality90 以上 | 15~30 秒 |
三个最常被动的旋钮:face_swapper_weight调融合硬度,face_enhancer_blend调增强强度,face_mask_blur(0.3~0.7)调边缘过渡。
常见问题排查:边缘锯齿、显存溢出都在这
现象:边缘锯齿、轮廓发硬 → 原因 → 解决原因:只用了 box 掩码,切边是直的。解决:在face_mask_types里补上 occlusion 或 region,face_mask_blur放到 0.3~0.7,遮挡模型换 xseg_3。
现象:换完肤色偏色 → 原因 → 解决原因:face_swapper_weight拉满,源脸色彩压过了目标环境光。解决:weight 回落到 0.4~0.6;若开了增强,把face_enhancer_blend从 90 往 70 降一档再比。
现象:显存溢出、中途崩溃 → 原因 → 解决原因:模型规格和显存档位不匹配。解决:video_memory_strategy切 strict;换 inswapper_128_fp16;execution_thread_count从默认往 4~6 收;执行提供商用 tensorrt 或 cuda。
现象:多人视频里换错人、频繁丢失 → 原因 → 解决原因:参考脸距离阈值太宽。解决:reference_face_distance收到 0.2~0.4,配合 face_selector 的参考位置(左上/右上等)锁定目标;检测漏脸时把face_detector_size升到 640x640。
现象:出片发糊、放大看细节碎 → 原因 → 解决原因:只换了脸没增强,或导出质量低。解决:挂上 face_enhancer,output_video_quality提到 90 以上,必要时开face_swapper_pixel_boost给换脸区域补采样。
硬件与性能建议:按显存档位选配置
| 设备档位 | 执行提供商 | 模型建议 | 记忆策略 |
|---|---|---|---|
| 纯 CPU / 核显 | cpu | inswapper_128,检测 640x640,线程 4~8 | strict |
| 显存 6GB 以下 | cuda | inswapper_128_fp16 + gfpgan_1.4 | strict |
| 显存 8~12GB | tensorrt / cuda | hyperswap_1a_256 + gfpgan_1.4,可加 xseg_3 | strict 起步 |
| 显存 16GB 及以上 | tensorrt | 256 系换脸 + 增强 + 遮挡掩码全套 | 按需放宽 |
没有 GPU 也能用,但增强和 xseg 遮挡掩码都会明显拖慢速度,建议先用极速档验证参数,再在好机器上放大跑。
适用场景与下一步
- 短视频里换主角脸、统一出镜人
- 老片修复类内容:换脸 + gfpgan_1.4 增强
- 批量素材处理:用
batch-run命令配合 job 系列子命令排队跑 - 先验速度再定参数:跑一遍 benchmark,选 720p 档位测单轮耗时即可
更多细节看仓库里的 README.md 和 docs/,默认参数样例直接对照 facefusion.ini。
【免费下载链接】facefusionIndustry leading face manipulation platform项目地址: https://gitcode.com/GitHub_Trending/fa/facefusion
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考