FaceFusion 模型下载与离线部署实战指南
【免费下载链接】facefusionIndustry leading face manipulation platform项目地址: https://gitcode.com/GitHub_Trending/fa/facefusion
FaceFusion 首次落地最常卡住的地方不是代码,而是模型:下载中断、速度过慢,或内网机器完全无法访问外部资源。读完全文,你可以一条命令完成 FaceFusion 模型下载,也能把模型目录完整搬进无外网环境直接运行。
场景速查
| 你的处境 | 建议路线 | 跳到哪一节 |
|---|---|---|
| 常规网络,首次部署 | 一键 force-download 备齐全部模型 | 一键下载全部 FaceFusion 模型 |
| 单文件下载中断、过慢、需换源 | 手动下载单个模型并本地校验 | 网络受限时手动下载并校验单个模型 |
| 内网机器,完全无外网 | 在线机上备好后整目录搬运 | 完全离线环境部署 FaceFusion |
| 哈希校验失败、下载卡住 | 核对 crc32 校验与断点续传逻辑 | 模型下载排障速查表 |
一键下载全部 FaceFusion 模型
只要网络能直连 GitHub 或 Hugging Face,一条 force-download 命令就够:它只补齐缺失项,已存在且校验通过的文件会直接跳过,中断后也可续传。
准备工作:Python 3.10+ 与三个系统命令
core.py 里的 pre_check 会做两项检查:Python 版本不低于 3.10,且系统装有 curl、ffmpeg、ffprobe,三者缺一不可。
# 克隆仓库并安装依赖 git clone https://gitcode.com/GitHub_Trending/fa/facefusion cd facefusion && pip install -r requirements.txt执行 force-download 命令
# lite:核心小集合;full:含全部处理器的完整模型 python facefusion.py force-download --download-scope lite python facefusion.py force-download --download-scope fullcore.py 中的 force_download 会先收集公共模块(face_detector、face_recognizer、voice_extractor 等)与全部处理器模块,逐个模型先下载同名 .hash 文件,再下载模型本体,统一存放在仓库根目录的.assets/models/下。
验证模型文件完整性
FaceFusion 用 crc32 做完整性校验:.hash 文件内容是与模型同名的 8 位十六进制值。用一条命令即可检查单个文件:
# 输出 True 即模型文件校验通过 python -c "from facefusion.hash_helper import validate_hash; print(validate_hash('.assets/models/blendswap_256.onnx'))"网络受限时手动下载并校验单个模型
当单个文件反复下载失败或速度不可用时,不必重跑全流程:把目标 .onnx 和同名 .hash 放进.assets/models/,本地校验通过,该文件就再不会被要求下载。
查看下载源模板并切换源
下载源定义在 facefusion/choices.py 的 download_provider_set 中,共 github 与 huggingface 两条线路,后者内置镜像兜底域名。受限环境下先在 facefusion.ini 中换源:
[download] # 只走 huggingface(自带镜像兜底) download_providers = huggingface取回模型与哈希文件
按 choices.py 中的 path 模板拼出文件 URL,用 curl 把两个文件放进同一目录:
# 下载模型及其同名哈希文件(URL 用模板拼装出的地址) curl -L -o .assets/models/blendswap_256.hash "$HASH_URL" curl -L -o .assets/models/blendswap_256.onnx "$MODEL_URL"本地校验完整性
复用前一节的 validate_hash 命令,返回 True 即完整。download.py 的 conditional_download_sources 只在校验失败时才发起下载,文件补齐后立即生效。
完全离线环境部署 FaceFusion
对完全访问不了外网的机器,最稳妥的做法是在在线跳板机上完成下载与校验,再整目录搬运:运行时只有模型缺失或 crc32 校验不过才会触发下载,文件齐全即可无外网运行。
准备在线跳板机
要求与第一节相同:Python 3.10+、装好 curl/ffmpeg/ffprobe,并能访问至少一个下载源。
# 在在线机器上下载全量模型 python facefusion.py force-download --download-scope full打包并搬运模型目录
# 把仓库与 .assets/models 模型目录一起打包 tar -czf facefusion-offline.tar.gz facefusion把压缩包经移动介质或文件服务器传到离线机,解压后在离线机安装依赖即可(onnxruntime 等 wheel 可走内网镜像源)。
离线机上验证模型完整性
# 解压并安装依赖 tar -xzf facefusion-offline.tar.gz cd facefusion && pip install -r requirements.txt# 批量检查所有模型是否通过 crc32 校验 python -c "import glob; from facefusion.hash_helper import validate_hash; print(all(validate_hash(p) for p in glob.glob('.assets/models/*.onnx')))"输出 True 后,离线机即可直接执行人脸交换、增强等任意处理任务,全程无需外网。
模型下载排障速查表
| 现象 | 常见原因 | 处理办法 |
|---|---|---|
| 下载卡在 0B 或超时 | 默认下载源不可达 | facefusion.ini 的 [download] 中把 download_providers 改为 huggingface(自带镜像兜底) |
| 校验哈希失败 | 文件不完整、下载中断 | 删除对应 .onnx 重跑 force-download,程序会自动移除损坏文件并重新下载 |
| dependency_not_installed 提示 | curl、ffmpeg、ffprobe 未安装 | 先装齐三个系统命令,pre_check 会逐一检查 |
| 下载慢、频繁中断 | 网络波动、单文件大 | curl 内置 5 次重试,中断后直接重跑,从已有文件大小处续传 |
两个最高频的现象再补充几句。
哈希校验失败:.hash 文件与模型同目录同名,内容是 crc32 值,实现见 facefusion/hash_helper.py。最省事的处理是删掉损坏的 .onnx 重跑 force-download,程序只会补齐校验不过的文件,无需手工重算。
下载中断:download.py 先用 curl HEAD 查询远端文件大小,本地小于远端才发起下载,所以重跑等于续传而非从头再来,大文件中断多次也能最终补齐。
模型下载与离线部署只是 FaceFusion 的第一步:.assets/models/文件全部通过 crc32 校验后,任何能跑 onnxruntime 的机器都能直接进入人脸处理流程。✅ 现在就可以做的一件事:在能联网的机器上执行python facefusion.py force-download --download-scope full,再按第三节打包成离线包。
相关源码:
- 下载入口与范围逻辑:facefusion/core.py
- 下载、续传与换源逻辑:facefusion/download.py
- 下载源与范围配置:facefusion.ini
【免费下载链接】facefusionIndustry leading face manipulation platform项目地址: https://gitcode.com/GitHub_Trending/fa/facefusion
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考