快速结论:该报错出现在 InvokeAI 图执行中:If 的条件由 Iterate(left)逐项产生,而 true 分支是一个对 left 与另一个 Iterate(right)配对 zip 后 Collect 的结果。图本身是合法的,但帧判定把 right 误判为“未关闭且与条件无关的分支迭代器”。优先排查帧归属判定(iterator identity 对比 vs. 结构帧深度对比),而非业务节点本身。
适用环境:InvokeAI 版本 #9789(提交 e27f6fde35);main(aa46003581)上同一图表现为挂起。Issue 未提供操作系统、Python、CUDA、显卡信息,无法确认。
最快修复方案:升级到包含 PR #9843 的版本。该 PR 已报告修复此问题,使 per-item If 在 Collect 兄弟 Iterate 轴上保留与条件对齐的分组结果(包括 [fallback, [12, 22]])。
注意事项:Issue 未明确说明修复所在的具体版本号,需自行确认所用版本已包含 #9843。修复后,真正发散的轴仍会在调用前被显式拒绝;不要据此认为所有跨帧组合都可用。
问题场景
在 InvokeAI 中构建或运行图时,If 节点的 condition 来自 left 这个 Iterate 的逐项计算(示例为 left - 1);true 分支是一个 Collect,其 item 来自把 left.item 与另一个 right Iterate 的 item 相加后 zip 收集的结果。图在 #9789 上直接抛出 UnsupportedIfFramesError,在 main 上则挂起。
报错原文
UnsupportedIfFramesError: If node if combines a condition iterated by left with a branch that may carry frames of the unrelated right
原因分析
该报错源于帧归属判定过严。_IfActivationController._is_branch_framed 依赖 _ExecutionNodeBuilder._is_iterator_frame_open_at 来判断分支是否携带与条件不同的帧。对兄弟迭代器做 zip 后再 Collect 时,该检查无法判断 Collect 关闭的是哪一帧,于是把 left 和 right 两个兄弟帧都计为仍打开。结果 right 被误认为“与条件 left 无关的未关闭分支迭代器”,从而拒绝该图。
按 Issue 作者的判断,分支值实际上对每个 left item 都是逐项的,与 condition 处于同一帧,因此图是良定义的。#9789 已在 _get_frame_depths 中计算结构帧深度,改用深度比较替代迭代器身份比较,可能既能接受该图,又能继续拒绝真正无关的帧——这是可能原因/改进方向,不是最终结论。
环境排查
- 确认 InvokeAI 实际版本与提交号,是否处于 #9789 之后、#9843 之前的区间。
- 确认
main分支版本是否仍在 aa46003581 附近;该版本上同一图会挂起而非报错。 - 确认图中是否存在兄弟 Iterate 经 zip/Collect 后再作为 If 分支的用法,这是触发条件。
- Issue 未提供 Python、PyTorch、CUDA、显卡与依赖信息,这些不作为排查依据。
解决步骤
- 记录当前 InvokeAI 版本与提交号,确认是否尚未包含 PR #9843。
- 升级到包含 PR #9843 的构建/版本。该 PR 已将该 Issue 标记为解决,并补充了节点重排与空兄弟流量的回归覆盖。
- 用 Issue 中的最小复现图重新验证:left 为
[1, 2]、right 为[10, 20]、条件为left - 1。 - 若升级后仍报
UnsupportedIfFramesError,检查是否属于“真正发散的轴”:此类情况在修复后仍会被显式拒绝,需要改写图结构,而不是继续升级。 - 若在旧版
main上表现为挂起,不要等待其自行结束,先升级再复测。
验证方法
运行 Issue 中的复现图,预期输出为 ["fallback", [12, 22]]:left=1 时条件为假走 fallback,left=2 时条件为真,分支 Collect 得到 [12, 22]。同时确认不再出现 UnsupportedIfFramesError,也不再挂起。对于刻意构造的发散轴用例,应看到调用前的明确拒绝,而不是帧误判报错。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。
![[bug]: Long node chains into an If branch raise RecursionError](https://www.chat-gpts.plus/wp-content/uploads/2026/10/9821-3e34209b-768x403.jpg)
![[Bug]: Batch retrieve returns 403 for team-scoped models since v1.103.0 (authorize_model_for_key checks internal model_name_{team_id}_{uuid}](https://www.chat-gpts.plus/wp-content/uploads/2026/10/46958-8bc36f96-768x403.jpg)
![[Bug]: Request Failed Error Code: 500 Message: litellm.APIConnectionError: APIConnectionError: Hosted_vllmException -](https://www.chat-gpts.plus/wp-content/uploads/2026/10/43518-60da76fd-768x403.jpg)