Maison  >  Article  >  Périphériques technologiques  >  Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après l'avoir lu, vous comprendrez parfaitement le principe de la « génération d'images ».

Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après l'avoir lu, vous comprendrez parfaitement le principe de la « génération d'images ».

WBOY
WBOYavant
2023-04-11 11:13:021652parcourir

Vous souvenez-vous encore du Transformer graphique devenu populaire sur Internet ?

Récemment, ce grand blogueur Jay Alammar a également écrit une illustration sur le modèle populaire de diffusion stable sur son blog, vous permettant de bien comprendre les principes du modèle de génération d'images à partir de zéro, avec des informations super détaillées Explication vidéo !

Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après lavoir lu, vous comprendrez parfaitement le principe de la « génération dimages ».

Lien de l'article : https://jalammar.github.io/illustrated-stable-diffusion/

Lien vidéo : https://www.youtube.com/watch?v= MXmacOUJUaw

Illustration de diffusion stable

Les capacités de génération d'images récemment démontrées par le modèle d'IA dépassent de loin les attentes des gens. Il peut créer des images avec des effets visuels étonnants directement basés sur des descriptions textuelles. Le mécanisme de fonctionnement derrière celui-ci est très. mystérieux et magique, mais il a influencé la façon dont les humains créent de l'art.

La sortie de Stable Diffusion est une étape importante dans le développement de la génération d'images IA. Cela équivaut à fournir au public un modèle utilisable hautes performances. Non seulement la qualité de l'image générée est très élevée, mais elle s'exécute rapidement. mais dispose également de ressources et de mémoire. Les exigences sont également inférieures.

Je pense que quiconque a essayé la génération d'images IA voudra savoir comment cela fonctionne. Cet article dévoilera le mystère du fonctionnement de la diffusion stable pour vous.

Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après lavoir lu, vous comprendrez parfaitement le principe de la « génération dimages ».

Fonctionnellement parlant, Stable Diffusion comprend principalement deux aspects : 1) Sa fonction principale est de générer des images basées uniquement sur des invites de texte en entrée (text2img) 2) Vous pouvez également l'utiliser pour décrire des images basées sur du texte ; Apportez des modifications (c'est-à-dire saisissez sous forme de texte + image).

Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après lavoir lu, vous comprendrez parfaitement le principe de la « génération dimages ».

Les illustrations seront utilisées ci-dessous pour aider à expliquer les composants de la diffusion stable, comment ils interagissent les uns avec les autres et la signification des options et paramètres de génération d'images.

Composants de diffusion stables

Stable Diffusion est un système composé de plusieurs composants et modèles, pas d'un seul modèle.

Lorsque nous examinons l'intérieur du modèle du point de vue du modèle global, nous pouvons constater qu'il contient un composant de compréhension du texte pour traduire les informations textuelles en représentation numérique afin de capturer les informations sémantiques dans le texte.

Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après lavoir lu, vous comprendrez parfaitement le principe de la « génération dimages ».

Bien que le modèle soit toujours analysé d'un point de vue macro, et qu'il y aura plus de détails sur le modèle plus tard, nous pouvons également spéculer approximativement que cet encodeur de texte est un modèle de langage Transformer spécial (en particulier, le modèle CLIP) encodeur).

L'entrée du modèle est une chaîne de texte et la sortie est une liste de nombres utilisés pour représenter chaque mot/jeton dans le texte, c'est-à-dire que chaque jeton est converti en vecteur.

Ensuite, ces informations seront soumises au générateur d'images (générateur d'images), qui contient également plusieurs composants en interne.

Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après lavoir lu, vous comprendrez parfaitement le principe de la « génération dimages ».

Le générateur d'images se compose principalement de deux étapes :

1. Créateur d'informations sur l'image

Ce composant est la recette secrète exclusive de Stable Diffusion. Par rapport au modèle précédent, il a. de nombreux gains de performances sont tous réalisés ici.

Ce composant exécute plusieurs étapes pour générer des informations sur l'image, où les étapes sont également des paramètres dans l'interface et la bibliothèque Stable Diffusion, généralement par défaut sur 50 ou 100.

Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après lavoir lu, vous comprendrez parfaitement le principe de la « génération dimages ».

Le créateur d'informations d'image fonctionne entièrement dans l'espace d'informations d'image (ou espace latent). Cette fonctionnalité le rend plus rapide que les autres modèles de diffusion qui fonctionnent techniquement dans l'espace de pixels, ce composant est constitué d'un neurone UNet ; réseau et un algorithme de planification.

Le mot diffusion décrit ce qui se passe lors du fonctionnement interne de ce composant, c'est-à-dire que les informations sont traitées étape par étape, et enfin une image de haute qualité est générée par le composant suivant (le décodeur d'image).

2. Décodeur d'image

Le décodeur d'image dessine une image basée sur les informations obtenues auprès du créateur d'informations d'image. L'ensemble du processus ne s'exécute qu'une seule fois pour générer l'image finale en pixels.

Comme vous pouvez le voir, Stable Diffusion contient un total de trois composants principaux, dont chacun possède un réseau neuronal indépendant :

1) Clip Text est utilisé pour l'encodage du texte.

Entrée : texte

Sortie : 77 vecteurs d'intégration de jetons, où chaque vecteur contient 768 dimensions

2)UNet + SchedulerTraitement/diffusion de l'information étape par étape dans l'espace d'information (latente) .

Entrée : intégration de texte et un tableau multidimensionnel initial composé de bruit (liste structurée de nombres, également appelée tenseur).

Sortie : un tableau d'informations traitées

3) Autoencoder Decoder (Autoencoder Decoder) , un décodeur qui utilise la matrice d'informations traitées pour dessiner l'image finale.

Entrée : matrice d'informations traitées, les dimensions sont (4, 64, 64)

Sortie : image résultat, chaque dimension est (3, 512, 512), c'est-à-dire (rouge/vert/bleu, largeur, élevé)

Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après lavoir lu, vous comprendrez parfaitement le principe de la « génération dimages ».

Qu'est-ce que la diffusion ?

La diffusion est le processus qui se produit dans le composant créateur d'informations d'image rose dans l'image ci-dessous. Le processus comprend l'intégration du jeton qui représente le texte d'entrée et la matrice d'informations d'image initiale aléatoire (également appelée latentes). Un décodeur d'image est nécessaire pour dessiner la matrice d'informations de l'image finale.

Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après lavoir lu, vous comprendrez parfaitement le principe de la « génération dimages ».

L'ensemble du processus opérationnel se déroule étape par étape et des informations plus pertinentes seront ajoutées à chaque étape.

Pour ressentir l'ensemble du processus de manière plus intuitive, vous pouvez visualiser la matrice latente aléatoire à mi-chemin et observer comment elle est convertie en bruit visuel, où l'inspection visuelle est effectuée via le décodeur d'image.

Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après lavoir lu, vous comprendrez parfaitement le principe de la « génération dimages ».

L'ensemble du processus de diffusion contient plusieurs étapes, où chaque étape fonctionne sur la base de la matrice latente d'entrée et génère une autre matrice latente pour mieux s'adapter au "texte d'entrée" et à l'image du modèle "Informations visuelles" obtenu dans de manière concentrée.

Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après lavoir lu, vous comprendrez parfaitement le principe de la « génération dimages ».

Visualisez ces latents pour voir comment ces informations s'additionnent à chaque étape.

Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après lavoir lu, vous comprendrez parfaitement le principe de la « génération dimages ».

L'ensemble du processus part de zéro, ce qui semble assez excitant.

La transition du processus entre les étapes 2 et 4 semble particulièrement intéressante, comme si le contour de l'image émergeait du bruit.

Comment fonctionne la diffusion

L'idée de base consistant à utiliser des modèles de diffusion pour générer des images est toujours basée sur de puissants modèles de vision par ordinateur existants. Tant qu'un ensemble de données suffisamment grand est saisi, ces modèles peuvent apprendre des opérations arbitrairement complexes.

Supposons que nous ayons déjà une image, générons du bruit et l'ajoutons à l'image, puis l'image peut être considérée comme un exemple de formation.

Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après lavoir lu, vous comprendrez parfaitement le principe de la « génération dimages ».

En utilisant la même opération, un grand nombre d'échantillons d'entraînement peuvent être générés pour entraîner les composants principaux du modèle de génération d'images.

Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après lavoir lu, vous comprendrez parfaitement le principe de la « génération dimages ».

L'exemple ci-dessus montre certains niveaux de bruit facultatifs, de l'image d'origine (niveau 0, pas de bruit) au bruit entièrement ajouté (niveau 4), ce qui facilite le contrôle de la quantité de bruit ajoutée dans l'image. image.

Nous pouvons ainsi répartir ce processus sur des dizaines d'étapes et générer des dizaines d'échantillons d'entraînement pour chaque image de l'ensemble de données.

Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après lavoir lu, vous comprendrez parfaitement le principe de la « génération dimages ».

Sur la base de l'ensemble de données ci-dessus, nous pouvons former un prédicteur de bruit avec d'excellentes performances. Chaque étape de formation est similaire à la formation d'autres modèles. Lorsqu'il est exécuté dans une certaine configuration, le prédicteur de bruit peut générer des images.

Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après lavoir lu, vous comprendrez parfaitement le principe de la « génération dimages ».

Supprimez le bruit et dessinez l'image

Le prédicteur de bruit entraîné peut débruiter une image avec du bruit ajouté et peut également prédire la quantité de bruit ajouté.

Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après lavoir lu, vous comprendrez parfaitement le principe de la « génération dimages ».

Le bruit d'échantillonnage étant prévisible, si le bruit est soustrait de l'image, l'image finale sera plus proche de l'image obtenue par l'entraînement du modèle.

Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après lavoir lu, vous comprendrez parfaitement le principe de la « génération dimages ».

L'image obtenue n'est pas une image originale exacte, mais une distribution, c'est-à-dire la disposition des pixels dans le monde. Par exemple, le ciel est généralement bleu, les gens ont deux yeux et les chats ont pointé du doigt. oreilles, etc., le style d'image spécifique généré dépend entièrement de l'ensemble de données d'entraînement.

Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après lavoir lu, vous comprendrez parfaitement le principe de la « génération dimages ».

Non seulement Stable Diffusion effectue la génération d'images par débruitage, mais également DALL-E 2 et le modèle Imagen de Google.

Il est important de noter que le processus de diffusion décrit jusqu'à présent n'utilise aucune donnée textuelle pour générer des images. Ainsi, si nous déployons ce modèle, il peut générer de belles images, mais l'utilisateur n'a aucun moyen de contrôler ce qui est généré.

Dans la section suivante, nous décrirons comment incorporer du texte conditionnel dans le processus pour contrôler le type d'images générées par le modèle.

Accélération : Diffusion sur données compressées

Afin d'accélérer le processus de génération d'image, Stable Diffusion ne choisit pas d'exécuter le processus de diffusion sur l'image pixel elle-même, mais choisit de s'exécuter sur la version compressée de l'image, également appelé dans l'article Il s'agit de "Départ vers l'espace latent".

L'ensemble du processus de compression, y compris la décompression ultérieure et le dessin de l'image, est complété par l'auto-encodeur, qui compresse l'image dans l'espace latent, puis utilise uniquement le décodeur pour la reconstruire à l'aide des informations compressées.

Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après lavoir lu, vous comprendrez parfaitement le principe de la « génération dimages ».

Le processus de diffusion directe est terminé lors de la compression des latents. Les tranches de bruit sont appliquées au bruit sur les latents, et non à l'image pixel, de sorte que le prédicteur de bruit est réellement utilisé pour prédire le bruit dans les représentations compressées. (espaces latents).

Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après lavoir lu, vous comprendrez parfaitement le principe de la « génération dimages ».

Processus avancé, c'est-à-dire utiliser l'encodeur dans l'encodeur automatique pour entraîner le prédicteur de bruit. Une fois la formation terminée, les images peuvent être générées en exécutant le processus inverse (le décodeur dans l'auto-encodeur).

Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après lavoir lu, vous comprendrez parfaitement le principe de la « génération dimages ».

Les processus avant et arrière sont présentés ci-dessous. La figure comprend également un composant de conditionnement pour décrire les invites textuelles de l'image que le modèle doit générer.

Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après lavoir lu, vous comprendrez parfaitement le principe de la « génération dimages ».

Encodeur de texte : un modèle de langage Transformer

Le composant de compréhension du langage dans le modèle utilise le modèle de langage Transformer, qui peut convertir l'invite de texte de saisie en un vecteur d'intégration de jetons. Le modèle de diffusion stable publié utilise ClipText (modèle basé sur GPT). Dans cet article, le modèle BERT est choisi pour la commodité de l'explication.

Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après lavoir lu, vous comprendrez parfaitement le principe de la « génération dimages ».

Les expériences menées dans l'article Imagen montrent qu'un modèle de langage plus grand peut apporter davantage d'améliorations de la qualité de l'image que le choix d'un composant de génération d'image plus grand.

Le premier modèle Stable Diffusion utilisait le modèle ClipText pré-entraîné publié par OpenAI, mais dans Stable Diffusion V2, il est passé à la nouvelle variante plus grande du modèle CLIP OpenClip.

CLIP Comment avez-vous entraîné ?

CLIP nécessite des images et leurs légendes, et l'ensemble de données contient environ 400 millions d'images et de descriptions.

Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après lavoir lu, vous comprendrez parfaitement le principe de la « génération dimages ».

L'ensemble de données est collecté via des images récupérées sur Internet et le texte de la balise "alt" correspondant.

CLIP est une combinaison d'encodeur d'image et d'encodeur de texte. Son processus de formation peut être simplifié en prenant des images et des descriptions de texte et en utilisant deux encodeurs pour encoder les données séparément.

Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après lavoir lu, vous comprendrez parfaitement le principe de la « génération dimages ».

Utilisez ensuite la distance cosinus pour comparer les intégrations résultantes lorsque vous démarrez la formation pour la première fois, même si la description du texte correspond à l'image, la similitude entre elles est définitivement très faible.

Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après lavoir lu, vous comprendrez parfaitement le principe de la « génération dimages ».

Au fur et à mesure que le modèle est mis à jour en permanence, dans les étapes suivantes, les intégrations obtenues par l'encodeur encodant les images et le texte deviendront progressivement similaires.

Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après lavoir lu, vous comprendrez parfaitement le principe de la « génération dimages ».

En répétant ce processus sur l'ensemble de l'ensemble de données et en utilisant un encodeur avec une grande taille de lot, nous sommes enfin capables de générer un vecteur d'intégration où il y a une similitude entre l'image du chien et la phrase "image de un chien".

Tout comme dans word2vec, le processus de formation doit également inclure des échantillons négatifs d'images et de légendes qui ne correspondent pas, et le modèle doit leur attribuer des scores de similarité inférieurs.

Les informations textuelles sont introduites dans le processus de génération d'image

Afin d'incorporer les conditions de texte dans le cadre du processus de génération d'image, l'entrée du prédicteur de bruit doit être ajustée pour être du texte.

Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après lavoir lu, vous comprendrez parfaitement le principe de la « génération dimages ».

Toutes les opérations se font sur l'espace latent, y compris le texte codé, l'image d'entrée et le bruit de prédiction.

Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après lavoir lu, vous comprendrez parfaitement le principe de la « génération dimages ».

Afin de mieux comprendre comment les jetons de texte sont utilisés dans Unet, vous devez d'abord comprendre le modèle Unet.

Couches dans le prédicteur de bruit Unet (sans texte)

Une diffusion Unet qui n'utilise pas de texte, ses entrée et sortie sont les suivantes :

Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après lavoir lu, vous comprendrez parfaitement le principe de la « génération dimages ».

A l'intérieur du modèle, vous peut voir :

1. Les couches du modèle Unet sont principalement utilisées pour transformer les latents ;

2. Chaque couche opère sur la sortie de la couche précédente

3. connexion) l'alimente dans le traitement derrière le réseau

4. Convertissez le pas de temps en un vecteur d'intégration de pas de temps, qui peut être utilisé dans la couche.

Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après lavoir lu, vous comprendrez parfaitement le principe de la « génération dimages ».

Couches dans Unet Noise Predictor (avec texte)

Vous devez maintenant modifier le système précédent vers la version texte.

Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après lavoir lu, vous comprendrez parfaitement le principe de la « génération dimages ».

La principale partie de la modification consiste à ajouter la prise en charge de la saisie de texte (terme : conditionnement de texte), c'est-à-dire l'ajout d'une couche d'attention entre les blocs ResNet.

Jay Alammar sort un autre nouvel ouvrage : Illustrations de très haute qualité de Stable Diffusion Après lavoir lu, vous comprendrez parfaitement le principe de la « génération dimages ».

Il convient de noter que le bloc ResNet ne voit pas directement le contenu du texte, mais fusionne la représentation du texte en latents à travers la couche d'attention, et ensuite le prochain ResNet peut profiter de ce processus de message texte .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer