ComfyUI 报错解决:Boolean value of Tensor with more than one value is ambiguous(BerniniConditioning 节点)

5次阅读
没有评论

最近在使用 ComfyUI 运行 Wan 视频模型工作流时,很多小伙伴会遇到一个高频报错:RuntimeError: Boolean value of Tensor with more than one value is ambiguous,报错节点固定为 BerniniConditioning(节点ID34)

这个报错看似是张量维度问题,实则是自定义节点代码逻辑缺陷+工作流接线不规范共同导致。本文将完整拆解报错根源、提供「快速临时修复+永久源码根治+避坑指南」三套方案,零基础也能直接套用解决。

一、报错完整信息 & 场景还原

1. 核心报错日志

File "ComfyUI/comfy_extras/nodes_bernini.py", line 85, in execute
    if reference_images:
RuntimeError: Boolean value of Tensor with more than one value is ambiguous

2. 复现场景

  • 核心模型:Wan 视频生成模型
  • 异常节点:BerniniConditioning(comfyui-rh-bernini 自定义节点)
  • 启动参数:开启 –force-fp16、指定 CUDA 显卡设备

二、报错根本原因(通俗解析)

这个报错是经典 PyTorch 张量判断错误,结合 Bernini 节点的源码缺陷,具体原因如下:

1. 节点代码漏洞:Bernini 节点第85行直接使用 if reference_images: 做空值判断,仅适配「空值/图片列表」场景,未兼容单张多维图像张量

2. 输入数据异常:工作流中给 reference_images(参考图输入端)传入了单个多维图像 TensorLatent 潜空间张量

3. PyTorch 规则限制:多维张量无法直接用于布尔 if 判断,直接判定会触发「张量布尔值模糊」报错,直接中断工作流执行。

一句话总结:Bernini 节点参考图输入格式错误 + 源码容错性差,导致张量判断失效。

三、三套解决方案(从快到稳,优先推荐)

方案一:工作流快速修复(临时解决,最快生效)

无需改代码,适配紧急出图场景,90% 的接线问题可直接解决:

1. 在工作流中定位34号 BerniniConditioning 节点

2. 找到 reference_images 输入端,检查接线:

  • ❌ 错误接法:接入 VAE 编码输出、Latent 潜空间、单张图像张量;
  • ✅ 正确接法:仅连接「Load Image 加载图片节点」原始图像;
  • ✅ 特殊适配:若需传入处理后图像,中间新增 Batch Image 节点,将单张量包装为列表格式;

3. 无参考图需求:直接拔掉 reference_images 所有连线(空输入≠乱输入,未使用必须断开)。

方案二:源码补丁修复(永久根治,推荐)

彻底修复节点 BUG,一劳永逸解决该报错,后续无需调整工作流:

1. 打开节点源码文件:ComfyUI/comfy_extras/nodes_bernini.py

2. 定位 第85行 原始代码:

if reference_images:

3. 替换为兼容所有格式的安全判断代码:

has_ref = False
if reference_images is not None:
    if isinstance(reference_images, list) and len(reference_images) > 0:
        has_ref = True
    elif not isinstance(reference_images, torch.Tensor):
        has_ref = True

if has_ref:

4. 保存文件,完全重启 ComfyUI 即可生效。

⚠️ 注意:后续更新 bernini 自定义节点会覆盖补丁,更新后需重新替换代码。

方案三:环境兼容优化(解决精度冲突)

针对开启 fp16 精度、多显卡切换的特殊环境报错:

1. 临时移除 ComfyUI 启动参数中的 --force-fp16,重启测试,规避 bf16/fp16 张量精度冲突;

2. 禁止混合精度输入:VAE 输出的 bf16 精度图像,不直接接入 Bernini 参考图节点;

3. 规避视频帧直连:视频循环输出帧需经过 Batch 节点格式化后再接入。

四、高频踩坑避坑指南

  1. 严禁接入 Latent 张量:reference_images 仅支持像素图像(Image),绝对不能接入潜空间数据;
  2. 单张量必须包装:上游输出单张图像张量时,必须用 Batch Image 转为列表格式;
  3. 空输入务必断线:不需要参考图时,不能留空接线、不能悬空,必须彻底断开连线;
  4. 节点更新需重打补丁:bernini 节点更新后,源码补丁会失效,需重新替换判断代码。

五、终极替代方案

若不想修改源码、频繁适配报错,可直接替换节点:

删除工作流中的 BerniniConditioning 节点,使用原生 IP-Adapter 节点Wan 官方参考条件节点 替代,功能一致且兼容性更强,无张量报错问题。

总结

本次报错核心不是模型、环境故障,而是 Bernini 节点源码容错缺陷 + 工作流输入格式不规范 双重问题。日常使用优先用「方案一」快速出图,长期使用建议「方案二」永久修复,彻底规避重复报错,适配 Wan 视频模型及所有图像参考工作流。

正文完
可以使用微信扫码关注公众号(ID:xzluomor)
post-qrcode
 0
评论(没有评论)
验证码