Saltar al contenido principal
Fundamentos y conceptos clave IA generativa~ 11 min de lectura
PorSergio Perea· intermedio

Modelos de Difusión: cómo la IA genera imágenes desde el ruido

Entiende los modelos de difusión sin matemáticas imposibles. Cómo Stable Diffusion, DALL-E y Midjourney transforman ruido aleatorio en fotografías.

difusión Stable DiffusionDALL-Egeneración de imágenesU-NetVAEintermedio

Respuesta rápida

Un modelo de difusión es una red neuronal entrenada para hacer exactamente lo contrario de lo que hace el ruido: en lugar de desordenar una imagen, la ordena. El truco consiste en entrenarla viendo miles de millones de ejemplos de "cómo se destruye una imagen con ruido", hasta que aprende a reconstruirla. Una vez entrenada, le das ruido puro y ella lo convierte en una foto. Stable Diffusion, DALL-E y Midjourney funcionan así.

La analogía de la gota de tinta

Imagina que dejas caer una gota de tinta en un vaso de agua. Con el tiempo, las moléculas se dispersan hasta que el agua se vuelve uniformemente gris. Eso es la difusión: un proceso físico donde el orden se convierte en caos.

Ahora imagina que pudieras grabar en vídeo esa gota expandiéndose, y luego reproducir la cinta al revés. Verías cómo el agua gris se condensa mágicamente en una gota perfecta. Físicamente es imposible (la entropía solo aumenta), pero matemáticamente sí se puede modelar.

Un modelo de difusión hace exactamente eso: aprende a rebobinar el ruido.

El proceso tiene dos fases:

  1. Difusión directa (forward): toma una imagen real y le añade ruido gaussiano paso a paso hasta convertirla en pura static.
  2. Difusión inversa (reverse): parte de ese ruido puro y va eliminándolo progresivamente hasta reconstruir una imagen coherente.

La difusión directa: destruir para aprender

La fase directa no requiere redes neuronales. Es un proceso determinista: en cada paso tt, le añades una pequeña cantidad de ruido gaussiano a la imagen del paso anterior.

Matemáticamente, cada paso se define como:

q(xtxt1)=N(xt    1βtxt1,  βtI)q(x_t \,|\, x_{t-1}) = \mathcal{N}\bigl(x_t \;\big|\; \sqrt{1 - \beta_t}\, x_{t-1}, \; \beta_t \mathbf{I}\bigr)

En palabras humanas: la imagen en el paso tt es una versión ligeramente escalada de la imagen anterior, más un ruido gaussiano cuya varianza crece con el tiempo según un calendario de ruido βt\beta_t.

Pasoβt\beta_tQué ocurre
t=1t = 110410^{-4}Casi imperceptible, la imagen sigue siendo ella misma
t=500t = 5000.01\approx 0.01Mitad imagen, mitad ruido. Aún se distinguen formas
t=1000t = 10000.020.02Pura static. Nada reconocible

El parámetro βt\beta_t aumenta monótonamente. Al principio se añade poco ruido para no destruir la estructura antes de que el modelo pueda aprender. Al final se acelera porque ya no importa: todo es caos.


El truco que lo hace viable

Calcular la difusión paso a paso sería lentísimo. Para entrenar necesitas millones de imágenes, y para cada una aplicar 1000 pasos de ruido sería inviable.

Aquí entra el truco de reparametrización. Resulta que, gracias a las propiedades de las cadenas de Markov y las distribuciones gaussianas, puedes saltar directamente al paso tt sin pasar por los anteriores:

xt=αˉtx0+1αˉtεx_t = \sqrt{\bar{\alpha}_t}\, x_0 + \sqrt{1 - \bar{\alpha}_t}\, \varepsilon

Donde:

  • x0x_0 es la imagen original limpia.
  • ε\varepsilon es ruido gaussiano puro.
  • αˉt=i=1t(1βi)\bar{\alpha}_t = \prod_{i=1}^{t}(1 - \beta_i) es un acumulado que indica cuánta "señal" original queda en el paso tt.

Cuando tt es pequeño, αˉt1\bar{\alpha}_t \approx 1 y casi no hay ruido. Cuando tt es grande, αˉt0\bar{\alpha}_t \approx 0 y solo queda ruido. Esta fórmula permite, en una sola operación, generar la versión ruidosa de cualquier imagen en cualquier paso. Eso hace el entrenamiento miles de veces más rápido.


La difusión inversa: donde ocurre la magia

La difusión inversa es donde el modelo neuronal entra en juego. Idealmente querríamos invertir exactamente el proceso directo:

q(xt1xt)q(x_{t-1} \,|\, x_t)

Pero eso es matemáticamente intratable. No sabemos cómo calcularlo directamente.

La solución elegante es no predecir la imagen, sino predecir el ruido. El modelo recibe como entrada la imagen ruidosa xtx_t y el número de paso tt, y debe estimar qué ruido ε\varepsilon se le añadió:

εθ(xt,t)ε\varepsilon_\theta(x_t, t) \approx \varepsilon

Una vez predicho el ruido, recuperas la imagen menos ruidosa restando:

xt1=1αt(xt1αt1αˉtεθ(xt,t))+σtzx_{t-1} = \frac{1}{\sqrt{\alpha_t}}\Bigl(x_t - \frac{1 - \alpha_t}{\sqrt{1 - \bar{\alpha}_t}}\, \varepsilon_\theta(x_t, t)\Bigr) + \sigma_t z

No hace falta memorizar esto. La intuición es: escalas la imagen ruidosa, le quitas el ruido estimado ponderado por el paso actual, y añades un poquito de ruido nuevo zz para mantener variedad en las generaciones.

La red que hace esta predicción suele ser una U-Net: una arquitectura en forma de U que comprime la imagen en representaciones abstractas y luego la expande, aprendiendo a filtrar ruido en múltiples escalas.

Las conexiones skip son clave: permiten que la información de alta resolución fluya directamente desde la parte de compresión a la de expansión, sin perder detalles.


¿Por qué es tan difícil generar una imagen de una vez?

Podrías preguntarte: ¿por qué no entrenar una red que vaya directamente de ruido a imagen en un solo paso? La respuesta es que el espacio de imágenes coherentes es una minúscula isla dentro de un océano inmenso de píxeles aleatorios.

Ir de ruido puro a una cara real en un solo salto es como intentar aterrizar un avión en una pista con los ojos vendados de una sola maniobra. En cambio, ir paso a paso —un poco menos de ruido cada vez— es como acercarte a la pista guiado por la torre de control en cada momento. Mucho más fácil de aprender.

Esa es la razón profunda por la que los modelos de difusión funcionan: descomponen un problema imposible en una cadena de problemas fáciles.


De píxeles a espacio latente: Stable Diffusion

Los modelos de difusión puros trabajan directamente sobre píxeles. Una imagen de 512×512 tiene 262.144 píxeles, y si es a color son 786.432 números. Aplicar difusión ahí es caro y lento.

Stable Diffusion revolucionó el campo con una idea simple: haz la difusión en un espacio comprimido.

Primero entrenas un VAE (Variational Autoencoder) que aprende dos funciones:

  • Encoder: comprime una imagen de 512×512 en un tensor latente de 64×64×4 (solo 16.384 números).
  • Decoder: reconstruye la imagen a partir de ese tensor.

El modelo de difusión trabaja sobre esos tensores latentes, no sobre píxeles. Eso reduce la carga computacional en un factor de 48, permitiendo generar imágenes en segundos en una GPU de consumo.


Cómo se controla qué se genera

Un modelo que genera imágenes aleatorias es un curioso, no una herramienta. Lo verdaderamente útil es poder decirle: "quiero un astronauta montando un caballo en la Luna, estilo acuarela".

Eso se logra mediante difusión condicionada. En lugar de predecir el ruido incondicionalmente, el modelo predice:

εθ(xt,t,y)\varepsilon_\theta(x_t, t, y)

Donde yy es una representación vectorial de tu descripción textual. Stable Diffusion usa CLIP, un modelo que aprendió a emparejar imágenes con textos. El texto del prompt se convierte en un vector de 768 o 1024 dimensiones, y ese vector se inyecta en cada capa de la U-Net mediante mecanismos de atención cruzada.

Técnicamente, la predicción se hace mediante orientación libre de clasificador (classifier-free guidance). El modelo aprende tanto a generar sin condición como con condición, y durante la inferencia se interpola entre ambos:

ε^=εunc+s(εcondεunc)\hat{\varepsilon} = \varepsilon_{\text{unc}} + s \cdot (\varepsilon_{\text{cond}} - \varepsilon_{\text{unc}})

El parámetro ss (escala de guía) controla cuánto obedeces al prompt:

  • s=1s = 1: generación libre, poco fiel al texto.
  • s=7s = 7-12: buen balance (el estándar en Stable Diffusion).
  • s>20s > 20: imágenes muy fieles al prompt pero a veces sobre-saturadas o artificiales.

Comparativa con otras arquitecturas generativas

Los modelos de difusión no son los únicos generadores. Veamos cómo se comparan:

AspectoGANVAEModelo de Difusión
CalidadMuy alta, pero inestableMedia, a menudo borrosaMuy alta, detalles finos
EntrenamientoDifícil (modo colapso)Estable y rápidoEstable pero lento (muchos pasos)
InferenciaUn solo paso, muy rápidaUn solo paso, rápida20-50 pasos, más lenta
DiversidadPuede repetir muestrasBuenaExcelente, cubre todo el espacio de datos
ControlLimitadoLimitadoMuy alto (texto, máscaras, profundidad...)

Las GANs dominaron durante años, pero sufren de modo colapso: el generador aprende a engañar al discriminador con unas pocas imágenes perfectas y deja de explorar variedad. Los modelos de difusión no tienen ese problema porque no compiten contra un discriminador: simplemente aprenden a eliminar ruido.


Más allá de las imágenes

Aunque son famosos por Stable Diffusion, los modelos de difusión están colonizando otros dominios:

  • Audio: Stable Audio o AudioLDM generan música y efectos de sonido desde descripciones textuales.
  • Video: Sora, Gen-3 o Stable Video Diffusion generan clips de video completos frame a frame.
  • Diseño de fármacos: generan moléculas 3D con propiedades específicas para nuevos medicamentos.
  • Texto: investigaciones recientes exploran difusión para generar lenguaje, como alternativa a los autoregresivos tipo GPT.

La idea es siempre la misma: convertir datos complejos en ruido, aprender a revertirlo, y usar condicionamiento para controlar el resultado.


Preguntas frecuentes

¿Por qué las imágenes de IA a veces tienen dedos raros?

Porque las manos son estructuras pequeñas, articuladas y raras en los datos de entrenamiento. La U-Net trabaja en múltiples resoluciones y los detalles finos (como los dedos) son los últimos en resolverse durante la difusión inversa. Con pocos pasos de inferencia, el modelo no ha tenido tiempo de refinarlos.

¿Cuántos pasos de difusión necesito?

Los modelos originales usaban 1000 pasos. Con técnicas modernas como DDIM o DPM-Solver, se reduce a 20-50 pasos con calidad casi idéntica. Menos pasos = más rápido, pero menos detalle. Más pasos = mejor calidad, hasta un punto de rendimientos decrecientes.

¿Puedo entrenar un modelo de difusión en mi portátil?

No desde cero: necesitas miles de GPUs durante semanas. Pero puedes hacer fine-tuning de Stable Diffusion con técnicas como DreamBooth o LoRA entrenando solo una capa pequeña. Con 10-20 imágenes de tu rostro y una GPU de 8GB, puedes crear un modelo que te dibuje como superhéroe en horas.

¿Qué es el negative prompt?

Es texto que describes para que no aparezca. Por ejemplo, si pides "un paisaje idílico" y en negativo pones "borroso, malas proporciones, texto, marca de agua", el modelo aprende a penalizar esas características. Técnicamente, resta la dirección del embedding negativo de la predicción condicionada.

¿Los modelos de difusión "memorizan" las imágenes de entrenamiento?

En raras ocasiones, sí. Si una imagen aparece miles de veces en el dataset (fotos famosas, logos), el modelo puede reproducirla casi exacta. Es un problema activo de investigación. La mayoría de las veces, sin embargo, genera interpolaciones estadísticas nuevas, no copias.


Relacionado: Si quieres entender la arquitectura de atención que también impulsa los generadores de texto a imagen, lee Transformadores: qué son, cómo funcionan y por qué lo cambiaron todo.

Sobre el autor

Sergio Perea — Fundador & Editor en Eurekadev
Sergio Perea· Fundador & Editor

Apasionado por la tecnología y la innovación, con más de 20 años de experiencia en desarrollo de software y consultoría tecnológica. Su trayectoria profesional comenzó en 2001 como programador, evolucionando desde entonces combinando su amor por el código con una sólida visión de negocio.

Ha trabajado tanto en España como en el extranjero, en sectores diversos como telecomunicaciones, banca, seguros y marketing digital. Esta experiencia multidisciplinar le permite entender los retos técnicos desde una perspectiva de negocio real.

Hoy aporta su experiencia asesorando en la modernización de procesos y la implementación de herramientas tecnológicas que optimizan la gestión y las relaciones con clientes. Se especializa en ayudar a equipos a integrar inteligencia artificial de forma práctica y responsable.

Cree firmemente en el aprendizaje continuo y que el verdadero progreso solo se logra creciendo juntos.