Latent Diffusion Model (LDM)
Um modelo de difusão latente (LDM) executa a difusão no espaço latente comprimido de um autoencoder, em vez de a executar nos píxeis; esta é a arquitetura por detrás do Stable Diffusion.
Um modelo de difusão latente (LDM) é um modelo de difusão que gera dados removendo ruído de uma representação comprimida por um autoencoder pré-treinado, em vez de usar pixels brutos. Robin Rombach, Andreas Blattmann, Dominik Lorenz, Patrick Esser e Björn Ommer apresentaram essa abordagem em High-Resolution Image Synthesis with Latent Diffusion Models, apresentado na CVPR 2022. O autoencoder remove detalhes finos de pixels, que são caros de modelar e pouco acrescentam à aparência da imagem, para que a rede de difusão concentre sua capacidade no conteúdo e na composição. Assim, o treinamento e a amostragem custam muito menos do que a difusão no espaço de pixels, permitindo que o Stable Diffusion, o LDM mais conhecido, gere imagens em uma única GPU de consumo. A maioria dos geradores atuais de imagem, vídeo e áudio em IA generativa segue o mesmo projeto em duas etapas.
Como funciona a difusão latente#
A primeira etapa comprime as imagens. Um codificador mapeia uma imagem de tamanho H×W×3 para um espaço latente de tamanho H/f×W/f×c, onde f é o fator de redução e c é o número de canais latentes; um decodificador mapeia os espaços latentes de volta para pixels. Rombach e colegas treinaram esse autoencoder com uma perda perceptual e um objetivo adversarial baseado em patches, como em um discriminador de GAN, para manter as reconstruções nítidas, e regularizaram o espaço latente com uma pequena penalidade KL em direção a uma distribuição normal padrão ou com quantização vetorial. Fatores de redução entre 4 e 16 equilibraram velocidade e qualidade: o treinamento no espaço de pixels (f = 1) era lento, e f = 32 comprimia tanto que a qualidade das amostras caía. O autoencoder do Stable Diffusion usa f = 8 e 4 canais; assim, este código codifica uma foto, decodifica-a novamente e mede o que se perde na conversão de ida e volta:
import urllib.request
import numpy as np
import torch
from diffusers import AutoencoderKL
from PIL import Image
# Stable Diffusion's autoencoder, the first stage of a latent diffusion model
vae = AutoencoderKL.from_pretrained("stabilityai/sd-vae-ft-mse")
# Load a photo and scale its pixels to [-1, 1]
image = Image.open(urllib.request.urlopen("https://ultralytics.com/images/bus.jpg")).convert("RGB").resize((480, 640))
x = torch.tensor(np.array(image), dtype=torch.float32).permute(2, 0, 1)[None] / 127.5 - 1
# Encode to the latent that diffusion runs on, then decode back to pixels
with torch.no_grad():
latent = vae.encode(x).latent_dist.mode()
recon = vae.decode(latent).sample.clamp(-1, 1)
psnr = 10 * torch.log10(4 / torch.mean((recon - x) ** 2))
print(f"image {tuple(x.shape)} -> latent {tuple(latent.shape)}: {x.numel() // latent.numel()}x fewer values")
print(f"reconstruction PSNR: {psnr:.1f} dB")
Image.fromarray(((recon[0] + 1) * 127.5).byte().permute(1, 2, 0).numpy()).save("bus_reconstructed.jpg")Ele imprime image (1, 3, 640, 480) -> latent (1, 4, 80, 60): 48x fewer values e reconstruction PSNR: 23.0 dB. O arquivo salvo bus_reconstructed.jpg preserva o ônibus, as pessoas e a rua, enquanto as letras pequenas na lateral do ônibus ficam distorcidas, pois um espaço latente de 4 canais não consegue reter esse nível de detalhe.
A segunda etapa é um modelo de difusão convencional treinado com essas representações latentes. O treinamento codifica uma imagem, adiciona ruído gaussiano em uma etapa aleatória e ensina uma rede de remoção de ruído — uma U-Net no trabalho original e um Transformer de difusão na maioria dos modelos mais recentes — a prever esse ruído ou, nos modelos de fluxo retificado, a velocidade que conduz o ruído em direção à representação latente limpa. As condições são introduzidas por camadas de atenção cruzada, que permitem que a representação latente preste atenção aos embeddings de um prompt de texto, de um rótulo de classe ou de um mapa semântico. A geração começa com ruído latente aleatório, remove o ruído passo a passo com base na condição e executa o decodificador uma única vez no final, de modo que cada etapa mais custosa opera sobre a representação latente compacta.
Do Stable Diffusion aos modelos atuais#
- Stable Diffusion: Lançado em agosto de 2022, ampliou a abordagem LDM para geração de texto para imagem em 512×512, com um espaço latente de 64×64×4, uma U-Net de 860 milhões de parâmetros e um codificador de texto CLIP, disponibilizando os pesos para download por qualquer pessoa.
- Stable Diffusion 3: Passou a usar um autoencoder com 16 canais, elevando o PSNR da reconstrução de 25.12 dB com 4 canais para 28.62 dB, e substituiu a U-Net por um Transformer de difusão multimodal treinado com fluxo retificado. Os modelos FLUX.1 da Black Forest Labs também removem o ruído de espaços latentes de 16 canais com um Transformer de fluxo retificado.
- Vídeo e áudio: Os geradores de vídeo comprimem clipes no espaço e no tempo, e a OpenAI descreveu o Sora como um sistema que comprime vídeos em um espaço latente de menor dimensão e o divide em patches espaço-temporais. O AudioLDM e o Stable Audio da Stability AI aplicam a mesma abordagem a espaços latentes de espectrogramas ou formas de onda.
- Modelos de consistência latente: Destilam um LDM para que gere em 2 a 4 etapas, em vez de 20 a 50, possibilitando a geração quase em tempo real.
LDMs e termos relacionados#
- Modelos de difusão no espaço de pixels: Executam o processo de adição e remoção de ruído em cada pixel. Um LDM também é um modelo de difusão; a única diferença é o espaço em que o processo ocorre.
- Autoencoders variacionais: Um VAE gera decodificando um espaço latente amostrado em uma única passagem, e suas amostras tendem a ficar desfocadas. Um LDM usa um autoencoder no estilo VAE apenas para compressão e deixa a geração a cargo do modelo de difusão.
- Stable Diffusion: Uma família de LDMs da Stability AI, CompVis e Runway; portanto, todos os modelos Stable Diffusion são LDMs, embora os LDMs também incluam FLUX, geradores de vídeo e modelos de áudio.
Aplicações#
Os LDMs viabilizam a geração de texto para imagem, o preenchimento de imagens — em que o artigo original estabeleceu um novo estado da arte na época —, a super-resolução e a geração de imagens a partir de mapas semânticos. Em visão computacional, também produzem dados sintéticos: defeitos raros, condições meteorológicas incomuns ou pontos de vista difíceis de fotografar. As imagens geradas não vêm rotuladas, e a função auto_annotate da Ultralytics rotula uma pasta com elas, detectando objetos com um modelo YOLO26 e contornando cada caixa detectada com um modelo de segmentação Meta SAM, gravando rótulos de segmentação no formato YOLO para treinamento.










