Stable Diffusion
Stable Diffusion est la famille de modèles de diffusion latente à poids ouverts de Stability AI, qui génèrent et modifient des images à partir de descriptions textuelles sur des GPU grand public.
Stable Diffusion est une famille de modèles texte-image à poids ouverts de Stability AI, qui génèrent et modifient des images à partir de prompts en langage naturel. La première version, publiée en août 2022, est issue d’une collaboration avec le groupe CompVis de l’université LMU de Munich et Runway ; elle appliquait leurs travaux sur la diffusion latente à des images 512×512 provenant d’un sous-ensemble du jeu de données LAION-5B. Son U-Net de 860 millions de paramètres et son encodeur de texte de 123 millions de paramètres fonctionnaient sur un GPU grand public doté d’au moins 10 Go de mémoire. Comme chacun pouvait télécharger les poids, le modèle est devenu la base d’un vaste écosystème de modèles affinés, d’adaptateurs et d’outils de retouche. La version actuelle, Stable Diffusion 3.5 d’octobre 2024, remplace l’U-Net par un transformer de diffusion multimodal entraîné avec le flux rectifié.
Fonctionnement de Stable Diffusion#
Stable Diffusion est un modèle de diffusion qui débruite une image compressée plutôt que des pixels, à l’aide de trois réseaux :
- Autoencodeur variationnel (VAE) : L’encodeur compresse une image 512×512×3 en un latent 64×64×4, soit 48 fois moins de valeurs, et le décodeur transforme le latent final en image. Tout le débruitage s’effectue sur ce petit latent, ce qui explique pourquoi le modèle peut fonctionner sur du matériel grand public.
- Encodeur de texte : Convertit le prompt, qui peut contenir jusqu’à 77 jetons, en plongements. Stable Diffusion 1.x utilise CLIP ViT-L/14 d’OpenAI, CLIP ; la version 2.x utilise OpenCLIP ViT-H/14 ; SDXL combine deux encodeurs CLIP ; et Stable Diffusion 3 ajoute un modèle de langage T5-XXL aux deux encodeurs CLIP pour mieux comprendre les prompts.
- Réseau de débruitage : Prédit le bruit à supprimer à chaque étape. Les versions 1.x, 2.x et SDXL utilisent un U-Net dont les couches d’attention croisée permettent aux caractéristiques de l’image de prêter attention aux plongements textuels ; les versions 3 et 3.5 utilisent un MMDiT qui traite conjointement les jetons d’image et de texte.
La génération commence par un latent aléatoire de 64×64×4. Un ordonnanceur exécute le réseau de débruitage généralement pendant 20 à 50 étapes, en supprimant à chaque fois une partie du bruit prédit ; le guidage sans classifieur renforce l’influence du prompt. Le décodeur VAE produit ensuite l’image :
Comme le latent initial est aléatoire, le même prompt accompagné d’une graine différente produit une image différente, tandis que la même graine et les mêmes paramètres reproduisent l’image.
Versions des modèles#
- Stable Diffusion 1.x (2022) : Génération en 512×512 avec un U-Net de 860 millions de paramètres ; la version 1.5 est devenue une base courante pour les affinages de la communauté, et l’article sur ControlNet s’appuie sur elle. Les poids sont distribués sous la licence CreativeML OpenRAIL-M.
- Stable Diffusion 2.x (fin 2022) : Passage à l’encodeur de texte OpenCLIP et ajout d’un modèle 768×768.
- SDXL (juillet 2023) : Génération native en 1024×1024 avec un U-Net d’environ 2,6 milliards de paramètres et deux encodeurs de texte. SDXL Turbo, publié en novembre de la même année, utilise la distillation adversariale de diffusion pour générer une image en une seule étape.
- Stable Diffusion 3 et 3.5 (2024) : Remplacent l’U-Net par un transformer à flux rectifié doté de poids distincts pour les jetons d’image et de texte. Stable Diffusion 3.5 Large compte 8,1 milliards de paramètres, et 3.5 Medium en compte 2,5 milliards. La licence communautaire de Stability AI autorise l’utilisation commerciale gratuite pour les organisations dont le chiffre d’affaires annuel est inférieur à 1 million de dollars.
Retoucher des images avec Stable Diffusion#
- Image à image : Encode une image existante, lui ajoute du bruit jusqu’à une étape intermédiaire déterminée par une valeur d’intensité, puis la débruite avec un nouveau prompt. Le résultat conserve ainsi la composition et les couleurs de l’original tout en modifiant son style ou son contenu.
- Affinage : DreamBooth et LoRA adaptent le modèle à un nouveau sujet ou style à partir de quelques dizaines d’images ; ControlNet ajoute des cartes de contours, de profondeur ou de pose comme contraintes structurelles.
- Remplissage d’image : Régénère uniquement une zone masquée pour l’adapter à un prompt et à son environnement. Les points de contrôle de remplissage de Stable Diffusion ajoutent cinq canaux d’entrée à l’U-Net : quatre pour l’image masquée encodée et un pour le masque lui-même.
Les masques de remplissage sont blancs dans les zones de l’image à modifier et noirs dans celles à conserver. Les modèles de segmentation d’instances Ultralytics YOLO26 produisent automatiquement de tels masques, par exemple pour remplacer ou supprimer tous les véhicules d’une même classe dans une photo de rue :
import cv2
from ultralytics import YOLO
# Segmenter le bus (classe COCO 5) avec un modèle de segmentation d’instances YOLO26
model = YOLO("yolo26n-seg.pt")
results = model("https://ultralytics.com/images/bus.jpg", classes=[5], retina_masks=True)
result = results[0]
# Le blanc désigne les pixels que Stable Diffusion doit repeindre ; le noir, ceux qu’il conserve
mask = (result.masks.data.sum(dim=0) > 0).cpu().numpy().astype("uint8") * 255
cv2.imwrite("bus_inpaint_mask.png", mask)La photo enregistrée bus_inpaint_mask.png conserve sa résolution complète, car retina_masks=True renvoie les masques à la taille d’origine de l’image. À partir de la photo, de ce masque et d’un prompt tel que « un autobus rouge à impériale », un pipeline de remplissage régénère le bus tout en préservant la rue autour.
Applications concrètes#
- Données synthétiques pour les modèles de vision : Les équipes génèrent des images de défauts rares, de conditions météorologiques inhabituelles ou de points de vue peu courants pour combler les lacunes des jeux de données d’entraînement, et utilisent le remplissage pour ajouter de nouveaux objets à des arrière-plans réels.
- Art conceptuel et conception : Pendant les premières étapes de conception, les studios de jeux, les architectes et les concepteurs de produits explorent de nombreux styles et compositions en quelques minutes.
- Images marketing et de commerce en ligne : L’image à image et ControlNet conservent la forme d’un produit tout en permettant au prompt d’en modifier le décor, l’éclairage et l’arrière-plan.
Stable Diffusion et modèles apparentés#
- Modèles de diffusion latente : Stable Diffusion est l’implémentation la plus connue de l’architecture de diffusion latente ; tous les modèles Stable Diffusion sont donc des modèles de diffusion latente.
- GAN : Génèrent une image en une seule propagation avant, mais sont plus instables à entraîner et couvrent une moins grande variété. Stable Diffusion nécessite de nombreuses étapes de débruitage, sauf s’il est distillé, comme dans SDXL Turbo.
- Générateurs fermés : Des services comme les modèles d’image d’OpenAI et Midjourney fonctionnent uniquement sur les serveurs de leurs fournisseurs. Les poids de Stable Diffusion peuvent être téléchargés, exécutés hors ligne, inspectés et affinés.
- FLUX.1 : Fondée en 2024 par des chercheurs à l’origine de l’article initial sur la diffusion latente, dont Robin Rombach, Andreas Blattmann et Patrick Esser, Black Forest Labs a publié la famille FLUX.1, dotée de 12 milliards de paramètres et reposant sur la même approche de transformeur à flux rectifié que Stable Diffusion 3.










