Como um modelo cria uma imagem removendo ruído.

SRC·17 Source
Para criar uma imagem, ele parte de pura estática.

Para criar uma imagem, ele parte de pura estática.

Todo gerador de imagens esbarra no mesmo muro: um milhão de pixels que precisam concordar de uma vez. Os modelos de difusão escapam disso com uma jogada estranha — partem de uma tela de pura estática aleatória e a retiram, aos poucos, até que uma imagem que ninguém jamais viu surja ali. A primeira coisa que aprenderam não foi a criar. Foi a destruir.
Primeiro, a direção fácil: como arruinar uma imagem.

Primeiro, a direção fácil: como arruinar uma imagem.

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)
Reverter o caos é difícil; provocá-lo é trivial — então comece por aí. Pegue uma foto real e misture um pouco de ruído aleatório, passo após passo, até não sobrar nada além de neve cinza. Como uma gota de tinta em água parada: ela se espalha um pouco mais a cada instante, nunca se recolhe, até o copo virar um cinza uniforme. Em palavras simples: cada passo mantém um fio a menos da imagem e mistura um fio a mais de pura estática — minúsculo, exato e fácil de aprender.
Você pode pular para qualquer grau de ruína de uma só vez.

Você pode pular para qualquer grau de ruína de uma só 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})
Adicionar ruído passo a passo seria tedioso. Felizmente, todos esses passinhos se condensam em uma fórmula: qualquer versão com ruído é só o original abaixado e a pura estática elevada, misturados por um único botão. Como um tule translúcido corrido sobre um palco: quanto mais você o puxa, mais a cena se apaga e mais o branco domina — e o quanto você puxou é o único número de que precisa. Assim dá para pular para qualquer momento de deterioração de uma vez.
Agora o truque real: ensinar uma rede a ver a estática.

Agora o truque real: ensinar uma rede a ver a 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]
Aqui está toda a mágica. Você não separa a tinta com a mão — mas uma rede pode estimar o que foi misturado. Mostre a ela uma imagem com ruído e faça uma pergunta: que parte disto é a estática que eu adicionei? Avalie-a pelo quão perto está o palpite, ao longo de milhões de exemplos. Como um restaurador removendo a sujeira de um quadro antigo: ele não repinta a cena — aprende a enxergar só a sujeira, para que o que reste seja a imagem por baixo.
Por que centenas de passinhos, e não um grande salto?

Por que centenas de passinhos, e não um grande 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})
Se ela consegue ver o ruído, por que não tirar tudo de uma vez? Porque um único palpite gigante pede que ela imagine a imagem inteira a partir do cinza — demais. Então ela remove uma camada fina, olha de novo e repete, centenas de vezes. Em palavras simples: subtraia um pouco da estática prevista, misture um sopro de novo acaso, repita. Como um canteiro partindo granito: não um golpe brutal, mas uma fileira de batidas pequenas e seguras — cada uma fácil, e a pedra se abre certeira justamente porque nenhuma batida teve de fazer tudo.
Mas como ele desenha um gato e não… qualquer coisa?

Mas como ele desenha um gato e não… qualquer coisa?

ε~θ(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)
Por conta própria, a remoção de ruído deriva para alguma imagem plausível — não a sua. Então a cada passo você também entrega suas palavras e inclina o palpite dela na direção delas. O jeito mais limpo: comparar a remoção com o prompt à remoção às cegas e exagerar a diferença. Como um ímã sob uma folha de limalha de ferro: o prompt é o campo; aumente sua força e os grãos espalhados se alinham com mais ímpeto na forma que você nomeou.
Entra estática, sai uma imagem: a destruição ao contrário.

Entra estática, sai uma imagem: a destruição ao contrário.

Dê um passo atrás e veja o motor inteiro. Ele se ensinou a arruinar imagens, aprendeu a nomear a ruína e agora roda esse saber ao contrário — a partir de um campo novo de estática, guiado por suas palavras, um passo suave após o outro. Como uma cópia que emerge na bandeja de revelação: a folha em branco nunca esteve em branco; no banho certo, a seu tempo, a imagem simplesmente aflora. Nada foi desenhado. O ruído foi esculpido.
🌱 Ele criou a imagem… ou apenas a revelou?

🌱 Ele criou a imagem… ou apenas a revelou?

Mude a estática inicial e você obtém outra imagem; a mesma estática sempre dá a mesma. Assim, toda imagem que ele pode criar está, de certo modo, já implícita — dobrada em algum grão de ruído, esperando. Como um rosto que o escultor jura já estar dentro do mármore: remova o que não é ele, e lá está. Então o modelo cria estas imagens — ou apenas lapida tudo o que elas não são?
toque →deslize ↑ para maisdeslize ↓ para sair