#14784·diffusers

在加载时进行自愿的权重完整性验证(固定的 SHA-256 哈希 / 明细表)

作者: UniversePeak创建于 2026年9月15日更新于 2026年9月15日
标签pipelinesfeature-request

** 您的特性请求与问题有关吗 ? 请说明。 **

从 pressed'装入磁盘上的任何重量文件,在装入时没有任何完整性验证。 运输经过内容处理(LFS etag / Xet)和hf缓存验证'(huggingface hub v0.32+)可以对照枢纽目前服务的内容重新检查缓存目录,但这两个保证在实际负荷之前结束:在核查后被篡改的检查站、在共享缓存中被修改的快照,或直接传递给`从 pressed'的任何本地目录都是按原样装入的,在模型负荷时无法将核定重量(hashes)标出。

这一点更为重要,因为自动化管道和特工人员占用公共检查站,而没有人员。 最近的工作显示这种威胁是实际的:后门潜入的世界型检查站可以在通过部署前检查时劫持下游控制(arXiv 2609.15781,"When the World Lies", Sep 2026),而扫描器所躲避的去序列化攻击在模型文件上不断演变(arXiv 2607.17503,"Shadow Pickle",Jul 2026). Pinning a 修订版保护身份("这就是在那个承诺上上传的内容"),但不让用户发现今天被上载的字节与其批准的字节不同,而"hf缓存验证"是一个手动的,只保存在加载路径以外的步骤.

** 说明你想要的解决办法。 **

对现有负载路径进行选入完整性检查,例如:

zz
管道 = 传播管道 从  pretrained ()
"org/model", (英语).
预想 hashes={"unet/difusion pytorch model.safetensors":""("sha256")","(")".},
(中文(简体) ).

或等同于“完整性 明显=”路径/至/明显.json”(或在当地目录中发现的表)。 建议的行为:

  • 在重量物质化之前,将每个重量文件与SHA-256作散列,并与所钉值作比较。
  • 在不匹配时, 提出一个清晰的指定错误, 命名文件, 以及两种散列; 可选的旗帜可以将它降级为警告, 以软性采纳 。
  • 虽然文件无论如何都是打开的,但检查点和配置之间的表面拉伸-形状不匹配是明显的早期错误,而不是深度负载时间故障。
  • 默认行为不变:没有克瓦克,没有验证,没有额外的I/O.

范围说明: 校验 * 您核准的字节是正在装入的字节 *( 标记、 替换、 缓存漂移) 。 它无法证明你批准的上传是良性的——这需要外部证明,而且超出了范围。

** 说明你考虑过的备选办法。 **

  • 订正平针——必要但不足够:没有发现下载后篡改,没有合同用于本地目录。
  • `hf缓存验证'- 大型后期审计,但只用人工、缓存指令,对照Hub的当前状态进行核对,而不是将用户被绑住,而不是装入电线。
  • 验证拥抱面- 拥抱本身—— 可信的家, 但用户表示信任 ' 从 pretrained ' , 因此在扩散器中显示合同将匹配决定 . . . . . . .

内容来源: huggingface/diffusers