FaceFusion 模型下载失败的 3 档排障与部署方案:从一键强制下载到内网离线
【免费下载链接】facefusionIndustry leading face manipulation platform项目地址: https://gitcode.com/GitHub_Trending/fa/facefusion
刚 clone 完仓库,一条任务命令就把你卡在 0%:进度条不动、日志报无法访问外网,或者反复提示本地校验未通过。这是FaceFusion 模型下载失败最典型的三个现场。FaceFusion 是面向人脸替换、人脸增强、口型同步的人脸处理平台,跑任务前它必须先拉齐一批 ONNX 模型;下载这一步一旦堵死,后面全停。本文给你三档递进的排障与部署方案:官方一键强制下载、手动下载加哈希校验、离线内网部署,照着敲就能通。
先花 1 分钟定位卡点
动手之前,先判断你卡在哪一段。对号入座后再选方案,能省掉大量无效重试。
- 网络直连测试:
curl -I一条官方模型源,10 秒内无响应,说明出口被墙或公司网关拦截,属于网络不通。 - 看进度条与日志:卡在 0% 是连不上源;下到一半断流是链路不稳;报本地校验未通过则是模型或哈希文件本身有问题。
- 检查落盘目录:模型统一放在项目根目录下的
.assets/models/,每个.onnx旁边应有一个同名.hash文件。缺目录就是没下,缺.hash就是下了一半。 - 确认机器属性:内网机、无外网权限、只能走代理——满足任意一条,就别跟 A 档较劲,直接看 C 档。
curl -I https://huggingface.co10 秒内返回 200 算通,超时或 403 都算不通。四种卡点分别对应后文三档方案的不同入口。
三档方案,按省事程度从高到低
档位 A:一键命令,默认首选
这档给所有联网且能直连下载源的新手,90% 的卡点用这档就能解开。
- 进入仓库根目录,装齐依赖(需要 Python 3.10+,以及
curl、ffmpeg、ffprobe):
git clone https://gitcode.com/GitHub_Trending/fa/facefusion cd facefusion pip install -r requirements.txt- 执行官方一键命令,默认拉取精简集,先跑通主流程:
python facefusion.py force-download --download-scope lite- 需要全部模型时换 full,全程可重复执行,已校验通过的文件会自动跳过,不会重复下载:
python facefusion.py force-download --download-scope full- 直连 GitHub 不稳时,把下载源切到 Hugging Face(它内置了国内可用的镜像源,命中即自动接管):
python facefusion.py force-download --download-providers huggingface关键参数:--download-scope默认lite(检测、关键点、识别等核心模型),full是完整模型集;--download-providers可选github与huggingface,按给定顺序逐个探测,第一个通的就用它。
成功信号:每个模型出现一行进度条跑满,日志逐条打印校验通过,echo $?返回0,且.assets/models/里.onnx与.hash成对出现。
档位 B:手动下载加哈希校验
这档给 A 档反复失败、或只想补一两个模型的用户。
- 联网机上按 A 档把目标模型完整拉一遍(哪怕只是补齐
.hash文件):
python facefusion.py force-download --download-scope full- 逐一比对模型与哈希文件。注意项目用的是CRC32,不是 SHA256,别拿 sha256sum 来验:
python -c "import zlib,sys; sys.exit(0 if zlib.crc32(open(sys.argv[1],'rb').read())==int(open(sys.argv[2]).read(),16) else 1)" .assets/models/scrfd_2.5g.onnx .assets/models/scrfd_2.5g.onnx.hash退出码 0 即校验通过,1 说明文件损坏或缺.hash,删掉该模型重拉。
- 需要单独搬运单个模型时,从官方源下载模型与
.hash两个文件到.assets/models/,两者缺一不可,只有模型没有哈希,程序永远判定为无效。
成功信号:全部文件退出码 0,ls .assets/models里.onnx与.hash数量一致、一一对应。
档位 C:离线包加内网配置
这档给企业内网、无外网权限、或必须走审计通道传输的团队。
- 联网机上先跑通 A 档 full 并确认全绿,然后打离线包:
tar -czf facefusion_models.tar.gz .assets/models sha256sum facefusion_models.tar.gz > facefusion_models.tar.gz.sha256打包外加一层 SHA256 摘要,防止传输过程再次损坏。
- 离线介质传到内网后,解包并放回项目根目录同名位置:
tar -xzf facefusion_models.tar.gz -C <facefusion 项目根目录>- 内网机不执行任何下载命令。所有本地文件校验通过后,程序不会发起网络请求,直接进推理:
python facefusion.py headless-run <你的任务参数>关键参数:内网机上的facefusion.ini中[download]段保持默认即可,它只做本地比对;真正要盯的是包内.hash文件是否齐全——缺一个,对应模型就永远过不了校验。
成功信号:B 档的 CRC32 校验脚本全绿,headless 任务正常出片,日志里没有任何下载相关输出。
高频故障速查表
| 现象 | 原因 | 处理动作 |
|---|---|---|
| 进度条卡 0%,日志无响应 | 出口直连被拦截 | 换--download-providers huggingface走内置镜像源 |
| 下载成功,校验却不过 | 代理或网关改写了响应体 | 删除损坏的.onnx与.hash,重跑force-download增量补齐 |
| 手动补了模型仍报无效 | .onnx与.hash必须成对 | 把对应.hash一并放入.assets/models/ |
| 提示找不到模型文件 | 文件被移到了.facefusion等旧路径 | 移回.assets/models/,项目不会自动迁移 |
进阶优化,三个可落地技巧
- 镜像源加速。适用场景:国内网络访问 GitHub 经常超时。做法:在
facefusion.ini的[download]段把download_providers = huggingface置顶,让它优先命中hf-mirror类镜像地址。收益:下载耗时通常从分钟级降到秒级,且命令完全不用改。 - 本地模型仓库。适用场景:同一团队多台机器重复拉同一批模型。做法:把
.assets/models/放到共享盘或内网文件服务器,新机器解包即用;需要走 HTTP 时,临时起一个静态服务即可:
cd <模型目录> python -m http.server 8000收益:省掉每机一次全量下载,模型版本天然一致。 3.自动校验脚本。适用场景:离线部署前后、定期巡检。做法:下面 8 行脚本一次扫完全部模型,缺失与损坏分别列出:
python -c " import zlib,os d='.assets/models' bad=[f for f in os.listdir(d) if f.endswith('.onnx') and zlib.crc32(open(os.path.join(d,f),'rb').read())!=int(open(os.path.join(d,f+'.hash')).read(),16)] print('ok' if not bad else bad)"收益:30 秒内给出全部异常清单,代替肉眼逐文件比对。
收尾清单
- Python 3.10+,
curl、ffmpeg、ffprobe三者均可用 - 依赖已装:
pip install -r requirements.txt - 已按网络状况选定档位并执行
python facefusion.py force-download(默认lite起步) - 成功信号确认:退出码 0,
.assets/models/内.onnx与.hash成对且 CRC32 全绿 - 离线部署场景:离线包 SHA256 摘要比对一致,内网机未触发任何下载
模型就位后,跑通你的第一条人脸替换任务吧。
实现细节入口:facefusion/download.py(源选择与下载循环)、facefusion/hash_helper.py(CRC32 校验)、facefusion/core.py(
force_download入口)、facefusion/choices.py(内置下载源清单)。
【免费下载链接】facefusionIndustry leading face manipulation platform项目地址: https://gitcode.com/GitHub_Trending/fa/facefusion
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考