根本原因是张量维度不匹配,主要源于图像分辨率非64倍数、vae与底模版本不匹配、controlnet预处理器尺寸未规整、brushnet条件输入未同步潜空间。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

LiblibAI中ComfyUI工作流运行时报“dimension mismatch”“tensor size not match”或节点输出变红却无明确提示,根本原因是张量在高度、宽度、通道数或批量维度上无法对齐,常见于图像分辨率非64倍数、VAE与底模不匹配、ControlNet预处理器未做尺寸规整、BrushNet条件输入未与潜空间同步这四类硬冲突。
确认报错是否源于图像分辨率不合规
打开报错工作流,找到所有图像输入节点(如Load Image、ImageScale、CLIPVisionEncode),右键→“View Node Info”,查看其实际接收的tensor shape。若显示类似[1, 3, 510, 510]或[1, 4, 880, 520],说明高宽未被64整除——SD系列模型要求潜空间尺寸为64×64的整数倍,510÷64=7.96875,会直接触发拼接失败。
立即在图像输入后插入Resize节点,将尺寸设为最接近的64倍数:510→512,880→896,520→512。不要选“保持纵横比”,必须勾选“Crop if larger”或“Pad if smaller”,确保输出严格为64倍数。
【关键前提:此操作必须在VAE编码前完成,否则resize发生在潜空间之后,已失效】
验证VAE与base model是否绑定同一版本
方法一:在LiblibAI在线ComfyUI界面,点击顶部CHECKPOINT下拉菜单,确认当前加载的底模名称(如realisticVisionV60B1.safetensors);再点击右侧VAE下拉菜单,检查所选VAE是否标注“SD1.5”或“SDXL”字样——二者必须完全对应。SD1.5底模配SDXL VAE,会在KSampler输出latent后触发RuntimeError: Expected tensor for argument #1 'input' to have the same device as tensor for argument #2 'weight'。
方法二:若VAE菜单为空或仅显示“None”,说明该底模未自带VAE,需手动下载匹配版本。回LiblibAI该底模详情页→滚动至“配套组件”区→下载标有“VAE for SD1.5”的文件→放入models/vae/目录→刷新页面后重选。
切断ControlNet预处理器的隐性尺寸偏移
第一步:定位报错链路中红色的ControlNet节点(如ControlNetApplyAdvanced),观察其上游是否连接了AIO aux Preprocessor、Canny或Depth Anything等预处理节点。
第二步:右键该预处理器节点→“Edit Node”→检查“Resolution”参数是否为固定值(如512);若是,将其改为“Auto”或手动填入与主图一致的64倍数尺寸(如896×512)。
第三步:若仍报错,立即在预处理器输出端与ControlNet输入端之间插入ImageScale节点,模式选“Stretch to fit”,尺寸填与主图latent完全一致的高宽(如896×512),强制对齐。
注意:Depth Anything V2内部做了自动pad,但AIO aux Preprocessor默认保留原始分辨率,这是导致“Expected size 111 but got size 110”类错误的高频原因。
重置BrushNet条件输入的通道拼接逻辑
BrushNet报错信息中若含torch.concat([sample, brushnet_cond], 1),说明它正尝试沿通道维度(dim=1)拼接原始潜变量sample和条件张量brushnet_cond——二者必须严格同高同宽同batch。
检查BrushNet节点参数面板中的“image”输入是否直接连自Load Image,而非经VAE Encode后的latent。正确路径是:Load Image → VAE Encode → BrushNet(image输入口留空)→ BrushNet(latent输入口接VAE输出)。
【致命错误:绝不可将原始RGB图像直接喂给BrushNet的image输入口,它只接受latent,否则sample形状为[1,3,H,W]而brushnet_cond为[1,4,H,W],通道数3≠4,concat必然崩】
若工作流中已存在该错误连接,断开Load Image到BrushNet image的线,改接至VAE Encode节点的像素输入口,再将VAE输出连至BrushNet latent口。











