Latent Diffusion Model (LDM)
Un modèle de diffusion latente (LDM) exécute la diffusion dans l’espace latent compressé d’un autoencodeur plutôt que sur les pixels ; c’est l’architecture à la base de Stable Diffusion.
Un modèle de diffusion latente (LDM) est un modèle de diffusion qui génère des données en débruitant une représentation compressée issue d’un autoencodeur préentraîné plutôt que des pixels bruts. Robin Rombach, Andreas Blattmann, Dominik Lorenz, Patrick Esser et Björn Ommer ont présenté cette approche dans High-Resolution Image Synthesis with Latent Diffusion Models, à CVPR 2022. L’autoencodeur élimine les détails fins des pixels, coûteux à modéliser et peu importants pour l’apparence d’une image ; le réseau de diffusion consacre donc sa capacité au contenu et à la composition. L’entraînement et l’échantillonnage coûtent ainsi bien moins cher qu’une diffusion dans l’espace des pixels, ce qui permet à Stable Diffusion, le LDM le plus connu, de générer des images sur un seul GPU grand public. La plupart des générateurs actuels d’images, de vidéos et d’audio en IA générative suivent cette même conception en deux étapes.
Fonctionnement de la diffusion latente#
La première étape compresse les images. Un encodeur transforme une image de taille H×W×3 en un espace latent de taille H/f×W/f×c, où f est le facteur de sous-échantillonnage et c le nombre de canaux latents ; un décodeur reconvertit les représentations latentes en pixels. Rombach et ses collègues ont entraîné cet autoencodeur avec une perte perceptuelle et un objectif antagoniste fondé sur des patches, comme le discriminateur d'un GAN, afin que les reconstructions restent nettes. Ils ont régularisé l'espace latent soit avec une faible pénalité KL vers une distribution normale standard, soit par quantification vectorielle. Des facteurs de sous-échantillonnage de 4 à 16 ont permis d'équilibrer vitesse et qualité : l'entraînement dans l'espace des pixels (f = 1) était lent, tandis que la compression à f = 32 faisait trop chuter la qualité des échantillons. L'autoencodeur de Stable Diffusion utilise f = 8 et 4 canaux ; ce code encode donc une photo, la décode à nouveau et mesure les pertes dues à cet aller-retour :
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")Il affiche image (1, 3, 640, 480) -> latent (1, 4, 80, 60): 48x fewer values et reconstruction PSNR: 23.0 dB. Le bus_reconstructed.jpg enregistré conserve le bus, les personnes et la rue, mais les petits caractères sur le côté du bus sont déformés : un espace latent à 4 canaux ne peut pas restituer ces détails fins.
La seconde étape est un modèle de diffusion standard entraîné sur ces représentations latentes. Pour l'entraînement, une image est encodée, du bruit gaussien est ajouté à une étape aléatoire, puis un réseau de débruitage — un U-Net dans les travaux d'origine et un transformer de diffusion dans la plupart des modèles récents — apprend à prédire ce bruit ou, dans les modèles à flux rectifié, la vitesse qui conduit du bruit vers la représentation latente propre. Les conditions sont injectées par des couches d'attention croisée qui permettent à la représentation latente de porter son attention sur les plongements d'une invite textuelle, d'une étiquette de classe ou d'une carte sémantique. La génération part d'un bruit latent aléatoire, le débruite étape par étape sous condition, puis exécute le décodeur une fois à la fin ; chaque étape coûteuse travaille ainsi sur la petite représentation latente.
De Stable Diffusion aux modèles actuels#
- Stable Diffusion : Lancé en août 2022, ce modèle a étendu la recette LDM à la génération de texte en image en 512×512 avec un espace latent de 64×64×4, un U-Net de 860 millions de paramètres et un encodeur de texte CLIP ; ses poids étaient librement téléchargeables.
- Stable Diffusion 3 : Est passé à un autoencodeur à 16 canaux, ce qui a fait passer le PSNR de reconstruction de 25.12 dB avec 4 canaux à 28.62 dB, et a remplacé le U-Net par un Transformer de diffusion multimodal entraîné avec un flux rectifié. Les modèles FLUX.1 de Black Forest Labs débruitent eux aussi des représentations latentes à 16 canaux avec un Transformer à flux rectifié.
- Vidéo et audio : Les générateurs vidéo compressent les clips dans l'espace et dans le temps ; OpenAI a décrit Sora comme compressant les vidéos dans un espace latent de dimension inférieure et les divisant en patches spatio-temporels. AudioLDM et Stable Audio de Stability AI appliquent la même approche aux représentations latentes de spectrogrammes ou de formes d'onde.
- Modèles de cohérence latente : Distillent un LDM afin qu'il génère en 2 à 4 étapes plutôt qu'en 20 à 50, ce qui rend possible une génération quasi instantanée.
Les LDM et les notions connexes#
- Modèles de diffusion dans l'espace des pixels : Effectuent le processus d'ajout et de retrait du bruit sur chaque pixel. Un LDM est lui aussi un modèle de diffusion ; seule la zone où se déroule le processus diffère.
- Autoencodeurs variationnels : Un VAE génère en décodant une représentation latente échantillonnée en un seul passage, et ses échantillons ont tendance à être flous. Un LDM n'utilise un autoencodeur de type VAE que pour la compression et confie la génération au modèle de diffusion.
- Stable Diffusion : Une famille de LDM de Stability AI, CompVis et Runway : tous les modèles Stable Diffusion sont donc des LDM, tandis que les LDM incluent également FLUX, des générateurs vidéo et des modèles audio.
Applications#
Les LDM alimentent la génération texte-image, le remplissage d’image, pour lequel l’article original avait alors établi un nouvel état de l’art, la super-résolution et la génération d’images à partir de plans sémantiques. En vision par ordinateur, ils produisent aussi des données synthétiques : défauts rares, météo inhabituelle ou points de vue difficiles à photographier. Les images générées ne sont pas étiquetées ; la fonction auto_annotate d’Ultralytics les étiquette dans un dossier en détectant les objets avec un modèle YOLO26 et en délimitant chaque boîte détectée avec un modèle de segmentation Meta SAM. Elle écrit ainsi des étiquettes de segmentation au format YOLO pour l’entraînement.










