ROCm en AMD para Stable Diffusion: límites y VRAM
Guía de instalación de ROCm para Stable Diffusion en AMD: GPU con soporte, límites en Windows y técnicas para reducir el consumo de VRAM.
On this page
Stable Diffusion en AMD: límites de ROCm, carencias de CUDA y recortes de VRAM
TL;DR
- ROCm en Linux funciona para Stable Diffusion solo en un conjunto acotado de GPU Radeon oficiales (RX 7600/7700/7800/7900, RX 9060/9070, PRO W6800/W7700/W7800/W7900). Las tarjetas RX 6000 de consumo no tienen soporte oficial.
- ROCm en Windows carece de frameworks de IA, bibliotecas de IA y bibliotecas de comunicación: no puede ejecutar PyTorch ni TensorFlow.
- HiRes Fix y ADetailer son extensiones independientes de la GPU que mejoran la calidad de salida tanto con CUDA como con ROCm.
- Los valores decimales de
HSA_OVERRIDE_GFX_VERSION(10.3.0,11.0.0) que aparecen en guías de la comunidad no están en la documentación oficial de ROCm, que usa la notacióngfx1030/gfx1100. - La atención flash de xformers en AMD está limitada a los aceleradores Instinct MI2xx/MI3xx; el soporte para Radeon de consumo sigue siendo experimental.
- Arch Linux no está en la matriz de soporte oficial de ROCm, pese a que hay guías de la comunidad que dicen lo contrario.
¿Qué GPU de AMD soporta realmente ROCm?
La documentación oficial de ROCm 7.14 da soporte a estas GPU Radeon en Linux y Windows (matriz de compatibilidad):
| Familia de GPU | Objetivo GFX | Tarjetas de ejemplo | 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 | Series Ryzen PRO 250/270, 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 |
Las tarjetas ausentes de esta lista incluyen las RX 6600, RX 6650 XT, RX 6700 XT, RX 6800 XT, RX 6800 GRE, RX 6900 XT y RX 6950 XT, es decir, toda la gama de juegos RX 6000 RDNA2. El proyecto TheRock ofrece compilaciones nocturnas habilitadas por la comunidad para estas GPU ausentes (SUPPORTED_GPUS.md), pero están explícitamente sin verificar: la instalación con pip tiene éxito, aunque la enumeración de dispositivos, el lanzamiento de kernels o la carga de bibliotecas pueden fallar en tiempo de ejecución.
Las distribuciones de Linux con soporte no incluyen Arch Linux, Manjaro ni ninguna variante de Arch: solo Ubuntu, Debian, RHEL, SLES, Rocky Linux y Oracle Linux.
ROCm vs CUDA: qué falta en Windows
El SDK de HIP de AMD para Windows es un subconjunto del ROCm completo:
| Componente | Linux | Windows | Source |
|---|---|---|---|
| Runtime (HIP) | Código abierto | Código cerrado | Windows Support |
| Bibliotecas de IA (MIOpen, MIGraphX) | Con soporte | No disponible | Windows Support |
| Bibliotecas de comunicación (RCCL) | Con soporte | No disponible | Windows Support |
| Frameworks de IA (PyTorch, TensorFlow) | Con soporte | No disponible | Windows Support |
| Herramientas de portabilidad (HIPIFY) | Con soporte | Con soporte | Windows Support |
No puedes ejecutar Stable Diffusion a través de PyTorch en ROCm para Windows. Si tu intención es generar imágenes con IA en una GPU de AMD, Linux es el único camino viable.
En Linux, las ruedas de PyTorch para ROCm están disponibles para PyTorch 2.10.0–2.12.0, con Python 3.11–3.14, e incluyen extras específicos por objetivo GFX como [device-gfx1100] para las tarjetas de la serie RX 7900.
HiRes Fix: cómo funciona
HiRes Fix genera una imagen en la resolución base (normalmente 512×768), luego la amplía y la envía a una segunda pasada img2img. ComfyUI lo documenta así: "Hires fix is just creating an image at a lower resolution, upscaling it and then sending it through img2img."
Una configuración típica usa una fuerza de denoising de alrededor de 0,35, un factor de ampliación de 2× y un escalador en espacio de píxeles como 8x_NMKD-Superscale_150000_G. En la ampliación latente (el valor predeterminado de la WebUI), la imagen permanece en el espacio latente durante la ampliación. Para la ampliación basada en ESRGAN, la imagen debe convertirse del espacio latente al espacio de píxeles y volver.
ADetailer: corrección automática de rostros y manos
ADetailer automatiza el inpainting manual en tres pasos: (1) generar la imagen, (2) ejecutar un modelo de detección YOLO para localizar rostros, manos o personas y crear una máscara, y (3) hacer inpainting de la región enmascarada a la resolución completa de la imagen.
La idea clave: el inpainting de "solo lo enmascarado" a 512×768 regenera el rostro con una densidad de píxeles mucho mayor y luego lo reduce de nuevo. Por eso los rostros pequeños y deformados se vuelven nítidos después de que ADetailer los procesa. El umbral de confianza predeterminado es 0,3; para obtener los mejores resultados en rostros, activa "Inpaint only masked".
Cómo recortar VRAM en tarjetas limitadas
Estas técnicas reducen el consumo de VRAM independientemente del fabricante de la GPU:
- HiRes Fix divide la generación en dos pasadas a resolución más baja: la base a 512×768 y la pasada de ampliación a la resolución objetivo.
- ADetailer con área de inpainting limitada restringe el cálculo solo a la región enmascarada.
- Reducir la escala CFG (5 en lugar de 7–8) no reduce los cálculos por paso, porque CFG siempre ejecuta dos pasadas del modelo independientemente de la escala, pero puede reducir el pico de VRAM al producir valores de activación menos extremos. El efecto es moderado.
- Menos pasos (20–30 en lugar de 40 o más) reduce el VRAM-tiempo total durante la generación, lo que ayuda con la limitación térmica, pero no baja el pico de VRAM por paso.
Los indicadores --medvram y --lowvram de Automatic1111 se aplican a todos los backends de GPU y no son específicos de AMD.
Errores comunes y soluciones
Error: qt.qpa.plugin: Could not load the Qt platform plugin "xcb" en KDE
OpenCV incluye un plugin xcb en el entorno virtual de la WebUI que entra en conflicto con el Qt del sistema en KDE Plasma. Solución: elimina el archivo del plugin xcb en <venv>/lib/python3.11/site-packages/cv2/qt/plugins/platforms/libxcbqxcb.so y reinicia.
Error: xFormers was built for: PyTorch 2.2.0+cu121 with CUDA 1201 (you have 2.2.0+rocm5.7)
La rueda de pip apunta a CUDA, no a ROCm. El PR #978 añadió atención flash para los AMD Instinct MI2xx/MI3xx, pero las pruebas en Radeon de consumo están incompletas. Solución: clona el repositorio, cambia a la rama de ROCm y compila desde el código fuente con pip install -e ..
Preguntas frecuentes (FAQ)
¿Cómo ejecuto Stable Diffusion en una AMD RX 6650 XT con Linux?
La RX 6650 XT (gfx1032) no está en la matriz de soporte oficial de ROCm 7.14 (matriz de compatibilidad). Las compilaciones nocturnas de TheRock la incluyen (SUPPORTED_GPUS.md), pero son habilitadas por la comunidad y están sin verificar. Espera que la enumeración de dispositivos o el lanzamiento de kernels puedan fallar.
¿Cuál es el HSA_OVERRIDE_GFX_VERSION correcto para mi GPU de AMD?
La documentación oficial usa la notación de objetivo GFX (gfx1030, gfx1100, gfx1201) en lugar de decimales como 10.3.0 o 11.0.0. Usa el formato gfxNNNN que coincida con el objetivo LLVM de tu GPU según la matriz de compatibilidad de ROCm.
¿Funciona xformers en GPU de AMD de consumo?
El PR #978 añadió atención flash para ROCm, pero las pruebas se limitaron a los MI250x/MI300x (aceleradores Instinct). Un informe de usuario muestra a xformers fallando en una RX 6650 XT con errores de bibliotecas de CUDA. Los mantenedores de xformers no confirmaron el éxito en las tarjetas Radeon de consumo.
¿Puedo usar ROCm en Arch Linux?
Arch Linux no aparece entre las distribuciones con soporte. Las guías de la comunidad usan paquetes de AUR (rocm-hip-sdk, rocm-opencl-sdk) que no tienen soporte oficial de AMD.
¿HiRes Fix vs ampliación con img2img: cuál es la diferencia?
HiRes Fix integra la ampliación y la pasada img2img automáticamente después de la generación base. El img2img manual requiere generar a la resolución base, guardar, cargar en img2img y ejecutar una segunda generación. Los resultados son similares cuando se configuran de forma equivalente, pero HiRes Fix mantiene todo en un único flujo de trabajo.
¿ROCm es más rápido o más lento que CUDA?
No se encontraron benchmarks cuantitativos. El rendimiento depende del modelo de GPU, la capacidad de VRAM y la arquitectura del modelo. La documentación oficial de AMD no publica benchmarks comparativos de inferencia contra CUDA.