Switch (Any) evaluates all inputs after ComfyUI #16377

该报错出现在 ComfyUI 升级到 v0.41.1(含 ComfyUI #16377 变更)后,Impact Pack 的 Switch (Any) 会把所有已连接的输入都当作需要执行的分支,导致未被选中的分支也运行;优先检查 Impact Pack 是否更新到包含修复的版本。

快速结论:该报错出现在 ComfyUI 升级到 v0.41.1(含 ComfyUI #16377 变更)后,Impact Pack 的 Switch (Any) 会把所有已连接的输入都当作需要执行的分支,导致未被选中的分支也运行;优先检查 Impact Pack 是否更新到包含修复的版本。

适用环境:ComfyUI v0.41.1、ComfyUI Impact Pack 8.28.3、Windows portable。

最快修复方案:将 Impact Pack 更新到已合并修复 #1254 的最新 Main(提交 f5d6d43),然后重启 ComfyUI。

注意事项:Issue 中用户自写的 `any(frame.function == ‘get_input_info’ for frame in stack[1:3])` 只是临时改法;官方修复改用 `_SwitchInputs`,不再依赖调用栈位置。更新前保留原有工作流备份,更新后需确认已保存工作流中的 widget 名称、顺序和取值未被改变。

问题场景

用户在 ComfyUI 中使用 Impact Pack 的 Switch (Any) 节点构建多分支工作流(例如多个采样器分支共用切换逻辑)。升级 ComfyUI 到 v0.41.1 后,Switch (Any) 不再只执行当前选中的输入,而是运行所有已连接输入;其中一个未被选中的分支因为拿不到所需模型而崩溃,报出 `’NoneType’ object has no attribute ‘model_options’`。

报错原文

Switch (Any) evaluates all inputs after ComfyUI #16377
'NoneType' object has no attribute 'model_options'
if stack[2].function == 'get_input_info':

原因分析

用户定位到 Impact Pack 的 `GeneralSwitch.INPUT_TYPES` 中依赖调用栈判断 `get_input_info` 位置的逻辑。ComfyUI #16377 之后,`TopologicalSort.get_input_info` 直接调用 `INPUT_TYPES()`,调用栈中 `get_input_info` 出现在 `stack[1]` 而非原先的 `stack[2]`,导致懒加载判断只对 input1 生效,其余编号输入未被标记为 lazy,从而被一并执行。

官方后续修复未沿用栈索引判断,而是通过 `_SwitchInputs` 将所有编号输入统一声明为 lazy,以适配 ComfyUI 新的 `INPUT_TYPES()` 调用方式。

环境排查

  • ComfyUI 版本:确认是否已升级到 v0.41.1 或包含 ComfyUI #16377 的版本。
  • ComfyUI Impact Pack 版本:确认是否为 8.28.3 或更新前未包含 #1254 修复的版本。
  • 运行方式:Issue 中为 Windows portable,其他安装方式未在此 Issue 中确认。
  • 工作流:确认 Switch (Any) 节点是否连接了多个分支,且存在依赖模型或其他条件的未选中分支。

解决步骤

  1. 备份当前工作流及 Impact Pack 自定义节点目录,便于更新后回退。
  2. 将 ComfyUI Impact Pack 更新到最新 Main,确认包含提交 f5d6d43(对应修复 PR #1254)。
  3. 重启 ComfyUI,使新节点定义和懒加载逻辑生效。
  4. 重新打开原工作流,检查 Switch (Any) 节点的输入连接和已选分支是否保持原状。
  5. 若更新后问题仍存在,按 Issue 维护者要求准备最小复现工作流,并记录 ComfyUI 与 Impact Pack 的具体版本。

验证方法

运行原工作流,确认未被选中的失败分支不会执行;切换到该分支时能按预期抛出错误,再切回原分支可正常执行。Issue 中的回归覆盖还包含原生工作流重新加载后的切换验证,可一并作为检查项。

参考来源

ltdrdata/ComfyUI-Impact-Pack #1246

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 31952

发表回复

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