解决 Windows 11 AMD RX6600XT 无法正常使用 ComfyUI 的问题
最近发现 ComfyUI 终于支持 AMD 显卡了,之前都是在 Debian 用 ROCm 跑这个,但是双系统有点麻烦,发现 ComfyUI 支持之后,就赶紧体验了一下,下载了 ComfyUI Desktop。
结果跑了好几个模板工作流都不行,表现为:点击运行后,提示 disconnect,再点击运行就提示 TypeError: Failed to Fetch,日志也无法查看,此时就推测是后端崩溃了,但是 Desktop 版本不够灵活,好像没办法直接看 ComfyUI 后端,于是切换了 GitHub 上构建的 Portable 版本。
切换到 Portable 版本后,发现问题还是一样,点击运行后,确定后端崩溃,但是没有任何报错,就像程序被正常退出一样,此时就感觉有点迷惑,不知道怎么定位问题,然后就去问了下 Gemini , Gemini 的回答是 Python 是 静默崩溃 (Silent Crash) , 底层 C++ 库(PyTorch/ROCm)崩溃或者显卡驱动触发了保护机制(TDR)强制杀死了进程 ,要嘛是显存爆了,要嘛就是 bf16 兼容性问题,然后给了一些没啥用的解决方案。
没办法,只能老办法,去 GitHub 上看 issue ,看看有没有相同情况的人,幸运的是正好找到了差不多情况的,Confyuai AMD GPU crash - AMD Radeon RX 6650 XT: failed to run amdgpu-arch binary not found. · Issue #11524 · Comfy-Org/ComfyUI · GitHub , 看到下面有个回复说到他的 RX6600XT 用了别人构建的 ROCm 运行的很好,于是我就想到了极有可能是 Python 的 cuda 模块并不能正常运行,我就用 Portable 内嵌的 Python 环境(也就是 ComfyUI 使用的 Python 环境)进行了测试:
#ComfyUI_windows_portable\python_embeded>python.exe print(torch.cuda.is_available()) # True print(torch.cuda.get_device_name(0)) # AMD Radeon RX 6600 XT 这么一看,好像 cuda 没有什么问题?但是当我换另外一种方法测试,就发现问题所在了:
x = torch.rand(50000, 30000).cuda()
print(x) # 崩溃了! 这下可以确定是 cuda 的问题了,直接用 GitHub - guinmoon/rocm7_builds: My own ROCm windows builds from TheRock repository for various architectures such as 680m, 780m, rx6600, etc. 重装 ROCm 和 torch。
#注意用 ComfyUI 内嵌的 Python 环境去安装依赖
ComfyUI_windows_portable\python_embeded\python.exe -m pip install "rocm-7.2.0.tar.gz" "rocm_sdk_libraries_custom-7.2.0-py3-none-win_amd64.whl" "rocm_sdk_devel-7.2.0-py3-none-win_amd64.whl" "rocm_sdk_core-7.2.0-py3-none-win_amd64.whl"
ComfyUI_windows_portable\python_embeded\python.exe -m pip install "torch-2.9.1+rocmsdk20251203-cp312-cp312-win_amd64.whl" "torchaudio-2.9.0+rocmsdk20251203-cp312-cp312-win_amd64.whl" "torchvision-0.24.0+rocmsdk20251203-cp312-cp312-win_amd64.whl"
安装完之后,重试一下
x = torch.rand(50000, 30000).cuda()
print(x) # 正常输出 完美解决,ComfyUI 也能正常生图了,不会再出现静默崩溃的情况了。