模型加载报 header / deserializing 错:改配置全白搭,先比对文件大小
报 Error while deserializing header 或 unexpected end of file,很多人第一反应是去调参数、换插件 —— 但这类报错改任何配置都没用,因为文件本身就是坏的。大模型动辄几 G 到几十 G,HTTP 下载中断很常见,而且中断的文件会留在原地,看起来「文件在」,其实只有一半。判据是最简单的一条:文件字节数和发布页标称大小对不上,就是没下完。
ComfyUI排错模型管理下载HuggingFace这条适用于
- 模型文件下载过程曾中断 / 断点续传
- 报的是 header / deserializing / unpickling 类错误
版本指纹
Windows 11 + ComfyUI;模型放英文路径;HF 镜像 hf-mirror.com(可用性随时间变)
具体做法
# ① 先比对大小:这是最快的判据
$ ls -l /path/to/model.safetensors
$ du -h /path/to/model.safetensors
# 与 HuggingFace / 发布页标的 Size 对照;差一截 = 没下完
# ② 清掉残留的不完整文件(不要在原文件上续传:头已坏)
$ rm -f /path/to/model.safetensors
$ rm -f /path/to/*.part /path/to/*.tmp
# ③ 用支持断点续传的方式重下(推荐 huggingface-cli)
$ huggingface-cli download <repo_id> <filename> --local-dir /path/to
$ huggingface-cli download <repo_id> <filename> \
--resume-download --local-dir /path/to
# ④ 国内加速(HF 直连慢/易断时)
$ export HF_ENDPOINT=https://hf-mirror.com
$ export HF_HUB_ENABLE_HF_TRANSFER=1 # 需先 pip install hf_transfer
# ⑤ 校验哈希(发布页一般给 sha256)
$ sha256sum model.safetensors
# Windows: certutil -hashfile model.safetensors SHA256
失效边界
适用边界:判据「字节数 + 哈希」在所有模型格式通用。safetensors 有头部校验,所以报 deserializing/header;老的 .ckpt 是 pickle 格式,同样的中断可能报 unpickling 或直接段错误 —— 症状不同但根因相同。本机环境为 Windows 11 + ComfyUI,模型一律放英文路径(中文路径会叠加另一类「找不到文件」的问题,见路径族)。HF 镜像地址 hf-mirror.com 为第三方镜像,可用性随时间变化,不保证长期有效。
适用边界:判据「字节数 + 哈希」在所有模型格式通用。safetensors 有头部校验,所以报 deserializing/header;老的 .ckpt 是 pickle 格式,同样的中断可能报 unpickling 或直接段错误 —— 症状不同但根因相同。本机环境为 Windows 11 + ComfyUI,模型一律放英文路径(中文路径会叠加另一类「找不到文件」的问题,见路径族)。HF 镜像地址 hf-mirror.com 为第三方镜像,可用性随时间变化,不保证长期有效。