公司动态

FaceFusion 模型下载失败怎么办?force-download 命令解析与模型文件手动校验指南

📅 2026/9/3 11:18:59
FaceFusion 模型下载失败怎么办?force-download 命令解析与模型文件手动校验指南
FaceFusion 模型下载失败怎么办force-download 命令解析与模型文件手动校验指南【免费下载链接】facefusionIndustry leading face manipulation platform项目地址: https://gitcode.com/GitHub_Trending/fa/facefusion第一次运行 FaceFusion或者换了一台机器之后最常见的两个症状模型下载进度条卡在一半不动或者程序直接报validating hash failed然后退出退出码 1。这两个问题的根源都在同一套下载 校验机制上。这篇文章把这套机制从源码讲清楚然后给你三件武器一条命令拉全所有模型、手动下载模型文件的方法、逐文件校验完整性的脚本。模型下载是怎么工作的30 秒建立心智模型FaceFusion 的每个模型都自带一份.hash校验文件下载和校验的完整流程是各功能模块人脸检测、换脸、增强等声明自己需要的一组模型每个模型对应一个.hash文件和一个模型文件通常是.onnx按你配置的下载源顺序探测哪个源可达用第一个可达的源拼装出下载地址先下载.hash文件再下载模型文件对模型文件计算 CRC32与.hash文件内容比对校验失败程序自动删除损坏文件下次运行时重新下载所有模型统一存放在项目根目录的.assets/models/下命名规范是模型名.onnx配一个模型名.hash。校验逻辑非常短见 facefusion/hash_helper.pydef create_hash(content: bytes) - str: return format(zlib.crc32(content), 08x) def validate_hash(validate_path: str) - bool: # 读取同目录同名的 .hash 文件 # 比对模型文件的 CRC32 与文件内容 ...两个容易踩的坑校验用的不是 SHA256是 8 位十六进制的 CRC32.hash文件不存在时validate_hash直接返回 False——模型文件会被判定为无效。所以模型文件和.hash文件必须成对存在这个点后面手动下载和离线部署都要用到一键拉取force-download 命令怎么用先跑这条命令它会遍历所有处理器模块声明的模型缺什么补什么python facefusion.py force-download运行前提Python 3.10 以上且curl、ffmpeg、ffprobe已安装并在 PATH 里否则会直接报dependency not installed退出。它支持两个关键选项选项默认值说明--download-scopelitelite只拉各处理器选中的最小模型集full拉取声明的全部模型--download-providersgithub huggingface下载源提供方按列出顺序探测第一个可达的生效两个提醒⚠️huggingface这个提供方内部还带一个镜像源主站不通会自动回退到下一个如果你所在网络访问github源困难把顺序写成--download-providers huggingface github通常就能解决这两个选项也可以写进facefusion.ini持久化不用每次敲[download] download_providers huggingface download_scope full✅ 判断标准命令退出码为 0 即全部成功任何一个模型校验失败退出码就是 1日志里会打印validating hash failed: xxx指明是哪个文件。下载底层是curl带了--continue-at -断点续传和--retry 5自动重试这些细节在 facefusion/download.py 的conditional_download里能直接看到。手动下载与放置模型文件当force-download反复中断、或者你只想补一两个大文件时可以手动下载。下载地址由提供方基地址 模型版本号 文件名自动拼装不用你记 URL——你需要知道的只有文件名比如人脸检测模型的scrfd_2.5g.onnx和配套的scrfd_2.5g.hash文件名在各模块的模型声明里都有例如facefusion/face_detector.py。放置规则只有三条/assets/models/ ├── scrfd_2.5g.onnx # 模型文件 ├── scrfd_2.5g.hash # 校验文件内容为一串 8 位十六进制 CRC32 └── ...存到项目根目录的.assets/models/文件名必须与程序声明完全一致.onnx和.hash成对放放好后用项目自己的校验函数验证这比手算哈希可靠省得你选错算法python -c from facefusion.hash_helper import validate_hash; print(validate_hash(.assets/models/scrfd_2.5g.onnx))输出True就是放对了。想全量体检一遍.assets/models/里的模型用这个脚本python - EOF import glob from facefusion.hash_helper import validate_hash for path in sorted(glob.glob(.assets/models/*.onnx)): print(OK if validate_hash(path) else BAD, path) EOFBAD的文件要么重下要么检查.hash文件是否漏拷。验证与排错症状日志报validating hash failed退出码 1原因模型文件下载不完整或损坏网络抖动最常见。 修复直接重跑force-download即可。程序会先删掉损坏文件再重下且下载基于断点续传已下载的部分不用重来。症状下载卡住不动或探测源时 content-length 读到 0原因所有配置的下载源都不可达。 修复调整提供方顺序--download-providers huggingface github利用镜像源回退。症状启动就报dependency not installed或python not supported原因缺curl/ffmpeg/ffprobe之一或 Python 版本低于 3.10。 修复装齐依赖并确认在 PATH 里再重跑。另外说明一点run、headless-run这类正常处理命令在启动时也会触发同样的模型自检缺的会自动补下、坏的会删掉重下——所以force-download不是每次运行前的必选项它更适合在部署阶段一次性把环境准备好。离线部署的做法给一台有网的机器跑force-download --download-scope full然后用上面的批量校验脚本确认全部OK把整个.assets/models/目录拷到离线机器即可。离线机器上只要本地校验通过就完全不需要访问任何下载源。⚠️ 拷贝时最容易犯的错误是只拷了.onnx漏了.hash——那样离线环境里所有模型都会被判为无效而重下又必然失败卡死循环。模型统一放在.assets/models/名字.onnx与名字.hash必须成对校验算法是 CRC328 位十六进制不是 SHA256缺.hash文件直接判无效force-download用--download-scope full拉全量--download-providers控制源顺序损坏文件会被自动删除重下下载支持断点续传重跑即可恢复离线部署前先用validate_hash批量脚本全量体检一遍再拷贝下一步在当前机器跑一次python facefusion.py force-download配合批量校验脚本确认全部OK再开始你的第一个处理任务。【免费下载链接】facefusionIndustry leading face manipulation platform项目地址: https://gitcode.com/GitHub_Trending/fa/facefusion创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考