Comment exécuter une diffusion stable localement avec une interface graphique sous Windows
Publié: 2022-09-18Vous pouvez installer Stable Diffusion localement sur votre PC, mais le processus typique implique beaucoup de travail avec la ligne de commande à 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 s'exécute localement avec une interface utilisateur graphique !
Qu'est-ce que la diffusion stable ?
De quoi avez-vous besoin pour exécuter cette version de Stable Diffusion ?
Comment installer une diffusion stable avec une interface graphique
Installez d'abord Python
Installez Git et téléchargez le référentiel GitHub
Télécharger tous les points de contrôle
Comment générer des images à l'aide d'une diffusion stable avec une interface graphique
Comment masquer les images que vous créez pour peindre
Comment réparer l'erreur "CUDA Out Of Memory"
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 de texte ou modifier des images existantes avec une invite de texte, 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.
Cependant, il existe deux différences essentielles qui distinguent Stable Diffusion de la plupart des autres générateurs d'art AI 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 de ligne de commande. Cela fonctionne, mais cela peut être maladroit, peu intuitif, et c'est un obstacle important à 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 pour celui-ci et a commencé à ajouter ses propres améliorations, y compris des optimisations pour minimiser l'utilisation de la RAM vidéo (VRAM) et intégrer la mise à l'échelle et le masquage.
De quoi avez-vous besoin pour exécuter cette version de Stable Diffusion ?
Cette version de Stable Diffusion est un fork - une ramification - du référentiel principal (repo) créé et maintenu par Stability.ai. Il dispose d'une interface utilisateur graphique (GUI) - ce qui le rend plus facile à utiliser que le Stable Diffusion standard, qui n'a qu'une interface de ligne de commande - et un programme d'installation qui gère automatiquement la majeure partie de la configuration.
CONNEXION: Comment exécuter une diffusion stable sur votre PC pour générer des images AI
Avertissement : Comme toujours, soyez prudent avec les forks de logiciels tiers que vous trouvez sur GitHub. Nous l'utilisons depuis un certain temps maintenant sans problème, tout comme des milliers d'autres, nous sommes donc enclins à dire qu'il est sûr. Heureusement, le code et les changements ici sont petits par rapport à certains forks de projets open source.
Ce fork contient également diverses optimisations qui devraient lui permettre de fonctionner sur des PC avec moins de RAM, des capacités de mise à l'échelle et faciales intégrées utilisant GFPGAN, ESRGAN, RealESRGAN et CodeFormer, et le masquage. Le masquage est un gros problème - il vous permet d'appliquer de manière sélective la génération d'image AI à certaines parties de l'image sans déformer d'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 (bien que vous puissiez faire fonctionner 4 Go)
- Un PC exécutant Windows 11, Windows 10, Windows 8.1 ou Windows 8
- Le référentiel WebUI GitHub, par AUTOMATIC1111
- Python 3.10.6 (les versions les plus récentes et les versions les plus anciennes devraient également convenir)
- Les points de contrôle officiels de Stable Diffusion (surveillez les points de contrôle v1.5 fin septembre !)
- Les points de contrôle GFPGAN v1.3 (la v1.4 peut également fonctionner)
- Tous les modèles ESRGAN supplémentaires que vous pourriez souhaiter. Vous pouvez en utiliser autant ou peu que vous le souhaitez.
Comment installer une diffusion stable avec une interface graphique
Le processus d'installation a été considérablement simplifié, mais il reste encore quelques étapes à effectuer manuellement avant de pouvoir utiliser le programme d'installation.
Installez d'abord Python
La première chose à faire est d'installer la version de Python, 3.10.6, recommandée par l'auteur du référentiel. Dirigez-vous vers ce lien, faites défiler vers le bas de la page et cliquez sur "Windows Installer (64 bits)".
Cliquez sur l'exécutable que vous avez téléchargé et suivez les invites. Si Python est déjà installé (et c'est certainement le cas), cliquez simplement sur "Mettre à niveau". Sinon, suivez les invites recommandées.
Remarque : Assurez-vous d'ajouter Python 3.10.6 au PATH si vous obtenez une option pour cela.
Installez Git et téléchargez le référentiel GitHub
Vous devez télécharger et installer Git sur Windows avant de pouvoir exécuter le programme d'installation de Stable Diffusion. Téléchargez simplement l'exécutable Git 64 bits, exécutez-le et utilisez les paramètres recommandés, sauf si vous avez quelque chose de spécifique en tête.
CONNEXION : Comment installer Git sur Windows
Ensuite, vous devez télécharger les fichiers à partir du référentiel GitHub. Cliquez sur le bouton vert "Code", puis cliquez sur "Télécharger ZIP" en bas du menu.
Ouvrez le fichier ZIP dans l'Explorateur de fichiers ou votre programme d'archivage de fichiers préféré, puis extrayez le contenu où vous le souhaitez. Gardez simplement à l'esprit que ce dossier est l'endroit où vous devrez vous rendre pour exécuter Stable Diffusion. Cet exemple les a extraits dans le répertoire C:\, mais ce n'est pas essentiel.
Remarque : Assurez-vous de ne pas faire glisser accidentellement "stable-diffusion-webui-master" dans un autre dossier plutôt que dans un espace vide - si vous le faites, il tombera dans ce dossier, pas dans le dossier parent que vous vouliez.
Télécharger tous les points de contrôle
Il y a quelques points de contrôle dont vous avez besoin pour que cela fonctionne. Les premiers et les plus importants sont les points de contrôle de diffusion stable. Vous devez créer un compte pour télécharger les points de contrôle, mais il n'y a pas grand chose à faire pour le compte - tout ce dont ils ont besoin est un nom et une adresse e-mail, et vous êtes prêt à partir.
Remarque : Le téléchargement des points de contrôle est de plusieurs gigaoctets. Ne vous attendez pas à ce que cela se fasse instantanément.
Copiez et collez "sd-v1-4.ckpt" dans le dossier "stable-diffusion-webui-master" de la section précédente, puis cliquez avec le bouton droit sur "sd-v1-4.ckpt" et appuyez sur renommer. Tapez "model.ckpt" dans le champ de texte et appuyez sur Entrée. Assurez-vous qu'il s'agit de "model.ckpt" - cela ne fonctionnera pas autrement.
Remarque : La fonction de renommage est une icône sous Windows 11.
Vous devez également télécharger les points de contrôle GFPGAN. L'auteur du référentiel que nous utilisons a demandé des points de contrôle GFPGAN v1.3, mais vous pourrez peut-être utiliser la v1.4 si vous souhaitez l'essayer. Faites défiler la page, puis cliquez sur "Modèle V1.3".
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 :
Vous pouvez également télécharger autant de points de contrôle ESRGAN que vous le souhaitez. Ils sont généralement emballés 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:
Les modèles ESRGAN ont tendance à fournir des fonctionnalités plus spécifiques, alors choisissez-en quelques-unes qui vous plaisent.
Maintenant, il vous suffit de double-cliquer sur le fichier "webui-user.bat", qui se trouve dans le dossier principal "stable-diffusion-webui-master". Une fenêtre de console apparaîtra et commencera à récupérer tous les autres fichiers importants, à créer un environnement Python et à configurer une interface utilisateur Web. Il ressemblera à ceci:
Remarque : Attendez-vous à ce que la première fois que vous l'exécutez, cela prenne au moins quelques minutes. Il doit télécharger un tas de choses sur Internet. S'il semble se bloquer pendant une durée déraisonnablement longue à une étape, essayez simplement de sélectionner la fenêtre de la console et d'appuyer sur la touche Entrée.
Quand c'est fait, la console affichera :
Exécution sur URL locale : http://127.0.0.1:7860 Pour créer un lien public, définissez `share=True` dans `launch()`
CONNEXION : Qu'est-ce que l'adresse IP 127.0.0.1 et comment l'utilisez-vous ?
Comment générer des images à l'aide d'une 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".
Remarque : Qu'est-ce que cela signifie exactement, que se passe-t-il ? 127.0.0.1 est l'adresse localhost - l'adresse IP que votre ordinateur se donne. Cette version de Stable Diffusion crée un serveur sur votre PC local qui est accessible via sa propre adresse IP, mais uniquement si vous vous connectez via le bon port : 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 dans l'onglet txt2img :
Si vous avez déjà utilisé Stable Diffusion, 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 Roll : applique un style artistique aléatoire à votre invite.
- Étapes d'échantillonnage : le nombre de fois où l'image sera affinée avant que vous ne receviez une sortie. Plus c'est généralement mieux, mais il y a des rendements décroissants.
- Méthode d'échantillonnage : Les mathématiques sous-jacentes qui régissent la façon dont l'échantillonnage est géré. Vous pouvez utiliser n'importe lequel d'entre eux, mais euler_a et PLMS semblent être les options les plus populaires. Vous pouvez en savoir plus sur le PLMS dans cet article.
- Restaurer les visages : utilise GFPGAN pour essayer de corriger les visages étranges ou déformés.
- Nombre de lots : Le nombre d'images à générer.
- Taille du lot : le nombre de "lots". Gardez-le à 1 sauf si vous avez une énorme quantité de VRAM.
- Échelle CFG : avec quelle attention Stable Diffusion suivra l'invite que vous lui avez donnée. Des nombres plus grands signifient qu'il le suit très attentivement, tandis que des nombres plus faibles lui donnent plus de liberté créative.
- Largeur : La largeur de l'image que vous souhaitez générer.
- Hauteur : La largeur de l'image que vous souhaitez générer.
- Graine : le nombre qui fournit une entrée initiale pour un générateur de nombres aléatoires. Laissez-le à -1 pour générer aléatoirement une nouvelle graine.
Générons cinq images basées sur l'invite : "une vache des hautes terres dans une forêt magique, photographie de film 35 mm, nette" et voyons ce que nous obtenons en utilisant l'échantillonneur PLMS, 50 étapes d'échantillonnage et une échelle CFG de 5.
Conseil : Vous pouvez toujours appuyer sur le bouton "Interrompre" pour arrêter la génération si votre travail prend trop de temps.
La fenêtre de sortie ressemblera à ceci :
Remarque : Vos images seront différentes.
L'image en haut au milieu est celle que nous utiliserons pour essayer de masquer un peu plus tard. Il n'y a pas vraiment de raison à ce choix spécifique autre que la préférence personnelle. Prenez n'importe quelle image que vous aimez.
Sélectionnez-le, puis cliquez sur "Envoyer à Inpaint".
Comment masquer les images que vous créez pour peindre
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) de manière sélective des parties de l'image. Il y a deux options critiques ici : inpaint masqué, inpaint non masqué.
L'inpaint masqué utilisera l'invite pour générer des images dans la zone que vous mettez en surbrillance, tandis que l'inpaint non masqué fera exactement le contraire - seule la zone que vous masquez sera conservée.
Nous allons d'abord parler un peu d'Inpaint masqué. Faites glisser votre souris sur l'image en maintenant le clic gauche et vous remarquerez qu'un calque blanc apparaît au-dessus de votre image. Dessinez la forme de la zone que vous souhaitez remplacer et assurez-vous de la remplir entièrement. Vous n'encerclez pas une région, vous masquez toute la région.
Astuce : Si vous ajoutez simplement quelque chose à une image existante, il peut être utile d'essayer d'aligner la zone masquée avec la forme approximative que vous essayez de créer. Masquer une forme triangulaire alors que vous voulez un cercle, par exemple, est contre-productif.
Prenons l'exemple de notre vache des hautes terres et donnons-lui une toque de chef. Masquez une région ayant approximativement la forme d'un chapeau de chef et assurez-vous de régler "Taille du lot" sur plus de 1. Vous en aurez probablement besoin de plusieurs pour obtenir un résultat idéal (plutôt).
De plus, vous devez sélectionner "Latent Noise" plutôt que "Fill", "Original" ou "Latent Nothing". Il a tendance à produire les meilleurs résultats lorsque vous souhaitez générer un objet complètement nouveau dans une scène.
Remarque : Vous remarquerez que le bord gauche du chapeau a supprimé une partie de sa corne. Cela s'est produit parce que le paramètre "Mask Blur" était un peu trop élevé. Si vous voyez des choses comme ça dans vos images, essayez de diminuer la valeur "Flou du masque".
D'accord - peut-être qu'une toque de chef n'est pas le bon choix pour votre vache des hautes terres. Votre vache des hautes terres est plus dans l'ambiance du début du XXe siècle, alors donnons-lui un chapeau melon.
Comment positivement pimpant.
Bien sûr, vous pouvez également faire exactement le contraire avec Inpaint Not Masked. Il est conceptuellement similaire, sauf que les régions que vous définissez sont inversées. Au lieu de marquer la région que vous souhaitez modifier, vous marquez les régions que vous souhaitez conserver. Il est souvent utile lorsque vous souhaitez déplacer un petit objet sur un arrière-plan différent.
Comment réparer l'erreur "CUDA Out Of Memory"
Plus l'image que vous créez est grande, plus la mémoire vidéo requise est importante. La première chose que vous devriez essayer est de générer des images plus petites. La diffusion stable produit de bonnes images, bien que très différentes, à 256 × 256.
Si vous avez envie de créer des images plus grandes sur un ordinateur qui n'a pas de problèmes avec les images 512 × 512, ou si vous rencontrez diverses erreurs "Mémoire insuffisante", certaines modifications de la configuration devraient vous aider.
Ouvrez "webui-user.bat" dans le Bloc-notes ou tout autre éditeur de texte brut de votre choix. Faites un clic droit sur "webui-user.bat", cliquez sur "Modifier", puis sélectionnez Bloc-notes. Identifiez la ligne qui lit set COMMANDLINE_ARGS=
. C'est là que vous allez placer les commandes pour optimiser le fonctionnement de Stable Diffusion.
CONNEXION: Comment écrire un script batch sous Windows
Si vous voulez juste faire de grandes images, 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. Alternativement, vous pouvez appuyer sur Ctrl+S sur votre clavier.
Si vous rencontrez toujours des erreurs de mémoire, essayez d'ajouter --medvram
à la liste des arguments de ligne de commande (COMMANDLINE_ARGS).
Vous pouvez ajouter --always-batch-cond-uncond
pour essayer de résoudre des 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 si cela fonctionnera réellement ou non.
L'ajout d'une interface utilisateur est une étape cruciale pour rendre ces types d'outils basés sur l'IA accessibles à tous. Les possibilités sont presque infinies, et même un rapide coup d'œil sur les communautés en ligne dédiées à l'art de l'IA vous montrera à quel point la technologie est puissante, même à 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'art AI en ligne. N'oubliez pas que vous ne pouvez pas supposer que vos entrées sont privées.