Tested on Debian 11 (Bullseye), it may need adjustments for other Linux distros.
You just need python3
and the proprietary nvidia drivers
.
For reverse proxy on port 80 you need to sudo without password (in /etc/sudoers.d/username
):
username ALL=(ALL) NOPASSWD: ALL
Easy install script:
bash <(wget -qO- https://raw.githubusercontent.com/orionaskatu/stable-diffusion-webui/master/webui.sh)
The default installation directory for stable-diffusion is /home/$(whoami)/stable-diffusion-webui
.
The python venv will be installed in /home/$(whoami)/stable-diffusion-webui/venv
.
If you want to install stable-diffusion or venv somewhere else, you need to clone the repo and change the parameters in webui-user.sh
.
If you want to use the reverse proxy on port 80 and the systemd service, you need to clobne the repo and launch install.sh
.
A bash script start.sh
that:
- Launches a reverse proxy on port 80 to easily access the webui from the local network
- Launches
webui.sh
A System tab with buttons to:
- Read the last 20 lines of
journalctl -u stable-diffusion
- Print
nvidia-smi
output - Purge
outputs
directory - Restart the WebUI (to update and in case of OOM)
- Power off the system
A bash script discord.sh
to send generation infos + images to discord via webhook.
It also sends status changes on start/reboot/stop.
It converts and compress to jpg if the file is too big for Discord (8MB limit).
You have to put your Discord webhook url in a discordurl.txt
file in the same directory as the discord.sh
file :
https://discord.com/api/webhooks/xxx/xxx
Scrolls to output after clicking on Generate
buttons (useful for mobile usage or small screens).
Start/stop is controlled by systemd /etc/systemd/system/stable-diffusion.service
and set to start at boot.
↓↓↓↓ ORIGINAL README BELOW ↓↓↓↓
A browser interface based on Gradio library for Stable Diffusion.
Check the custom scripts wiki page for extra scripts developed by users.
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
- 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
- Loopback, run img2img processing multiple times
- X/Y plot, a way to draw a 2 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
- 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, neural network upscaler
- LDSR, Latent diffusion super resolution upscaling
- Resizing aspect ratio options
- Sampling method selection
- Interrupt processing at any time
- 4GB video card support (also reports of 2GB working)
- Correct seeds for batches
- Prompt length validation
- get length of prompt in tokens as you type
- get a warning after generation if some text was truncated
- 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
- 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
- Random artist button
- Tiling support, a checkbox to create images that can be tiled like textures
- Progress bar and live image generation preview
- 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
- 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 two checkpoints into one
- Custom scripts with many extensions from community
Make sure the required dependencies are met and follow the instructions available for both NVidia (recommended) and AMD GPUs.
Alternatively, use Google Colab:
- Install Python 3.10.6, checking "Add Python to PATH"
- Install git.
- Download the stable-diffusion-webui repository, for example by running
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
. - Place
model.ckpt
in themodels
directory (see dependencies for where to get it). - (Optional) Place
GFPGANv1.4.pth
in the base directory, alongsidewebui.py
(see dependencies for where to get it). - Run
webui-user.bat
from Windows Explorer as normal, non-administrator, user.
- Install the dependencies:
# Debian-based:
sudo apt install wget git python3 python3-venv
# Red Hat-based:
sudo dnf install wget git python3
# Arch-based:
sudo pacman -S wget git python3
- To install in
/home/$(whoami)/stable-diffusion-webui/
, run:
bash <(wget -qO- https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/webui.sh)
Find the instructions here.
Here's how to add code to this repo: Contributing
The documentation was moved from this README over to the project's wiki.
- Stable Diffusion - https://github.com/CompVis/stable-diffusion, https://github.com/CompVis/taming-transformers
- k-diffusion - https://github.com/crowsonkb/k-diffusion.git
- 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
- LDSR - https://github.com/Hafiidz/latent-diffusion
- Ideas for optimizations - https://github.com/basujindal/stable-diffusion
- Doggettx - Cross Attention layer optimization - https://github.com/Doggettx/stable-diffusion, original idea for prompt editing.
- Rinon Gal - Textual Inversion - https://github.com/rinongal/textual_inversion (we're not using his code, but we are using his ideas).
- Idea for SD upscale - https://github.com/jquesnelle/txt2imghd
- Noise generation for outpainting mk2 - https://github.com/parlance-zz/g-diffuser-bot
- CLIP interrogator idea and borrowing some code - https://github.com/pharmapsychotic/clip-interrogator
- Initial Gradio script - posted on 4chan by an Anonymous user. Thank you Anonymous user.
- (You)