Vous pouvez installer Stable Diffusion localement sur votre PC, mais le processus typique implique beaucoup de travail avec la ligne de commande pour installer et utiliser. Heureusement pour nous, la communauté Stable Diffusion a résolu ce problème. Voici comment installer une version de Stable Diffusion qui fonctionne localement avec une interface utilisateur graphique !

Qu’est-ce que la Diffusion Stable ?

Stable Diffusion est un modèle d’IA qui peut générer des images à partir d’invites textuelles ou modifier des images existantes à l’aide d’une invite textuelle, un peu comme MidJourney ou DALL-E 2. Il a été publié pour la première fois en août 2022 par Stability.ai. Il comprend des milliers de mots différents et peut être utilisé pour créer presque toutes les images que votre imagination peut évoquer dans presque tous les styles.

Il existe cependant deux différences essentielles qui distinguent Stable Diffusion de la plupart des autres générateurs d’art IA populaires :

  • Il peut être exécuté localement sur votre PC
  • C’est un projet open-source

Le dernier point est vraiment la question importante ici. Traditionnellement, Stable Diffusion est installé et exécuté via une interface en ligne de commande. Cela fonctionne, mais cela peut être maladroit, peu intuitif, et c’est une barrière importante à l’entrée pour les personnes qui seraient autrement intéressées. Mais, comme il s’agit d’un projet open source, la communauté a rapidement créé une interface utilisateur et a commencé à ajouter ses propres améliorations, notamment des optimisations pour minimiser l’utilisation de la RAM vidéo (VRAM) et intégrer l’upscaling et le masquage.

Façons de retirer une clé USB en toute sécurité sous Windows 11

De quoi avez-vous besoin pour exécuter cette version de Stable Diffusion ?

Cette version de Stable Diffusion est un dérivé du dépôt principal (repo) créé et maintenu par Stability.ai. Elle dispose d’une interface utilisateur graphique (GUI) – ce qui la rend plus facile à utiliser que la version normale de Stable Diffusion, qui ne dispose que d’une interface en ligne de commande – et d’un installateur qui se charge de la plupart des réglages automatiquement.

Ce fork contient également diverses optimisations qui devraient lui permettre de fonctionner sur des PC avec moins de RAM, des capacités intégrées de mise à l’échelle et de traitement du visage en utilisant GFPGAN, ESRGAN, RealESRGAN, et CodeFormer, et le masquage. Le masquage est un élément important : il permet d’appliquer sélectivement la génération d’images d’IA à certaines parties de l’image sans déformer les autres parties, un processus généralement appelé inpainting.

  • Un minimum de 10 gigaoctets libres sur votre disque dur.
  • Un GPU NVIDIA avec 6 Go de RAM (4 Go peuvent convenir).
  • Un PC équipé de Windows 11, Windows 10, Windows 8.1 ou Windows 8.
  • Le Repo GitHub WebUI, par AUTOMATIC1111
  • Python 3.10.6 (les versions plus récentes et la plupart des versions plus anciennes devraient également convenir)
  • Les points de contrôle officiels de la diffusion stable (surveillez les points de contrôle de la v1.5 à la fin du mois de septembre !)
  • Les points de contrôle de la version 1.3 de GFPGAN (la version 1.4 pourrait également fonctionner).
  • Tous les modèles ESRGAN supplémentaires que vous souhaitez. Vous pouvez en utiliser autant ou aussi peu que vous le souhaitez.

Comment installer Stable Diffusion avec une interface graphique

Le processus d’installation a été considérablement simplifié, mais il y a encore quelques étapes que vous devez effectuer manuellement avant de pouvoir utiliser l’installateur.

Installer Python en premier

La première chose à faire est d’installer la version de Python, 3.10.6, recommandée par l’auteur du dépôt. Allez sur ce lien, faites défiler vers le bas de la page et cliquez sur “Windows Installer (64-Bit)”.

Cliquez sur l’exécutable que vous avez téléchargé et suivez les instructions. Si vous avez déjà installé Python (et c’est certainement le cas), cliquez simplement sur “Upgrade”. Sinon, suivez les invites recommandées.

Installer Git et télécharger le Repo GitHub

Vous devez télécharger et installer Git sous Windows avant de pouvoir exécuter le programme d’installation de Stable Diffusion. Il suffit de télécharger l’exécutable Git 64 bits, de l’exécuter et d’utiliser les paramètres recommandés, sauf si vous avez quelque chose de spécifique en tête.

Ensuite, vous devez télécharger les fichiers depuis le dépôt GitHub. Cliquez sur le bouton vert “Code”, puis sur “Download ZIP” en bas du menu.

Ouvrez le fichier ZIP dans l’Explorateur de fichiers ou dans votre programme d’archivage de fichiers préféré, puis extrayez le contenu où vous voulez. Gardez à l’esprit que ce dossier est l’endroit où vous devrez aller pour exécuter Stable Diffusion. Cet exemple les a extraits dans le répertoire C:\, mais ce n’est pas essentiel.

Faites glisser le dossier “stable-diffusion-webui-master” où vous le souhaitez.

Téléchargez tous les points de contrôle

Il y a quelques points de contrôle dont vous avez besoin pour que cela fonctionne. Le premier et le plus important sont les points de contrôle de la diffusion stable. Vous devez créer un compte pour télécharger les points de contrôle, mais il n’y a pas beaucoup d’exigences pour le compte – tout ce dont ils ont besoin est un nom et une adresse e-mail, et vous êtes prêt à partir.

Copiez et collez “sd-v1-4.ckpt” dans le dossier “stable-diffusion-webui-master” de la section précédente, puis faites un clic droit sur “sd-v1-4.ckpt” et cliquez sur renommer. Tapez “model.ckpt” dans le champ de texte et appuyez sur Entrée. Assurez-vous que c’est bien “model.ckpt”, sinon cela ne fonctionnera pas.

Vous devez également télécharger les points de contrôle GFPGAN. L’auteur du repo que nous utilisons a demandé des checkpoints GFPGAN v1.3, mais vous pouvez utiliser la v1.4 si vous voulez l’essayer. Faites défiler la page, puis cliquez sur “V1.3 model”.

Placez ce fichier, ” GFPGANv1.3.pth “, dans le dossier ” stable-diffusion-webui-master ” comme vous l’avez fait avec le fichier ” sd-v1-4.ckpt “, mais ne le renommez pas. Le dossier “stable-diffusion-webui-master” devrait maintenant contenir ces fichiers :

Voici à quoi devrait ressembler le dossier après que vous ayez renommé le modèle de diffusion stable et ajouté le modèle GFPGAN.

Vous pouvez également télécharger autant de checkpoints ESRGAN que vous le souhaitez. Ils sont généralement fournis sous forme de fichiers ZIP. Après en avoir téléchargé un, ouvrez le fichier ZIP, puis extrayez le fichier ” .pth ” dans le dossier ” ESRGAN “. Voici un exemple :

L’emplacement des modèles ESRGAN.

Les modèles ESRGAN ont tendance à fournir des fonctionnalités plus spécifiques, alors choisissez-en quelques-uns qui vous intéressent.

Maintenant, il vous suffit de double-cliquer sur le fichier ” webui-user.bat “, qui se trouve dans le dossier primaire ” stable-diffusion-webui-master “. Une fenêtre de console apparaîtra et commencera à récupérer tous les autres fichiers importants, à construire un environnement Python et à configurer une interface utilisateur Web. Cela ressemblera à ceci :

Le client WebUI télécharge et installe toutes les ressources.

Lorsqu’il aura terminé, la console affichera :

Exécution sur l’URL locale : http://127.0.0.1:7860
Pour créer un lien public, mettez `share=True` dans `launch()`.

Comment générer des images en utilisant la diffusion stable avec une interface graphique ?

Très bien, vous avez installé la variante WebUI de Stable Diffusion, et votre console vous indique qu’elle “fonctionne sur l’URL locale : http://127.0.0.1:7860”.

Ouvrez votre navigateur, entrez “127.0.0.1:7860” ou “localhost:7860” dans la barre d’adresse, et appuyez sur Entrée. Vous verrez ceci sur l’onglet txt2img :

La page d’accueil du client WebUI dans Google Chrome.

Si vous avez déjà utilisé la diffusion stable, ces paramètres vous seront familiers, mais voici un bref aperçu de la signification des options les plus importantes :

  • Invite : La description de ce que vous souhaitez créer.
  • Bouton de roulement : Applique un style artistique aléatoire à votre invite.
  • Pas d’échantillonnage : Le nombre de fois que l’image sera affinée avant que vous ne receviez un résultat. Plus il y en a, mieux c’est, mais il y a des rendements décroissants.
  • Méthode d’échantillonnage : Les mathématiques sous-jacentes qui régissent le traitement de l’échantillonnage. Vous pouvez utiliser n’importe laquelle de ces méthodes, mais euler_a et PLMS semblent être les options les plus populaires. Vous pouvez en savoir plus sur PLMS dans cet article.
  • Restore Faces : Utilise GFPGAN pour essayer de réparer les visages déformés ou bizarres.
  • Nombre de lots : Le nombre d’images à générer.
  • Taille du lot : Le nombre de “lots”. Gardez cette valeur à 1 sauf si vous avez une énorme quantité de VRAM.
  • CFG Scale : Le degré d’attention avec lequel la Diffusion Stable suivra l’invite que vous lui donnez. Des nombres plus grands signifient qu’elle le suit très attentivement, alors que des nombres plus bas lui donnent plus de liberté créative.
  • Width : La largeur de l’image que vous voulez générer.
  • Hauteur : La largeur de l’image que vous voulez générer.
  • Seed : Le nombre qui fournit une entrée initiale pour un générateur de nombres aléatoires. Laissez-le à -1 pour générer une nouvelle graine de façon aléatoire.

Générons cinq images à partir de l’invite : “et voyons ce que nous obtenons en utilisant l’échantillonneur PLMS, 50 pas d’échantillonnage et une échelle CFG de 5.

Conseil : vous pouvez toujours appuyer sur le bouton “Interruption” pour arrêter la génération si votre travail prend trop de temps.

La fenêtre de sortie ressemblera à ceci :

Sortie pour un message sur les vaches Highland. Cinq vaches Highland, deux en noir et blanc.

L’image du haut et du milieu est celle que nous utiliserons pour faire des essais de masquage un peu plus tard. Il n’y a pas vraiment de raison pour ce choix spécifique, si ce n’est une préférence personnelle. Prenez n’importe quelle image que vous aimez.

Une adorable vache Highland dans une forêt.

Sélectionnez-la, puis cliquez sur “Envoyer à Inpaint”.

Comment masquer les images que vous créez pour les repeindre ?

L’Inpainting est une fonctionnalité fantastique. Normalement, la diffusion stable est utilisée pour créer des images entières à partir d’une invite, mais l’inpainting vous permet de générer (ou de régénérer) sélectivement des parties de l’image. Il y a deux options essentielles ici : inpaint masqué, inpaint non masqué.

Inpaint masked utilisera l’invite pour générer des images dans la zone que vous mettez en évidence, tandis que inpaint not masked fera exactement le contraire – seule la zone que vous masquez sera préservée.

Nous allons d’abord nous intéresser à Inpaint masqué. Faites glisser votre souris sur l’image en maintenant le clic gauche et vous remarquerez qu’une couche blanche apparaît au-dessus de votre image. Dessinez la forme de la zone que vous voulez remplacer, et assurez-vous de la remplir entièrement. Vous n’encerclez pas une région, vous masquez la région entière.

Prenons l’exemple de notre vache Highland et donnons-lui une toque de chef. Masquez une région ayant approximativement la forme d’une toque, et veillez à régler la “Taille du lot” sur plus de 1. Vous aurez probablement besoin de plusieurs lots pour obtenir un résultat idéal.

En outre, vous devez sélectionner “Bruit latent” plutôt que “Remplissage”, “Original” ou “Rien latent”. Ce dernier a tendance à produire les meilleurs résultats lorsque vous voulez générer un objet complètement nouveau dans une scène.

Une vache des Highlands avec une toque de chef.
Invite : Toque de chef Paramètres : Inpaint Masked, Latent Diffusion, CFG 9.5, Denoise strength 0.75, Sampling Steps = 50, Sampling Method = Euler_A

D’accord – peut-être qu’une toque de chef n’est pas le bon choix pour votre vache Highland. Votre vache Highland est plutôt du genre début 20e siècle, alors donnons-lui un chapeau melon.
Une vache Highland avec un chapeau melon.
Prompt : Chapeau melon Paramètres : Inpaint Masked, Latent Diffusion, CFG 9.5, denoise strength 0.75, Sampling Steps = 50, Sampling Method = Euler_A

Comme c’est positivement pimpant.

Bien sûr, vous pouvez aussi faire exactement le contraire avec Inpaint Not Masked. Il s’agit d’un concept similaire, sauf que les régions que vous définissez sont inversées. Au lieu de marquer la région que vous voulez changer, vous marquez les régions que vous voulez préserver. Elle est souvent utile lorsque vous souhaitez déplacer un petit objet sur un arrière-plan différent.

Comment corriger l’erreur “CUDA Out Of Memory” (mémoire insuffisante)

Plus l’image que vous créez est grande, plus la mémoire vidéo requise est importante. La première chose à faire est de générer des images plus petites. Stable Diffusion produit de bonnes images – bien que très différentes – à 256×256.

Si cela vous démange de faire des images plus grandes sur un ordinateur qui n’a pas de problèmes avec les images 512×512, ou si vous rencontrez des erreurs “Out of Memory”, il y a quelques changements dans la configuration qui devraient vous aider.

Ouvrez “webui-user.bat” dans le Bloc-notes, ou tout autre éditeur de texte brut que vous souhaitez. Faites un clic droit sur “webui-user.bat”, cliquez sur “Editer”, puis sélectionnez Notepad. Identifiez la ligne qui dit set COMMANDLINE_ARGS=. C’est là que vous allez placer les commandes pour optimiser le fonctionnement de Stable Diffusion.

Si vous voulez juste faire des images énormes, ou si vous manquez de RAM sur un GPU de la série GTX 10XX, essayez d’abord –opt-split-attention. Cela ressemblera à ceci :

Cliquez ensuite sur Fichier > Enregistrer. Vous pouvez également appuyer sur Ctrl+S sur votre clavier.

Si vous obtenez toujours des erreurs de mémoire, essayez d’ajouter –medvram à la liste des arguments de la ligne de commande (COMMANDLINE_ARGS).

Vous pouvez ajouter –always-batch-cond-uncond pour essayer de résoudre les problèmes de mémoire supplémentaires si les commandes précédentes n’ont pas aidé. Il existe également une alternative à –medvram qui pourrait réduire encore plus l’utilisation de la VRAM, –lowvram, mais nous ne pouvons pas attester de son efficacité.

L’ajout d’une interface utilisateur est un pas en avant essentiel pour rendre ce genre d’outils pilotés par l’IA accessibles à tous. Les possibilités sont presque infinies, et un simple coup d’œil aux communautés en ligne consacrées à l’art de l’IA vous montrera à quel point cette technologie est puissante, même si elle n’en est qu’à ses débuts. Bien sûr, si vous n’avez pas d’ordinateur de jeu ou si vous ne voulez pas vous soucier de la configuration, vous pouvez toujours utiliser l’un des générateurs d’IA en ligne. Gardez simplement à l’esprit que vous ne pouvez pas supposer que vos entrées sont privées.