FaceFusion 本地部署从零跑通:10 分钟完成视频换脸第一次出片
【免费下载链接】facefusionIndustry leading face manipulation platform项目地址: https://gitcode.com/GitHub_Trending/fa/facefusion
FaceFusion 是一个可本地部署的人脸融合平台:一张源脸照片加一段目标视频,它就把视频里的人脸替换成源脸,还能接着做人脸增强、年龄修改、口型同步。适合有基础命令行经验、想在自己机器上跑视频换脸的新手——三步命令出结果,10 分钟内跑通第一次换脸。
先把环境跑起来:装依赖、下模型
先说结论:Python 3.10 以上 + ffmpeg,两条命令装完。install.py会自动检查 Python 版本并下载全部模型权重,不用手动找文件。
- 有 NVIDIA 显卡最好,没有也能用 CPU 跑,只是速度慢
- ffmpeg 需要在系统 PATH 中,输出视频由它负责编码
先克隆仓库:
git clone https://gitcode.com/GitHub_Trending/fa/facefusion cd facefusion这条命令安装全部 Python 依赖:
python -m pip install -r requirements.txt这条命令下载全部模型权重,跑完才算部署完成:
python install.py上面的图是它的 Web 界面(直接python facefusion.py不带参数就会打开),源脸、目标视频、处理器勾选项都可视化。本文走命令行路线,参数更可控,后面所有调优都在命令行或 facefusion.ini 里完成。
第一次让程序干活:一条 run 命令出片
能做什么:把源脸贴到目标视频的每一张脸上,输出新视频。该怎么做:
python facefusion.py run \ --source-paths 照片.jpg \ --target-path 视频.mp4 \ --output-path 输出.mp4看到终端提示完成、输出路径出现 mp4,第一帧脸就变了,说明部署成功。
它的内部流程是一条"处理器流水线":每一帧先过人脸检测,再依次进你勾选的处理模块,最后合成输出。所有模块在 processors/modules 目录 下,文件夹名就是模块 ID——face_swapper、face_enhancer、age_modifier、lip_syncer、face_editor等,--processors用逗号分隔就能串起来。
交换模型怎么选、参数动哪三个
默认款inswapper_128快且稳,先跑通再用它;hyperswap_1a_256、simswap_256、blendswap_256这些更大模型细节更足,但显存和时间都明显上升(完整清单在 face_swapper 的 choices.py)。"换脸 + 增强"串起来这样写:
python facefusion.py run \ --processors face_swapper,face_enhancer \ --face-swapper-model inswapper_128 \ --face-enhancer-model gfpgan_1.4参数不用全调,先动这三个就够:
| 参数 | 取值范围 | 推荐值 | 一句话解释 |
|---|---|---|---|
face_swapper_pixel_boost | 128x128 ~ 1024x1024 | 256x256 | 交换模型的工作分辨率,提到 512x512 更锐但速度约降一半 |
face_detector_score | 0 ~ 1 | 0.5 ~ 0.7 | 人脸检测置信度阈值,调高漏小脸,调低框进"鬼脸" |
face_mask_blur | 0 ~ 1 | 0.3 | 人脸边缘羽化程度,低于 0.1 像贴片,高于 0.5 额头发糊 |
face_enhancer_blend(修复力度,0=不动,100=全改)给 70 左右起步:调低只去噪,调高细节锐利但容易失真。年龄修改用--age-modifier-direction,正数变年轻、负数变年长,幅度 -100 ~ +100;它是"整体偏移"不重排五官,超过 50 往往开始不自然。
显存爆了、机器不够强时先降哪一档
资源不够时按这个顺序降:先video_memory_strategy,再pixel_boost,最后换编码器。1080p 以上建议直接 strict。
video_memory_strategy:strict / moderate / tolerant 三档。strict 显存最低但会反复重载帧,tolerant 最快但吃显存face_swapper_pixel_boost:退回 256x256,显存小于 8G 别碰 1024x1024execution_providers:N 卡填cuda,CPU 机器填cpu,线程数设到物理核心数附近即可,别盲目开满
这些键都写在 facefusion.ini 里,每个键有对应命令行参数。一份最小配置:
[execution] execution_providers = cuda [memory] video_memory_strategy = strict另外长视频先用--target-frame-amount(只处理指定帧数)跑几帧测试,确认效果再全量出片,能省大量等待时间。
出问题先查哪三处
现象 1:一跑就提示模型文件缺失→ 原因:install.py没跑完或下载中断,模型缓存不全。 → 解法:重跑python install.py,或执行python facefusion.py force-download强制补齐。
现象 2:人脸边缘发硬,或整段视频脸在飘→ 原因:检测框余量不足、mask 羽化不够;跟踪阈值太松导致中途换脸。 → 解法:--face-detector-margin 20 20 20 20给检测框留余量,--face-mask-blur 0.3;脸在飘就把--face-tracker-score从 0 降到 0.3。
现象 3:显存爆了,或长视频处理到一半卡死→ 原因:分辨率 × pixel_boost × tolerant 策略的乘积超出了显存。 → 解法:切回 strict,pixel_boost 退回 256x256,先用--target-frame-amount只处理部分帧。
现象 4:输出视频比原片糊→ 原因:output_video_quality或output_video_scale被调低了。 → 解法:quality 保持 90 以上、scale 用 1.0,并先确认源视频本身分辨率够。
改参数前建议先跑一遍 tests 目录 里对应的test_cli_*.py用例,改动引发的回归立刻就能发现。
下一步你可以试这三件事:把交换模型换成hyperswap_1a_256或simswap_256,看细节提升值不值那份显存;把lip_syncer、expression_restorer拼进--processors,把换脸、口型、表情修成一条流水线;想自己加处理器,照着 face_swapper 模块 的四件套(core.py实现、choices.py选项、locales.py文案、types.py类型)复制一份,就是一个新模块的完整骨架。
【免费下载链接】facefusionIndustry leading face manipulation platform项目地址: https://gitcode.com/GitHub_Trending/fa/facefusion
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考