EN JA ZH ES

Cómo funcionan los modelos de difusión - Análisis técnico de Stable Diffusion

· 9 min de lectura

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.

Artículos relacionados

Aplicaciones de GAN en imágenes - De la superresolución a la transferencia de estilo

Explicación sistemática de las aplicaciones prácticas de GAN en procesamiento de imágenes. Cubre superresolución, transferencia de estilo, restauración de imágenes, generación de rostros y soluciones de despliegue.

Cómo funciona la transferencia de estilo neuronal - Principios e implementación

Explicación detallada de la transferencia de estilo neuronal: desde la definición matemática de pérdida de contenido y estilo hasta la transferencia rápida y AdaIN, con guía de implementación en PyTorch.

Superresolución con aprendizaje profundo - De SRCNN a Real-ESRGAN

Análisis completo de la superresolución de imágenes con aprendizaje profundo, desde el trabajo pionero de SRCNN hasta el manejo de degradación real de Real-ESRGAN, con guía de despliegue práctico.

Comprendiendo el modelo CLIP y sus aplicaciones en búsqueda de imágenes

Conoce en profundidad el funcionamiento del modelo CLIP de OpenAI y cómo utilizarlo para construir sistemas de búsqueda de texto a imagen y clasificación zero-shot.

Aprendizaje por transferencia para clasificación de imágenes con datos limitados - Guía de Fine-tuning

Construye clasificadores de imágenes de alta precisión con solo 100 imágenes usando modelos preentrenados. Guía práctica de aprendizaje por transferencia con ejemplos de código PyTorch.

Tecnología de etiquetado automático de imágenes - Detección de objetos, reconocimiento de escenas y generación de subtítulos

Explicación de la tecnología de etiquetado automático de imágenes con IA. Cubre detección de objetos (YOLO), reconocimiento de escenas, generación de subtítulos de imágenes y su implementación en aplicaciones web con ejemplos prácticos.

Términos relacionados