FaceFusion 人脸融合实操指南:换脸、增强与批量处理 3 条工作流
【免费下载链接】facefusionIndustry leading face manipulation platform项目地址: https://gitcode.com/GitHub_Trending/fa/facefusion
给照片或视频换脸时,合成脸与背景的肤色、光照、边缘很容易露馅;一段 10 分钟的视频人工逐帧处理又不现实。FaceFusion 是一套开源的离线人脸融合工具,把检测、换脸、增强、口型同步串在一条流水线里,既能用浏览器界面调参,也能用headless-run命令批量跑,适合视频创作者和需要自动化批处理的工程师。
环境与首次运行
这一节解决"装完不知道怎么跑起来"的问题。
- 准备 Python 3.10 以上环境,先克隆仓库:
git clone https://gitcode.com/GitHub_Trending/fa/facefusion - 安装依赖,核心是 onnxruntime(模型推理)、OpenCV(帧处理)、gradio(网页界面):
cd facefusion pip install -r requirements.txt- 启动界面版:
python facefusion.py run- 命令行参数用
--help查看,run、headless-run、batch-run三条命令覆盖交互、无头、批量三种用法。
核心能力与参数体系
这一节回答"每个开关调了之后,输出会怎样变"。
FaceFusion 把功能拆成 11 个处理器模块,放在 facefusion/processors/modules/,多个模块可同时勾选、按顺序串联执行。常用的几个:
- face_swapper:完成换脸主体。
face_swapper_weight调低可弱化源脸占比,避免五官特征过强;face_swapper_pixel_boost放大人脸区域再融合,细节更好但耗时更高。 - face_enhancer:用 gfpgan_1.4 这类模型修复清晰度。
face_enhancer_blend控制增强图层与原图的混合,数值越接近 100 增强越明显,伪影风险也越高,建议从 80 起步。 - lip_syncer / background_remover / age_modifier:口型同步、去背景、年龄修改,按需叠加。
真正拉开效果差距的是三组参数:
| 参数 | 作用 | 建议起点 |
|---|---|---|
| face_detector_score | 检测置信度阈值,过滤误检 | 0.5 |
| face_selector_mode | 锁定参考脸,防止多人场景串脸 | reference |
| execution_providers | 选择 tensorrt、cuda 或 cpu 执行 | cuda |
典型工作流(场景驱动)
这一节按三个真实场景给出推荐配置组合。
单图换脸。走 image-to-image 工作流,勾选 face_swapper 加 face_enhancer 即可。源图选正脸、单人、无遮挡的照片,换脸效果上限直接取决于这张图。先预览预览帧,再执行整张输出。
长视频换脸。workflow_strategy 设为 memory,检测器跨帧复用已识别的人脸,避免逐帧重新检测导致的人脸闪烁;temp_frame_format 用 PNG 无损但占磁盘,紧张就换 JPG;输出端选 libx264 编码器,preset 选 veryfast,quality 保持 80。
批量与无人值守。两条路径:
python facefusion.py headless-run --source s.jpg --target t.mp4 --processors face_swapper或者用 job 命令:job-create 建任务、job-add-step 组合步骤、job-submit-all 入队、job-run-all 执行,失败的 job 可以单独重试,适合服务器部署。
质量与性能的平衡策略
这一节讲硬件不够强时,先保质量还是先保速度。
- 执行提供商:tensorrt 加 cuda 最快,前提是下载对应后缀的模型文件;纯 cuda 通用性最好;只选 cpu 时速度下降一个量级,只建议处理短片段。
- 线程数:execution_thread_count 默认 8 够用。8 核机器开 16 线程,反而因上下文切换变慢。不确定时用 benchmark 命令实测,比凭感觉调准。
- 显存策略:strict 省显存、normal 吞吐高,长视频显存不足时切 strict。批量跑时把输出 fps 限制在 25 以内,能明显缩短编码时间。
边界情况与应对
这一节处理三种最常见的翻车现场。
光照不一致:源图偏亮、目标偏暗时,靠 face_enhancer 统一肤色和纹理,blend 从 80 往下微调;融合边界明显就加大 face_mask_blur,或给 mask_padding 上下左右各加几像素填充。
侧脸与大角度:先确认 face_detector_angles 覆盖了目标角度,检测器换高分辨率档位;用 face_selector_mode 设为 reference 锁定参考脸,避免检测器在多张脸之间跳来跳去。
多人场景与局部替换:face_selector_order 控制处理顺序,只保留目标脸;mask_area 选 upper-face 或 lower-face 限定区域,mask_region 可排除 glasses 等干扰项;口型对不上时加 lip_syncer,配合语音提取模型单独处理音频轨。
先用一张图跑通 face_swapper 加 face_enhancer 的组合,预览确认后上长视频,批量阶段直接切到headless-run或 job 队列执行。
【免费下载链接】facefusionIndustry leading face manipulation platform项目地址: https://gitcode.com/GitHub_Trending/fa/facefusion
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考