ROCm for Stable Diffusion on AMD: Limits, Gaps, VRAM Cuts
ROCm setup guide for Stable Diffusion on AMD: supported GPUs, Windows gaps, and VRAM reduction techniques.
On this page
Stable Diffusion on AMD: ROCm Limits, CUDA Gaps, and VRAM Cuts
TL;DR
- ROCm on Linux works for Stable Diffusion on a narrow set of official Radeon GPUs (RX 7600/7700/7800/7900, RX 9060/9070, PRO W6800/W7700/W7800/W7900). Consumer RX 6000 cards are not officially supported.
- Windows ROCm lacks AI frameworks, AI libraries, and communication libraries — it cannot run PyTorch or TensorFlow.
- HiRes Fix and ADetailer are GPU-agnostic extensions that improve output quality regardless of CUDA or ROCm.
HSA_OVERRIDE_GFX_VERSIONdecimal values (10.3.0,11.0.0) from community guides are not in official ROCm docs, which usegfx1030/gfx1100notation.- xformers flash-attention on AMD is limited to Instinct MI2xx/MI3xx accelerators; consumer Radeon support remains experimental.
- Arch Linux is not in the official ROCm support matrix, despite community guides claiming otherwise.
What AMD GPUs Does ROCm Actually Support?
Official ROCm 7.14 supports these Radeon GPUs on Linux and Windows (compatibility matrix):
| GPU Family | GFX Target | Example Cards | Source |
|---|---|---|---|
| RDNA4 | gfx1201 | RX 9070 XT, RX 9070 GRE, RX 9070, AI PRO R9700S/R9700/R9600D | ROCm Install |
| RDNA4 | gfx1200 | RX 9060 XT, RX 9060 | ROCm Install |
| RDNA3.5 | gfx1103 | Ryzen PRO 250/270 series, Ryzen 9 270 | ROCm Install |
| RDNA3 | gfx1101 | PRO W7700, RX 7800 XT, RX 7700 XT, RX 7700, PRO V710 | ROCm Install |
| RDNA3 | gfx1100 | RX 7900 XTX, RX 7900 XT, RX 7900 GRE, PRO W7900/W7800 | ROCm Install |
| RDNA3 | gfx1102 | RX 7600 | ROCm Install |
| RDNA2 | gfx1030 | PRO W6800, PRO V620 | ROCm Install |
Cards absent from this list include the RX 6600, RX 6650 XT, RX 6700 XT, RX 6800 XT, RX 6800 GRE, RX 6900 XT, RX 6950 XT — the entire RX 6000 RDNA2 gaming lineup. TheRock project offers community-enabled nightly builds for these missing GPUs (SUPPORTED_GPUS.md), but they are explicitly unverified: pip installs succeed, yet device enumeration, kernel launch, or library loads may fail at runtime.
The supported Linux distributions do not include Arch Linux, Manjaro, or any Arch variant — only Ubuntu, Debian, RHEL, SLES, Rocky Linux, and Oracle Linux.
ROCm vs CUDA: What Is Missing on Windows
The AMD HIP SDK for Windows is a subset of full ROCm:
| Component | Linux | Windows | Source |
|---|---|---|---|
| Runtime (HIP) | Open source | Closed source | Windows Support |
| AI Libraries (MIOpen, MIGraphX) | Supported | Not available | Windows Support |
| Communication Libraries (RCCL) | Supported | Not available | Windows Support |
| AI Frameworks (PyTorch, TensorFlow) | Supported | Not available | Windows Support |
| Porting Tools (HIPIFY) | Supported | Supported | Windows Support |
You cannot run Stable Diffusion via PyTorch on Windows ROCm. If your intent is AI image generation on an AMD GPU, Linux is the only viable path.
On Linux, ROCm PyTorch wheels are available for PyTorch 2.10.0–2.12.0, targeting Python 3.11–3.14, with GFX-specific extras like [device-gfx1100] for RX 7900-series cards.
HiRes Fix: How It Works
HiRes Fix generates an image at base resolution (typically 512×768), then upscales it and sends it through a second img2img pass. ComfyUI documents this as: "Hires fix is just creating an image at a lower resolution, upscaling it and then sending it through img2img."
A typical configuration uses denoising strength around 0.35, a 2× upscale factor, and a pixel-space upscaler like 8x_NMKD-Superscale_150000_G. For latent upscaling (the WebUI default), the image stays in latent space during upscale. For ESRGAN-based upscaling, the image must convert from latent to pixel space and back.
ADetailer: Automatic Face and Hand Fixing
ADetailer automates manual inpainting in three steps: (1) generate the image, (2) run a YOLO detection model to locate faces/hands/persons and create a mask, (3) inpaint the masked region at full image resolution.
The key insight: inpainting "only masked" at 512×768 effectively regenerates the face at much higher pixel density, then scales it back. This is why garbled small faces become sharp after ADetailer processes them. The default confidence threshold is 0.3; for best results on faces, enable "Inpaint only masked."
Cutting VRAM on Constrained Cards
These techniques reduce VRAM consumption regardless of GPU vendor:
- HiRes Fix splits generation into two passes at lower resolution — base at 512×768, upscale pass at target resolution.
- ADetailer with limited inpaint area restricts computation to the masked region only.
- Lower CFG scale (5 instead of 7–8) does not reduce computations per step — CFG always runs two model passes regardless of scale — but it can reduce peak VRAM by producing less extreme activation values. The effect is modest.
- Fewer steps (20–30 instead of 40+) reduces total VRAM-time during generation, helping with thermal throttling, but does not lower peak VRAM per step.
The --medvram and --lowvram flags in Automatic1111 apply to all GPU backends and are not AMD-specific.
Common Errors and Fixes
Error: qt.qpa.plugin: Could not load the Qt platform plugin "xcb" on KDE
OpenCV ships an xcb plugin in the WebUI venv that conflicts with system Qt on KDE Plasma. Fix: delete the xcb plugin file at <venv>/lib/python3.11/site-packages/cv2/qt/plugins/platforms/libxcbqxcb.so, then restart.
Error: xFormers was built for: PyTorch 2.2.0+cu121 with CUDA 1201 (you have 2.2.0+rocm5.7)
The pip wheel targets CUDA, not ROCm. PR #978 added flash-attention for AMD Instinct MI2xx/MI3xx, but consumer Radeon testing is incomplete. Fix: clone the repo, check out the ROCm branch, and build from source with pip install -e ..
FAQ
How do I run Stable Diffusion on an AMD RX 6650 XT on Linux?
The RX 6650 XT (gfx1032) is not in the official ROCm 7.14 support matrix (compatibility matrix). It is supported by TheRock nightly builds (SUPPORTED_GPUS.md), which are community-enabled and unverified. Expect that device enumeration or kernel launches may fail.
What is the correct HSA_OVERRIDE_GFX_VERSION for my AMD GPU?
Official docs use GFX target notation (gfx1030, gfx1100, gfx1201) rather than decimals like 10.3.0 or 11.0.0. Use the gfxNNNN format matching your GPU's LLVM target from the ROCm compatibility matrix.
Does xformers work on consumer AMD GPUs?
PR #978 added ROCm flash-attention, but testing was limited to MI250x/MI300x (Instinct accelerators). A user report shows xformers failing on an RX 6650 XT with CUDA library errors. Success on consumer Radeon cards was not confirmed by xformers maintainers.
Can I use ROCm on Arch Linux?
Arch Linux is not listed among supported distributions. Community guides use AUR packages (rocm-hip-sdk, rocm-opencl-sdk) that are not officially supported by AMD.
HiRes Fix vs img2img upsampling — what is the difference?
HiRes Fix integrates the upscale + img2img pass automatically after base generation. Manual img2img requires generating at base resolution, saving, loading into img2img, and running a second generation. Results are similar when configured equivalently, but HiRes Fix keeps everything in a single workflow.
Is ROCm faster or slower than CUDA?
No quantitative benchmarks were found. Performance depends on GPU model, VRAM capacity, and model architecture. AMD's official docs do not publish comparative inference benchmarks against CUDA.