Git Product home page Git Product logo

sd-multi's Introduction

sd-multi - run multiple Stable Diffusion systems in Docker

Systems and Screenshots 👇

Purpose

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.

Usage

For a detailed description of how to get this working in Windows using WSL2 and native Docker (not Docker Desktop), see this blog post.

Prerequisites

Steps

  1. 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
  1. If not using a Hugging Face token, place the sd-v1-4.ckpt and/or v1-5-pruned-emaonly.ckpt file you downloaded earlier into ~/sd-multi/res/
  2. 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
  3. 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
  4. 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/.

System options


amotile (stable-diffusion-studio), an animation-focused frontend

Launch:

./run-amotile.sh

image

(Felis catus wasn't behaving well for these transitions, sorry.)


AUTOMATIC1111, one of the most active forks with lots of features and scripts

Launch:

./run-automatic1111.sh

image


InvokeAI (a.k.a. lstein), an early but well-maintained fork (web mode - beautiful interface!)

Launch:

./run-invokeai-web.sh

image


InvokeAI (a.k.a. lstein), an early but well-maintained fork (CLI mode)

Launch:

./run-invokeai-cli.sh

image


lama-cleaner, an inpainting/cleaning tool that supports SD and many other models

Launch:

./run-lama.sh

image


osi1880vr (deforum-sd-ui), a Deforum-based animation/video web UI fork

Launch:

./run-osi1880vr.sh

image


Sygil (a.k.a. hlky, sd-webui), an established, easy to use fork (gradio mode)

Launch:

./run-sygil-gradio.sh

image


Sygil (a.k.a. hlky, sd-webui), an established, easy to use fork (streamlit mode)

Launch:

./run-sygil-streamlit.sh

image


Contributing

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?)

sd-multi's People

Contributors

arktronic avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

sd-multi's Issues

Set IP address

I installed and ran per instructions. No problems there. However, When I ran the ./run-sygil-streamlit.sh script, the IP addresses assigned for browsing were totally random. I looked at the various build files associated with that script and have not been able to figure out how to assign the IP addresses.
As things stand, the Docker build is useless as there is no way to access it on my LAN.

Update: I checked the Docker documentation and setting up the network is fairly simple. However, which docker file needs modification so that all containers will use the same LAN subnet?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.