Cómo un modelo crea una imagen quitando ruido.

SRC·17 Source
Para crear una imagen, parte de pura estática.

Para crear una imagen, parte de pura estática.

Todo generador de imágenes choca con el mismo muro: un millón de píxeles que deben concordar a la vez. Los modelos de difusión lo esquivan con una jugada extraña: parten de una pantalla de pura estática aleatoria y la van quitando, poco a poco, hasta que aparece una imagen que nadie ha visto jamás. Lo primero que aprendieron no fue a crear. Fue a destruir.
Primero, la dirección fácil: cómo arruinar una imagen.

Primero, la dirección fácil: cómo arruinar una imagen.

q(xtxt1)=N ⁣(xt; 1βtxt1, βtI)q(x_t \mid x_{t-1}) = \mathcal{N}\!\left(x_t;\ \sqrt{1-\beta_t}\,x_{t-1},\ \beta_t \mathbf{I}\right)
Revertir el caos es difícil; provocarlo es trivial, así que empieza por ahí. Toma una foto real y mézclale un poco de ruido aleatorio, paso tras paso, hasta que solo quede nieve gris. Como una gota de tinta en agua quieta: se esparce un poco más a cada instante, nunca se recoge, hasta que el vaso es un gris uniforme. En palabras llanas: cada paso conserva un pelín menos de la imagen y mezcla un pelín más de pura estática: minúsculo, exacto y fácil de aprender.
Puedes saltar a cualquier grado de ruina de una sola vez.

Puedes saltar a cualquier grado de ruina de una sola vez.

xt=αˉtx0+1αˉtε,εN(0,I)x_t = \sqrt{\bar{\alpha}_t}\,x_0 + \sqrt{1-\bar{\alpha}_t}\,\varepsilon, \quad \varepsilon \sim \mathcal{N}(0, \mathbf{I})
Añadir ruido paso a paso sería tedioso. Por suerte, todos esos pasitos se condensan en una fórmula: cualquier versión con ruido es solo el original bajado y la pura estática subida, mezclados con una única perilla. Como un telón translúcido corrido sobre un escenario: cuanto más lo tiras, más se atenúa la escena y más gana el blanco; y cuánto lo has tirado es el único número que necesitas. Así puedes saltar a cualquier momento de deterioro de golpe.
Ahora el truco real: enseñar a una red a ver la estática.

Ahora el truco real: enseñar a una red a ver la estática.

Lsimple=Ex0,ε,t[εεθ(xt,t)2]\mathcal{L}_{\text{simple}} = \mathbb{E}_{x_0,\,\varepsilon,\,t}\left[\,\left\lVert \varepsilon - \varepsilon_\theta(x_t,\,t) \right\rVert^2\,\right]
Aquí está toda la magia. No puedes separar la tinta a mano, pero una red puede estimar lo que se mezcló. Muéstrale una imagen con ruido y hazle una pregunta: ¿qué parte de esto es la estática que añadí? Califícala según lo cerca que ande su conjetura, en millones de ejemplos. Como un restaurador levantando la mugre de un cuadro antiguo: no repinta la escena; aprende a ver solo la suciedad, para que lo que quede sea la imagen de debajo.
¿Por qué cientos de pasitos y no un gran salto?

¿Por qué cientos de pasitos y no un gran salto?

xt1=1αt(xt1αt1αˉtεθ(xt,t))+σtz,zN(0,I)x_{t-1} = \frac{1}{\sqrt{\alpha_t}}\left(x_t - \frac{1-\alpha_t}{\sqrt{1-\bar{\alpha}_t}}\,\varepsilon_\theta(x_t,\,t)\right) + \sigma_t z, \quad z \sim \mathcal{N}(0, \mathbf{I})
Si puede ver el ruido, ¿por qué no quitarlo todo de una? Porque una única conjetura gigante le pide imaginar la imagen entera desde el gris: demasiado. Así que quita una capa fina, vuelve a mirar y repite, cientos de veces. En palabras llanas: resta un poco de la estática predicha, mezcla un susurro de azar nuevo, repite. Como un cantero partiendo granito: no un golpe brutal, sino una hilera de toques pequeños y seguros; cada uno fácil, y la piedra se abre limpia justo porque ningún golpe tuvo que hacerlo todo.
¿Y cómo dibuja un gato y no… cualquier cosa?

¿Y cómo dibuja un gato y no… cualquier cosa?

ε~θ(xt,c)=εθ(xt,)+w(εθ(xt,c)εθ(xt,))\tilde{\varepsilon}_\theta(x_t, c) = \varepsilon_\theta(x_t, \varnothing) + w\left(\varepsilon_\theta(x_t, c) - \varepsilon_\theta(x_t, \varnothing)\right)
A su aire, el quitado de ruido deriva hacia alguna imagen plausible, no la tuya. Así que en cada paso le entregas también tus palabras y inclinas su conjetura hacia ellas. La forma más limpia: comparar su quitado con la indicación frente a su quitado a ciegas, y exagerar la diferencia. Como un imán bajo una lámina de limaduras de hierro: la indicación es el campo; sube su fuerza y los granos dispersos se cuadran con más ímpetu en la forma que nombraste.
Entra estática, sale una imagen: la destrucción al revés.

Entra estática, sale una imagen: la destrucción al revés.

Da un paso atrás y mira el motor entero. Se enseñó a arruinar imágenes, aprendió a nombrar la ruina y ahora corre ese saber al revés: desde un campo nuevo de estática, guiado por tus palabras, un paso suave tras otro. Como una copia que emerge en la cubeta de revelado: la hoja en blanco nunca estuvo en blanco; en el baño adecuado, a su tiempo, la imagen simplemente aflora. No se dibujó nada. Se esculpió el ruido.
🌱 ¿Creó la imagen… o solo la descubrió?

🌱 ¿Creó la imagen… o solo la descubrió?

Cambia la estática inicial y obtienes otra imagen; la misma estática da siempre la misma. Así, toda imagen que puede crear está, en cierto modo, ya implícita: plegada en algún grano de ruido, esperando. Como un rostro que el escultor jura que ya está dentro del mármol: quita lo que no es él, y ahí queda. Entonces, ¿el modelo crea estas imágenes, o solo talla todo lo que ellas no son?
toca →desliza ↑ para másdesliza ↓ para salir