You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Stable Diffusion报错“invalid header or archive is corrupted”的成因排查求助

解决Stable Diffusion加载权重时的RuntimeError问题

别着急,我帮你拆解这个问题——你碰到的RuntimeError: PytorchStreamReader failed reading file data/11: invalid header or archive is corrupted本质上是PyTorch没法正常读取你的Stable Diffusion权重文件(也就是sd-v1-4.ckpt),核心原因基本都和权重文件本身有关,具体来说有这几种可能:

错误成因

  • 权重文件下载不完整:sd-v1-4.ckpt的体积接近4GB,要是下载过程中网络波动、浏览器崩溃或者中途暂停后没续传成功,文件就会缺失部分数据,PyTorch加载时就会识别出无效的文件头或者损坏的归档结构。
  • 文件传输/存储损坏:如果是从其他设备拷贝过来的权重文件,传输过程中中断、存储设备(比如U盘、硬盘)有坏道,都可能让文件受损,导致无法正常读取。
  • 非标准的权重文件:虽然你提到试过旧版本,但如果下载的权重文件本身不是官方发布的标准PyTorch checkpoint格式(比如被篡改、重命名错误,或者是其他模型的权重),也会触发这个报错。

解决步骤

  1. 重新下载并验证权重文件
    • 用稳定的网络和靠谱的下载工具(比如wget或者迅雷)重新下载官方的sd-v1-4.ckpt,避免用浏览器直接下载(容易中断且续传不稳定)。
    • 下载完成后,一定要核对文件的哈希值来确认完整性。官方提供的sd-v1-4.ckpt的SHA256哈希是fe4efff1e174c627256e44ec2991ba279b3816e364b49f9be2abc0b3ff3f8556,你可以在终端运行这个命令验证:
      shasum -a 256 sd-v1-4.ckpt
      
      输出的哈希值和上面的一致,才说明文件是完整的。
  2. 检查文件路径是否正确
    • 确认你运行命令时--ckpt参数指向的路径完全正确,有没有打错文件名,或者文件被移动到了其他目录。比如你是不是把sd-v1-4.ckpt放在了models文件夹下,但命令里没写全路径?
  3. 更换存储位置
    • 如果怀疑是存储设备的问题,把权重文件移到一个可靠的硬盘分区里,再尝试加载。
  4. 验证PyTorch版本兼容性
    • 确保你的PyTorch版本符合Stable Diffusion的要求,sd-v1-4一般需要PyTorch 1.12.x及以上版本。你可以用这个命令查看当前PyTorch版本:
      python -c "import torch; print(torch.__version__)"
      
      如果版本过低,就升级PyTorch到兼容的版本。

内容的提问来源于stack exchange,提问作者petit lustucru

火山引擎 最新活动