快速结论:这个报错发生在 ComfyUI 2220d111 提交之后、使用 AMD gfx1201 Windows 构建但未随 torch 附带 aotriton kernel 镜像文件时。优先排查 torch/lib/aotriton.images 目录是否存在,并通过修改 aotriton_supported() 让其返回 False 来恢复旧行为。
适用环境:Windows + AMD gfx1201 (RX 9070 XT),ROCm 7.14,ComfyUI master 分支 2220d111 提交及之后版本;已确认该构建中 torch/lib/aotriton.images 目录不存在。
最快修复方案:将 ComfyUI 的 aotriton_supported() 函数修改为直接返回 False(Issue 确认的修复方案,可恢复 2220d111 之前行为并让工作流正常完成)。但注意:该修复方案尚未覆盖伴随的 FP8 支持行为变化。
注意事项:有 gfx1200 用户反馈简单返回 False 会破坏所有带 aotriton 镜像的 ROCm 环境;更稳妥的修复应保留旧的目录/架构存在性检查作为前置条件,再将探针叠加其上。同时,#2220d111 还顺带静默启用了受影响的 FP8 支持(对 gfx1201 无害,但属于附带行为变化)。当前尚无同时覆盖两种场景的合并修复版本。
问题场景
用户运行 ComfyUI master 分支(2220d111 或之后)加载 MiniMax H3 I2V 官方工作流(UNETLoader(minimax_h3_fl2va_pruned_int8_convrot.safetensors) + CLIPLoader(qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors) + MiniMaxH3ImageToVideo)。环境为 Windows + AMD gfx1201(RX 9070 XT),torch 为 ROCm 7.14 构建,但 torch/lib/aotriton.images 目录缺失。问题在文本编码阶段触发,Qwen3-VL vision tower 的 attention 首次调用即失败。
报错原文
TypeError: p = torch.backends.cuda.SDPAParams(q
torch.AcceleratorError: CUDA error: invalid argument
Search for `hipErrorInvalidValue' ...
[ERROR] !!! Exception during processing !!! CUDA error: invalid argument
原因分析
2220d111 前,aotriton_supported(gpu_arch) 通过 os.listdir 检查 torch/lib/aotriton.images。在该 Windows 构建中该目录不存在,os.listdir 抛出 FileNotFoundError,被外层 bare except: pass 吞掉,ENABLE_PYTORCH_ATTENTION 未被设置,flash attention 保持关闭,工作流正常运行。
2220d111 将实现改为探针方式:用 (1,1,8,64) fp16 连续张量调用 SDPAParams 并返回 True。在 gfx1201 + ROCm >= 7.0 时,此返回值导致 ENABLE_PYTORCH_ATTENTION = True 和 enable_flash_sdp(True) 执行。但实际调用点(Qwen3-VL vision tower,skip_reshape=True)使用 torch.split + transpose(0,1).unsqueeze(0) 产生的非连续视图,head_dim 也非 64,与探针形状不符。
可能原因:探针形状设计假设 True 结果同样可信,但实际代码依赖 True 的可信度时未覆盖真实调用场景。minimal repro 中 can_use_flash_attention 在无 kernel 镜像时返回 True,但 HIP 异步启动失败——缺失镜像只有在 kernel 启动时才异步报错,探针无法在启动前检测到。
有 gfx1200 数据点显示 head_dim 64/72/80/96/128 的连续与非连续布局在 kernel 实际存在时全部通过 OOK 测试,证明探针形状本身不是问题,而是构建缺少 kernel 镜像文件。gfx1201 在 aotriton 中已解除实验门控,无条件报告支持,因此无法通过现有 API 探测镜像缺失。
环境排查
- 确认 ComfyUI 版本 >= 2220d111(master 分支提交)
- 确认 CPU 架构为 AMD gfx1201(RX 9070 XT)
- 确认 torch 为 ROCm 7.14 构建,执行 python 检查:import torch; print(torch.version.hip)
- 执行 minimal repro 脚本,确认 os.path.isdir(torch/lib/aotriton.images) 返回 False
- 确认 torch.backends.cuda.is_flash_attention_available() 返回 True
- 确认环境变量 TORCH_ROCM_AOTRITON_ENABLE_EXPERIMENTAL 是否为 1(gfx1200 需要,gfx1201 不需要)
解决步骤
- 先确认问题来源:执行 python -c 检查 aotriton.images 是否存在并输出 can_use_flash_attention 结果;注意 TypeError 时 SDPAParams 参数需去掉最后布尔值
- 优先尝试(Issue 确认修复):修改 comfy/model_management.py 的 aotriton_supported() 使其返回 False,保存后完全重启 ComfyUI
- 若你也在排查 gfx1200 等仍处于实验门控的环境,可尝试将 TORCH_ROCM_AOTRITON_ENABLE_EXPERIMENTAL=1 加入环境变量再测试
- 更完整的等待官方修复:查阅 GitHub 上游是否已合并解决方案;建议让 aotriton_supported() 保留目录存在性作为前置检查,再叠加探针逻辑,且探针结果仅做参考(而非上传到“目录缺失”案例中)
- 检查 SUPPORT_FP8_OPS 是否被意外改变:若在意这种附带行为变化,可在崩溃临时修复中也纳入 FP8 开关审查
- 若使用自定义节点,可先禁用全部测试(Issue 已做);否则跳过此步
- 最终回归测试:重跑 MiniMax H3 I2V 官方工作流,确认文本编码不再报错
验证方法
重跑原始 MiniMax H3 I2V 工作流,确认 queue 完成且无 CUDA error / hipErrorInvalidValue 输出;也可以先复跑 minimal repro 并确认 can_use_flash_attention 返回 False(如果实施了返回 False 的补丁)或 torch/lib/aotriton.images 已包含正确 arch 内核(如果使用了正确 wheel)。若问题来自缺失内核,还需用真实节点确认文本编码全部跑完且无异步启动错误。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


