最近在使用 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(参考图输入端)传入了单个多维图像 Tensor 或 Latent 潜空间张量;
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 节点格式化后再接入。
四、高频踩坑避坑指南
- 严禁接入 Latent 张量:reference_images 仅支持像素图像(Image),绝对不能接入潜空间数据;
- 单张量必须包装:上游输出单张图像张量时,必须用 Batch Image 转为列表格式;
- 空输入务必断线:不需要参考图时,不能留空接线、不能悬空,必须彻底断开连线;
- 节点更新需重打补丁:bernini 节点更新后,源码补丁会失效,需重新替换判断代码。
五、终极替代方案
若不想修改源码、频繁适配报错,可直接替换节点:
删除工作流中的 BerniniConditioning 节点,使用原生 IP-Adapter 节点 或 Wan 官方参考条件节点 替代,功能一致且兼容性更强,无张量报错问题。
总结
本次报错核心不是模型、环境故障,而是 Bernini 节点源码容错缺陷 + 工作流输入格式不规范 双重问题。日常使用优先用「方案一」快速出图,长期使用建议「方案二」永久修复,彻底规避重复报错,适配 Wan 视频模型及所有图像参考工作流。