网络受限也不怕:FaceFusion 模型下载的 3 条可靠路径,离线部署完整走一遍
【免费下载链接】facefusionIndustry leading face manipulation platform项目地址: https://gitcode.com/GitHub_Trending/fa/facefusion
当 FaceFusion 模型下载卡在 90% 半小时不动、force-download跑完却报哈希校验失败,或者你把环境迁到没有外网的内网机器上后流程根本起不来——先要回答的是:你处在什么网络环境里。下面从这个决策点出发,讲清楚自动下载、强制批量下载、手动部署包各自怎么用,文件完整性如何验证,以及模型包怎么搬到离线机器。
先定策略:按网络环境挑下载方式
动手之前先判断网络档位,三条模型获取路径的成本差异很明显:
| 获取方式 | 适用场景 | 操作复杂度 | 网络要求 | 推荐度 |
|---|---|---|---|---|
| 自动下载 | 日常开发,可正常访问外网资源 | 低 | 外网稳定 | ★★★★☆ |
| force-download 强制下载 | 偶发断连、速度慢、个别文件反复失败 | 中 | 间歇性外网 | ★★★★☆ |
| 手动离线部署 | 内网隔离、无外网机器 | 高 | 无需网络 | ★★★★★ |
快速决策:
- 外网畅通、速度尚可:不干预,交给默认自动下载
- 连接时断时续:改用
force-download,按 scope 批量补齐 - 目标机器完全无外网:在联网机备好模型,整包带走手动部署
网络稳定:默认自动下载与就绪检查
网络稳定的时候走默认路径即可。首次运行对应功能时,FaceFusion 会自动拉取所需文件:先取.hash校验文件,再取模型源文件,下载完成后立即验证,不过关会自动重试。模型按模块存放在.facefusion下的不同子目录里。
想确认本地模型是否就绪(通过校验 / 未通过校验各有多少),一行命令就够:
python -c "from facefusion.filesystem import resolve_file_paths; from facefusion.download import validate_source_paths; print(validate_source_paths(resolve_file_paths('.facefusion')))"输出是两组路径:第一组通过校验,第二组缺失或已损坏。第二组为空就可以直接开工。
网络不稳:force-download 参数速查
连接时断时续时,不要依赖自动触发,用force-download一次性补齐所有需要的文件,下载范围由--download-scope指定:
# 全部模型,覆盖所有功能 python facefusion.py force-download --download-scope all # 只拉基础模型,启动最快 python facefusion.py force-download --download-scope common # 只拉指定处理器模型 python facefusion.py force-download --download-scope processors内部执行顺序是固定的:加载处理器与公共模块 → 收集静态模型配置 → 下载.hash文件 → 下载模型源文件 → 校验完整性。任何一步失败都会以非零码退出,方便你在脚本里判断是否需要重试。
⚡ 给下载加保险:代理与断点续传
有可用出口代理时,先设环境变量再执行:
export http_proxy=http://your-proxy:port export https_proxy=http://your-proxy:port python facefusion.py force-download个别大文件也可以单独拉取并断点续传,中断后重跑同一条命令即可:
wget -c -O inswapper_128.onnx "模型下载URL" curl -C - -o inswapper_128.onnx "模型下载URL"想固定下载源优先级,改facefusion.ini:
[download] download_providers = github, huggingface, local download_scope = all完全离线:手动部署模型包
目标机器完全无外网时,只能手动备料。步骤在联网机上完成,然后把整个.facefusion目录带走。
目录结构与核心模型清单
先建好标准目录树:
mkdir -p .facefusion/{content,face,face_parser,face_occluder,face_landmarker,face_recognizer,face_classifier,face_detector,face_masker,voice_extractor,processors} tree .facefusion -L 2必须备齐的核心文件如下(大小为参考值):
| 模型类别 | 文件名 | 用途 | 预估大小 |
|---|---|---|---|
| 面部检测 | yoloface_1n.onnx | YOLO面部检测 | 6.5MB |
| 面部检测 | scrfd_2.5g.onnx | SCRFD面部检测 | 2.5MB |
| 面部识别 | arcface_w600k_r50.onnx | 面部特征提取 | 92MB |
| 面部交换 | inswapper_128.onnx | InsightFace处理 | 95MB |
| 面部增强 | gfpgan_1.4.onnx | GFPGAN面部增强 | 340MB |
| 超分辨率 | real_esrgan_x4.onnx | RealESRGAN超分 | 67MB |
| 语音提取 | kmv_vocal_2.onnx | 语音特征提取 | 待定 |
单个文件用curl拉取即可,注意每个模型都要配同目录下的.hash文件:
curl -o .facefusion/face_detector/yoloface_1n.onnx "模型下载URL" curl -o .facefusion/face_detector/yoloface_1n.onnx.hash "哈希文件URL"哈希校验:部署前必做的一步
下载完成后先抽查一个文件:
sha256sum .facefusion/face/inswapper_128.onnx cat .facefusion/face/inswapper_128.onnx.hash两者不一致说明文件已损坏。也可以直接调用源码里的校验函数(实现见 facefusion/hash_helper.py):
python -c "from facefusion.hash_helper import validate_hash; print(validate_hash('.facefusion/face_detector/yoloface_1n.onnx'))"返回True即完整。批量校验只需递归遍历目录,对每个.onnx文件调用同一函数,不必单独写脚本。
模型包打包迁移与更新节奏
联网机验证通过后打包:
tar -czf facefusion-models-$(date +%Y%m%d).tar.gz .facefusion/ scp facefusion-models-*.tar.gz user@offline-machine:/tmp/离线端解压并锁定本地源:
ssh user@offline-machine "cd /tmp && tar -xzf facefusion-models-*.tar.gz" echo '[download] download_providers = local download_scope = all' >> facefusion.ini最后一条命令把下载源固定为 local,之后运行不会再尝试外联。
更新不必频繁:每月跑一次全量校验;模型包按日期归档、保留最近 3 份;项目升级新增模型时,重走一遍“打包 → 校验 → 迁移”即可,校验命令保持不变。
故障速查:4 类高频问题
| 现象 | 快速处理 |
|---|---|
| 下载中断、超时 | ping github.com -c 5、curl -I https://github.com确认连通性;中断文件用wget -c或curl -C -续传 |
| 哈希校验失败 | sha256sum加cat .hash手工比对;删掉损坏文件及其 hash 后,用force-download --download-scope common重拉 |
| 磁盘空间不足 | du -sh .facefusion/* \| sort -rh \| head -20看占用;改选--download-scope common;find .facefusion -name "*.tmp" -delete与-name "*.part" -delete清理残留 |
| 权限报错 | ls -la .facefusion/检查;chmod 755 .facefusion,再对.onnx与.hash分别chmod 644 |
内网环境首次落地,建议把最小闭环完整跑一遍:联网机用--download-scope all拉全,两个最大的文件抽查 sha256,打包迁移后在离线机再验一次。这条链路通了,后续就只是重复动作——把验证通过的模型包当作交付物保留、部署前先校验,是长期运维里最省时间的一环。
【免费下载链接】facefusionIndustry leading face manipulation platform项目地址: https://gitcode.com/GitHub_Trending/fa/facefusion
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考