10 分钟跑通 FaceFusion 换脸:开源人脸交换从入门到批量队列完整指南
【免费下载链接】facefusionIndustry leading face manipulation platform项目地址: https://gitcode.com/GitHub_Trending/fa/facefusion
FaceFusion 换脸(人脸交换)是一个完全免费开源的工具:把照片里的脸换到视频上,同时保留原片的口型、光线和表情,还能顺手做面部增强、唇形同步、年龄修改。它适合不想付特效费、自己动手做视频内容的个人创作者,也适合需要把整文件夹素材批量换脸、或给内部演示素材做面部脱敏的团队。第一次接触换脸工具的人,看完这篇就能从装环境一路走到无头批量队列。
第一步:装好环境并启动网页界面
整个流程只有三行命令,Conda 管理环境可以避开版本冲突。
git clone https://gitcode.com/GitHub_Trending/fa/facefusion cd facefusion python install.pyinstall.py 是自带的一键安装脚本,会建好 conda 环境并装完 requirements.txt 里锁定的核心依赖——ONNX Runtime 负责模型推理,OpenCV 负责图像处理,版本全部固定,省去了自己踩坑的时间。装完执行python facefusion.py run,浏览器会自动打开操作界面。
💡 首次启动会自动下载人脸检测和换脸模型,文件有几百 MB,网速一般就等着它跑完;不想干等的话,也可以先单独执行
python facefusion.py force-download把模型一次性拉完。
界面布局很简单:左侧 PROCESSORS 列表是全部 11 个功能开关,中间依次放源人脸、目标视频和输出路径,右侧按区块堆着检测、选脸、换脸、增强等参数,底部有 START 和 CLEAR。点 START 之前,建议先在左侧的 EXECUTION PROVIDERS 里把执行后端选对(下一节讲),其他参数全留默认,先跑出一个结果再说。
11 个功能模块怎么挑
换脸不是只有一件事。face_swapper 负责"换脸"本身,face_enhancer 负责"修糊",lip_syncer 负责"对口型",age_modifier 负责"变老变年轻"。它们可以单独用,也可以叠加在同一次运行里,顺序就是你勾选的顺序。
换脸(face_swapper):几乎所有任务的起点。选一个模型(如 hyperswap_1a_256),传一张源人脸照片和一个目标视频,就能出片。模型名里的数字是内部工作分辨率,128/256 起步够用;想要更清晰的脸可以开 face_swapper_pixel_boost 把输出放大到 512 甚至 1024,代价是明显变慢。
面部增强(face_enhancer):换完脸觉得脸发糊、和原片质感对不上时叠在后面。默认模型 gfpgan_1.4,重点调 FACE ENHANCER BLEND。
唇形同步(lip_syncer):给换好语言的视频让嘴型对上声音。可以勾选先提取人声再对齐,lip_syncer_weight 控制口型跟随的力度。
年龄修改(age_modifier):做"老版/少版自己"的趣味内容,选方向(变年轻或变老)就行,小步调整比跨度过大更自然。
其余功能一句话速览:
| 模块 | 干什么用 |
|---|---|
| background_remover | 抠掉背景换成纯色或指定颜色 |
| expression_restorer | 把源人脸的表情强度还给目标脸,治"面无表情" |
| face_editor | 手动微调眉毛、眼神、嘴型、头姿 |
| deep_swapper | 换脸加变形一体,morph 参数做脸形过渡 |
| frame_enhancer | 整帧画质增强,不止修脸 |
| frame_colorizer | 给黑白、褪色的老照片上色 |
| face_debugger | 在画面上画检测框和关键点,排查"没检测到脸" |
多人同框时别急着调参数,先用右侧 FACE SELECTOR 把目标圈出来:按位置(reference / largest)、年龄段、性别、种族过滤,再配合时间轴上的 TRIM FRAME 限定生效的帧区间,就能只动你想动的那张脸。
按显卡选执行后端
推理跑在哪块硬件上,直接决定一条 1 分钟的视频要等 30 秒还是 30 分钟。界面上的 EXECUTION PROVIDERS 就是干这个的:
| 你的设备 | 选哪个 | 备注 |
|---|---|---|
| NVIDIA 独显 | cuda | 最通用,提速最明显 |
| 高端 N 卡 | tensorrt | 比 cuda 更快,但要先转换模型 |
| AMD 显卡 | rocm / migraphx | 支持有限,遇到问题先回退 cpu |
| Mac(M 芯片) | coreml | 走苹果芯片加速 |
| 纯 CPU | cpu | 能跑但慢,1080p 建议先降分辨率 |
纯 CPU 的话,execution_thread_count 别盲目拉满,取 CPU 核心数附近就行,开满了反而更慢。
五个真正值得动的参数
所有参数改完会自动存进 facefusion.ini,下次启动直接复用,它是全项目最好的"参数字典"。前几个参数各管一件事,按"什么时候调 / 往哪边调 / 效果怎么变"来记:
| 参数 | 起步值 | 调法与效果 |
|---|---|---|
| face_detector_score | 0.5 | 侧脸、小脸检不出来就往下调,能多检但容易误检 |
| face_swapper_weight | 0.5 | 控制新脸对原脸的覆盖程度,调高更像源脸,调低保留更多原片表情 |
| face_enhancer_blend | 80 | 调高更清晰但更"AI 味",调低更自然但更糊,80 左右是平衡点 |
| face_mask_blur | 0.3 | 边缘有缝就调大柔化接缝,过大则脸和皮肤糊在一起 |
| face_mask_padding | 0 | 处理区向外扩多少像素,切到耳朵脖子时加大 |
长视频还要管内存:facefusion.ini 里的 video_memory_strategy 有两档——strict 严控峰值内存,视频特别长或内存不到 16GB 时选它;balanced 占用更均衡,默认体验更顺。输出端两条经验:output_video_quality 保持在 85 左右,拉到 100 只会让文件暴涨;追求出片速度就把 output_video_preset 设成 veryfast,交付成品再改 slow 重跑一遍。
无人值守:无头命令、任务队列与批量模式
网页界面跑通之后,真正的效率在命令行。无头模式一条命令跑完一个任务,不弹界面:
python facefusion.py headless-run --processors face_swapper face_enhancer --source-path source.jpg --target-path video.mp4 --output-path output.mp4多个任务不想排队等的时候,用 job 系列命令把它们变成队列:job-create建任务,job-add-step往任务里加步骤,job-submit/job-run-all提交开跑,job-retry只重跑失败的。下班前把二十个任务排好,第二天看结果。
还有一种更省事的批量:batch-run配--source-pattern/--target-pattern/--output-pattern,用通配符直接扫文件夹里所有素材,一次配置处理几十个文件。
想量化"改硬件到底快了多少",跑python facefusion.py benchmark,它会用内置样例视频按你选的执行后端出一组对比数据,调优时心里有数。
症状对照表:常见的四类问题
模型一直下不完:默认从 GitHub 或 Hugging Face 拉取,网络不佳时到界面 DOWNLOAD PROVIDERS 里换个下载源;或者先跑python facefusion.py force-download单独把下载跑完再开界面。
换完像"贴上去"的,边缘有缝:三个方向依次试——调大 face_mask_blur 柔化边缘;检查源照片和目标视频的光线、色温是否接近;再叠加 face_enhancer 统一两边质感。
多人同框只换错了脸:face_selector 切到 reference 模式指认位置,或用年龄段、性别过滤;再不行就用 TRIM FRAME 只处理目标出镜的片段。
跑得慢:按性价比排序处理——CPU 换 cuda 后端,收益最大;其次 output_video_scale 设 0.75 降输出分辨率;再换小工作分辨率的换脸模型;最后才考虑调低 pixel_boost。改完跑一次 benchmark 验证。
动手之后,深入路线
跑通之后按这个顺序翻仓库,每个入口一句话说明看什么:
- README.md:官方入口,安装说明和全部命令清单都在这
- facefusion.ini:所有可调参数一览,按区块组织,是最好的参数字典
- facefusion/processors/modules/:11 个功能模块的源码,每个模块里 choices.py 看可选模型,core.py 看处理逻辑
- tests/:各模块的单元测试,某个参数不确定行为时,先读对应测试文件比翻文档快
【免费下载链接】facefusionIndustry leading face manipulation platform项目地址: https://gitcode.com/GitHub_Trending/fa/facefusion
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考