ARQUITECTURA

Diffusion model

Modelo generativo que aprende a producir imágenes, vídeo o audio partiendo de ruido aleatorio y eliminándolo progresivamente paso a paso, guiado por un condicionamiento textual.

Nivel · avanzado6 min de lecturaActualizado 23 may 2026
También conocido como: Modelo de difusión, Latent diffusion, Score-based generative model

Definición

Un diffusion model o modelo de difusión es una arquitectura generativa que aprende a producir datos (imágenes, vídeo, audio, incluso texto en algunos casos experimentales) partiendo de ruido aleatorio puro y eliminándolo progresivamente paso a paso, hasta revelar el contenido deseado. El proceso es guiado típicamente por un condicionamiento, como un prompt de texto.

Es la arquitectura dominante detrás de la generación visual con IA: Stable Diffusion, Midjourney, DALL·E, Imagen, Sora (Open AI), Veo (Google), Flux. Mientras los LLMs reinan en texto con el paradigma autoregresivo (predicir el siguiente token), los diffusion models reinan en píxeles y muestras audio con el paradigma de denoising.

Esto es lo segundo más importante que ha pasado en deep learning después del transformer. Y a diferencia de los LLMs, donde el avance es incremental, los diffusion models llevan una explosión visual: en 4 años pasamos de imágenes borrosas y dedos imposibles a vídeo cinematográfico generado con un prompt.

Cómo funciona

El concepto teórico es contraintuitivo pero elegante:

  1. Forward process (entrenamiento): tomas una imagen real, le añades ruido gaussiano gradualmente en T pasos (típicamente 1000), hasta que queda ruido puro indistinguible. Has destruido la imagen.
  2. Backward process (lo que el modelo aprende): entrenas una red neuronal a predecir, en cada paso, qué ruido había que añadir para llegar ahí. Equivalentemente: aprende a quitar un poquito de ruido en cada paso.
  3. Inferencia: empiezas con ruido aleatorio puro, aplicas el modelo T veces (o menos con técnicas modernas), y al final tienes una imagen coherente.

La intuición clave: el modelo no aprende a "dibujar" — aprende a denoise (quitar ruido). Aplicado iterativamente desde ruido puro, eso equivale a generar desde cero.

Es similar a un escultor que parte de un bloque de mármol (ruido) y va eliminando lo que sobra hasta revelar la figura (imagen final).

Latent diffusion: el truco que lo hizo viable

El primer Stable Diffusion (2022) introdujo una innovación clave: en lugar de hacer denoising sobre la imagen en píxeles (que es carísimo computacionalmente, 1024×1024 = 1M valores), lo hace sobre un espacio latente comprimido:

  1. Autoencoder: una red comprime imágenes a un espacio latente pequeño (de 1024×1024×3 a 128×128×4 ≈ 100× menos datos).
  2. Diffusion en el latente: el modelo aprende denoising sobre esos vectores latentes, mucho más rápido.
  3. Decoder: al final, el decoder convierte el latente final de vuelta a píxeles.

Resultado: entrenamiento y inferencia mucho más eficientes. Sin esta optimización, generar imágenes a alta resolución en consumer GPUs sería imposible.

Condicionamiento textual

Para que el modelo no genere imágenes aleatorias sino la imagen que tú describes, se condiciona en el prompt:

  1. El texto se convierte en embeddings mediante un text encoder (típicamente CLIP en los primeros modelos, T5/Gemma en los modernos).
  2. Esos embeddings se inyectan en la red de denoising mediante cross-attention en cada capa.
  3. En cada paso de denoising, la red usa el embedding del prompt para "saber hacia dónde quitar ruido".

Variantes de condicionamiento:

  • Prompt textual: lo más común.
  • Imagen de referencia (img2img): empezar de una imagen parcialmente ruidosa para variarla.
  • Inpainting / outpainting: condicionar parte de la imagen y dejar al modelo rellenar.
  • ControlNet: condicionamiento adicional con bocetos, poses, profundidad, segmentación.
  • LoRA: adaptadores pequeños fine-tuneados para estilos o personajes concretos.

Pasos de inferencia: el trade-off velocidad/calidad

El modelo original usaba 1000 pasos. En 4 años se ha optimizado brutalmente:

  • DDPM (original): ~1000 pasos.
  • DDIM: 50-100 pasos con calidad similar.
  • DPM-Solver: 20-30 pasos.
  • Latent Consistency Models (LCM): 4-8 pasos.
  • SDXL Turbo, Flash: 1-4 pasos.
  • Modelos de "1 step" (Stable Diffusion 3.5 Turbo): 1 sola pasada.

Menos pasos = generación más rápida pero algo menos detallada. Para vídeo (donde cada frame es una imagen), reducir pasos es crítico para que sea computacionalmente viable.

Ejemplo práctico

Imagina pedir a Stable Diffusion 3.5: "director industrial en su almacén en Barcelona, atmósfera dorada al atardecer, estilo fotográfico".

  1. Text encoding: el prompt se procesa con un text encoder grande (T5 XXL en SD3.5) → embeddings.
  2. Inicialización: se genera un tensor de ruido aleatorio en el espacio latente (128×128×16 para SD3.5).
  3. Denoising loop (28 pasos típico):
    • Paso 1: el modelo, condicionado por el prompt, predice cuánto ruido quitar. Aplica la actualización.
    • Paso 2: el latente ya tiene estructura vagamente reconocible. Modelo predice qué quitar.
    • ...
    • Paso 28: el latente representa una imagen coherente del director en su almacén.
  4. Decoder: el latente se convierte a píxeles → imagen final 1024×1024.

Total: ~3-5 segundos en una GPU H100, ~15-30 segundos en una RTX 4090.

Diffusion vs autoregresivo

Las dos grandes familias de modelos generativos modernos:

CaracterísticaAutoregresivo (LLM)Diffusion
Mejor paraTexto, código, secuenciasImágenes, vídeo, audio
GeneraciónToken a token, secuencialParalela, denoising iterativo
Calidad visualLimitada (chararse pierde detalle)Excelente (denoising preserva textura)
ControlabilidadAlta vía promptAlta vía prompt + ControlNet
Velocidad por outputLineal en longitudLineal en número de pasos
Arquitectura subyacenteTransformer decoderU-Net o DiT (Diffusion Transformer)

Cada vez más se combinan: un transformer puede generar tokens visuales para un decoder de difusión, o un modelo de difusión puede generar texto en forma de imagen de píxeles. La frontera se difumina (juego de palabras intencionado).

DiT: cuando el transformer absorbió al diffusion

Los diffusion models tradicionales usan U-Net (red convolucional). En 2023, los Diffusion Transformers (DiT) demostraron que un transformer podía hacer mejor el trabajo. Hoy los modelos top (SD3, Flux, Sora, Veo) usan DiT en lugar de U-Net.

Esto es importante: significa que el transformer es la arquitectura universal de IA generativa moderna, tanto en autoregresivo (LLM) como en denoising (DiT diffusion).

Errores comunes al hablar de diffusion

  • Confundir el modelo con la aplicación: Midjourney usa un diffusion model propietario, pero el concepto es el mismo que Stable Diffusion.
  • Pensar que "genera desde cero": parte de ruido aleatorio que el modelo va estructurando guiado por el prompt.
  • Asumir determinismo: el seed determina la imagen. Mismo prompt + seed = misma imagen. Cambia el seed y obtienes variaciones.
  • Creer que entiende los prompts como un humano: el modelo asocia palabras a patrones visuales aprendidos, no las "comprende" semánticamente. Por eso prompts complejos a veces fallan.
  • Subestimar el coste computacional del vídeo: vídeo es N frames con coherencia temporal → muchísimo más caro que imagen.
  • Pensar que diffusion = solo imagen: hoy se usa también para audio (Stable Audio), vídeo (Sora), 3D (DreamFusion), e incluso texto (Mercury, Diffusion-LM).

Cuándo importa entender diffusion

Sí, conviene si:

  • Trabajas en producto que use generación de imagen, vídeo, audio o assets.
  • Entrenas o fine-tuneas modelos generativos (LoRA, DreamBooth).
  • Decides arquitectura para casos generativos visuales.
  • Quieres entender cómo se construyen tools como Midjourney, Sora, Runway.

Menos central si:

  • Solo consumes APIs de generación visual sin tocar internals.
  • Tu trabajo se centra en texto y NLP puro.

Referencias

Tagsiaarquitecturageneraciónmultimodal