Cómo funcionan los modelos de difusión - Análisis técnico de Stable Diffusion
Fundamentos del modelo de difusión - Generación de imágenes mediante eliminación de ruido
Los modelos de difusión aprenden a generar imágenes mediante un proceso de difusión directa (añadiendo ruido gradualmente) y difusión inversa (eliminando ruido para recuperar imágenes). Propuestos como DDPM en 2020, logran una calidad de imagen superior y un entrenamiento estable en comparación con las GAN. Son la tecnología central detrás de los sistemas de generación de imágenes Stable Diffusion, DALL-E y Midjourney.
Difusión directa:
Añade gradualmente pequeño ruido gaussiano a la imagen original x0 durante T pasos. Cada paso sigue q(xt|xt-1) = N(xt; sqrt(1-βt)*xt-1, βt*I). Con T suficientemente grande (típicamente 1000), el resultado converge a ruido gaussiano puro N(0,I), destruyendo completamente la información de la imagen original.
Difusión inversa:
Una red neuronal predice el ruido en cada paso, eliminándolo progresivamente para recuperar imágenes. El modelo predice el ruido como εθ(xt, t) con una pérdida MSE simple: L = E[||ε - εθ(xt, t)||²]. Este objetivo simple permite un entrenamiento notablemente estable.
Comparación con GAN:
- Estabilidad del entrenamiento: las GAN sufren colapso de modos; los modelos de difusión se entrenan de forma estable
- Diversidad: los modelos de difusión cubren toda la distribución de datos generando muestras diversas
- Velocidad: las GAN generan en un solo paso; la difusión requiere decenas a cientos de pasos
Arquitectura U-Net y red de predicción de ruido
Las redes de predicción de ruido de los modelos de difusión utilizan de forma estándar la arquitectura U-Net. La estructura codificador-decodificador con conexiones de salto integra información multiescala para una predicción de ruido de alta calidad en diferentes niveles de ruido.
Estructura U-Net:
El codificador reduce progresivamente la resolución de las imágenes extrayendo características abstractas. El decodificador aumenta la resolución restaurándola, recibiendo características del codificador directamente mediante conexiones de salto. Stable Diffusion utiliza submuestreo y sobremuestreo de 4 etapas para un procesamiento eficiente multiresolución de representaciones latentes.
Incrustación del paso temporal:
El modelo de predicción de ruido recibe el paso temporal actual t como entrada. t se vectoriza mediante codificación posicional sinusoidal y se inyecta en cada bloque ResNet. Esto permite al modelo aprender cantidades de eliminación de ruido apropiadas correspondientes a diferentes niveles de ruido en cada paso de generación.
Integración de Self-Attention:
Añadir capas de Self-Attention a las capas intermedias de U-Net captura dependencias de largo alcance. Se aplica a mapas de características de resolución 16x16 y 32x32, permitiendo la generación de imágenes globalmente coherentes. El coste O(n²) se mantiene práctico al aplicarse solo a mapas de baja resolución.
Difusión latente - Arquitectura de Stable Diffusion
Stable Diffusion adopta el Modelo de Difusión Latente (LDM), ejecutando la difusión en el espacio latente en lugar del espacio de píxeles. Esto reduce drásticamente el coste computacional, permitiendo la generación de imágenes de alta calidad en GPU de consumo.
VAE:
Comprende un codificador que comprime imágenes al espacio latente y un decodificador que recupera imágenes. Comprime imágenes de 512×512 a representaciones latentes de 64×64×4, reduciendo las dimensiones espaciales en 1/64. La difusión opera en este espacio comprimido reduciendo drásticamente la computación.
Codificador de texto CLIP:
Vectoriza los prompts de texto inyectándolos en las capas de Cross-Attention de U-Net. El codificador de texto CLIP convierte los prompts en vectores de 77 tokens × 768 dimensiones, condicionando la generación de imágenes mediante Cross-Attention en cada capa.
Programadores de muestreo:
Reducen los pasos de inferencia de 1000 con DDPM a 50 con DDIM, 20 con DPM-Solver. Múltiples programadores (Euler, LMS, DPM++ 2M Karras) ofrecen diferentes compromisos velocidad-calidad para escenarios de despliegue flexibles.
Condicionamiento de texto y Classifier-Free Guidance
Las técnicas de condicionamiento de texto para generar imágenes responsivas a prompts y Classifier-Free Guidance (CFG) para mejorar la calidad de generación son componentes esenciales de los sistemas modernos de difusión texto-a-imagen.
Condicionamiento por Cross-Attention:
Cross-Attention en cada capa de U-Net calcula la atención con incrustaciones de texto como Key/Value y características de imagen como Query. Esto refleja la información semántica del texto en la generación. Para "a cat sitting on a red chair", los tokens se reflejan espacialmente en posiciones apropiadas en la imagen generada.
Classifier-Free Guidance:
Durante el entrenamiento, las condiciones de texto se eliminan con probabilidad 10-20% aprendiendo generación incondicional. En inferencia: ε_guided = ε_uncond + w × (ε_cond - ε_uncond). Mayor w aumenta la respuesta al prompt pero valores excesivos causan sobresaturación. w=7.5 es estándar para resultados equilibrados.
Prompt negativo:
Especificar elementos no deseados usa predicciones del prompt negativo en lugar de las incondicionales. Especificar "blurry, low quality" guía la generación lejos de esas características, mejorando efectivamente la calidad de salida mediante evitación dirigida.
Técnicas de aceleración - SDXL, LCM, Turbo
Las tecnologías que mejoran la velocidad de generación de los modelos de difusión avanzan rápidamente. La generación que antes requería 50 pasos ahora es alcanzable en 1-4 pasos, permitiendo aplicaciones interactivas en tiempo real.
SDXL:
Lanzado en 2023 por Stability AI. Pipeline de dos etapas (Base + Refiner) genera imágenes de 1024×1024. Codificadores de texto duales (OpenCLIP ViT-bigG y CLIP ViT-L) mejoran significativamente la comprensión de prompts respecto a SD 1.5.
LCM (Latent Consistency Models):
La destilación de consistencia logra generación de alta calidad en menos pasos. 4-8 pasos igualan la calidad de SD 1.5 a 50 pasos. Se proporciona como LoRA aplicable a modelos existentes sin reentrenamiento completo.
SDXL Turbo:
La Destilación de Difusión Adversarial permite generación en tiempo real de 1 paso. El discriminador GAN en la pérdida de destilación produce imágenes nítidas con pasos mínimos. 512×512 en ~200ms en RTX 3090.
Flash Diffusion:
Combina destilación de conocimiento con aprendizaje progresivo para generación de alta calidad en 4 pasos. Compatible con modelos LoRA personalizados existentes ofreciendo alta versatilidad para uso en producción.
Aplicaciones prácticas - ControlNet y modelos personalizados
Técnicas de control y personalización para la utilización práctica de modelos de difusión. Condiciones adicionales controlan la composición y poses difíciles de especificar solo mediante prompts de texto en flujos de trabajo creativos.
ControlNet:
Controla la generación con detección de bordes, mapas de profundidad, estimación de pose y mapas de segmentación. Copia el codificador U-Net creando una rama para condiciones adicionales. Los pesos originales se congelan, solo la rama ControlNet se entrena para adaptación eficiente a tareas específicas.
LoRA:
Ajuste fino que añade actualizaciones de bajo rango a matrices de pesos. Entrena solo unos pocos parámetros adicionales (rango=4-128) en lugar de todos. Menos del 1% de tamaño adicional aprende estilos/personajes, múltiples LoRA combinables para control creativo flexible.
IP-Adapter:
Transfiere el estilo de una imagen de referencia a nuevas imágenes. Inyecta la salida del codificador de imagen CLIP en Cross-Attention condicionando tanto en texto como en imagen. Intensidad de estilo ajustable con balance texto-imagen controlable.
Entorno de ejecución:
Se ejecuta mediante la biblioteca diffusers (Hugging Face). Se recomienda GPU con 8GB+ de VRAM con aceleración xformers/torch.compile. Herramientas GUI (ComfyUI, AUTOMATIC1111) proporcionan interfaces accesibles para profesionales creativos.