Stable Diffusion: Una guía para principiantes en 2026
Ejecutar SDXL a altas resoluciones en hardware de consumo puede ser un verdadero problema. Esta guía le pone en marcha con Stable Diffusion utilizando ComfyUI, centrándose en las técnicas para mitigar las limitaciones de VRAM. Cubriremos la instalación, la configuración del modelo y las estrategias prácticas de optimización, particularmente para aquellos de nosotros que no tenemos las GPUs más modernas. [00:00]
¿Qué es Stable Diffusion?
Stable Diffusion es un potente modelo de aprendizaje profundo de código abierto que genera imágenes detalladas a partir de indicaciones de texto. Ofrece control creativo y se utiliza ampliamente para la generación de arte con IA, la edición de imágenes y diversas aplicaciones de investigación. A diferencia de algunas alternativas de código cerrado, la naturaleza abierta de Stable Diffusion permite una amplia personalización y un desarrollo impulsado por la comunidad.
Stable Diffusion es un modelo de difusión latente. Esto significa que opera en un espacio latente comprimido, lo que lo hace computacionalmente más eficiente que los enfoques basados en píxeles. Consta de varios componentes clave: un codificador de texto (por ejemplo, CLIP), un modelo de difusión (UNet) y un VAE (Autoencoder Variacional).
El codificador de texto transforma la indicación de entrada en una representación numérica.
El modelo de difusión añade iterativamente ruido a una imagen durante el proceso de avance, y luego aprende a invertir este proceso para generar imágenes a partir del ruido.
El VAE se utiliza para codificar imágenes en el espacio latente y decodificarlas de nuevo en el espacio de píxeles.
Instalación de Python
Se requiere Python para ejecutar Stable Diffusion. Asegúrese de tener instalado Python 3.10 o superior. Es una buena práctica utilizar un entorno virtual para gestionar las dependencias y evitar conflictos con otros proyectos de Python.
Descargue Python del sitio web oficial: www.python.org/downloads/"https://www.python.org/downloads/
Durante la instalación, asegúrese de seleccionar la opción para añadir Python a su PATH.
Una vez instalado, cree un entorno virtual:
bash
python -m venv venv
Active el entorno virtual:
bash
Windows
.\venv\Scripts\activate
Linux/macOS
source venv/bin/activate
!Figura: Captura de pantalla de la instalación de Python en 01:50
Figura: Captura de pantalla de la instalación de Python en 01:50 (Fuente: Vídeo)*
Análisis técnico
Python sirve como lenguaje fundamental para ejecutar Stable Diffusion y sus interfaces de usuario asociadas como ComfyUI. El entorno virtual aísla las dependencias del proyecto, evitando conflictos con otras instalaciones de Python en su sistema. El uso de un entorno virtual es una regla de oro para cualquier proyecto serio de Python.
Descarga del modelo SDXL
SDXL es el modelo de generación de imágenes más reciente y mejor de Stability AI. Produce imágenes de mayor resolución y más detalladas en comparación con las versiones anteriores. Tendrá que descargar el modelo base SDXL para empezar.
Descargue el archivo stable-diffusion-xl-base-1.0.safetensors de Hugging Face: https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0
Análisis técnico
El modelo SDXL contiene los pesos y parámetros aprendidos durante el proceso de entrenamiento. El formato .safetensors es una alternativa segura a .ckpt, que evita la ejecución de código malicioso. La descarga del modelo es un requisito previo para generar imágenes con Stable Diffusion.
Descarga y lanzamiento de ComfyUI
ComfyUI es una interfaz basada en nodos para Stable Diffusion que ofrece una flexibilidad y un control incomparables. Le permite diseñar flujos de trabajo personalizados conectando nodos individuales, cada uno de los cuales realiza una tarea específica.
Descargue ComfyUI de GitHub: https://github.com/comfyanonymous/ComfyUI
Extraiga el archivo descargado a un directorio de su elección.
Copie el archivo stable-diffusion-xl-base-1.0.safetensors en el directorio ComfyUI/models/Stable-diffusion.
Ejecute runnvidiagpu.bat (o el script apropiado para su sistema) para iniciar ComfyUI.
!Figura: Captura de pantalla de la interfaz de ComfyUI en 07:10
Figura: Captura de pantalla de la interfaz de ComfyUI en 07:10 (Fuente: Vídeo)*
Análisis técnico
El enfoque basado en nodos de ComfyUI permite un control granular sobre el proceso de generación de imágenes. Esta es una gran ventaja para la investigación y la experimentación. Al conectar diferentes nodos, puede crear flujos de trabajo complejos adaptados a tareas específicas. Herramientas como Promptus simplifican la creación de prototipos de estos flujos de trabajo.
Resultados de mis pruebas de laboratorio
Realicé algunas pruebas en mi 4090 para hacerme una idea del rendimiento con SDXL y ComfyUI.
Prueba A (SDXL base, 1024x1024):** 14 segundos de renderizado, 11,8 GB de VRAM máxima.
Prueba B (SDXL base, 1024x1024, SageAttention):** 18 segundos de renderizado, 9,5 GB de VRAM máxima.
Prueba C (SDXL base, 1024x1024, VAE en mosaico):** 15 segundos de renderizado, 7 GB de VRAM máxima.
Prueba D (SDXL base, 1024x1024, SageAttention + VAE en mosaico):** 20 segundos de renderizado, 5,5 GB de VRAM máxima.
Sage Attention ahorra VRAM, pero puede introducir sutiles artefactos de textura en CFG alto. La decodificación VAE en mosaico reduce significativamente el uso de VRAM con un impacto mínimo en el rendimiento. La combinación de ambas técnicas proporciona el mayor ahorro de VRAM, pero también el tiempo de renderizado más lento.
Técnicas de optimización de VRAM
Ejecutar SDXL en hardware de gama baja requiere una optimización cuidadosa. Aquí hay algunas técnicas para reducir el uso de VRAM:
Decodificación VAE en mosaico
La decodificación VAE en mosaico procesa la imagen en mosaicos más pequeños, lo que reduce significativamente el uso de VRAM. Las pruebas de la comunidad en X muestran que la superposición de mosaicos de 64 píxeles reduce las uniones.
Para habilitar la decodificación VAE en mosaico en ComfyUI, tendrá que modificar su flujo de trabajo para utilizar los nodos VAEEncodeForInpaint y VAEDecodeTiled.
Así es como debería verse el gráfico de nodos:
- Cargue su VAE utilizando un nodo
Load VAE. - Codifique la imagen latente utilizando
VAEEncodeForInpaint. Establezca el parámetrotile_sizeen 512 yoverlapen 64. - Decodifique el latente en mosaico utilizando
VAEDecodeTiled. - Conecte la salida de
VAEDecodeTileda su nodoSave Image.
Esta técnica puede reducir el uso de VRAM hasta en un 50%, lo que le permite generar imágenes más grandes en tarjetas con memoria limitada.
Sage Attention
Sage Attention es un mecanismo de atención de memoria eficiente que puede reemplazar el mecanismo de atención