快速结论:该报错发生在 Tesla V100(SM70)上以 FP16 精度运行 MiniMax H3 模型时,属于模型结构性的数值溢出问题。优先排查方案是改用 FP32 精度,并建议添加 --disable-dynamic-vram 启动参数以避免第二个独立的 NaN 触发源。
适用环境:ComfyUI(官方 vanilla 版本,已禁用全部自定义节点);Tesla V100 16GB / 32GB(SM70 架构,无 BF16 硬件支持);模型为 minimax_h3_fl2va_pruned_fp8_scaled.safetensors;触发工具为官方 Image-to-Video 模板 + ModelComputeDtype 节点。
最快修复方案:暂无确认的一步修复方案。FP16 计算无法通过配置修复(H3 DiT 残差流数值可达 1e6–1e7,远超 FP16 上限 65504),必须使用 FP32 或 BF16(仅在 Ampere+ 架构可用)。若 FP32 下仍出现 NaN,推荐以 --disable-dynamic-vram 启动,可优先尝试。
注意事项:FP16 问题的根因是模型结构导致,与显卡无关;在 Volta 上 FP32 是唯一正确选项,速度约为 FP16 期望值的 1/4–1/8,属预期性能表现。动态显存分页(dynamic VRAM weight paging)在 16GB V100 上极易触发,即使 FP32 工作正常也建议禁用。
问题场景
在 ComfyUI 官方 Image-to-Video 模板基础上,在 UNETLoader 之后添加 ModelComputeDtype 节点并将 MiniMax H3 计算精度设为 FP16(模型权重为 fp8_scaled)。运行推理时,张量中出现 NaN 和 Inf,导致生成失败。切换为 FP32 后虽然正常,但推理速度仅为预期 FP16 速度的 1/4,性能严重下降。
报错原文
NaN/Inf Occurs When Running MiniMax H3 with FP16 Precision (Tesla V100 16GB)
NaN with isinf == False — garbage bit patterns, not overflow
nondeterministic at a fixed seed — this is the giveaway
worse with longer sequences and more steps (more VRAM pressure → more paging)
原因分析
可能原因:存在两个独立的 NaN 触发源。
第一个(对应 FP16 溢出报错):H3 的 DiT 残差流(residual stream)数值极大,实测可达约 1e6–1e7,FP16 最大值仅为 65504,强制 FP16 计算会立即溢出。残差必须保持 FP32(或 BF16,二者指数范围相同)。Volta 无 BF16 硬件,因此 FP32 是唯一正确选择。这是模型结构性问题,并非显卡或配置导致。
第二个(FP32 下仍可能触发):comfy-aimdo 的动态显存权重分页机制(dynamic-VRAM weight paging,涉及 vbar / vbar_unpin)在消费 GEMM/cast 内核仍在 CUDA 流中排队时立即执行 host 端释放,且无 stream/event 同步,导致算子读取已释放显存,直接产生 NaN。特征是固定种子下结果不确定(nondeterministic),且序列越长、步数越多越易触发。
环境排查
- 确认显卡为 Tesla V100(SM70,Volta 架构),检查是否支持 BF16 硬件(Volta 不支持,Ampere 及以上支持)。
- 确认 ComfyUI 启动日志中模型权重类型为
torch.bfloat16+ 手动转换torch.float32。 - 检查启动参数:是否启用了动态显存分页(默认可能启用),可通过
--disable-dynamic-vram关闭。 - 确认模型文件为 minimax_h3_fl2va_pruned_fp8_scaled.safetensors,且已禁用全部自定义节点进行排查。
- 关注显存占用:16GB V100 在高分辨率/长序列下分页压力大,容易触发第二个 NaN 源。
解决步骤
- 将 ModelComputeDtype 节点的精度改为 FP32(在 Volta 上这是唯一正确选项,不可用 BF16)。
- 以
--disable-dynamic-vram参数启动 ComfyUI,确认启动日志显示Dynamic vram disabled(进入 NORMAL_VRAM 模式)。 - 若仍遇到 NaN,检查是否满足第二个问题特征:
isinf == False(垃圾位模式而非溢出)、固定种子下结果不确定、长序列/多步数时更严重。 - 若需验证第二个问题,可使用较长序列(如 1344×768 分辨率、20–24 步)进行多次固定种子测试,观察是否出现偶发 NaN。
验证方法
切换 FP32 后生成流程应正常结束,无 NaN/Inf 报错;使用 --disable-dynamic-vram 后,固定种子的多次重复渲染结果应保持一致,不再出现偶发 NaN(该方案已在 1344×768 分辨率下通过 20 步和 24 步渲染验证,原先第 7–8 步必现 NaN 的配置可稳定跑完)。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


