Qu’est ce que Stable Diffusion
![]() Une image générée par Stable Diffusion basée sur l’invite de texte « une photographie d’un astronaute à cheval »
|
|
Développeur(s) | groupe CompVis LMU Munich; Piste; IA de stabilité [1] |
---|---|
Première version | 22 août 2022 |
Version stable | |
Dépôt | github |
Écrit en | Python |
Système opérateur | Tous ceux qui prennent en charge les noyaux CUDA |
Taper | Modèle texte-image |
Licence | Creative ML OpenRAIL-M |
Site Internet | stabilité |
Stable Diffusion est un modèle de diffusion latente , une variété de réseaux de neurones génératifs profonds développés par le groupe CompVis au LMU Munich . [4] Le modèle a été publié par une collaboration de Stability AI, CompVis LMU et Runway avec le soutien d’EleutherAI et LAION . [5] [1] [6] En octobre 2022, Stability AI a levé 101 millions de dollars américains lors d’une ronde menée par Lightspeed Venture Partners et Coatue Management . [7]
Le code et les poids des modèles de Stable Diffusion ont été rendus publics [8] et il peut fonctionner sur la plupart des matériels grand public équipés d’un GPU modeste avec au moins 8 Go de VRAM . Cela a marqué une rupture avec les anciens modèles propriétaires de texte en image tels que DALL-E et Midjourney , qui n’étaient accessibles que via des services cloud . [9] [10]
Technologie

Architecture
La diffusion stable utilise une variante du modèle de diffusion (DM), appelée modèle de diffusion latente (LDM). [1] Introduits en 2015, les modèles de diffusion sont entraînés dans le but de supprimer les applications successives de bruit gaussien sur des images d’entraînement qui peuvent être considérées comme une séquence d’auto-encodeurs de débruitage . Stable Diffusion se compose de 3 parties : l’ auto- encodeur variationnel (VAE), U-Net et un encodeur de texte en option. [11] L’encodeur VAE comprime l’image de l’espace pixel vers un espace latent dimensionnel plus petit , capturant une signification sémantique plus fondamentale de l’image. [12]Le bruit gaussien est appliqué de manière itérative à la représentation latente compressée pendant la diffusion vers l’avant. [11] Le bloc U-Net, composé d’une dorsale ResNet , débruite la sortie de la diffusion avant vers l’arrière pour obtenir une représentation latente. Enfin, le décodeur VAE génère l’image finale en reconvertissant la représentation en espace pixel. [11] L’étape de débruitage peut être conditionnée de manière flexible sur une chaîne de texte, une image et d’autres modalités. Les données de conditionnement codées sont exposées à des U-Nets de débruitage via un mécanisme d’attention croisée . [11] Pour le conditionnement sur le texte, l’encodeur de texte CLIP ViT-L/14 fixe et pré-entraîné est utilisé pour transformer les invites de texte en un espace d’intégration.[1] Les chercheurs indiquent que l’efficacité de calcul accrue pour la formation et la génération est un avantage des LDM. [13] [14]
Données d’entraînement
Stable Diffusion a été formé sur des paires d’images et de légendes extraites de LAION-5B, un ensemble de données accessible au public dérivé de données Common Crawl extraites du Web, où 5 milliards de paires image-texte ont été classées en fonction de la langue, filtrées dans des ensembles de données séparés par résolution, une probabilité prédite de contenir un filigrane, et un score « esthétique » prédit (par exemple une qualité visuelle subjective). [15] L’ensemble de données a été créé par LAION , une organisation à but non lucratif allemande qui reçoit un financement de Stability AI. [15] [16] Le modèle de diffusion stable a été formé sur trois sous-ensembles de LAION-5B : laion2B-en, laion-haute résolution et laion-aesthetics v2 5+. [15]Une analyse tierce des données de formation du modèle a identifié que sur un plus petit sous-ensemble de 12 millions d’images extraites de l’ensemble de données original plus large utilisé, environ 47 % de la taille de l’échantillon d’images provenaient de 100 domaines différents, Pinterest prenant 8,5 % du sous-ensemble, suivi de sites Web tels que WordPress , Blogspot , Flickr , DeviantArt et Wikimedia Commons . [17] [15]
Procédures de formation
Le modèle a été initialement formé sur les sous-ensembles laion2B-en et laion-haute résolution, avec les dernières séries de formation effectuées sur LAION-Aesthetics v2 5+, un sous-ensemble de 600 millions d’images sous-titrées que le LAION-Aesthetics Predictor V2 a prédit que les humains donneraient, en moyenne, une note d’au moins 5 sur 10 lorsqu’on leur demandait d’évaluer à quel point ils les aimaient. [18] [15] [19] Le sous-ensemble LAION-Aesthetics v2 5+ excluait également les images à basse résolution et les images que LAION-5B-WatermarkDetection a identifiées comme portant un filigrane avec une probabilité supérieure à 80 %. [15] Les derniers cycles de formation ont également supprimé 10 % du conditionnement du texte pour améliorer le guidage de diffusion sans classificateur. [20]
Le modèle a été formé à l’aide de 256 GPU Nvidia A100 sur Amazon Web Services pour un total de 150 000 heures GPU, pour un coût de 600 000 $. [21] [22] [23]
Limites
Stable Diffusion a des problèmes de dégradation et d’inexactitudes dans certains scénarios. Les versions initiales du modèle ont été formées sur un ensemble de données composé d’images de résolution 512 × 512, ce qui signifie que la qualité des images générées se dégrade sensiblement lorsque les spécifications de l’utilisateur s’écartent de sa résolution 512 × 512 « attendue » ; [24] la mise à jour de la version 2.0 du modèle de diffusion stable a introduit plus tard la possibilité de générer nativement des images à une résolution de 768 × 768. [25] Un autre défi consiste à générer des membres humains en raison de la mauvaise qualité des données des membres dans la base de données LAION. [26]Le modèle n’est pas suffisamment formé pour comprendre les membres et les visages humains en raison du manque de caractéristiques représentatives dans la base de données, et inciter le modèle à générer des images de ce type peut confondre le modèle. [27]
L’accessibilité pour les développeurs individuels peut également être un problème. Afin de personnaliser le modèle pour de nouveaux cas d’utilisation qui ne sont pas inclus dans l’ensemble de données, tels que la génération de personnages d’ anime (« diffusion waifu »), [28] de nouvelles données et une formation supplémentaire sont nécessaires. Des adaptations affinées de la diffusion stable créées par un recyclage supplémentaire ont été utilisées pour une variété de cas d’utilisation différents, de l’imagerie médicale [29] à la musique générée par algorithme . [30]Cependant, ce processus d’affinement est sensible à la qualité des nouvelles données ; des images à faible résolution ou des résolutions différentes des données d’origine peuvent non seulement échouer à apprendre la nouvelle tâche, mais dégrader les performances globales du modèle. Même lorsque le modèle est en outre formé sur des images de haute qualité, il est difficile pour les individus d’exécuter des modèles dans l’électronique grand public. Par exemple, le processus de formation pour waifu-diffusion nécessite un minimum de 30 Go de VRAM , [31] ce qui dépasse la ressource habituelle fournie dans les GPU grand public, tels que la série GeForce 30 de Nvidia ayant environ 12 Go. [32]
Les créateurs de Stable Diffusion reconnaissent le potentiel de biais algorithmique , car le modèle a été principalement formé sur des images avec des descriptions en anglais. [22] En conséquence, les images générées renforcent les préjugés sociaux et sont d’un point de vue occidental car les créateurs notent que le modèle manque de données provenant d’autres communautés et cultures. Le modèle donne des résultats plus précis pour les invites écrites en anglais par rapport à celles écrites dans d’autres langues, les cultures occidentales ou blanches étant souvent la représentation par défaut. [22]
Réglage fin de l’utilisateur final
Pour répondre aux limites de la formation initiale du modèle, les utilisateurs finaux peuvent choisir de mettre en œuvre une formation supplémentaire dans le but d’affiner les sorties de génération pour correspondre à des cas d’utilisation plus spécifiques. Il existe trois méthodes dans lesquelles un réglage fin accessible à l’utilisateur peut être appliqué à un point de contrôle de modèle de diffusion stable :
- Une « intégration » peut être formée à partir d’une collection d’images fournies par l’utilisateur et permet au modèle de générer des images visuellement similaires chaque fois que le nom de l’intégration est utilisé dans une invite de génération. [33] Les incorporations sont basées sur le concept « d’inversion textuelle » développé par des chercheurs de l’Université de Tel Aviv en 2022 avec le soutien de Nvidia , où les représentations vectorielles de jetons spécifiques utilisés par l’encodeur de texte du modèle sont liées à de nouveaux pseudo-mots. Les représentations incorporées peuvent être utilisées pour réduire les biais dans le modèle d’origine ou imiter les styles visuels. [34]
- Un « Hypernetwork » est un petit réseau neuronal pré-formé qui est appliqué à divers points au sein d’un réseau neuronal plus large, et fait référence à la technique créée par le développeur NovelAI Kurumuz en 2021, initialement destinée aux modèles de transformateurs de génération de texte . Les hyperréseaux orientent les résultats vers une direction particulière, permettant aux modèles basés sur la diffusion stable d’imiter le style artistique d’artistes spécifiques, même si l’artiste n’est pas reconnu par le modèle d’origine ; ils traitent l’image en trouvant des zones clés d’importance telles que les cheveux et les yeux, puis patchent ces zones dans l’espace latent secondaire. [35]
- DreamBooth est un modèle de génération d’apprentissage en profondeur développé par des chercheurs de Google Research et de l’Université de Boston en 2022 qui peut affiner le modèle pour générer des sorties précises et personnalisées qui dépeignent un sujet spécifique, après une formation via un ensemble d’images qui dépeignent le sujet. [36]
Capacités
Il est recommandé d’exécuter Stable Diffusion avec 10 Go ou plus de VRAM, mais les utilisateurs disposant de moins de VRAM peuvent choisir de charger les pondérations avec une précision float16 au lieu du float32 par défaut pour échanger les performances du modèle avec une utilisation réduite de la VRAM. [24]
Génération de texte en image
Le script d’échantillonnage de texte en image dans Stable Diffusion, connu sous le nom de « txt2img », utilise une invite de texte en plus de divers paramètres d’option couvrant les types d’échantillonnage, les dimensions de l’image de sortie et les valeurs de départ. Le script génère un fichier image basé sur l’interprétation de l’invite par le modèle. [1] Les images générées sont étiquetées avec un filigrane numérique invisible pour permettre aux utilisateurs d’identifier une image comme générée par Stable Diffusion, [1] bien que ce filigrane perde son efficacité si l’image est redimensionnée ou pivotée. [39]
Chaque génération de txt2img impliquera une valeur de départ spécifique qui affecte l’image de sortie. Les utilisateurs peuvent choisir de randomiser la graine afin d’explorer différentes sorties générées, ou d’utiliser la même graine pour obtenir la même sortie d’image qu’une image générée précédemment. [24] Les utilisateurs peuvent également ajuster le nombre d’étapes d’inférence pour l’échantillonneur ; une valeur plus élevée prend plus de temps, mais une valeur plus petite peut entraîner des défauts visuels. [24] Une autre option configurable, la valeur d’échelle de guidage sans classificateur, permet à l’utilisateur d’ajuster le degré d’adhérence de l’image de sortie à l’invite. [20] Les cas d’utilisation plus expérimentaux peuvent opter pour une valeur d’échelle inférieure, tandis que les cas d’utilisation visant des résultats plus spécifiques peuvent utiliser une valeur plus élevée.[24]
Des fonctionnalités text2img supplémentaires sont fournies par les implémentations frontales de Stable Diffusion, qui permettent aux utilisateurs de modifier le poids accordé à des parties spécifiques de l’invite de texte. Les marqueurs d’emphase permettent aux utilisateurs d’ajouter ou de réduire l’emphase sur des mots-clés en les mettant entre crochets. [40]Une autre méthode d’ajustement du poids à des parties de l’invite sont les « invites négatives ». Les invites négatives sont une fonctionnalité incluse dans certaines implémentations frontales, y compris le propre service cloud DreamStudio de Stability AI, et permettent à l’utilisateur de spécifier les invites que le modèle doit éviter lors de la génération d’image. Les invites spécifiées peuvent être des caractéristiques d’image indésirables qui seraient autrement présentes dans les sorties d’image en raison des invites positives fournies par l’utilisateur, ou en raison de la façon dont le modèle a été formé à l’origine, les mains humaines mutilées étant un exemple courant. [38] [2]
Modification d’image
Stable Diffusion inclut également un autre script d’échantillonnage, « img2img », qui consomme une invite de texte, un chemin vers une image existante et une valeur de force comprise entre 0,0 et 1,0. Le script génère une nouvelle image basée sur l’image d’origine qui comporte également des éléments fournis dans l’invite de texte. La valeur de force indique la quantité de bruit ajoutée à l’image de sortie. Une valeur de force plus élevée produit plus de variation dans l’image mais peut produire une image qui n’est pas sémantiquement cohérente avec l’invite fournie. [1]
La capacité d’img2img à ajouter du bruit à l’image d’origine le rend potentiellement utile pour l’anonymisation et l’augmentation des données , dans lesquelles les caractéristiques visuelles des données d’image sont modifiées et rendues anonymes. [41] Le même processus peut également être utile pour la mise à l’échelle de l’image, dans laquelle la résolution d’une image est augmentée, avec plus de détails potentiellement ajoutés à l’image. [41] De plus, Stable Diffusion a été expérimenté comme outil de compression d’image. Par rapport à JPEG et WebP , les méthodes récentes utilisées pour la compression d’image dans Stable Diffusion sont limitées dans la préservation du texte et des visages de petite taille. [42]
Des cas d’utilisation supplémentaires pour la modification d’image via img2img sont proposés par de nombreuses implémentations frontales du modèle Stable Diffusion. L’inpainting implique la modification sélective d’une partie d’une image existante délimitée par un masque de calque fourni par l’utilisateur , qui remplit l’espace masqué avec du contenu nouvellement généré en fonction de l’invite fournie. [38] Un modèle dédié spécifiquement affiné pour les cas d’utilisation d’inpainting a été créé par Stability AI parallèlement à la sortie de Stable Diffusion 2.0. [25] À l’inverse, la peinture étend une image au-delà de ses dimensions d’origine, remplissant l’espace précédemment vide avec du contenu généré en fonction de l’invite fournie. [38]
Un modèle guidé en profondeur, nommé « depth2img », a été introduit avec la sortie de Stable Diffusion 2.0 le 24 novembre 2022; ce modèle déduit la profondeur de l’image d’entrée fournie et génère une nouvelle image de sortie basée à la fois sur l’invite de texte et sur les informations de profondeur, ce qui permet de maintenir la cohérence et la profondeur de l’image d’entrée d’origine dans la sortie générée. [25]
Usage
Comme les styles visuels et les compositions ne sont pas soumis au droit d’auteur, il est souvent interprété que les utilisateurs de Stable Diffusion qui génèrent des images d’œuvres d’art ne doivent pas être considérés comme enfreignant le droit d’auteur d’œuvres visuellement similaires. [44] Cependant, les individus représentés dans les images générées peuvent être protégés par les droits de la personnalité si leur image est utilisée, [44] et la propriété intellectuelletels que les logos de marque reconnaissables restent toujours protégés par le droit d’auteur. Néanmoins, les artistes visuels ont exprimé leur inquiétude quant au fait que l’utilisation généralisée de logiciels de synthèse d’images tels que Stable Diffusion pourrait éventuellement conduire des artistes humains, ainsi que des photographes, des modèles, des directeurs de la photographie et des acteurs, à perdre progressivement leur viabilité commerciale face à des concurrents basés sur l’IA. [45]
Stable Diffusion est notamment plus permissif dans les types de contenu que les utilisateurs peuvent générer, tels que des images violentes ou sexuellement explicites, par rapport à d’autres produits commerciaux basés sur l’IA générative. [46] Répondant aux préoccupations selon lesquelles le modèle pourrait être utilisé à des fins abusives, le PDG de Stability AI, Emad Mostaque, explique que « [c’est] la responsabilité des gens quant à savoir s’ils sont éthiques, moraux et légaux dans la façon dont ils exploitent ce technologie », [10] et que mettre les capacités de Stable Diffusion entre les mains du public se traduirait par la technologie offrant un avantage net, malgré les conséquences négatives potentielles. [dix]En outre, Mostaque soutient que l’intention derrière la disponibilité ouverte de Stable Diffusion est de mettre fin au contrôle et à la domination des entreprises sur ces technologies, qui n’avaient auparavant développé que des systèmes d’IA fermés pour la synthèse d’images. [10] [46] Cela se reflète par le fait que toutes les restrictions que Stability AI place sur le contenu que les utilisateurs peuvent générer peuvent facilement être contournées en raison de la disponibilité du code source. [43]