Recherche de site Web

Comment créer des images à l'aide de l'interface utilisateur Web à diffusion stable


Le lancement de l’interface utilisateur Web Stable Diffusion peut être effectué en une seule commande. Après cela, vous pouvez contrôler le pipeline de génération d'images à partir d'un navigateur. Le pipeline comporte de nombreuses pièces mobiles et toutes sont importantes d’une manière ou d’une autre. Pour commander efficacement à Stable Diffusion de générer des images, vous devez reconnaître les widgets de votre navigateur et savoir ce qu'ils peuvent faire. Dans cet article, vous découvrirez les nombreux composants de l'interface utilisateur Web de Stable Diffusion et comment ils affectent l'image que vous créez.

Démarrez votre projet avec mon livre Mastering Digital Art with Stable Diffusion. Il fournit des tutoriels d'auto-apprentissage avec du code fonctionnel.

Commençons.

Aperçu

Cet article est composé de quatre parties ; ils sont:

  • Lancement de l'interface utilisateur Web
  • L'onglet txt2img
  • L'onglet img2img
  • Autres fonctions

Lancement de l'interface utilisateur Web

Après avoir préparé votre environnement Python, téléchargé le code de l'interface utilisateur Web et stocké les points de contrôle du modèle dans le répertoire approprié, vous pouvez lancer l'interface utilisateur Web à l'aide de la commande suivante :

./webui.sh

L'interface utilisateur Web peut être personnalisée en modifiant les variables dans webui-user.sh. Un exemple consiste à autoriser le serveur d'interface utilisateur Web à s'exécuter à partir d'un ordinateur pendant que vous lancez votre navigateur à partir d'un autre. Vous devez ajouter la ligne suivante à webui-user.sh pour permettre l'accès au serveur. sur le réseau :

export COMMANDLINE_ARGS="--listen"

Par défaut, la commande ./webui.sh lancera un serveur sur le port 7860, et vous pourrez y accéder depuis votre navigateur. Si vous l'exécutez depuis votre bureau, vous pouvez utiliser l'URL http://127.0.0.1:7860 ; mais s'il s'agit d'un autre ordinateur, vous devez utiliser l'adresse IP de cet ordinateur au lieu de 127.0.0.1. Votre navigateur devrait afficher une interface utilisateur comme celle-ci :

Dans le coin supérieur gauche, vous pouvez voir une liste déroulante pour sélectionner le point de contrôle. Le point de contrôle propose différents styles de dessin, par exemple plus réalistes comme une photographie ou plus comme un dessin animé. Vous pouvez stocker plusieurs points de contrôle dans le répertoire du modèle, mais un seul est utilisé dans le pipeline. Sous la liste déroulante, vous disposez de plusieurs « onglets » dans lesquels vous pouvez générer une image différemment. Chaque onglet comporte un ensemble différent de widgets. La plupart d’entre eux servent à fournir des paramètres à un pipeline de génération.

Voyons quels boutons et paramètres sont disponibles pour générer l'image souhaitée. Ces paramètres, ensemble, aident à pousser l’algorithme dans la bonne direction.

L'onglet txt2img

La page de lancement de l'interface utilisateur affiche l'onglet txt2img, une fonctionnalité fondamentale de Stable Diffusion pour transformer les invites textuelles en images. Comme son nom l'indique, cela nous permet de décrire l'image que nous voulons ou ne voulons pas sous forme de texte à l'algorithme, qui la convertit ensuite en un vecteur d'intégration pour générer l'image. Reportez-vous à la capture d'écran ci-dessus, vous disposez des widgets comme expliqué ci-dessous.

  • Point de contrôle comme indiqué par ①. Ce menu déroulant nous permet de sélectionner des modèles. Assurez-vous que les fichiers de modèle sont placés dans le bon dossier, comme détaillé dans les directives d'installation du modèle (abordées dans le dernier chapitre). Un buffet de points de contrôle et de tenseurs de sécurité est disponible sur https://civitai.com/.
  • Bouton Actualiser comme indiqué par ②. Situé à côté de la liste déroulante des points de contrôle, ce bouton met à jour la liste des modèles disponibles. Il est utilisé pour actualiser la liste si vous avez ajouté un nouveau modèle au dossier de point de contrôle mais que vous ne souhaitez pas redémarrer le serveur de l'interface utilisateur Web.
  • Zone de texte d'invite comme étiquetée par ③. C'est ici que va la description de l'image attendue. Fournir des invites détaillées et spécifiques (qui seront abordées en détail dans le prochain article), ainsi que des mots-clés, améliore le processus de génération.
  • Zone de texte d'invite négative comme indiqué par ④. Facultatif mais important lors de l'utilisation de modèles v2, l'invite négative permet de spécifier ce qui ne doit pas faire partie des images. En général, ce que nous ne voulons pas est moins spécifique et peut être sauvegardé pour de nombreux cas d’utilisation.
  • Méthode d'échantillonnage et étapes telles qu'étiquetées par ⑤ et ⑥. Le premier algorithme de diffusion nécessite plus d'une centaine d'étapes pour créer une image mais nous avons trouvé des moyens de l'accélérer. Ces paramètres déterminent l'algorithme du processus de débruitage et le nombre d'étapes d'échantillonnage. Le choix de la méthode d'échantillonnage influence l'équilibre entre vitesse et qualité.
    Pour équilibrer vitesse, qualité et avoir une bonne convergence, DPM++ 2M Karras avec 20 à 30 pas ou UniPC avec 20 à 30 pas sont de bonnes options. D'autre part, DPM++ SDE Karras avec 10 à 15 étapes ou DDIM avec 10 à 15 étapes offrent l'une des meilleures images de qualité mais avec une convergence plus lente.
  • Largeur et Hauteur comme indiqué par ⑦ et ⑧. Ils précisent la taille de l'image de sortie, garantissant la compatibilité avec le modèle choisi. Des ajustements sont recommandés selon que les modèles v1 ou v2 sont utilisés. Habituellement, vous conservez la valeur par défaut de 512 × 512 pixels et vous la modifiez uniquement si vous souhaitez un rapport hauteur/largeur différent.
  • Nombre de lots et Taille comme indiqué par ⑨ et ⑩. Ces paramètres contrôlent les heures d'exécution du pipeline de génération d'images et le nombre d'images générées par exécution. La taille du lot correspond au nombre d’images générées en une seule génération. Le nombre de lots correspond au nombre de générations.
    Une taille de lot d'un avec un nombre de lots plus élevé est recommandée pour générer plusieurs images de plus haute résolution avec une consommation minimale de ressources maximales. C'est plus lent, mais la qualité des images est bien supérieure à la simple exécution de lots d'images 512 × 512.
    La génération d'images étant un processus aléatoire, la génération de plusieurs images par lots vous permet de sélectionner le meilleur résultat parmi plusieurs.
  • Échelle de guidage gratuite du classificateur comme indiqué par ⑪. Le paramètre d'échelle Classifier Free Guidance (CFG) nous permet de contrôler dans quelle mesure le modèle doit adhérer à l'invite, allant de l'ignorer majoritairement (valeur de 1) à la suivre strictement (valeur de 30). En parlant d’extrêmes, une valeur très faible du score CFG signifierait que l’invite est en grande partie ignorée et que l’image générée est aléatoire. Cela pourrait ne pas servir à utiliser txt2img. D'un autre côté, une valeur élevée de CFG oblige le système à s'en tenir à l'invite mais peut déformer l'image elle-même. Cela revient à surajuster l'invite.
  • Graine aléatoire comme indiqué par ⑫. La valeur de départ influence le tenseur aléatoire initial dans l’espace latent, contrôlant le contenu de l’image. La correction de la graine est utile pour maintenir la reproductibilité tout en peaufinant les invites.

Vous pouvez l'essayer en décrivant ce que vous souhaitez générer dans la zone d'invite (en anglais simple, sauf si vous avez remplacé le modèle d'intégration par défaut). Une fois que vous les avez configurés et que vous avez cliqué sur le bouton « Générer » en haut à droite, vous pouvez voir le modèle de diffusion stable créer progressivement des images pour vous. Ci-dessous, un exemple pour l'invite « Extraterrestre explorant une jungle », avec tous les autres paramètres par défaut.

Comme mentionné ci-dessus, l'image générée a la taille spécifiée par les paramètres de largeur et de hauteur. Si vous avez besoin d’une image plus grande que cela, vous pouvez cocher la case « Hires. fix » (correctif haute résolution), puis cliquez sur l'un des triangles pour développer la boîte et afficher plus d'options :

Cela applique un modèle d'apprentissage profond super-résolution à la sortie de Stable Diffusion. Il répond à la limitation de résolution native de Stable Diffusion, en fournissant une fonctionnalité de mise à l'échelle pour les images générées dans une taille plus petite. Nous pouvons choisir parmi différents paramètres de mise à l'échelle et d'ajustement tels que « upscale by » (le multiple de la largeur et de la hauteur de l'image) pour obtenir les résultats souhaités.

Il est généralement recommandé de choisir les meilleures images du lot, puis de les redimensionner à partir de l'onglet img2img pour augmenter la résolution, plutôt que de demander au modèle de diffusion stable de générer directement une sortie géante.

L'onglet img2img

À côté de l'onglet txt2img, l'onglet img2img est l'endroit où les utilisateurs exploitent les fonctions d'image à image. Les cas d'utilisation courants incluent l'inpainting, le esquisse et la transformation d'une image en une autre.

Pendant que vous voyez toujours la zone de texte d'invite et d'invite négative, l'onglet img2img permet aux utilisateurs d'effectuer des transformations d'image en image. Un processus typique implique :

  1. Glisser et déposer une image de base sur le sous-onglet img2img sous la section « Génération »
  2. Ajuster la largeur ou la hauteur pour conserver le rapport hauteur/largeur de la nouvelle image.
  3. Définition de la méthode d'échantillonnage, des étapes d'échantillonnage et de la taille du lot.
  4. Écrire une invite pour la nouvelle image.
  5. En appuyant sur le bouton Générer pour créer des images, avec des ajustements de la force de débruitage.
  6. D'autres paramètres de l'onglet img2img incluent le mode de redimensionnement et la force de débruitage, contrôlant l'ampleur des changements de l'image pendant la transformation.

L'un des paramètres les plus importants est la force de débruitage. Cela signifie la liberté artistique dont dispose le modèle sur l’image d’entrée. Une valeur faible de ce paramètre signifie que le style de l'image doit être conservé tandis qu'une valeur plus élevée signifie la moindre restriction en termes de style, de couleurs, etc.

Comprenons mieux cela en utilisant deux exemples avec la même invite de saisie « femme portant des lunettes de soleil » ci-dessous :

Dans le premier exemple, une image est téléchargée dans le sous-onglet img2img, la force de débruitage est définie sur 0,4, entrez l'invite, puis cliquez sur « Générer ». L'image générée s'affichera à droite. L’image générée a conservé presque tout sauf le visage, y compris la couleur et le style de l’image d’entrée. Il reflète fidèlement les instructions de l'invite : porter des lunettes de soleil.

Le deuxième exemple a une valeur de force de débruitage plus élevée de 0,7, permettant ainsi à l'algorithme de générer des images plus aléatoires. Fixons également le nombre de lots à 4 afin de créer plus de sorties. La couleur, la pose et le style sont tous différents dans les quatre images candidates à droite, comme suit :

Esquisse et peinture

En plus de télécharger une image, les utilisateurs peuvent dessiner l'image initiale à l'aide de l'outil d'esquisse en couleur, permettant ainsi des modifications créatives ou des compositions entièrement nouvelles. La fonction d'esquisse permet aux utilisateurs de saisir une image d'arrière-plan, d'esquisser en couleur et de générer des images basées sur l'esquisse et l'invite qui l'accompagne.

Une fonction largement utilisée dans l'onglet img2img est inpaint, qui corrige les défauts mineurs des images générées. En plus de télécharger une image, vous pouvez également envoyer une image générée à partir de l'onglet txt2img vers l'onglet img2img pour l'inpainting. Ensuite, vous pouvez dessiner sur l'image pour créer un masque. Les ajustements de la force de débruitage, du contenu du masque et de la taille du lot influencent également le processus d'inpainting. Un exemple est le suivant :

Vous dessinez un masque sur l'image d'entrée pour indiquer l'endroit où doit se trouver le verre de lecture. Lorsque vous dessinez, vous pouvez zoomer et effectuer un panoramique à l'aide de raccourcis clavier, améliorant ainsi la précision lorsque vous travaillez sur des zones plus petites. Les raccourcis clavier incluent Alt+Molette (Option+Molette sous macOS) pour le zoom, Ctrl+Molette pour ajuster la taille du pinceau, « R » pour réinitialiser le zoom, « S » pour entrer/sortir du plein écran et maintenir « F » tout en déplaçant le curseur pour effectuer un panoramique. Une fois que vous avez terminé de créer le masque, dites « lunettes de lecture » dans la zone de texte d'invite et cliquez sur « Générer ».

Si vous pensez que dessiner un masque sur le navigateur est trop difficile, vous pouvez utiliser d'autres outils de dessin tels que Photoshop pour créer une image de masque. Puis sur l’onglet « Inpaint upload » pour télécharger l’image et le masque séparément.

Vous pouvez également définir la taille du lot pour créer plusieurs images à la fois, toutes basées sur la même invite et la même entrée. Cela vous permet de sélectionner le meilleur résultat parmi un grand nombre de variantes.

L'exemple ci-dessus conserve l'image originale mais ajoute des lunettes de lecture à l'aide de la fonction d'inpainting en dessinant grossièrement une structure des lunettes sur la zone masquée de l'image. Certains des paramètres notables pour l'inpainting incluent le flou du masque (dans quelle mesure les pixels à l'extérieur du masque peuvent être modifiés), la zone d'inpaint (si le masque signifie conserver ou modifier) et la force de débruitage signifiant la zone environnante pour produire le changement.

Une version plus avancée de l'inpainting est inpaint sketch. Lors de l'inpainting, vous créez un masque et seule la partie masquée de l'image est régénérée en fonction de l'invite. Dans Inpaint Sketch, vous dessinez sur l'image avec des crayons de couleur de telle sorte que ce que vous avez dessiné avec l'invite contrôle la sortie. A titre d'exemple, la même invite de lunettes de lecture génère une paire de lunettes avec une monture rouge car le croquis était en rouge :

Autres fonctions

Comme vous l'avez déjà remarqué, l'interface utilisateur Web contient plus que txt2img et img2img. En fait, vous pouvez ajouter davantage de fonctionnalités à l'interface utilisateur Web en installant des extensions. Dans ce qui suit, certains des onglets de niveau supérieur sont :

  • Onglet Extras : il vous permet de fournir une image à redimensionner. Techniquement, vous invoquez uniquement l'étape de superrésolution du pipeline.
  • Informations PNG : si vous avez généré une image et l'avez enregistrée en tant que fichier PNG sur votre disque, les détails de la façon dont cette image a été générée sont stockés dans les données EXIF de l'image. Cet outil permet de récupérer les valeurs de paramètres telles que les invites et les paramètres des images générées que vous téléchargez.
  • Onglet Paramètres : de nombreux paramètres peuvent être ajustés dans cet onglet, y compris le répertoire des modèles et des sorties. L'un des paramètres les plus utiles est « Restauration du visage ». Cette fonctionnalité applique un modèle supplémentaire conçu pour restaurer les défauts sur les faces. Les utilisateurs peuvent sélectionner un modèle de restauration de visage dans l'onglet Paramètres et l'appliquer à chaque image générée dans l'onglet txt2img. Les ajustements du paramètre de poids CodeFormer peuvent affiner l’effet de restauration.

Lectures complémentaires

Les meilleures ressources pour en savoir plus sur l'interface utilisateur Web sont la page wiki de l'outil sur GitHub :

  • Wiki WebUI à diffusion stable

Résumé

Dans cet article, vous avez appris à appeler l'interface utilisateur Web de diffusion stable à partir de votre navigateur.

Bien que Stable Diffusion soit un outil très puissant, il lui manque encore un contrôle précis sur certains attributs de la sortie. Il est confronté à des problèmes liés à une qualité d’image dégradée et à des couleurs inexactes dans certains scénarios. Vous devez garder à l’esprit ses limites lorsque vous l’utilisez. Le monde de l’imagerie générée par l’IA s’améliore chaque jour et plus rapidement que jamais. Dans le prochain article, comprenons quelques techniques d'incitation puissantes pour repousser les limites des images générées.

Articles connexes