Une interface web pour Stable Diffusion, implémentée à l'aide de la bibliothèque Gradio.
Présentation détaillée des fonctionnalités avec images :
Modes txt2img et img2img d'origine
Installez et exécutez le script en un clic (mais vous devez toujours installer Python et git)
Peinture
Peinture
Croquis en couleur
Matrice d'invite
Diffusion stable haut de gamme
Attention, précisez les parties de texte auxquelles le modèle devrait prêter plus d'attention
un homme en ((tuxedo))
- fera plus attention au smoking
un homme en (tuxedo:1.21)
- syntaxe alternative
sélectionnez le texte et appuyez sur Ctrl+Up
ou Ctrl+Down
(ou Command+Up
ou Command+Down
si vous êtes sur MacOS) pour ajuster automatiquement l'attention sur le texte sélectionné (code fourni par un utilisateur anonyme)
Bouclage, exécutez le traitement img2img plusieurs fois
Tracé X/Y/Z, un moyen de dessiner un tracé d'images en 3 dimensions avec différents paramètres
Inversion textuelle
ayez autant d'intégrations que vous le souhaitez et utilisez les noms que vous aimez pour elles
utiliser plusieurs intégrations avec différents nombres de vecteurs par jeton
fonctionne avec des nombres à virgule flottante demi-précision
former les intégrations sur 8 Go (rapports également de 6 Go de travail)
Onglet Extras avec :
GFPGAN, réseau de neurones qui corrige les visages
CodeFormer, outil de restauration de visage comme alternative au GFPGAN
RealESRGAN, upscaler de réseaux neuronaux
ESRGAN, upscaler de réseau neuronal avec de nombreux modèles tiers
SwinIR et Swin2SR (voir ici), upscalers de réseaux neuronaux
LDSR, mise à l'échelle de super résolution par diffusion latente
Options de redimensionnement des proportions
Sélection de la méthode d'échantillonnage
Ajuster les valeurs êta de l'échantillonneur (multiplicateur de bruit)
Options de réglage du bruit plus avancées
Interrompre le traitement à tout moment
Prise en charge de la carte vidéo de 4 Go (rapporte également que 2 Go fonctionnent)
Corriger les graines pour les lots
Validation de la longueur du jeton d'invite en direct
Paramètres de génération
les paramètres que vous avez utilisés pour générer des images sont enregistrés avec cette image
en morceaux PNG pour PNG, en EXIF pour JPEG
peut faire glisser l'image vers l'onglet d'informations PNG pour restaurer les paramètres de génération et les copier automatiquement dans l'interface utilisateur
peut être désactivé dans les paramètres
faites glisser et déposez une image/des paramètres de texte dans la boîte de dialogue
Bouton Lire les paramètres de génération, charge les paramètres dans la boîte de dialogue vers l'interface utilisateur
Page des paramètres
Exécution de code Python arbitraire à partir de l'interface utilisateur (doit être exécuté avec --allow-code
pour l'activer)
Conseils de survol de la souris pour la plupart des éléments de l'interface utilisateur
Possibilité de modifier les valeurs par défaut/mix/max/step pour les éléments de l'interface utilisateur via la configuration du texte
Prise en charge du carrelage, une case à cocher pour créer des images pouvant être carrelées comme des textures
Barre de progression et aperçu de la génération d'images en direct
Peut utiliser un réseau neuronal séparé pour produire des aperçus sans pratiquement aucune exigence de VRAM ou de calcul
Invite négative, un champ de texte supplémentaire qui vous permet de lister ce que vous ne voulez pas voir dans l'image générée
Styles, un moyen d'enregistrer une partie de l'invite et de les appliquer facilement via une liste déroulante ultérieurement
Variations, une façon de générer la même image mais avec d'infimes différences
Redimensionnement des graines, un moyen de générer la même image mais à une résolution légèrement différente
Interrogateur CLIP, un bouton qui tente de deviner l'invite à partir d'une image
Prompt Editing, un moyen de changer d'invite de mi-génération, par exemple commencer à faire une pastèque et passer à Anime Girl à mi-chemin
Traitement par lots, traitez un groupe de fichiers à l'aide de img2img
Img2img Méthode alternative d'Euler inversée pour le contrôle de l'attention croisée
Highres Fix, une option pratique pour produire des images haute résolution en un clic sans distorsions habituelles
Recharger les points de contrôle à la volée
Checkpoint Merger, un onglet qui permet de fusionner jusqu'à 3 points de contrôle en un seul
Scripts personnalisés avec de nombreuses extensions de la communauté
Composable-Diffusion, un moyen d'utiliser plusieurs invites à la fois
invites séparées en utilisant des majuscules AND
prend également en charge les poids pour les invites : a cat :1.2 AND a dog AND a penguin :2.2
Aucune limite de jetons pour les invites (la diffusion stable d'origine vous permet d'utiliser jusqu'à 75 jetons)
Intégration DeepDanbooru, crée des balises de style danbooru pour les invites d'anime
xformers, augmentation majeure de la vitesse pour certaines cartes : (ajoutez --xformers
aux arguments de la ligne de commande)
via extension : onglet Historique : affichez, dirigez et supprimez facilement des images dans l'interface utilisateur
Option Générer pour toujours
Onglet Formation
options d'hyperréseaux et d'intégrations
Prétraitement des images : recadrage, mise en miroir, marquage automatique à l'aide de BLIP ou deepdanbooru (pour l'anime)
Saut de clip
Hyperréseaux
Loras (identique aux Hyperréseaux mais en plus joli)
Une interface utilisateur distincte où vous pouvez choisir, avec aperçu, quels intégrations, hyperréseaux ou Loras ajouter à votre invite
Peut choisir de charger un VAE différent à partir de l'écran des paramètres
Barre de progression du temps d'achèvement estimé
API
Prise en charge du modèle d'inpainting dédié par RunwayML
via extension : Aesthetic Gradients, un moyen de générer des images avec une esthétique spécifique en utilisant des images de clip intégrées (implémentation de https://github.com/vicgalle/stable-diffusion-aesthetic-gradients)
Prise en charge de Stable Diffusion 2.0 - voir wiki pour les instructions
Prise en charge d'Alt-Diffusion - voir wiki pour les instructions
Maintenant, sans mauvaises lettres !
Charger les points de contrôle au format safetensors
Restriction de résolution allégée : les dimensions de l'image générée doivent être un multiple de 8 au lieu de 64
Maintenant avec une licence !
Réorganiser les éléments dans l'interface utilisateur à partir de l'écran des paramètres
Prise en charge de la diffusion stable Segmind
Assurez-vous que les dépendances requises sont remplies et suivez les instructions disponibles pour :
NVidia (recommandé)
GPU AMD.
Processeurs Intel, GPU Intel (intégrés et discrets) (page wiki externe)
Ascend NPU (page wiki externe)
Vous pouvez également utiliser des services en ligne (comme Google Colab) :
Liste des services en ligne
Téléchargez sd.webui.zip
depuis la v1.0.0-pre et extrayez son contenu.
Exécutez update.bat
.
Exécutez run.bat
.
Pour plus de détails, voir Installer et exécuter sur des GPU NVidia.
Installez Python 3.10.6 (la version la plus récente de Python ne prend pas en charge Torch), en cochant "Ajouter Python au PATH".
Installez git.
Téléchargez le référentiel stable-diffusion-webui, par exemple en exécutant git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
.
Exécutez webui-user.bat
à partir de l’Explorateur Windows en tant qu’utilisateur normal, non-administrateur.
Installez les dépendances :
# Basé sur Debian : sudo apt install wget git python3 python3-venv libgl1 libglib2.0-0# Basé sur Red Hat : sudo dnf install wget git python3 gperftools-libs libglvnd-glx# openSUSE-based : sudo zypper install wget git python3 libtcmalloc4 libglvnd# Basé sur Arch : sudo pacman -S wget git python3
Si votre système est très récent, vous devez installer python3.11 ou python3.10 :
# Ubuntu 24.04sudo add-apt-repository ppa:deadsnakes/ppa sudo apt mise à jour sudo apt install python3.11# Manjaro/Archsudo pacman -S ouais yay -S python311 # à ne pas confondre avec le package python3.11# Uniquement pour 3.11# Ensuite, configurez la variable d'environnement dans le script de lancement python_cmd="python3.11"# ou dans webui-user.shpython_cmd="python3.11"
Accédez au répertoire dans lequel vous souhaitez que le webui soit installé et exécutez la commande suivante :
wget -q https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/webui.sh
Ou clonez simplement le dépôt où vous le souhaitez :
clone git https://github.com/AUTOMATIC1111/stable-diffusion-webui
Exécutez webui.sh
.
Vérifiez webui-user.sh
pour les options.
Retrouvez les instructions ici.
Voici comment ajouter du code à ce dépôt : Contribuer
La documentation a été déplacée de ce README vers le wiki du projet.
Dans le but d'amener Google et d'autres moteurs de recherche à explorer le wiki, voici un lien vers le wiki explorable (pas pour les humains).
Les licences pour le code emprunté peuvent être trouvées dans l'écran Settings -> Licenses
, ainsi que dans le fichier html/licenses.html
.
Diffusion stable - https://github.com/Stability-AI/stablediffusion, https://github.com/CompVis/taming-transformers, https://github.com/mcmonkey4eva/sd3-ref
k-diffusion - https://github.com/crowsonkb/k-diffusion.git
Allège - https://github.com/chaiNNer-org/spandrel implémentation
GFPGAN - https://github.com/TencentARC/GFPGAN.git
CodeFormer - https://github.com/sczhou/CodeFormer
ESRGAN - https://github.com/xinntao/ESRGAN
SwinIR - https://github.com/JingyunLiang/SwinIR
Swin2SR - https://github.com/mv-lab/swin2sr
LDSR - https://github.com/Hafiidz/latent-diffusion
MiDaS - https://github.com/isl-org/MiDaS
Idées d'optimisations - https://github.com/basujindal/stable-diffusion
Optimisation de la couche Cross Attention - Doggettx - https://github.com/Doggettx/stable-diffusion, idée originale pour une édition rapide.
Optimisation de la couche Cross Attention - InvokeAI, lstein - https://github.com/invoke-ai/InvokeAI (à l'origine http://github.com/lstein/stable-diffusion)
Optimisation de la couche d'attention croisée sous-quadratique - Alex Birch (Birch-san/diffusers#1), Amin Rezaei (https://github.com/AminRezaei0x443/memory-efficient-attention)
Inversion textuelle - Rinon Gal - https://github.com/rinongal/textual_inversion (nous n'utilisons pas son code, mais nous utilisons ses idées).
Idée pour la mise à l'échelle SD - https://github.com/jquesnelle/txt2imghd
Génération de bruit pour la peinture mk2 - https://github.com/parlance-zz/g-diffuser-bot
Idée d'interrogateur CLIP et emprunt de code - https://github.com/pharmapsychotic/clip-interrogator
Idée de diffusion composable - https://github.com/energy-based-model/Compositional-Visual-Generation-with-Composable-Diffusion-Models-PyTorch
xformers - https://github.com/facebookresearch/xformers
DeepDanbooru - interrogateur pour diffuseurs d'anime https://github.com/KichangKim/DeepDanbooru
Échantillonnage en précision float32 à partir d'un float16 UNet - marunine pour l'idée, Birch-san pour l'exemple d'implémentation de Diffusers (https://github.com/Birch-san/diffusers-play/tree/92feee6)
Instruire pix2pix - Tim Brooks (étoile), Aleksander Holynski (étoile), Alexei A. Efros (pas d'étoile) - https://github.com/timothybrooks/instruct-pix2pix
Conseils de sécurité - RyotaK
Échantillonneur UniPC - Wenliang Zhao - https://github.com/wl-zhao/UniPC
TAESD - Ollin Boer Bohan - https://github.com/madebyollin/taesd
LyCORIS - KohakuBlueleaf
Redémarrer l'échantillonnage - lambertae - https://github.com/Newbeeer/diffusion_restart_sampling
Hypertile - tfernd - https://github.com/tfernd/HyperTile
Script initial de Gradio - publié sur 4chan par un utilisateur anonyme. Merci Utilisateur anonyme.
(Toi)