RuntimeError: Sizes of tensors must match except in dimension 2. Expected size 1 but got size 2 for tensor number 1 in the list.

用户在 ComfyUI 中构建了 Flux2 工作流,使用了参考图像条件(ReferenceLatent 输入到 conditioning),并给模型打上了实验性的 “Flux KV Cache” 节点(FluxKVCache)。当使用 latent batch size 为 2 或 CFG > 1

RuntimeError: Sizes of tensors must match except in dimension 2. Expected size 1 but got size 2 for tensor number 1 in the list.

RuntimeError: Sizes of tensors must match except in dimension 2. Expected size 1 but got size 2 for tensor number 1 in the list.

快速结论:该报错通常出现在使用 ComfyUI 的 Flux KV Cache 节点(FluxKVCache)进行采样时,当条件批次(cond batching)在步骤之间发生变化(例如从 step 1 到 step 2 时 batch size 或 CFG 导致批次组合改变),导致在 KV 缓存拼接操作中张量维度不匹配。优先排查是否启用了动态 VRAM 加载,并检查 batch size 是否 > 1 或 CFG > 1。

问题场景

用户在 ComfyUI 中构建了 Flux2 工作流,使用了参考图像条件(ReferenceLatent 输入到 conditioning),并给模型打上了实验性的 “Flux KV Cache” 节点(FluxKVCache)。当使用 latent batch size 为 2 或 CFG > 1 时(这会使 ComfyUI 将多个条件批处理到一次前向调用中),采样过程在步骤之间(特别是步骤 2)崩溃。该故障非确定性,同样的工作流可能因采样时可用 VRAM 不同而成功或失败。

报错原文

RuntimeError: Sizes of tensors must match except in dimension 2. Expected size 1 but got size 2 for tensor number 1 in the list.

raised from comfy_extras/nodes_flux.py line 249 (KV_Attn_Input.__call__):
    return {"q": q, "k": torch.cat((k, kk), dim=2), "v": torch.cat((v, vv), dim=2)}

原因分析

可能原因:在 Flux KV Cache 节点的 torch.cat 操作中,当条件批次组合在步骤之间发生变化时(例如 step 1 使用一种批次分割,step 2 使用另一种),缓存的键(k)和新的键(kk)在维度 2 上的大小不匹配。具体来说,期望的 size 是 1,但实际接收到 size 2。这是因为 _calc_cond_batch 函数会根据内存状态动态选择批次组合,如果不同步骤的批次 chunking 不一致,就会导致 KV 缓存中累积的张量形状与当前步骤需要拼接的张量形状不同。

环境排查

  • ComfyUI 版本:0.22.0(默认启用动态 VRAM 加载)
  • 节点类型:SamplerCustomAdvanced
  • 自定义节点:FluxKVCache(实验性节点)
  • 模型:Flux2
  • 触发条件:latent batch size = 2 或 CFG > 1
  • 漏洞标签:Potential Bug

解决步骤

  1. 禁用 Flux KV Cache 节点:移除或禁用工作流中的 FluxKVCache 节点,观察采样是否正常完成。这可以确认问题是否由该节点引起。
  2. 调整批次大小:尝试将 latent batch size 设为 1,或将 CFG 设为 1(即无分类器自由引导),以避免多个条件被批处理到一次前向调用中。
  3. 关闭动态 VRAM 加载:在 ComfyUI 设置中禁用动态 VRAM 加载(dynamic VRAM loading),或者使用更保守的内存管理选项,以减少 _calc_cond_batch 在步骤之间改变批次组合的可能性。
  4. 更换采样器:尝试使用非 SamplerCustomAdvanced 的其他采样器,看是否能绕过该问题。
  5. 更新 ComfyUI:检查是否有新版本修复了该问题(该 Issue 已于 2026-06-11 关闭,但合并的 PR 中未直接提及此问题)。

验证方法

在应用上述任何步骤后,重新运行相同的 Flux2 参考图像工作流,观察采样是否完成全部步骤而不抛出 RuntimeError: Sizes of tensors must match except in dimension 2. Expected size 1 but got size 2 for tensor number 1 in the list. 错误。如果采样成功完成且无异常,则问题已解决。建议在冷启动(首次加载模型)和热启动(模型已缓存)两种情况下分别测试,因为该故障在动态 VRAM 加载时更容易出现。

参考来源

Comfy-Org/ComfyUI #14389

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

celebrityanime
celebrityanime
文章: 7006

发表回复

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