This is a forked project, working on Gradio 3.16.2.
This fork contains some PRs that haven't yet been merged into the upstream. Thank you for your contributions.
A browser interface based on Gradio library for Stable Diffusion.
Detailed feature showcase with images:
- Original txt2img and img2img modes
- One click install and run script (but you still must install Python and git)
- Outpainting
- Inpainting
- Color Sketch
- Prompt Matrix
- Stable Diffusion Upscale
- Attention, specify parts of text that the model should pay more attention to
- a man in a
((tuxedo))
- will pay more attention to tuxedo - a man in a
(tuxedo:1.21)
- alternative syntax - select text and press
Ctrl+Up
orCtrl+Down
to automatically adjust attention to selected text (code contributed by anonymous user)
- a man in a
- Loopback, run img2img processing multiple times
- X/Y/Z plot, a way to draw a 3 dimensional plot of images with different parameters
- Textual Inversion
- have as many embeddings as you want and use any names you like for them
- use multiple embeddings with different numbers of vectors per token
- works with half precision floating point numbers
- train embeddings on 8GB (also reports of 6GB working)
- Extras tab with:
- GFPGAN, neural network that fixes faces
- CodeFormer, face restoration tool as an alternative to GFPGAN
- RealESRGAN, neural network upscaler
- ESRGAN, neural network upscaler with a lot of third party models
- SwinIR and Swin2SR (see here), neural network upscalers
- LDSR, Latent diffusion super resolution upscaling
- Resizing aspect ratio options
- Sampling method selection
- Adjust sampler eta values (noise multiplier)
- More advanced noise setting options
- Interrupt processing at any time
- 4GB video card support (also reports of 2GB working)
- Correct seeds for batches
- Live prompt token length validation
- Generation parameters
- parameters you used to generate images are saved with that image
- in PNG chunks for PNG, in EXIF for JPEG
- can drag the image to PNG info tab to restore generation parameters and automatically copy them into UI
- can be disabled in settings
- drag and drop an image/text-parameters to promptbox
- Read Generation Parameters Button, loads parameters in promptbox to UI
- Settings page
- Running arbitrary Python code from UI (must run with
--allow-code
to enable) - Mouseover hints for most UI elements
- Possible to change defaults/mix/max/step values for UI elements via text config
- Tiling support, a checkbox to create images that can be tiled like textures
- Progress bar and live image generation preview
- Can use a separate neural network to produce previews with almost none VRAM or compute requirement
- Negative prompt, an extra text field that allows you to list what you don't want to see in generated image
- Styles, a way to save part of prompt and easily apply them via dropdown later
- Variations, a way to generate same image but with tiny differences
- Seed resizing, a way to generate same image but at slightly different resolution
- CLIP interrogator, a button that tries to guess prompt from an image
- Prompt Editing, a way to change prompt mid-generation, say to start making a watermelon and switch to anime girl midway
- Batch Processing, process a group of files using img2img
- Img2img Alternative, reverse Euler method of cross attention control
- Highres Fix, a convenience option to produce high resolution pictures in one click without usual distortions
- Reloading checkpoints on the fly
- Checkpoint Merger, a tab that allows you to merge up to 3 checkpoints into one
- Custom scriptswith many extensions from community
- Composable-Diffusion,a way to use multiple prompts at once
- separate prompts using uppercase
AND
- also supports weights for prompts:
a cat:1.2 AND a dog AND a penguin:2.2
- separate prompts using uppercase
- No token limit for prompts (original stable diffusion lets you use up to 75 tokens)
- DeepDanbooru integration, creates danbooru style tags for anime prompts
- xformers,major speed increase for select cards: (add
--xformers
to commandline args) - via extension:History tab:view, direct and delete images conveniently within the UI
- Generate forever option
- Training tab
- hypernetworks and embeddings options
- Preprocessing images: cropping, mirroring, autotagging using BLIP or deepdanbooru (for anime)
- Clip skip
- Hypernetworks
- Loras (same as Hypernetworks but more pretty)
- A sparate UI where you can choose, with preview, which embeddings, hypernetworks or Loras to add to your prompt
- Can select to load a different VAE from settings screen
- Estimated completion time in progress bar
- API
- Support for dedicatedinpainting modelby RunwayML
- via extension:Aesthetic Gradients,a way to generate images with a specific aesthetic by using clip images embeds (implementation ofhttps://github /vicgalle/stable-diffusion-aesthetic-gradients)
- Stable Diffusion 2.0support - seewikifor instructions
- Alt-Diffusionsupport - seewikifor instructions
- Now without any bad letters!
- Load checkpoints in safetensors format
- Eased resolution restriction: generated image's domension must be a multiple of 8 rather than 64
- Now with a license!
- Reorder elements in the UI from settings screen
Make sure the requireddependenciesare met and follow the instructions available for bothNVidia(recommended) andAMDGPUs.
Alternatively, use online services (like Google Colab):
- InstallPython 3.10.6,checking "Add Python to PATH".
- Installgit.
- Download the stable-diffusion-webui repository, for example by running
git clone https://github /AUTOMATIC1111/stable-diffusion-webui.git
. - Run
webui-user.bat
from Windows Explorer as normal, non-administrator, user.
- Install the dependencies:
#Debian-based:
sudo apt install wget git Python 3 Python 3-venv
#Red Hat-based:
sudo dnf install wget git Python 3
#Arch-based:
sudo pacman -S wget git Python 3
- To install in
/home/$(whoami)/stable-diffusion-webui/
,run:
bash<(wget -qO- https://raw.githubusercontent /AUTOMATIC1111/stable-diffusion-webui/master/webui.sh)
- Run
webui.sh
.
Find the instructionshere.
Here's how to add code to this repo:Contributing
The documentation was moved from this README over to the project'swiki.
Licenses for borrowed code can be found inSettings -> Licenses
screen, and also inhtml/licenses.html
file.
- Stable Diffusion -https://github /CompVis/stable-diffusion,https://github /CompVis/taming-transformers
- k-diffusion -https://github /crowsonkb/k-diffusion.git
- GFPGAN -https://github /TencentARC/GFPGAN.git
- CodeFormer -https://github /sczhou/CodeFormer
- ESRGAN -https://github /xinntao/ESRGAN
- SwinIR -https://github /JingyunLiang/SwinIR
- Swin2SR -https://github /mv-lab/swin2sr
- LDSR -https://github /Hafiidz/latent-diffusion
- MiDaS -https://github /isl-org/MiDaS
- Ideas for optimizations -https://github /basujindal/stable-diffusion
- Cross Attention layer optimization - Doggettx -https://github /Doggettx/stable-diffusion,original idea for prompt editing.
- Cross Attention layer optimization - InvokeAI, lstein -https://github /invoke-ai/InvokeAI(originallyhttp://github /lstein/stable-diffusion)
- Sub-quadratic Cross Attention layer optimization - Alex Birch (Birch-san/diffusers#1), Amin Rezaei (https://github /AminRezaei0x443/memory-efficient-attention)
- Textual Inversion - Rinon Gal -https://github /rinongal/textual_inversion(we're not using his code, but we are using his ideas).
- Idea for SD upscale -https://github /jquesnelle/txt2imghd
- Noise generation for outpainting mk2 -https://github /parlance-zz/g-diffuser-bot
- CLIP interrogator idea and borrowing some code -https://github /pharmapsychotic/clip-interrogator
- Idea for Composable Diffusion -https://github /energy-based-model/Compositional-Visual-Generation-with-Composable-Diffusion-Models-PyTorch
- xformers -https://github /facebookresearch/xformers
- DeepDanbooru - interrogator for anime diffusershttps://github /KichangKim/DeepDanbooru
- Sampling in float32 precision from a float16 UNet - marunine for the idea, Birch-san for the example Diffusers implementation (https://github /Birch-san/diffusers-play/tree/92feee6)
- Instruct pix2pix - Tim Brooks (star), Aleksander Holynski (star), Alexei A. Efros (no star) -https://github /timothybrooks/instruct-pix2pix
- Security advice - RyotaK
- UniPC sampler - Wenliang Zhao -https://github /wl-zhao/UniPC
- TAESD - Ollin Boer Bohan -https://github /madebyollin/taesd
- Initial Gradio script - posted on 4chan by an Anonymous user. Thank you Anonymous user.
- (You)