I've noticed that some forks of Stable Diffusion, while very active, often break. This repo adds a little bit of stability and predictability, while at the same time allowing the freedom to (relatively easily) play around with different forks/frontends/systems and their features.
Docker is used to provide some isolation between various systems' dependencies beyond what Anaconda can do. It also consolidates input and output locations.
For a detailed description of how to get this working in Windows using WSL2 and native Docker (not Docker Desktop), see this blog post.
- A modern Nvidia GPU
- Windows 10/11 with WSL2 or native Linux
- Lots of free disk space (200+ GB recommended if experimenting)
- Docker CE installed
- Docker Compose plugin installed
- Nvidia Container Toolkit installed
- Git installed in WSL2/Linux
- The file
sd-v1-4.ckpt
and/orv1-5-pruned-emaonly.ckpt
from Hugging Face (free registration required)- Alternatively, after registering for a Hugging Face account, you can generate a new token for automatic downloading
- Clone this repo to, say, your home directory, and then
cd
into it:
cd ~
git clone https://github.com/arktronic/sd-multi.git
cd sd-multi
- If not using a Hugging Face token, place the
sd-v1-4.ckpt
and/orv1-5-pruned-emaonly.ckpt
file you downloaded earlier into~/sd-multi/res/
- If you do have a Hugging Face token, copy
env.example
to.env
inside~/sd-multi
and edit the.env
file:- Uncomment the
#HUGGINGFACE_TOKEN=
line by removing the#
in front - Insert your Hugging Face token after the equals sign, like so:
HUGGINGFACE_TOKEN=hf_asdfasdfasdfasdfasdf
- Uncomment the
- Run
./verify-resources.sh -d
to verify and download any missing models or weights- If you encounter any issues, please make sure they are resolved before continuing to the next step
- Launch one of the supported forks! (see the fork options below)
All the resources (models and weights) are in ~/sd-multi/res/
and all the output files generated by Stable Diffusion are in ~/sd-multi/output/
.
⭐ amotile (stable-diffusion-studio), an animation-focused frontend
Launch:
./run-amotile.sh
(Felis catus wasn't behaving well for these transitions, sorry.)
⭐ AUTOMATIC1111, one of the most active forks with lots of features and scripts
- includes Txt2Vectorgraphics script and Deforum extension!
- fine-tuned VAE is enabled
Launch:
./run-automatic1111.sh
⭐ InvokeAI (a.k.a. lstein), an early but well-maintained fork (web mode - beautiful interface!)
Launch:
./run-invokeai-web.sh
⭐ InvokeAI (a.k.a. lstein), an early but well-maintained fork (CLI mode)
Launch:
./run-invokeai-cli.sh
⭐ lama-cleaner, an inpainting/cleaning tool that supports SD and many other models
Launch:
./run-lama.sh
⭐ osi1880vr (deforum-sd-ui), a Deforum-based animation/video web UI fork
Launch:
./run-osi1880vr.sh
⭐ Sygil (a.k.a. hlky, sd-webui), an established, easy to use fork (gradio mode)
Launch:
./run-sygil-gradio.sh
⭐ Sygil (a.k.a. hlky, sd-webui), an established, easy to use fork (streamlit mode)
Launch:
./run-sygil-streamlit.sh
If you have any ideas for improvements, suggestions of additional forks to add, or anything else, please create an issue and/or open a PR.
(Maybe there's a cool new fork found in here or elsewhere?)