快速结论:该死锁发生在 InvokeAI 工作流中,当 If 节点的分支输入(true_input/false_input)来自包含 Iterate 节点的上游链时,会话会永久卡住且不报错。优先排查是否在 If 分支输入路径中混用了 Iterate 节点。
适用环境:InvokeAI(已确认可复现的提交为 a21d74b8bd 及其 PR 头);Issue 未提供具体的操作系统、Python、CUDA 或显卡版本。
最快修复方案:暂无确认的一步修复方案。Issue 已标记为已修复,但未在讨论中给出具体的修复补丁或版本号,建议升级到包含该修复的最新版本。
注意事项:该问题与 PR #9483 无关,在基础提交和 PR 头上均可独立复现。在修复版本发布前,应避免在 If 节点的分支输入链中使用 Iterate。
问题场景
用户在 InvokeAI 的 workflow editor 中构建了“条件使用一批结果”的工作流:src → iterate → body → collect ──true_input──→ if,同时 cond ──condition──→ if。当会话运行时,next() 返回 None,is_complete() 为 False,has_error() 为 False,队列项永久卡住,没有任何节点被继续执行。
报错原文
Session deadlocks (never completes, no error) when an `If` node's branch input comes from a chain containing an `Iterate` node
is_complete: False
has_error: False
next(): None
src: ['pending']
iter: never prepared
body: never prepared
collect: never prepared
cond: ['executed']
if_node: never prepared
原因分析
根因在 _IfBranchScheduler.get_branch_exclusive_sources() 与 _ExecutionMaterializer.prepare() 的交互逻辑中:
_IfBranchScheduler会把If节点的每个分支输入展开为所有上游祖先节点,并将这些节点标记为“在If解析前暂缓执行”(is_deferred_by_unresolved_if)。在本例中,这个集合为{collect, body, iter, src}。- 没有
Iterate时,整条链可以在一次prepare()中物化,If解析后暂缓状态解除,流程正常。 - 但链中包含
Iterate时,prepare()会拒绝物化迭代器,直到它的所有输入源都已执行完毕。由于上游节点都被标记为暂缓,形成了循环等待,导致死锁。
环境排查
- 确认 InvokeAI 版本是否包含该修复(Issue 于 2026-08-24 关闭,但未列出具体修复版本号)。
- 检查工作流中是否存在
If节点的true_input/false_input来自包含Iterate的链路。 - 可尝试用
PYTHONPATH=.从仓库根目录运行 Issue 中提供的复现脚本来验证环境。
解决步骤
- 升级 InvokeAI 到包含此修复的最新版本,或拉取
main分支的最新代码重新构建。 - 如果无法立即升级,可优先尝试调整工作流结构:将
Iterate的结果先通过Collect收集后,再额外用一个中间节点(如Pass或自定义节点)绕过If分支输入的直接依赖链。 - 如果问题仍然存在,请确认工作流中
If节点的condition输入是否已提前执行完毕(如 Issue 示例中的cond节点状态为executed)。 - 检查是否存在其他包含
Iterate且需要被If分支引用的场景,尝试将Iterate移出分支输入链。
验证方法
重新运行问题中的复现脚本或相同结构的工作流,确认 next() 返回非 None 值,is_complete() 最终为 True,并且 src → iter → body → collect → if_node 所有节点均被执行。if_node 应正确选择收集到的列表。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。

![[BUG]: AWS ISO Regions for Bedrock](https://www.chat-gpts.plus/wp-content/uploads/2026/08/6179-6f4e0bab-768x403.jpg)
