Conceitos
Difusão no espaço latente
Intuição
Imagine um artista que precisa pintar um quadro enorme: em vez de trabalhar cada pontinho de tinta desde o começo, ele primeiro faz um esboço menor que guarda só o que importa na cena, e só no fim amplia esse esboço para o quadro completo. Gerar imagens pode ficar bem mais barato assim, desde que o esboço não descarte o que importa: gastar esforço nos detalhes minúsculos que o olho quase não percebe é caro e pouco útil. Então o trabalho pesado de criar a imagem acontece no esboço comprimido, e um passo final reconstrói a imagem em tamanho cheio.
Como funciona
Modelos de difusão geram uma imagem aplicando em sequência muitos passos de remoção de ruído, e no espaço de pixels a rede e os gradientes precisam ser avaliados sobre todos os pixels em cada passo, o que torna treino e amostragem caros. A solução do paper é separar a compressão da geração: um autoencoder treinado à parte, com perda perceptual e objetivo adversarial baseado em patches (para evitar o borramento de usar só L1 ou L2), tem um codificador E que produz o latente z = E(x), com altura e largura reduzidas por um fator de downsampling f, e um decodificador D que reconstrói a imagem. Para impedir latentes de variância arbitrariamente alta, aplica-se uma leve penalidade KL (KL-reg.) ou uma camada de quantização vetorial no decodificador (VQ-reg.). O modelo de difusão então opera sobre zt, a versão ruidosa de z: uma UNet condicionada ao passo de tempo é treinada para prever o ruído, com perda de erro quadrático entre o ruído verdadeiro e o previsto. Como o latente mantém a estrutura espacial 2D, a UNet convolucional aproveita seus vieses indutivos de imagem e a compressão pode ser branda; na geração, uma amostra do latente é decodificada com uma única passada por D. Para condicionar a geração a uma entrada y (texto, layout, classe), um codificador τθ específico do domínio projeta y numa representação intermediária que fornece as chaves e os valores de camadas de cross-attention na UNet, enquanto as consultas vêm da representação intermediária da própria UNet; τθ e a UNet são otimizados em conjunto. Há um trade-off no fator f: com f pequeno (LDM-1, que é difusão em pixels, e LDM-2) o treino é lento, porque a compressão perceptual sobra para o modelo de difusão, e com f muito grande a fidelidade estagna porque o autoencoder perde informação demais.
Na prática
O paper relata que os fatores de LDM-4 a LDM-16 equilibram eficiência e fidelidade, e que LDM-4 e LDM-8 ofereceram as melhores condições para síntese de alta qualidade, com FID muito menor e maior vazão de amostras que a difusão em pixels nos testes com DDIM (conjuntos complexos como o ImageNet exigem compressões menores). Como o autoencoder é treinado uma única vez, ele pode ser reutilizado em vários treinamentos de difusão, e trocar a modalidade de condicionamento significa trocar o codificador τθ; o paper treina assim um modelo de texto para imagem de 1,45 bilhão de parâmetros no LAION-400M e também modelos condicionados a classe e a layout. Os próprios autores reconhecem os limites: a amostragem sequencial ainda é mais lenta que a de GANs, e a capacidade de reconstrução do autoencoder pode virar gargalo quando se exige precisão fina em pixels.
Use em um desenho
Pratique na escola de System Design os casos que dependem deste conceito.