33 Commits
3.0.0 ... 4.0.0

Author SHA1 Message Date
AbdBarho
87a51e9fd1 [BREAKING] Rename UIs (#254)
Rename the UIs in docker compose to their new names

Changes folder names

Changes output folder structure

Closes issue #263

Adds `sygil-sl` instead of docker compose flag.
2022-12-04 11:00:28 +01:00
AbdBarho
bdee804112 Fix mounting in Lstein (#253)
Closes #251
2022-12-04 07:07:49 +01:00
AbdBarho
f1a1641add Invoke 2.2.3 (#250)
lstein:
5c31feb3a1
2022-12-03 13:36:18 +01:00
AbdBarho
8df9d10a58 Update versions (#246)
- hlky:
18a3b80927
- lstein:
a9aa4e45aa
2022-11-30 19:33:44 +01:00
AbdBarho
7a1e52bc7a Enable extensions by default (#243)
Closes #242
2022-11-26 15:45:53 +01:00
AbdBarho
d20b8732b3 Update xformers (#241)
8910bb5a65
2022-11-25 13:25:10 +01:00
AbdBarho
23757d2356 Update invoke (#234)
2b7e3abe57
2022-11-20 11:35:56 +01:00
AbdBarho
9e7979b756 Update Versions (#230)
- auto:
47a44c7e42
- hlky:
269107a104


Refs #216
2022-11-20 11:05:39 +01:00
AbdBarho
8623c73741 v1.5 Inpainting (#221)
Also remove v1.4

Closes #217
2022-11-13 08:42:27 +01:00
AbdBarho
9b6750b2f6 Use cuda 11.6 for auto (#220)
auto:
98947d173e

Closes #218 #219
2022-11-13 07:12:17 +01:00
AbdBarho
5e3f20ba43 Move contribution to the top 2022-11-12 18:33:59 +01:00
AbdBarho
53ac3601d7 Update versions (#213)
- auto:
ac08562854
- hlky:
09b64d4f75
- lstein
  - On hold because of many breaking changes
2022-11-11 07:19:47 +01:00
AbdBarho
37feff58bb Reorder Readme sections 2022-11-09 18:56:22 +01:00
AbdBarho
427320475b Add Samplers (#205)
804d9fb83d

Closes #201 
Closes #204
2022-11-07 07:02:31 +01:00
AbdBarho
9a60522244 Update stale.yml 2022-11-06 14:24:02 +01:00
AbdBarho
887a16ef35 Redirect to discussions 2022-11-06 11:10:21 +01:00
AbdBarho
0a4c2a34b8 Hack to allow installing extensions (#200)
remember to remove it if its fixed upstream
2022-11-05 18:04:39 +01:00
AbdBarho
73cd69075e Update versions (#198)
- auto:
30b1bcc64e
- hlky:
6f6d7571ea
2022-11-05 09:51:30 +01:00
AbdBarho
b33c0d4bcf Fix UI Layout (#196)
Closes #183
2022-11-04 23:29:44 +01:00
AbdBarho
5450583be1 Deepdanbooru Support (#194)
Builds on top of #150 

Thanks to @pirahtays

Co-authored-by: Imaginator <mriegel@gmail.com>
Co-authored-by: pirahtays <35934562+pirahtays@users.noreply.github.com>
2022-11-04 22:41:38 +01:00
AbdBarho
1cfb915d12 Invoke AI v2.1 (#195)
6b89adfa7e
2022-11-04 22:35:44 +01:00
AbdBarho
fb9d1e579c Update versions (#193)
- auto:
cd5eafaf03
- hlky:
62f9706d6a
2022-11-02 21:57:01 +01:00
AbdBarho
9092aa233b Update versions (#189)
- auto:
dd02889124
- hlky:
d8e61a5cd3
2022-11-01 17:12:53 +01:00
AbdBarho
a5218b8639 Auto Extensions (#176)
Closes #148 
Closes #172
2022-10-30 10:01:18 +01:00
AbdBarho
d6cbafdca8 Scripts support (#187)
Closes #186
2022-10-30 09:42:30 +01:00
AbdBarho
4464e9d9e9 Update versions (#185)
- auto:
35c45df28b
- hlky:
091520bed0
- lstein:
fdf9b1c40c
2022-10-29 22:02:35 +02:00
AbdBarho
fb5407a6bc Smaller git clones (#179)
Closes #135
2022-10-27 16:49:30 +02:00
AbdBarho
5b4acd605d Contribution Info (#181) 2022-10-26 23:57:29 +02:00
AbdBarho
48f8650fd8 Bump Versions (#178)
- auto:
737eb28fac
- hlky:
5f6141ae7c
- lstein:
2b6d78e436
2022-10-26 20:02:00 +02:00
Sebastian Piechowiak
31c21025ea Aria fixes (#170)
Fixes WARN / ERRORs addressed in
https://github.com/AbdBarho/stable-diffusion-webui-docker/issues/167
Closes #167
2022-10-26 19:13:31 +02:00
AbdBarho
1211e9c5de Downgrade gradio (#175)
Closes #173
2022-10-25 21:05:09 +02:00
AbdBarho
49ad173e95 Bump Versions (#171)
- auto:
df0a1f8381
- hlky:
bb7fce1a87
- lstein:
3081b6b7dd
2022-10-24 22:17:51 +02:00
ProducerMatt
5122f83c0f Tags for CLIP interrogation (#166)
This populates a folder with tags for the CLIP interrogator to label
images with. I.e. artists, art styles, art mediums, moods and genres,
etc.
2022-10-23 09:05:28 +02:00
30 changed files with 324 additions and 292 deletions

View File

@@ -2,4 +2,5 @@
set -Eeuo pipefail
find . -name "*.sh" -exec git update-index --chmod=+x {} \;
find services -name "*.sh" -exec git update-index --chmod=+x {} \;
find .devscripts -name "*.sh" -exec git update-index --chmod=+x {} \;

9
.devscripts/migratev3tov4.sh Executable file
View File

@@ -0,0 +1,9 @@
#!/bin/bash
set -Eeuo pipefail
echo "Moving everything in output to output/old..."
mv output old
mkdir output
mv old/.gitignore output
mv old output

View File

@@ -1,10 +1,9 @@
---
name: Bug
about: Report a bug
title: ''
title: ""
labels: bug
assignees: ''
assignees: ""
---
<!-- PLEASE FILL THIS OUT, IT WILL MAKE BOTH OF OUR LIVES EASIER -->
@@ -14,28 +13,27 @@ assignees: ''
- [ ] It is not in the [FAQ](https://github.com/AbdBarho/stable-diffusion-webui-docker/wiki/FAQ), I checked.
- [ ] It is not in the [issues](https://github.com/AbdBarho/stable-diffusion-webui-docker/issues?q=), I searched.
**Describe the bug**
<!-- tried to run the app, my cat exploded -->
**Which UI**
hlky or auto or auto-cpu or lstein?
auto or auto-cpu or invoke or sygil?
**Hardware / Software**
- OS: [e.g. Windows 10 / Ubuntu ]
- OS version: <!-- on windows, use the command `winver` to find out, on ubuntu `lsb_release -d` -->
- WSL version (if applicable): <!-- get using `wsl -l -v` -->
- Docker Version: <!-- get using `docker version` -->
- Docker compose version: <!-- get using `docker compose version` -->
- Repo version: <!-- tag, commit sha, or "from master" -->
- RAM:
- GPU/VRAM:
- OS: [e.g. Windows 10 / Ubuntu 22.04]
- OS version: <!-- on windows, use the command `winver` to find out, on ubuntu `lsb_release -d` -->
- WSL version (if applicable): <!-- get using `wsl -l -v` -->
- Docker Version: <!-- get using `docker version` -->
- Docker compose version: <!-- get using `docker compose version` -->
- Repo version: <!-- tag, commit sha, or "from master" -->
- RAM:
- GPU/VRAM:
**Steps to Reproduce**
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'

5
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Feature request? Questions regarding some extension?
url: https://github.com/AbdBarho/stable-diffusion-webui-docker/discussions
about: Please use the discussions tab

View File

@@ -1,3 +1,11 @@
<!--
Have you created an issue before opening a merge request???
https://github.com/AbdBarho/stable-diffusion-webui-docker#contributing
Please create one so we can discuss it, I don't want your effort to go to waste.
-->
Closes issue #
### Update versions
- auto: https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/

View File

@@ -1,6 +1,12 @@
name: Build Images
on: [push]
on:
push:
branches: master
pull_request:
paths:
- docker-compose.yml
- services
jobs:
build:
@@ -8,12 +14,11 @@ jobs:
matrix:
profile:
- auto
- hlky
- lstein
- sygil
- invoke
- download
runs-on: ubuntu-latest
name: ${{ matrix.profile }}
steps:
- uses: actions/checkout@v3
# better caching?
- run: docker compose --profile ${{ matrix.profile }} build --progress plain

View File

@@ -1,13 +1,13 @@
name: 'Close stale issues and PRs'
on:
schedule:
- cron: '30 1 * * *'
- cron: '0 0 * * *'
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v5
- uses: actions/stale@v6
with:
only-labels: awaiting-response
stale-issue-message: This issue is stale because it has been open 14 days with no activity. Remove stale label or comment or this will be closed in 7 days.

View File

@@ -1,36 +0,0 @@
name: Build Xformers
on:
workflow_dispatch: {}
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 180
container:
image: python:3.10-slim
env:
DEBIAN_FRONTEND: noninteractive
XFORMERS_DISABLE_FLASH_ATTN: 1
FORCE_CUDA: 1
TORCH_CUDA_ARCH_LIST: "6.0;6.1;6.2;7.0;7.2;7.5;8.0;8.6"
NVCC_FLAGS: --use_fast_math -DXFORMERS_MEM_EFF_ATTENTION_DISABLE_BACKWARD
MAX_JOBS: 4
steps:
- run: |
apt-get update
apt-get install gpg wget git -y
wget https://developer.download.nvidia.com/compute/cuda/repos/debian11/x86_64/cuda-keyring_1.0-1_all.deb
dpkg -i cuda-keyring_1.0-1_all.deb
apt-get update
apt-get install cuda-nvcc-11-8 cuda-libraries-dev-11-8 -y
export PIP_CACHE_DIR=$(pwd)/cache
pip install ninja install torch --extra-index-url https://download.pytorch.org/whl/cu113
pip wheel --wheel-dir=data git+https://github.com/facebookresearch/xformers.git@3633e1afc7bffbe61957f04e7bb1a742ee910ace#egg=xformers
- name: Artifacts
uses: actions/upload-artifact@v3
with:
name: xformers
path: data/xformers-0.0.14.dev0-cp310-cp310-linux_x86_64.whl

13
LICENSE
View File

@@ -87,16 +87,3 @@ processes, such as predicting an individual will commit fraud/crime
commitment (e.g. by text profiling, drawing causal relationships between
assertions made in documents, indiscriminate and arbitrarily-targeted
use).
By using this software, you also agree to the following licenses:
https://github.com/CompVis/stable-diffusion/blob/main/LICENSE
https://github.com/sd-webui/stable-diffusion-webui/blob/master/LICENSE
https://github.com/invoke-ai/InvokeAI/blob/main/LICENSE
https://github.com/cszn/BSRGAN/blob/main/LICENSE
https://github.com/sczhou/CodeFormer/blob/master/LICENSE
https://github.com/TencentARC/GFPGAN/blob/master/LICENSE
https://github.com/xinntao/Real-ESRGAN/blob/master/LICENSE
https://github.com/xinntao/ESRGAN/blob/master/LICENSE
https://github.com/cszn/SCUNet/blob/main/LICENSE

View File

@@ -2,66 +2,41 @@
Run Stable Diffusion on your machine with a nice UI without any hassle!
This repository provides multiple UIs for you to play around with stable diffusion:
## Features
### AUTOMATIC1111
[AUTOMATIC1111's fork](https://github.com/AUTOMATIC1111/stable-diffusion-webui) is imho the most feature rich yet elegant UI:
- Text to image, with many samplers and even negative prompts!
- Image to image, with masking, cropping, in-painting, out-painting, variations.
- GFPGAN, RealESRGAN, LDSR, CodeFormer.
- Loopback, prompt weighting, prompt matrix, X/Y plot
- Live preview of the generated images.
- Highly optimized 4GB GPU support, or even CPU only!
- Textual inversion allows you to use pretrained textual inversion embeddings
- [Full feature list here](https://github.com/AUTOMATIC1111/stable-diffusion-webui-feature-showcase)
| Text to image | Image to image | Extras |
| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| ![](https://user-images.githubusercontent.com/24505302/189541954-46afd772-d0c8-4005-874c-e2eca40c02f2.jpg) | ![](https://user-images.githubusercontent.com/24505302/189541956-5b528de7-1b5d-479f-a1db-d3f5a53afc59.jpg) | ![](https://user-images.githubusercontent.com/24505302/189541957-cf78b352-a071-486d-8889-f26952779a61.jpg) |
### hlky (sd-webui)
[hlky's fork](https://github.com/sd-webui/stable-diffusion-webui) is one of the most popular UIs, with many features:
- Text to image, with many samplers
- Image to image, with masking, cropping, in-painting, variations.
- GFPGAN, RealESRGAN, LDSR, GoBig, GoLatent
- Loopback, prompt weighting
- 6GB or even 4GB GPU support!
- [Full feature list here](https://github.com/sd-webui/stable-diffusion-webui/blob/master/README.md)
Screenshots:
| Text to image | Image to image | Image Lab |
| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| ![](https://user-images.githubusercontent.com/24505302/189541298-f902b021-a1eb-4e4b-b2eb-b6a696a8ec80.jpg) | ![](https://user-images.githubusercontent.com/24505302/189541295-7d7f2162-2189-4e0a-abbd-703f4779e1cd.jpg) | ![](https://user-images.githubusercontent.com/24505302/189541294-aa7f7735-a973-4e17-ada0-1fe3acbb1772.jpg) |
### lstein (InvokeAI)
[lstein's fork](https://github.com/invoke-ai/InvokeAI) is one of the earliest with a wonderful WebUI.
- Text to image, with many samplers
- Image to image
- 4GB GPU support
- More coming!
- [Full feature list here](https://github.com/invoke-ai/InvokeAI#features)
| Text to image | Image to image | Extras |
| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| ![](https://user-images.githubusercontent.com/24505302/195158552-39f58cb6-cfcc-4141-9995-a626e3760752.jpg) | ![](https://user-images.githubusercontent.com/24505302/195158553-152a0ab8-c0fd-4087-b121-4823bcd8d6b5.jpg) | ![](https://user-images.githubusercontent.com/24505302/195158548-e118206e-c519-4915-85d6-4c248eb10fc0.jpg) |
## Setup & Usage
Visit the wiki for [Setup](https://github.com/AbdBarho/stable-diffusion-webui-docker/wiki/Setup) and [Usage](https://github.com/AbdBarho/stable-diffusion-webui-docker/wiki/Usage) instructions, checkout the [FAQ](https://github.com/AbdBarho/stable-diffusion-webui-docker/wiki/FAQ) page if you face any problems, or create a new issue!
## Features
This repository provides multiple UIs for you to play around with stable diffusion:
### [AUTOMATIC1111](https://github.com/AUTOMATIC1111/stable-diffusion-webui)
[Full feature list here](https://github.com/AUTOMATIC1111/stable-diffusion-webui-feature-showcase), Screenshots:
| Text to image | Image to image | Extras |
| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| ![](https://user-images.githubusercontent.com/24505302/189541954-46afd772-d0c8-4005-874c-e2eca40c02f2.jpg) | ![](https://user-images.githubusercontent.com/24505302/189541956-5b528de7-1b5d-479f-a1db-d3f5a53afc59.jpg) | ![](https://user-images.githubusercontent.com/24505302/189541957-cf78b352-a071-486d-8889-f26952779a61.jpg) |
### [InvokeAI (lstein)](https://github.com/invoke-ai/InvokeAI)
[Full feature list here](https://github.com/invoke-ai/InvokeAI#features), Screenshots:
| Text to image | Image to image | Extras |
| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| ![](https://user-images.githubusercontent.com/24505302/195158552-39f58cb6-cfcc-4141-9995-a626e3760752.jpg) | ![](https://user-images.githubusercontent.com/24505302/195158553-152a0ab8-c0fd-4087-b121-4823bcd8d6b5.jpg) | ![](https://user-images.githubusercontent.com/24505302/195158548-e118206e-c519-4915-85d6-4c248eb10fc0.jpg) |
### [Sygil (sd-webui / hlky)](https://github.com/Sygil-Dev/sygil-webui)
[Full feature list here](https://github.com/Sygil-Dev/sygil-webui/blob/master/README.md), Screenshots:
| Text to image | Image to image | Image Lab |
| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| ![](https://user-images.githubusercontent.com/24505302/189541298-f902b021-a1eb-4e4b-b2eb-b6a696a8ec80.jpg) | ![](https://user-images.githubusercontent.com/24505302/189541295-7d7f2162-2189-4e0a-abbd-703f4779e1cd.jpg) | ![](https://user-images.githubusercontent.com/24505302/189541294-aa7f7735-a973-4e17-ada0-1fe3acbb1772.jpg) |
## Contributing
Contributions are welcome! create an issue first of what you want to contribute (before you implement anything) so we can talk about it.
Contributions are welcome! **Create a discussion first of what the problem is and what you want to contribute (before you implement anything)**
## Disclaimer
@@ -73,10 +48,8 @@ This license of this software forbids you from sharing any content that violates
Special thanks to everyone behind these awesome projects, without them, none of this would have been possible:
- [hlky/stable-diffusion-webui](https://github.com/hlky/stable-diffusion-webui)
- [AUTOMATIC1111/stable-diffusion-webui](https://github.com/AUTOMATIC1111/stable-diffusion-webui)
- [lstein/stable-diffusion](https://github.com/lstein/stable-diffusion)
- [InvokeAI](https://github.com/invoke-ai/InvokeAI)
- [Sygil-webui](https://github.com/Sygil-Dev/sygil-webui)
- [CompVis/stable-diffusion](https://github.com/CompVis/stable-diffusion)
- [hlky/sd-enable-textual-inversion](https://github.com/hlky/sd-enable-textual-inversion)
- [devilismyfriend/latent-diffusion](https://github.com/devilismyfriend/latent-diffusion)
- [Hafiidz/latent-diffusion](https://github.com/Hafiidz/latent-diffusion)
- and many many more.

2
data/.gitignore vendored
View File

@@ -13,5 +13,7 @@
/SwinIR
/ScuNET
/LDSR
/Deepdanbooru
/Hypernetworks
/VAE
/embeddings

View File

@@ -23,22 +23,13 @@ services:
volumes:
- *v1
hlky:
<<: *base_service
profiles: ["hlky"]
build: ./services/hlky/
image: sd-hlky:1
environment:
- CLI_ARGS=--optimized-turbo
- USE_STREAMLIT=0
auto: &automatic
<<: *base_service
profiles: ["auto"]
build: ./services/AUTOMATIC1111
image: sd-auto:1
image: sd-auto:20
environment:
- CLI_ARGS=--allow-code --medvram --xformers
- CLI_ARGS=--allow-code --medvram --xformers --enable-insecure-extension-access
auto-cpu:
<<: *automatic
@@ -47,11 +38,26 @@ services:
environment:
- CLI_ARGS=--no-half --precision full
lstein:
sygil: &sygil
<<: *base_service
profiles: ["lstein"]
build: ./services/lstein/
image: sd-lstein:1
profiles: ["sygil"]
build: ./services/sygil/
image: sd-sygil:12
environment:
- CLI_ARGS=--optimized-turbo
- USE_STREAMLIT=0
sygil-sl:
<<: *sygil
environment:
- USE_STREAMLIT=1
invoke:
<<: *base_service
profiles: ["invoke"]
build: ./services/invoke/
image: sd-invoke:10
environment:
- PRELOAD=true
- CLI_ARGS=

View File

@@ -4,26 +4,29 @@ FROM alpine/git:2.36.2 as download
SHELL ["/bin/sh", "-ceuxo", "pipefail"]
RUN git clone https://github.com/CompVis/stable-diffusion.git repositories/stable-diffusion && cd repositories/stable-diffusion && git reset --hard 69ae4b35e0a0f6ee1af8bb9a5d0016ccb27e36dc
RUN git clone https://github.com/sczhou/CodeFormer.git repositories/CodeFormer && cd repositories/CodeFormer && git reset --hard c5b4593074ba6214284d6acd5f1719b6c5d739af
RUN git clone https://github.com/salesforce/BLIP.git repositories/BLIP && cd repositories/BLIP && git reset --hard 48211a1594f1321b00f14c9f7a5b4813144b2fb9
RUN <<EOF
# because taming-transformers is huge
git config --global http.postBuffer 1048576000
git clone https://github.com/CompVis/taming-transformers.git repositories/taming-transformers
cd repositories/taming-transformers
git reset --hard 24268930bf1dce879235a7fddd0b2355b84d7ea6
rm -rf data assets
cat <<'EOE' > /clone.sh
mkdir -p repositories/"$1" && cd repositories/"$1" && git init && git remote add origin "$2" && git fetch origin "$3" --depth=1 && git reset --hard "$3" && rm -rf .git
EOE
EOF
RUN git clone https://github.com/crowsonkb/k-diffusion.git repositories/k-diffusion && cd repositories/k-diffusion && git reset --hard f4e99857772fc3a126ba886aadf795a332774878
RUN . /clone.sh taming-transformers https://github.com/CompVis/taming-transformers.git 24268930bf1dce879235a7fddd0b2355b84d7ea6 \
&& rm -rf data assets **/*.ipynb
RUN . /clone.sh stable-diffusion https://github.com/CompVis/stable-diffusion.git 69ae4b35e0a0f6ee1af8bb9a5d0016ccb27e36dc \
&& rm -rf assets data/**/*.png data/**/*.jpg data/**/*.gif
RUN . /clone.sh CodeFormer https://github.com/sczhou/CodeFormer.git c5b4593074ba6214284d6acd5f1719b6c5d739af \
&& rm -rf assets inputs
RUN . /clone.sh BLIP https://github.com/salesforce/BLIP.git 48211a1594f1321b00f14c9f7a5b4813144b2fb9
RUN . /clone.sh k-diffusion https://github.com/crowsonkb/k-diffusion.git 60e5042ca0da89c14d1dd59d73883280f8fce991
RUN . /clone.sh clip-interrogator https://github.com/pharmapsychotic/clip-interrogator 2486589f24165c8e3b303f84e9dbbea318df83e8
FROM alpine:3 as xformers
RUN apk add aria2
RUN aria2c --dir / --out wheel.whl 'https://github.com/AbdBarho/stable-diffusion-webui-docker/releases/download/2.1.0/xformers-0.0.14.dev0-cp310-cp310-linux_x86_64.whl'
RUN aria2c -x 10 --dir / --out wheel.whl 'https://github.com/AbdBarho/stable-diffusion-webui-docker/releases/download/3.1.0/xformers-0.0.15.dev0+4e3631d.d20221125-cp310-cp310-linux_x86_64.whl'
FROM python:3.10-slim
@@ -31,57 +34,63 @@ SHELL ["/bin/bash", "-ceuxo", "pipefail"]
ENV DEBIAN_FRONTEND=noninteractive PIP_PREFER_BINARY=1 PIP_NO_CACHE_DIR=1
RUN pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 --extra-index-url https://download.pytorch.org/whl/cu113
RUN pip install torch==1.12.1+cu116 torchvision==0.13.1+cu116 --extra-index-url https://download.pytorch.org/whl/cu116
RUN apt-get update && apt install fonts-dejavu-core rsync git -y && apt-get clean
RUN apt-get update && apt install fonts-dejavu-core rsync git jq moreutils -y && apt-get clean
RUN <<EOF
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
cd stable-diffusion-webui
git reset --hard 1eb588cbf19924333b88beaa1ac0041904966640
git reset --hard 98947d173e3f1667eba29c904f681047dea9de90
pip install -r requirements_versions.txt
EOF
ENV ROOT=/stable-diffusion-webui \
WORKDIR=/stable-diffusion-webui/repositories/stable-diffusion
COPY --from=xformers /wheel.whl xformers-0.0.15-cp310-cp310-linux_x86_64.whl
RUN pip install xformers-0.0.15-cp310-cp310-linux_x86_64.whl && rm xformers-0.0.15-cp310-cp310-linux_x86_64.whl
ENV ROOT=/stable-diffusion-webui
COPY --from=download /git/ ${ROOT}
RUN pip install --prefer-binary --no-cache-dir -r ${ROOT}/repositories/CodeFormer/requirements.txt
# TODO: move to top
RUN apt-get install jq moreutils -y
RUN mkdir ${ROOT}/interrogate && cp ${ROOT}/repositories/clip-interrogator/data/* ${ROOT}/interrogate
RUN pip install -r ${ROOT}/repositories/CodeFormer/requirements.txt
# Note: don't update the sha of previous versions because the install will take forever
# instead, update the repo state in a later step
ARG SHA=f49c08ea566385db339c6628f65c3a121033f67c
RUN <<EOF
cd stable-diffusion-webui
git pull --rebase
git reset --hard ${SHA}
pip install -r requirements_versions.txt
EOF
ARG DEEPDANBOORU="0"
RUN [[ "${DEEPDANBOORU:-0}" == "0" ]] && : || pip install tensorflow-cpu==2.10 tensorflow-io==0.27.0 git+https://github.com/KichangKim/DeepDanbooru.git@edf73df4cdaeea2cf00e9ac08bd8a9026b7a7b26#egg=deepdanbooru
RUN pip install opencv-python-headless \
git+https://github.com/TencentARC/GFPGAN.git@8d2447a2d918f8eba5a4a01463fd48e45126a379 \
git+https://github.com/openai/CLIP.git@d50d76daa670286dd6cacf3bcd80b5e4823fc8e1 \
pyngrok
COPY --from=xformers /wheel.whl xformers-0.0.14.dev0-cp310-cp310-linux_x86_64.whl
RUN pip install xformers-0.0.14.dev0-cp310-cp310-linux_x86_64.whl
# Note: don't update the sha of previous versions because the install will take forever
# instead, update the repo state in a later step
COPY . /docker
ARG SHA=47a44c7e421b98ca07e92dbf88769b04c9e28f86
RUN <<EOF
chmod +x /docker/mount.sh && python3 /docker/info.py ${ROOT}/modules/ui.py
cd stable-diffusion-webui
git fetch
git reset --hard ${SHA}
pip install -r requirements_versions.txt
EOF
RUN pip install opencv-python-headless transformers==4.24.0
COPY . /docker
RUN <<EOF
python3 /docker/info.py ${ROOT}/modules/ui.py
mv ${ROOT}/style.css ${ROOT}/user.css
sed -i 's/os.rename(tmpdir, target_dir)/shutil.move(tmpdir,target_dir)/' ${ROOT}/modules/ui_extensions.py
EOF
WORKDIR ${ROOT}
ENV CLI_ARGS=""
WORKDIR ${WORKDIR}
EXPOSE 7860
ENTRYPOINT ["/docker/entrypoint.sh"]
# run, -u to not buffer stdout / stderr
CMD /docker/mount.sh && \
python3 -u ../../webui.py --listen --port 7860 --ckpt-dir ${ROOT}/models/Stable-diffusion --theme dark ${CLI_ARGS}
CMD python3 -u webui.py --listen --port 7860 ${CLI_ARGS}

View File

@@ -1,8 +1,8 @@
{
"outdir_samples": "/output",
"outdir_txt2img_samples": "/output/txt2img-images",
"outdir_img2img_samples": "/output/img2img-images",
"outdir_extras_samples": "/output/extras-images",
"outdir_samples": "",
"outdir_txt2img_samples": "/output/txt2img",
"outdir_img2img_samples": "/output/img2img",
"outdir_extras_samples": "/output/extras",
"outdir_txt2img_grids": "/output/txt2img-grids",
"outdir_img2img_grids": "/output/img2img-grids",
"outdir_save": "/output/saved",

View File

@@ -2,7 +2,8 @@
set -Eeuo pipefail
mkdir -p /data/config/auto/
# TODO: move all mkdir -p ?
mkdir -p /data/config/auto/scripts/
cp -n /docker/config.json /data/config/auto/config.json
jq '. * input' /data/config/auto/config.json /docker/config.json | sponge /data/config/auto/config.json
@@ -10,12 +11,16 @@ if [ ! -f /data/config/auto/ui-config.json ]; then
echo '{}' >/data/config/auto/ui-config.json
fi
# copy scripts, we cannot just mount the directory because it will override the already provided scripts in the repo
cp -rfT /data/config/auto/scripts/ "${ROOT}/scripts"
declare -A MOUNTS
MOUNTS["/root/.cache"]="/data/.cache"
# main
MOUNTS["${ROOT}/models/Stable-diffusion"]="/data/StableDiffusion"
MOUNTS["${ROOT}/models/VAE"]="/data/VAE"
MOUNTS["${ROOT}/models/Codeformer"]="/data/Codeformer"
MOUNTS["${ROOT}/models/GFPGAN"]="/data/GFPGAN"
MOUNTS["${ROOT}/models/ESRGAN"]="/data/ESRGAN"
@@ -25,10 +30,12 @@ MOUNTS["${ROOT}/models/SwinIR"]="/data/SwinIR"
MOUNTS["${ROOT}/models/ScuNET"]="/data/ScuNET"
MOUNTS["${ROOT}/models/LDSR"]="/data/LDSR"
MOUNTS["${ROOT}/models/hypernetworks"]="/data/Hypernetworks"
MOUNTS["${ROOT}/models/deepbooru"]="/data/Deepdanbooru"
MOUNTS["${ROOT}/embeddings"]="/data/embeddings"
MOUNTS["${ROOT}/config.json"]="/data/config/auto/config.json"
MOUNTS["${ROOT}/ui-config.json"]="/data/config/auto/ui-config.json"
MOUNTS["${ROOT}/extensions"]="/data/config/auto/extensions"
# extra hacks
MOUNTS["${ROOT}/repositories/CodeFormer/weights/facelib"]="/data/.cache"
@@ -45,4 +52,10 @@ for to_path in "${!MOUNTS[@]}"; do
echo Mounted $(basename "${from_path}")
done
mkdir -p /output/saved /output/txt2img-images/ /output/img2img-images /output/extras-images/ /output/grids/ /output/txt2img-grids/ /output/img2img-grids/
if [ -f "/data/config/auto/startup.sh" ]; then
pushd ${ROOT}
. /data/config/auto/startup.sh
popd
fi
exec "$@"

View File

@@ -1,4 +1,6 @@
fe4efff1e174c627256e44ec2991ba279b3816e364b49f9be2abc0b3ff3f8556 /data/StableDiffusion/model.ckpt
cc6cb27103417325ff94f52b7a5d2dde45a7515b25c255d8e396c90014281516 /data/StableDiffusion/v1-5-pruned-emaonly.ckpt
c6bbc15e3224e6973459ba78de4998b80b50112b0ae5b5c67113d56b4e366b19 /data/StableDiffusion/sd-v1-5-inpainting.ckpt
c6a580b13a5bc05a5e16e4dbb80608ff2ec251a162311590c1f34c013d7f3dab /data/VAE/vae-ft-mse-840000-ema-pruned.ckpt
e2cd4703ab14f4d01fd1383a8a8b266f9a5833dacee8e6a79d3bf21a1b6be5ad /data/GFPGAN/GFPGANv1.4.pth
4fa0d38905f75ac06eb49a7951b426670021be3018265fd191d2125df9d682f1 /data/RealESRGAN/RealESRGAN_x4plus.pth
f872d837d3c90ed2e05227bed711af5671a6fd1c9f7d7e91c911a61f155e99da /data/RealESRGAN/RealESRGAN_x4plus_anime_6B.pth

View File

@@ -2,18 +2,17 @@
set -Eeuo pipefail
mkdir -p /data/.cache /data/StableDiffusion /data/Codeformer /data/GFPGAN /data/ESRGAN /data/BSRGAN /data/RealESRGAN /data/SwinIR /data/LDSR /data/ScuNET /data/embeddings
# TODO: maybe just use the .gitignore file to create all of these
mkdir -vp /data/.cache /data/StableDiffusion /data/Codeformer /data/GFPGAN /data/ESRGAN /data/BSRGAN /data/RealESRGAN /data/SwinIR /data/LDSR /data/ScuNET /data/embeddings /data/VAE /data/Deepdanbooru
echo "Downloading, this might take a while..."
aria2c --input-file /docker/links.txt --dir /data --continue
aria2c --disable-ipv6 --input-file /docker/links.txt --dir /data --continue
echo "Checking SHAs..."
parallel --will-cite -a /docker/checksums.sha256 "echo -n {} | sha256sum -c"
# aria2c already does hash check
# cc6cb27103417325ff94f52b7a5d2dde45a7515b25c255d8e396c90014281516 /data/StableDiffusion/v1-5-pruned-emaonly.ckpt
cat <<EOF
By using this software, you agree to the following licenses:
https://github.com/CompVis/stable-diffusion/blob/main/LICENSE

View File

@@ -1,13 +1,9 @@
magnet:?xt=urn:btih:2daef5b5f63a16a9af9169a529b1a773fc452637&dn=v1-5-pruned-emaonly.ckpt&tr=udp%3a%2f%2ftracker.opentrackr.org%3a1337%2fannounce&tr=udp%3a%2f%2f9.rarbg.com%3a2810%2fannounce&tr=udp%3a%2f%2ftracker.openbittorrent.com%3a6969%2fannounce&tr=udp%3a%2f%2fopentracker.i2p.rocks%3a6969%2fannounce&tr=https%3a%2f%2fopentracker.i2p.rocks%3a443%2fannounce&tr=http%3a%2f%2ftracker.openbittorrent.com%3a80%2fannounce&tr=udp%3a%2f%2ftracker.torrent.eu.org%3a451%2fannounce&tr=udp%3a%2f%2fopen.stealth.si%3a80%2fannounce&tr=udp%3a%2f%2fvibe.sleepyinternetfun.xyz%3a1738%2fannounce&tr=udp%3a%2f%2ftracker2.dler.org%3a80%2fannounce&tr=udp%3a%2f%2ftracker1.bt.moack.co.kr%3a80%2fannounce&tr=udp%3a%2f%2ftracker.zemoj.com%3a6969%2fannounce&tr=udp%3a%2f%2ftracker.tiny-vps.com%3a6969%2fannounce&tr=udp%3a%2f%2ftracker.theoks.net%3a6969%2fannounce&tr=udp%3a%2f%2ftracker.publictracker.xyz%3a6969%2fannounce&tr=udp%3a%2f%2ftracker.monitorit4.me%3a6969%2fannounce&tr=udp%3a%2f%2ftracker.moeking.me%3a6969%2fannounce&tr=udp%3a%2f%2ftracker.lelux.fi%3a6969%2fannounce&tr=udp%3a%2f%2ftracker.dler.org%3a6969%2fannounce&tr=udp%3a%2f%2ftracker.army%3a6969%2fannounce
select-file=1
index-out=1=StableDiffusion/v1-5-pruned-emaonly.ckpt
follow-torrent=mem
follow-metalink=mem
seed-time=0
# this is the only way aria2c won't fail if the file already exists
check-integrity=true
https://drive.yerf.org/wl/?id=EBfTrmcCCUAGaQBXVIj5lJmEhjoP1tgl&mode=grid&download=1
out=StableDiffusion/model.ckpt
https://huggingface.co/ZeroCool94/stable-diffusion-v1-5/resolve/main/Stable%20Diffusion%20v1-5-Pruned-ema%20only.ckpt
out=StableDiffusion/v1-5-pruned-emaonly.ckpt
https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.ckpt
out=VAE/vae-ft-mse-840000-ema-pruned.ckpt
https://huggingface.co/ZeroCool94/stable-diffusion-v1-5/resolve/main/Stable%20Diffusion-v1-5-Inpainting.ckpt
out=StableDiffusion/sd-v1-5-inpainting.ckpt
https://github.com/TencentARC/GFPGAN/releases/download/v1.3.4/GFPGANv1.4.pth
out=GFPGAN/GFPGANv1.4.pth
https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth

View File

@@ -0,0 +1,58 @@
# syntax=docker/dockerfile:1
FROM python:3.10-slim
SHELL ["/bin/bash", "-ceuxo", "pipefail"]
ENV DEBIAN_FRONTEND=noninteractive PIP_EXISTS_ACTION=w PIP_PREFER_BINARY=1 PIP_NO_CACHE_DIR=1
RUN pip install torch==1.12.0+cu116 --extra-index-url https://download.pytorch.org/whl/cu116
RUN apt-get update && apt-get install git -y && apt-get clean
RUN git clone https://github.com/invoke-ai/InvokeAI.git /stable-diffusion
WORKDIR /stable-diffusion
RUN <<EOF
git reset --hard 5c31feb3a1096d437c94b6e1c3224eb7a7224a85
git config --global http.postBuffer 1048576000
pip install -r binary_installer/py3.10-linux-x86_64-cuda-reqs.txt
EOF
# patch match:
# https://github.com/invoke-ai/InvokeAI/blob/main/docs/installation/INSTALL_PATCHMATCH.md
RUN <<EOF
apt-get update
# apt-get install build-essential python3-opencv libopencv-dev -y
apt-get install make g++ libopencv-dev -y
apt-get clean
cd /usr/lib/x86_64-linux-gnu/pkgconfig/
ln -sf opencv4.pc opencv.pc
EOF
ARG BRANCH=main SHA=38cd968130e386d188bdef68f9fbfbbbfabb2da0
RUN <<EOF
git fetch
git reset --hard
git checkout ${BRANCH}
git reset --hard ${SHA}
pip install -r binary_installer/py3.10-linux-x86_64-cuda-reqs.txt
EOF
RUN pip install --force-reinstall opencv-python-headless && python3 -c "from patchmatch import patch_match"
COPY . /docker/
RUN <<EOF
python3 /docker/info.py /stable-diffusion/frontend/dist/index.html
touch ~/.invokeai
EOF
ENV ROOT=/stable-diffusion PYTHONPATH="${PYTHONPATH}:${ROOT}" PRELOAD=false CLI_ARGS=""
EXPOSE 7860
ENTRYPOINT ["/docker/entrypoint.sh"]
CMD python3 -u scripts/invoke.py --web --host 0.0.0.0 --port 7860 --config /docker/models.yaml --root_dir ${ROOT} --outdir /output/invoke ${CLI_ARGS}

47
services/invoke/entrypoint.sh Executable file
View File

@@ -0,0 +1,47 @@
#!/bin/bash
set -Eeuo pipefail
declare -A MOUNTS
# cache
MOUNTS["/root/.cache"]=/data/.cache/
# ui specific
MOUNTS["${ROOT}/models/codeformer"]=/data/Codeformer/
MOUNTS["${ROOT}/models/gfpgan/GFPGANv1.4.pth"]=/data/GFPGAN/GFPGANv1.4.pth
MOUNTS["${ROOT}/models/gfpgan/weights"]=/data/.cache/
MOUNTS["${ROOT}/models/realesrgan"]=/data/RealESRGAN/
MOUNTS["${ROOT}/models/bert-base-uncased"]=/data/.cache/huggingface/transformers/
MOUNTS["${ROOT}/models/openai/clip-vit-large-patch14"]=/data/.cache/huggingface/transformers/
MOUNTS["${ROOT}/models/CompVis/stable-diffusion-safety-checker"]=/data/.cache/huggingface/transformers/
MOUNTS["${ROOT}/embeddings"]=/data/embeddings/
# hacks
MOUNTS["${ROOT}/models/clipseg"]=/data/.cache/invoke/clipseg/
for to_path in "${!MOUNTS[@]}"; do
set -Eeuo pipefail
from_path="${MOUNTS[${to_path}]}"
rm -rf "${to_path}"
mkdir -p "$(dirname "${to_path}")"
# ends with slash, make it!
if [[ "$from_path" == */ ]]; then
mkdir -vp "$from_path"
fi
ln -sT "${from_path}" "${to_path}"
echo Mounted $(basename "${from_path}")
done
if "${PRELOAD}" == "true"; then
set -Eeuo pipefail
python3 -u scripts/preload_models.py --no-interactive --root ${ROOT} --config_file /docker/models.yaml
fi
exec "$@"

View File

@@ -0,0 +1,23 @@
# This file describes the alternative machine learning models
# available to InvokeAI script.
#
# To add a new model, follow the examples below. Each
# model requires a model config file, a weights file,
# and the width and height of the images it
# was trained on.
stable-diffusion-1.5:
description: Stable Diffusion version 1.5
weights: /data/StableDiffusion/v1-5-pruned-emaonly.ckpt
vae: /data/VAE/vae-ft-mse-840000-ema-pruned.ckpt
config: ./configs/stable-diffusion/v1-inference.yaml
width: 512
height: 512
default: true
inpainting-1.5:
description: RunwayML SD 1.5 model optimized for inpainting
weights: /data/StableDiffusion/sd-v1-5-inpainting.ckpt
vae: /data/VAE/vae-ft-mse-840000-ema-pruned.ckpt
config: ./configs/stable-diffusion/v1-inpainting-inference.yaml
width: 512
height: 512
default: false

View File

@@ -1,52 +0,0 @@
# syntax=docker/dockerfile:1
FROM continuumio/miniconda3:4.12.0
SHELL ["/bin/bash", "-ceuxo", "pipefail"]
ENV DEBIAN_FRONTEND=noninteractive
# now it requires python3.9
RUN conda install python=3.9 && conda clean -a -y
RUN conda install pytorch==1.11.0 torchvision==0.12.0 cudatoolkit=11.3 -c pytorch && conda clean -a -y
RUN apt-get update && apt install fonts-dejavu-core rsync gcc -y && apt-get clean
ENV PIP_EXISTS_ACTION=w
RUN <<EOF
git clone https://github.com/invoke-ai/InvokeAI.git stable-diffusion
cd stable-diffusion
git reset --hard 79e79b78aaeedb49afcc795e0e00eebfdbedee96
git config --global http.postBuffer 1048576000
conda env update --file environment.yml -n base
conda clean -a -y
EOF
ARG BRANCH=development SHA=554445a985d970200095bbcb109273a49c462682
RUN <<EOF
cd stable-diffusion
git fetch
git reset --hard
git checkout ${BRANCH}
git reset --hard ${SHA}
conda env update --file environment.yml -n base
conda clean -a -y
EOF
RUN pip uninstall opencv-python -y && pip install --prefer-binary --force-reinstall --no-cache-dir opencv-python-headless
COPY . /docker/
RUN <<EOF
python3 /docker/info.py /stable-diffusion/frontend/dist/index.html
chmod +x /docker/mount.sh
EOF
ENV PRELOAD=false CLI_ARGS=""
WORKDIR /stable-diffusion
EXPOSE 7860
CMD /docker/mount.sh && \
python3 -u scripts/invoke.py --outdir /output --web --host 0.0.0.0 --port 7860 ${CLI_ARGS}

View File

@@ -1,29 +0,0 @@
#!/bin/bash
set -Eeuo pipefail
declare -A MOUNTS
# cache
MOUNTS["/root/.cache"]=/data/.cache
# ui specific
MOUNTS["${PWD}/models/ldm/stable-diffusion-v1/model.ckpt"]=/data/StableDiffusion/model.ckpt
MOUNTS["${PWD}/src/gfpgan/experiments/pretrained_models/GFPGANv1.4.pth"]=/data/GFPGAN/GFPGANv1.4.pth
MOUNTS["${PWD}/ldm/invoke/restoration/codeformer/weights"]=/data/Codeformer
# hacks
MOUNTS["/opt/conda/lib/python3.9/site-packages/facexlib/weights"]=/data/.cache
MOUNTS["/opt/conda/lib/python3.9/site-packages/realesrgan/weights"]=/data/RealESRGAN
MOUNTS["${PWD}/gfpgan/weights"]=/data/.cache
for to_path in "${!MOUNTS[@]}"; do
set -Eeuo pipefail
from_path="${MOUNTS[${to_path}]}"
rm -rf "${to_path}"
mkdir -p "$(dirname "${to_path}")"
ln -sT "${from_path}" "${to_path}"
echo Mounted $(basename "${from_path}")
done
if "${PRELOAD}" == "true"; then
python3 -u scripts/preload_models.py
fi

View File

@@ -12,17 +12,20 @@ RUN conda install pytorch==1.11.0 torchvision==0.12.0 cudatoolkit=11.3 -c pytorc
RUN apt-get update && apt install fonts-dejavu-core rsync gcc -y && apt-get clean
ENV PIP_PREFER_BINARY=1 PIP_NO_CACHE_DIR=1
RUN <<EOF
git config --global http.postBuffer 1048576000
git clone https://github.com/sd-webui/stable-diffusion-webui.git stable-diffusion
git clone https://github.com/Sygil-Dev/sygil-webui.git stable-diffusion
cd stable-diffusion
git reset --hard 1a9c053cb7b6832695771db2555c0adc9b41e95f
git reset --hard 091520bed06f913c9f432f9f47ccbe22b46068d7
conda env update --file environment.yaml -n base
conda clean -a -y
EOF
RUN apt-get update && apt install libsndfile1 ffmpeg -y && apt-get clean
ARG BRANCH=dev SHA=8d1e42b9c50c747d056b0a98f3c2eb7652fb73a7
ARG BRANCH=dev SHA=18a3b809275c395b9a2730c78d6bc0f9b06671e1
RUN <<EOF
cd stable-diffusion
git fetch
@@ -32,6 +35,8 @@ conda env update --file environment.yaml -n base
conda clean -a -y
EOF
RUN pip install transformers==4.24.0
# add info
COPY . /docker/
RUN <<EOF

View File

@@ -16,6 +16,7 @@ MOUNTS["${PWD}/models/custom"]=/data/StableDiffusion
# hack
MOUNTS["${PWD}/models/gfpgan/GFPGANv1.3.pth"]=/data/GFPGAN/GFPGANv1.4.pth
MOUNTS["${PWD}/models/gfpgan/GFPGANv1.4.pth"]=/data/GFPGAN/GFPGANv1.4.pth
MOUNTS["${PWD}/gfpgan/weights"]=/data/.cache
for to_path in "${!MOUNTS[@]}"; do

View File

@@ -1,9 +1,11 @@
# https://github.com/Sygil-Dev/sygil-webui/blob/master/configs/webui/webui_streamlit.yaml
general:
version: 1.20.0
version: 1.24.6
outdir: /output
default_model: "Stable Diffusion v1.5"
default_model_path: /data/StableDiffusion/v1-5-pruned-emaonly.ckpt
outdir_txt2img: /output/txt2img-samples
outdir_img2img: /output/img2img-samples
outdir_txt2img: /output/txt2img
outdir_img2img: /output/img2img
outdir_img2txt: /output/img2txt
optimized: True
optimized_turbo: True