Stable Diffusion: Principios de la generación de imágenes con IA
Al finalizar este tema
Comprenderá cómo funciona Stable Diffusion para generar imágenes a partir de texto y por qué se le denomina "difusión".
Se introduce texto y se genera una imagen
Si se introduce la frase "una ballena flotando sobre un mar al atardecer", aparecerá esa imagen 10 segundos después. No se ha buscado en Internet. Se ha creado una imagen que no existía previamente.
¿Cómo es posible? La clave reside en un modelo que ha aprendido a eliminar el ruido.
Principio de la difusión: adición y eliminación de ruido
El nombre "difusión" proviene de la física. Si se deja caer una gota de tinta en agua, esta se expande gradualmente hasta convertirse en un color uniforme; la forma original de la gota de tinta desaparece.
Stable Diffusion realiza este proceso en sentido inverso.
Durante el entrenamiento: se añade ruido progresivamente a una imagen limpia. Una foto de un gato se vuelve cada vez más borrosa hasta convertirse en ruido puro. El modelo aprende a predecir "la imagen menos ruidosa del paso anterior" a partir de ese ruido.
imagen limpia → ligeramente ruidosa → más ruidosa → ... → completamente ruidosa
← eliminación de ruido paso a paso (lo que el modelo aprende)Al generar: se comienza con ruido completo. El modelo elimina gradualmente el ruido. Tras decenas de iteraciones, aparece una imagen nítida. Es similar a encender la televisión: primero hay estática y luego la imagen se va volviendo cada vez más clara.
El texto guía la dirección
Si generamos una imagen a partir de ruido, podría salir cualquier imagen. El mensaje de texto proporciona dirección a este proceso.
Si se introduce "ballena", el modelo elimina el ruido "hacia ballenas". En cada paso, se consulta la información textual para guiar el resultado hacia algo que se parezca a una "ballena".
Esta conexión texto-imagen es responsabilidad del modelo CLIP. CLIP es un modelo entrenado para mapear textos e imágenes en el mismo espacio. Está diseñado para que el texto "ballena" y las imágenes de ballenas apunten en la misma dirección.
Por qué "Stable": el espacio latente
Procesar imágenes directamente requiere una cantidad enorme de cálculos. Una imagen de 512×512 píxeles tiene 260.000 píxeles y, con 3 canales RGB por píxel, implica manejar 780.000 números.
Stable Diffusion comprime las imágenes en un espacio latente. Reduce una imagen de 512×512 a una representación latente de tamaño 64×64. El tamaño se reduce 64 veces.
imagen (512×512) → codificador → representación latente (64×64) → proceso de difusión → decodificador → imagen (512×512)Al realizar la adición y eliminación de ruido en este pequeño espacio latente, los cálculos son mucho más rápidos. El nombre "Stable" indica que el aprendizaje converge de manera estable en este espacio latente.
Gracias a esto, es posible generar imágenes con GPUs convencionales como la RTX 3060. A diferencia de DALL-E o Midjourney, que solo funcionan en servidores en la nube, Stable Diffusion se puede ejecutar en tu propia computadora.
El poder del código abierto
La razón por la que Stable Diffusion se expandió rápidamente es porque es código abierto. Los pesos del modelo están disponibles públicamente, por lo que cualquiera puede descargarlos y ejecutarlos.
Esto ha permitido que la comunidad cree diversas extensiones:
LoRA: un método ligero para añadir aprendizaje de estilos o personajes específicos. Permite crear cosas como "estilo Ghibli" o "estilo acuarela" sin necesidad de volver a entrenar el modelo completo.
ControlNet: controla con precisión los resultados de la generación utilizando entradas como posturas, contornos y mapas de profundidad. Esto hace posible generar imágenes de "una persona en esta postura".
Inpainting: permite seleccionar una parte de la imagen y regenerar solo esa sección. Se puede cambiar el fondo o eliminar elementos no deseados.
Puntos clave
Stable Diffusion es un modelo que ha aprendido el proceso de restauración de imágenes a partir del ruido. El prompt de texto guía la dirección de la eliminación de ruido, y los cálculos en el espacio latente garantizan la velocidad. Al ser de código abierto, se puede ejecutar en una GPU local y cuenta con un rico ecosistema de extensiones como LoRA y ControlNet.