Weights only load failed. This file can still be loaded, to do so you have two options, do those steps only if you trust the source of the c

该报错通常出现在 ComfyUI Impact Subpack 通过 ultralytics 加载 YOLO 检测模型(如 .pt 文件)时,PyTorch 2.6+ 默认将 torch.load 的 weights_only 改为 True ,而模型权重中包含不被允许的 getattr 全局函数,

快速结论:该报错通常出现在 ComfyUI Impact Subpack 通过 ultralytics 加载 YOLO 检测模型(如 .pt 文件)时,PyTorch 2.6+ 默认将 torch.load 的 weights_only 改为 True,而模型权重中包含不被允许的 getattr 全局函数,导致加载被拦截。优先排查是哪一个自定义节点或模型触发了安全机制,再决定是使用白名单配置还是安装明确的风险绕行方案。

适用环境:Issue 中确认的环境为 Windows 便携版 ComfyUI、ComfyUI-Impact-Subpack(nightly 1.3.1 等版本)、PyTorch 2.7.0+cu128、ultralytics 依赖栈;涉及 YOLO 模型加载路径 ComfyUI-Impact-Subpack/modules/subcore.py。

最快修复方案:Issue 中多位用户验证的手动修改方案是:打开 ComfyUI-Impact-Subpack/modules/subcore.py,把与 weights_only 相关的赋值(旧版约 141–144 行,nightly 1.3.1 约 269 行 load_kwargs['weights_only'] = True)改为 False,然后重启 ComfyUI。另有已验证方案是安装 comfyui-unsafe-torch 自定义节点来禁用安全机制。

注意事项:把 weights_only 改为 False 会允许模型加载时执行任意代码,只应针对可信来源的模型使用。维护者在 Issue 中明确表示 Subpack 不会为这类使用 getattr 的模型提供官方绕行支持;此外有用户反馈仅把模型加入 model-whitelist.txt 仍会报错,白名单可能只起到回退警告作用,不能保证节点正常执行。

问题场景

用户在 ComfyUI 中使用 ComfyUI Impact Pack / Impact Subpack 的检测类节点加载 YOLO 模型时触发报错。从堆栈看,调用链为 subpack_nodes.py 的 doit → subcore.load_yolo → YOLO(model_path) → ultralytics 的 attempt_load_one_weight → torch_safe_load → torch.load,最终被 ComfyUI-Impact-Subpack/modules/subcore.py 中的 torch_wrapper 拦截。有用户反馈在安装其他自定义节点后才开始出现该问题,说明触发条件可能与环境中新增的模型或节点有关。

报错原文

!!! Exception during processing !!! Weights only load failed. This file can still be loaded, to do so you have two options, do those steps only if you trust the source of the checkpoint.
        (1) In PyTorch 2.6, we changed the default value of the `weights_only` argument in `torch.load` from `False` to `True`. Re-running `torch.load` with `weights_only` set to `False` will likely succeed, but it can result in arbitrary code execution. Do it only if you got the file from a trusted source.
        (2) Alternatively, to load with `weights_only=True` please check the recommended steps in the following error message.
        WeightsUnpickler error: Unsupported global: GLOBAL getattr was not an allowed global by default. Please use `torch.serialization.add_safe_globals([getattr])` or the `torch.serialization.safe_globals([getattr])` context manager to allowlist this global if you trust this class/function.

原因分析

最可能的原因是:PyTorch 2.6 起将 torch.load 的 weights_only 默认值从 False 改为 True,而该 YOLO 模型权重在反序列化时使用了不被默认允许的全局函数 getattr,因此被安全机制拦截。维护者确认这正是模型加载过程中使用了危险代码 getattr 所致,并明确表示 Subpack 不会为该类模型提供官方绕过方案。也有用户在一次疑似相关的修改中提及 _weights_only_unpickler.py,但该评论没有提供可复现的完整步骤。

环境排查

  • 确认 PyTorch 版本,Issue 中为 torch-2.7.0+cu128。
  • 确认 ComfyUI 便携版路径,Issue 中为 E:\ComfyUI_windows_portable_nightly_pytorch。
  • 确认 ComfyUI-Impact-Subpack 版本,Issue 涉及 nightly 1.3.1 及更早版本,文件行号会随版本变化。
  • 确认所加载模型是否为受信任来源,因为 getattr 会被安全机制视为高风险全局函数。
  • 确认是否安装过其他自定义节点后开始出现,Issue 中有用户反馈在装完其他节点后才复现。
  • 如使用白名单配置,确认 model-whitelist.txt 的实际路径与模型文件名是否匹配,但注意有用户反馈加入白名单后仍报错。

解决步骤

  1. 先确认报错来自 Impact Subpack 的 YOLO 模型加载路径,核对堆栈中是否出现 ComfyUI-Impact-Subpack/modules/subcore.py。
  2. 如果模型来源可信,并且你接受 weights_only=False 带来的任意代码执行风险,可手动编辑 ComfyUI-Impact-Subpack/modules/subcore.py。
  3. 在旧版本中定位约 141–144 行的 weights_only 赋值,在 nightly 1.3.1 中定位约 269 行的 load_kwargs['weights_only'] = True,将其改为 False,并确保 if/else 两个分支都设置为 False(按 Issue 中用户给出的修改方式)。
  4. 保存文件后完整重启 ComfyUI,再重新运行触发报错的节点。
  5. 替代方案(可优先尝试,但仍有风险):按维护者建议安装 comfyui-unsafe-torch 自定义节点来禁用该安全机制;有用户反馈该方式直接解决了问题,无需逐个修改节点代码。
  6. 如仍想使用安全加载,可参考 Subpack 仓库的说明 Model loading configuration related to weights_only,但 Issue 中有用户按该说明尝试完整路径、仅文件名、带扩展名、带括号等多种写法均未成功,说明该方式对当前模型可能不适用。

验证方法

重启 ComfyUI 后重新执行原先触发报错的 YOLO 检测节点,如果不再出现 Weights only load failed 且节点正常完成处理,即说明修改或替代方案生效。若控制台仍提示 Loaded 1 model(s) from whitelist 但节点依旧报错并中断,说明白名单没有解决安全加载拦截,需要改用上述 weights_only=False 修改或 comfyui-unsafe-torch 方案。

参考来源

ltdrdata/ComfyUI-Impact-Pack #931

ltdrdata/comfyui-unsafe-torch

ComfyUI-Impact-Subpack: Model loading configuration related to weights_only

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 25518

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注