FaceFusion 模型下载实战手册:3种方法从网络受限到离线部署一步到位
【免费下载链接】facefusionIndustry leading face manipulation platform项目地址: https://gitcode.com/GitHub_Trending/fa/facefusion
FaceFusion 是面部交换与增强平台,新装环境的第一道关就是 FaceFusion 模型下载。我在完全离线的机器上卡死过:界面一直转、模型全缺失。这篇按强制下载、手动部署、哈希校验三条路径,帮你在任何网络环境跑通。
🔌 先看你的网络处境:卡点在哪
先别急着敲命令,把自己归进下面四种处境,每种卡点和思路都不同。
稳定外网。卡点:首次运行触发自动下载,大模型耗时。思路:主动执行一次强制下载命令,把模型在后台备齐,不用边用边等。
间歇性中断(办公 WiFi、移动热点)。卡点:大模型下到一半断网,留下半截文件,校验必然失败。思路:内置下载逻辑本身支持断点续传加自动重试,重跑同一条命令即可,不必删文件重来。
完全离线(隔离内网)。卡点:完全没有外网可用。思路:在能联网的机器上备齐整套模型包再搬入,离线机器只负责部署和校验,这是典型的离线部署方案。
受限内网。卡点:不能直连外网,只有代理或白名单出口。思路:要么走代理,要么把下载提供商换成huggingface(代码里已内置镜像回退,见 facefusion/choices.py 的 provider 配置)。
方案速查表:一眼定位你的路线
| 网络处境 | 推荐方案 | 上手难度 | 网络要求 |
|---|---|---|---|
| 稳定外网 | 一键强制下载(full 范围) | ★ | 稳定外网 |
| 间歇性中断 | 强制下载,断网重跑续传 | ★ | 间歇连通 |
| 受限内网 | 代理加速 + 切换提供商 | ★★ | 有可用代理 |
| 完全离线 | 手动部署离线模型包 | ★★★ | 无需网络 |
难度对应操作量:★ 是一条命令的事,★★★ 要打包、传输、校验。下面每个方案统一按"准备→执行→验证"三步展开。
实操执行
1️⃣ 一键强制下载模型(lite / full 两个范围)
准备:确认 python ≥ 3.10,且curl、ffmpeg、ffprobe三个工具已安装——入口会先检查它们(见 facefusion/core.py 的pre_check),缺一个就直接退出。
执行:
# lite 只下载基础模型,full 下载全部处理器所需模型 python facefusion.py force-download --download-scope lite python facefusion.py force-download --download-scope full--download-scope缺省值是lite,可在 facefusion.ini 的[download]段里预先固定。
验证:.assets/models/下每个模型都应是.onnx与.hash成对出现。各处理器实际用到哪些模型,由 facefusion/processors/modules/ 下各模块的create_static_model_set定义,范围参数在这里起过滤作用。
2️⃣ 手动搭建离线模型目录
准备:在联网机器上先跑完force-download --download-scope full,并确认跑通任意一个面部任务。
执行:打包模型目录、搬入离线机、解压到项目根目录:
tar -czf facefusion-models.tar.gz .assets/ scp facefusion-models.tar.gz user@offline-machine:~/facefusion/离线机上解压后,.assets/models/必须直接位于项目根目录,不能多套一层。
验证:在离线机跑任意一次换脸任务,不再提示模型缺失即部署成功;仍报错时九成是解压路径不对。
3️⃣ 跑哈希校验并处理损坏文件
准备:记住规则——每个模型文件旁必须有一个同名.hash文件。哈希校验像收货时验封条,封条对不上就当作假货处理。
执行:
from facefusion.hash_helper import validate_hash print(validate_hash('.assets/models/inswapper_128.onnx'))实现是 crc32 比对,代码在 facefusion/hash_helper.py。
验证:输出True即通过。校验失败就把该.onnx和.hash删掉,重跑强制下载命令,工具只会补拉缺失的文件。
⚡ 进阶调优:三条真正用得上的技巧
用代理跑强制下载。受限网络下先设代理变量再执行命令,相当于给下载请个 escort:
export https_provider=1 export https_proxy=http://proxy-host:port python facefusion.py force-download --download-scope full同时可用--download-providers github huggingface调整提供商顺序,哪个通就用哪个。
内置断点续传与重试。这一步我们不用手动做。看 facefusion/download.py:下载走 5 秒超时加 5 次重试,且会先比对本地已有文件与远程大小,不足才继续拉取。所以中断产生的残文件,直接重跑命令就行。
用 scope 参数管磁盘空间。模型集中在.assets/models/,先看看占用:
du -sh .assets/*日常使用lite范围足够,需要全套处理器时再升full;目录里只保留.onnx与.hash,其余临时产物可清。
避坑速查:先查表再排查
| 现象 | 原因 | 一句话解法 |
|---|---|---|
| 下载中途卡住退出 | 网络中断,文件不完整 | 重跑强制下载命令,自动续传 |
| 提示哈希校验失败 | 文件损坏或不完整 | 删掉对应.onnx与.hash再重下 |
force-download直接报错 | 缺 curl/ffmpeg/ffprobe | 先装好三个工具再执行 |
| 界面一直转圈 | 模型尚未下载 | 先跑强制下载,再开界面 |
| 个别模型速度极慢 | 默认提供商不可达 | 加--download-providers huggingface切换 |
| 离线机仍尝试联网 | .assets没放在项目根目录 | 重新解压并核对路径 |
收尾
- FaceFusion 模型下载的核心链路就三条:强制下载命令、离线部署方案、哈希校验,各管一种处境。
- 先对号入座网络处境,再查速查表选路线,别盲目照抄命令。
--download-scope决定下载量:lite够用日常,full覆盖全部处理器。- 部署后务必跑一次哈希校验,封条对不上就删了重下。
- 建议把提供商和 scope 写进 facefusion.ini,之后重装环境可原样复现。
延伸两个方向:模型备齐后可以试试headless-run与batch-run子命令做无人值守批处理;想看模型与版本的对应关系,读各处理器模块的core.py里create_static_model_set即可,例如 facefusion/processors/modules/face_swapper/core.py。
【免费下载链接】facefusionIndustry leading face manipulation platform项目地址: https://gitcode.com/GitHub_Trending/fa/facefusion
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考