Auto 1111 SDK: bibliothèque de python de diffusion stable
Le SDK Auto 1111 est une bibliothèque Python légère pour utiliser des images générateurs de diffusion stables, des images à l'échelle et l'édition d'images avec des modèles de diffusion. Il est conçu pour être un client Python modulaire et léger qui résume toutes les principales caractéristiques de l'interface utilisateur de diffusion stable 1111 automatique] (https://github.com/automatic1111/stable-diffusion-webui). Auto 1111 SDK propose actuellement 3 fonctionnalités principales:
- Texte à image, image à l'image, enceintes et pipelines de la décharge. Nos pipelines prennent en charge les mêmes paramètres exacts que l'interface utilisateur Web de diffusion stable, vous pouvez donc facilement reproduire les créations à partir de l'interface utilisateur Web sur le SDK.
- Pipelines de mise à l'échelle qui peuvent exécuter l'inférence pour n'importe quel CESRGAN ou réel ESRGAN UpScaler en quelques lignes de code.
- Une intégration avec Civit AI pour télécharger directement les modèles à partir du site Web.
Rejoignez notre discorde !!
Démo
Nous avons une démo Colab où vous pouvez exécuter bon nombre des opérations du SDK Auto 1111. Vérifiez-le ici !!
Installation
Nous vous recommandons d'installer Auto 1111 SDK dans un environnement virtuel de PYPI. À l'heure actuelle, nous n'avons pas encore de soutien aux environnements conda.
Pour installer la dernière version du SDK Auto 1111 (avec ControlNet maintenant inclus), exécutez:
pip3 install git+https://github.com/saketh12/Auto1111SDK.git
Start
La génération d'images avec le SDK Auto 1111 est super facile. Pour exécuter l'inférence pour l'image du texte à l'image, l'image à l'image, la détérioration, la construction ou la diffusion stable haut de gamme, nous avons 1 pipeline qui peut prendre en charge toutes ces opérations. Cela permet d'économiser beaucoup de RAM d'avoir à créer plusieurs objets de pipeline avec d'autres solutions.
from auto1111sdk import StableDiffusionPipeline
pipe = StableDiffusionPipeline ( "<Path to your local safetensors or checkpoint file>" )
prompt = "a picture of a brown dog"
output = pipe . generate_txt2img ( prompt = prompt , height = 1024 , width = 768 , steps = 10 )
output [ 0 ]. save ( "image.png" )
Contrôle
À l'heure actuelle, ControlNet ne fonctionne qu'avec FP32. Nous ajoutons très bientôt la prise en charge de FP16.
from auto1111sdk import StableDiffusionPipeline
from auto1111sdk import ControlNetModel
model = ControlNetModel ( model = "<THE CONTROLNET MODEL FILE NAME (WITHOUT EXTENSION)>" ,
image = "<PATH TO IMAGE>" )
pipe = StableDiffusionPipeline ( "<Path to your local safetensors or checkpoint file>" , controlnet = model )
prompt = "a picture of a brown dog"
output = pipe . generate_txt2img ( prompt = prompt , height = 1024 , width = 768 , steps = 10 )
output [ 0 ]. save ( "image.png" )Courir sur Windows
Trouvez les instructions ici. Contribué par Marco Guardigli, [email protected]
Documentation
Nous avons des exemples / documents plus détaillés sur la façon dont vous pouvez utiliser le SDK Auto 1111 ici. Pour une comparaison détaillée entre nous et les diffuseurs HuggingFace, vous pouvez lire ceci.
Pour un guide détaillé sur la façon d'utiliser SDXL, nous vous recommandons de lire ceci
Caractéristiques
- Modes originaux txt2IMG et IMG2IMG
- Real Esrgan Upscale et Esrgan UpScale (compatible avec n'importe quel fichier PTH)
- Sursaut
- Déaini
- Diffusion stable haut de gamme
- Attention, spécifiez des parties du texte auquel le modèle devrait accorder plus d'attention
- Un homme dans un
((tuxedo)) - accordera plus d'attention à Tuxedo - Un homme dans un
(tuxedo:1.21) - Syntaxe alternative - Sélectionnez du texte et appuyez sur
Ctrl+Up ou Ctrl+Down (ou Command+Up ou Command+Down si vous êtes sur un macOS) pour ajuster automatiquement l'attention au texte sélectionné (code contribué par l'utilisateur anonyme)
- Diffusion composable: un moyen d'utiliser plusieurs invites à la fois
- séparer les invites à l'aide de majuscules et
- Prend également des poids pour les invites: un chat: 1.2 et un chien et un pingouin: 2.2
- Fonctionne avec une variété d'échantillonneurs
- Téléchargez les modèles directement à partir des points de contrôle Civit AI et Reresrgan
- Définir Custom Vae: fonctionne pour tout modèle comprenant SDXL
- Prise en charge de SDXL avec des pipelines de diffusion xl stables
- Passer des arguments personnalisés aux modèles
- Non 77 limite de jeton rapide (contrairement aux diffuseurs HuggingFace, qui a cette limite)
Feuille de route
- L'ajout de paramètres de fixation des embauches de fixation et de raffineur pour l'inférence.
- Ajout de la prise en charge de Lora
- Ajout de support pour la restauration du visage
- Ajouter le support du script de formation Dreambooth.
- Ajout de la prise en charge des extensions personnalisées comme ControlNet.
Nous ajouterons très bientôt la prise en charge de ces fonctionnalités. Nous acceptons également toute contribution au travail sur ces questions!
Contributif
Le SDK Auto1111 évolue continuellement et nous apprécions la participation de la communauté. Nous accueillons toutes les formes de contributions - rapports de bogues, demandes de fonctionnalités et contributions de code.
Signalez les bogues et demandez les fonctionnalités en ouvrant un problème sur GitHub. Contribuez le projet en fournissant / clonage le référentiel et en soumettant une demande de traction avec vos modifications.
Crédits
Les licences de code empruntées peuvent être trouvées dans l'écran Settings -> Licenses , ainsi que dans le fichier html/licenses.html .
- Automatique 1111 Ui de diffusion stable 1111 - https://github.com/automatic1111/stable-diffusion-webui
- Diffusion stable - https://github.com/stability-ai/stablediffusion, https://github.com/compvis/taming-transformers
- k-diffusion - https://github.com/crowsonkb/k-diffusion.git
- Esrgan - https://github.com/xinntao/esrgan
- Midas - https://github.com/isl-org/midas
- Idées d'optimisations - https://github.com/basujindal/stable-diffusion
- Optimisation de la couche d'attention - Doggettx - https://github.com/doggettx/stable-diffusion, idée originale pour l'édition rapide.
- Optimisation de la couche d'attention - invokeai, lstein - https://github.com/invoke-ai/invokeai (à l'origine http://github.com/lstein/stable-diffusion)
- Optimisation de la couche d'attention sous-quadratique - Alex Birch (Birch-san / Diffusers # 1), Amin Rezaei (https://github.com/aminrezaei0x443/memory-effeent-attention)
- Inversion textuelle - Rinon Gal - https://github.com/rinongal/textual_inversion (nous n'utilisons pas son code, mais nous utilisons ses idées).
- IDEA POUR SD UPSCALE - https://github.com/jquesnelle/txt2imghd
- Génération de bruit pour la surfusion MK2 - https://github.com/parlance-zz/g-diffuser-bot
- Clip Interrogator Idea et emprunt du code - https://github.com/pharmapsychotic/clip-interrogator
- Idée pour la diffusion composable - https://github.com/energy-ased-model/compositional-visual-generation-with-composable-diffusion-models-pytorch
- XFORMERS - https://github.com/facebookResearch/Xformers
- Échantillonnage dans Float32 Précision à partir d'un float16 Unet - Marunine pour l'idée, Birch-San pour l'exemple d'implémentation diffusers (https://github.com/birch-san/diffusers-play/tree/92Feee6)