86 Commits
2.0.0 ... 5.0.1

Author SHA1 Message Date
AbdBarho
67c9d118d9 Update versions (#332)
### Update versions

- auto:
3715ece0ad
- invoke:
6551527fe2

Update xformers
2023-02-17 09:22:34 +01:00
AbdBarho
2829ef3581 Auto: hot fix fastapi (#328)
Closes #327
2023-02-11 11:13:41 +01:00
AbdBarho
1e0561c5cb Update Auto (#323)
3993aa43e9
2023-02-05 11:04:32 +01:00
AbdBarho
3c860d6eaa Update versions (#320)
- auto:
226d840e84
- invoke:
80c5322ccc


Remove `accelerate` for startup. Refs #317 

Use `SIGINT` Fixes #319
2023-02-02 19:53:48 +01:00
AbdBarho
15e9841860 Update versions (#316)
- auto:
00dab8f10d
- invoke:
07e03b31b7
2023-01-29 20:07:41 +01:00
AbdBarho
eeb410f2de Update versions (#315)
auto:
7a14c8ab45
invoke:
e4cd66216e

Also, fix script mounting in auto #295
2023-01-27 07:55:22 +01:00
AbdBarho
9d2a3388c3 Always serve static files (#314)
#308
2023-01-25 18:17:10 +01:00
AbdBarho
95e489afec Revert #309 (#313)
Closes #312
2023-01-25 17:38:25 +01:00
AbdBarho
00518a0340 Add missing mkdir (#310) 2023-01-24 23:25:07 +01:00
AbdBarho
f8de9190ed Sync Scripts (#309)
Refs #308
2023-01-24 23:11:15 +01:00
AbdBarho
8713163a3c Update Auto (#307)
93fad28a97
2023-01-24 19:52:15 +01:00
AbdBarho
e2b0fb905b Add Lora support (#306)
Refs #305 #303

Co-authored-by: repligator <114337591+repligator@users.noreply.github.com>
2023-01-24 19:17:34 +01:00
AbdBarho
510f9fab2b Update versions (#302)
Closes #301 

- auto:
c98cb0f8ec
- invoke:
89791d91e8
2023-01-22 20:32:03 +01:00
AbdBarho
042d5c561c Fix link / mkdir order (#299)
Fixes
c9153faff7 (commitcomment-97285124)
2023-01-19 06:37:53 +01:00
AbdBarho
66846377a6 Mount scripts instead of copy (#298)
Refs #295
2023-01-18 18:50:56 +01:00
AbdBarho
c9153faff7 Update versions (#297)
- auto:
6faae23239
- invoke:
f232068ab8
2023-01-18 18:48:34 +01:00
AbdBarho
13dfd4eba5 Update auto (#293)
d97f467c0d

This version has a hash computation of models, so expect slower start up
& loading times.
2023-01-15 11:50:16 +01:00
AbdBarho
9b1ea3cacf [MAJOR] Update auto to torch 1.13.1 (#290)
82725f0ac4

torch==1.13.1+cu117

This might break your extensions!
2023-01-13 21:27:55 +01:00
AbdBarho
b5cdf299ca Update versions (#287)
- auto:
2b94ec7886
- sygil:
571fb897ed
2023-01-09 19:04:40 +01:00
AbdBarho
db831ece65 Bump versions (#286)
- auto:
151233399c
- invoke:
26e413ae9c
2023-01-07 18:58:50 +01:00
AbdBarho
ceeac61cb0 Update auto (#282)
683287d87f
2023-01-06 10:24:20 +01:00
AbdBarho
19972f3cac Update Versions (#281)
- auto:
8149078094
- sygil:
e48482823b
- invoke:
21bf512056
2023-01-04 20:36:49 +01:00
AbdBarho
0c16c105bc Update auto (#280)
3e22e29413
2023-01-03 21:19:37 +01:00
AbdBarho
78c90e5435 Update auto & invoke (#277)
- auto:
524d532b38
- invoke:
524d532b38

Happy new Year!!!
2023-01-01 16:46:41 +01:00
AbdBarho
6a3826c80a Update auto (#274)
4af3ca5393

Merry Christmas 🎄
2022-12-26 09:50:29 +01:00
AbdBarho
56d9763a73 Smaller xformers wheel (#271)
Built with `Release` instead of `RelWithDebInfo`

Related #270
2022-12-22 09:19:39 +01:00
AbdBarho
41e0dcc2f6 Auto: clean up interrogators (#265) 2022-12-17 12:22:45 +01:00
AbdBarho
5a9d305e5c Update Invoke (#264)
ffa54f4a35
2022-12-16 09:57:33 +01:00
AbdBarho
d70e96da71 Update Invoke (#261)
5d20f47993
2022-12-14 09:47:36 +01:00
AbdBarho
d97d257fd3 Update versions (#257)
- auto:
685f9631b5
- sygil:
d3f9d054e8
- invoke:
e159bb3dce
2022-12-12 09:25:44 +01:00
AbdBarho
c3cf8129a9 Expose API per default 2022-12-10 12:06:37 +01:00
AbdBarho
b8256cccd2 Update PR template 2022-12-10 11:42:04 +01:00
AbdBarho
4969906ec8 Update Download URLs 2022-12-10 11:40:25 +01:00
AbdBarho
8201e361fa Alpha support for sd v2.x in auto (#244)
44c46f0ed3

Install sd 2 from [these
instructions](https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Features#stable-diffusion-20),
put the downloaded files in `data/StableDiffusion/`, maybe create a
subfolder `v2` and put the models in it, just to keep everything clean.

There will be problems, so be warry.
2022-12-09 18:14:48 +01:00
AbdBarho
1423b274b1 Update Versions (#256)
sygil:
5291437085
Also, switch to pip instead of conda because it is really slow

invoke:
ed9186b099
2022-12-09 16:50:46 +01:00
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
AbdBarho
3c544dd7f4 SD 1.5 (#164)
### Update versions

- auto:
f49c08ea56
- hlky:
8d1e42b9c5
- lstein:
554445a985
2022-10-22 10:44:39 +02:00
AbdBarho
42cc17da74 New Url (#161)
Closes #159

I am not sure how often we will face this problem again.
2022-10-21 04:28:25 +02:00
AbdBarho
31e4dec08f Expose auto ui config (#149)
Closes #147
2022-10-17 18:55:16 +02:00
AbdBarho
0148e5e109 hotfix CI/CD 2022-10-16 17:08:24 +02:00
AbdBarho
111825ac25 xformers for auto (#136)
Closes #128
2022-10-16 16:35:14 +02:00
AbdBarho
c1e13867d9 Update versions (#146)
- auto:
36a0ba357a
  - History tab should be working, closes #138 
- hlky:
bd57d22f2e
- experimental support for the streamlit UI, use the env var
`USE_STREAMLIT`, see the `docker-compose.yml` file, closes #105
  - Don't create issues if it fails, it is still very early in dev.
2022-10-16 16:27:20 +02:00
AbdBarho
463f332d14 update condition (#141)
Closes #140
2022-10-15 08:08:36 +02:00
AbdBarho
3682303355 Update (#139)
### Update versions

- auto:
03d62538ae
  - History Tab IS NOT WORKING YET! #138 
- hlky:
fd51bab1ec
- lstein:
fe2a2cfc8b

Closes #102 the config file has been moved to `data/config/auto`
2022-10-14 22:42:34 +02:00
Mou Lai
402c691a49 Fix & Update to use lstein (#131)
1. Update `docker-compose.yml`: use `PRELOAD=true` for lstein. See the
[note](94bad8555a/docs/installation/INSTALL_LINUX.md (L60))
in the installation guide of InvokeAI.
3. Fix `services/lstein/mount.sh`: change `CodeFormer` to `Codeformer`.
4. Update `services/lstein/mount.sh`: avoid having to re-download the
`${PWD}/gfpgan/weights/...` every time the container is started.
2022-10-14 15:52:01 +02:00
AbdBarho
b36113b7d8 Update shell (#134)
Closes #133
2022-10-13 20:27:32 +02:00
AbdBarho
b60c787474 Update bug.md 2022-10-12 09:11:06 +02:00
AbdBarho
161fd52c16 Bump Versions (#127)
### Update versions

- auto:
6a9ea5b41c
- hlky:
2215a3b403
- lstein:
79e79b78aa
  - Now is back with v2!

Closes #123
2022-10-11 20:00:58 +02:00
AbdBarho
3b3c244c31 Add Empty dir for saving (#126)
Fixes  #124

Creates empty dir for saving, should be done by the UI...
2022-10-11 18:18:52 +02:00
AbdBarho
5698c49653 Update versions (#121)
- auto:
050a6a798c
  - Now uses python 3.10
  - requires a complete re-install
  - Image is now smaller (5.7GB vs 9.8GB)
- hlky:
fe6e72fde7
- lstein:
31869885d9
  - img2img now works
2022-10-09 11:39:31 +02:00
AbdBarho
710280c7ab Update versions (#120)
- auto:
2995107fa2
  - More samplers
  - Textual inversion training
- hlky:
1a9c053cb7
  - Build times are SLOW
- lstein:
4f247a3672
  - Prepare for 2.0 release
  - very cool new UI!
2022-10-07 09:46:07 +02:00
AbdBarho
e1e03229fd Update versions (#116)
- auto:
1eb588cbf1
- hlky:
1e7bdfe3f3
2022-10-04 19:56:38 +02:00
AbdBarho
79868d88e8 Fix chmod on non-existing dir (#113)
closes #112
2022-10-02 09:25:31 +02:00
AbdBarho
6f5eef42a7 Fix typo (#111)
Closes #110
2022-10-01 19:59:54 +02:00
34 changed files with 492 additions and 442 deletions

View File

@@ -2,4 +2,5 @@
set -Eeuo pipefail 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 {} \;

View File

@@ -1,4 +1,4 @@
mkdir -p data/.cache data/StableDiffusion data/Codeformer data/GFPGAN data/ESRGAN data/BSRGAN data/RealESRGAN data/SwinIR data/LDSR /data/embeddings mkdir -p data/.cache data/StableDiffusion data/Codeformer data/GFPGAN data/ESRGAN data/BSRGAN data/RealESRGAN data/SwinIR data/LDSR data/embeddings
cp -vf cache/models/model.ckpt data/StableDiffusion/model.ckpt cp -vf cache/models/model.ckpt data/StableDiffusion/model.ckpt

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,36 +1,43 @@
--- ---
name: Bug name: Bug
about: Report a bug about: Report a bug
title: '' title: ""
labels: bug labels: bug
assignees: '' assignees: ""
--- ---
**Has this issue been opened before? Check the [FAQ](https://github.com/AbdBarho/stable-diffusion-webui-docker/wiki/Main), the [issues](https://github.com/AbdBarho/stable-diffusion-webui-docker/issues?q=is%3Aissue)** <!-- PLEASE FILL THIS OUT, IT WILL MAKE BOTH OF OUR LIVES EASIER -->
**Has this issue been opened before?**
- [ ] 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** **Describe the bug**
<!-- tried to run the app, my cat exploded -->
**Which UI** **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 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** **Steps to Reproduce**
1. Go to '...' 1. Go to '...'
2. Click on '....' 2. Click on '....'
3. Scroll down to '....' 3. Scroll down to '....'
4. See error 4. See error
**Hardware / Software:**
- OS: [e.g. Windows / Ubuntu and version]
- RAM:
- GPU: [Nvidia 1660 / No GPU]
- VRAM:
- Docker Version, Docker compose version
- Release version [e.g. 1.0.1]
**Additional context** **Additional context**
Any other context about the problem here. If applicable, add screenshots to help explain your problem. Any other context about the problem here. If applicable, add screenshots to help explain your problem.

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,5 +1,13 @@
<!--
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 ### Update versions
- auto: https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/ - auto: https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/
- hlky: https://github.com/sd-webui/stable-diffusion-webui/commit/ - sygil: https://github.com/Sygil-Dev/sygil-webui/commit/
- lstein: https://github.com/lstein/stable-diffusion/commit/ - invoke: https://github.com/invoke-ai/InvokeAI/commit/

View File

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

View File

@@ -1,22 +0,0 @@
name: Check executable
on: [push]
jobs:
check:
runs-on: ubuntu-latest
name: Check all sh
steps:
- run: git config --global core.fileMode true
- uses: actions/checkout@v3
- shell: bash
run: |
shopt -s globstar;
FAIL=0
for file in **/*.sh; do
if [ -f "${file}" ] && [ -r "${file}" ] && [ ! -x "${file}" ]; then
echo "$file" is not executable;
FAIL=1
fi
done
exit ${FAIL}

View File

@@ -1,13 +1,13 @@
name: 'Close stale issues and PRs' name: 'Close stale issues and PRs'
on: on:
schedule: schedule:
- cron: '30 1 * * *' - cron: '0 0 * * *'
jobs: jobs:
stale: stale:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/stale@v5 - uses: actions/stale@v6
with: with:
only-labels: awaiting-response 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. 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.

2
.gitignore vendored
View File

@@ -1,4 +1,2 @@
/dev
/.devcontainer /.devcontainer
embeddings/*
/docker-compose.override.yml /docker-compose.override.yml

View File

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

View File

@@ -2,61 +2,41 @@
Run Stable Diffusion on your machine with a nice UI without any hassle! 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
[hlky's fork](https://github.com/hlky/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
[lstein's fork](https://github.com/lstein/stable-diffusion) is very mature when it comes to the cli, and the WebUI has potential.
| Text to image | Image to image | Extras |
| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| ![](https://user-images.githubusercontent.com/24505302/190662506-dabdc967-93af-4d78-8533-394604d29ba4.jpg) | ![](https://user-images.githubusercontent.com/24505302/190662557-7640d9f0-30d8-4527-97b0-07d3f48108d4.jpg) | ![](https://user-images.githubusercontent.com/24505302/190662588-37a01fad-f993-4674-9ae6-8714aa229f7b.jpg) |
-->
## Setup & Usage ## 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! 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 ## 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 ## Disclaimer
@@ -68,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: 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) - [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) - [CompVis/stable-diffusion](https://github.com/CompVis/stable-diffusion)
- [hlky/sd-enable-textual-inversion](https://github.com/hlky/sd-enable-textual-inversion) - and many many more.
- [devilismyfriend/latent-diffusion](https://github.com/devilismyfriend/latent-diffusion)
- [Hafiidz/latent-diffusion](https://github.com/Hafiidz/latent-diffusion)

11
data/.gitignore vendored
View File

@@ -1,5 +1,7 @@
# for all of the stuff downloaded by transformers, pytorch, and others # for all of the stuff downloaded by transformers, pytorch, and others
/.cache /.cache
# for UIs
/config
# for all stable diffusion models (main, waifu diffusion, etc..) # for all stable diffusion models (main, waifu diffusion, etc..)
/StableDiffusion /StableDiffusion
# others # others
@@ -9,5 +11,12 @@
/BSRGAN /BSRGAN
/RealESRGAN /RealESRGAN
/SwinIR /SwinIR
/MiDaS
/BLIP
/ScuNET
/LDSR /LDSR
# TODO: add the embeddings folder here /Deepdanbooru
/Hypernetworks
/VAE
/embeddings
/Lora

View File

@@ -6,6 +6,7 @@ x-base_service: &base_service
volumes: volumes:
- &v1 ./data:/data - &v1 ./data:/data
- &v2 ./output:/output - &v2 ./output:/output
stop_signal: SIGINT
deploy: deploy:
resources: resources:
reservations: reservations:
@@ -23,35 +24,42 @@ services:
volumes: volumes:
- *v1 - *v1
hlky:
<<: *base_service
profiles: ["hlky"]
build: ./services/hlky/
environment:
- CLI_ARGS=--optimized-turbo
auto: &automatic auto: &automatic
<<: *base_service <<: *base_service
profiles: ["auto"] profiles: ["auto"]
build: ./services/AUTOMATIC1111 build: ./services/AUTOMATIC1111
volumes: image: sd-auto:45
- *v1
- *v2
- ./services/AUTOMATIC1111/config.json:/stable-diffusion-webui/config.json
environment: environment:
- CLI_ARGS=--allow-code --medvram - CLI_ARGS=--allow-code --medvram --xformers --enable-insecure-extension-access --api
auto-cpu: auto-cpu:
<<: *automatic <<: *automatic
profiles: ["auto-cpu"] profiles: ["auto-cpu"]
deploy: {} deploy: {}
environment: environment:
- CLI_ARGS=--no-half --precision full - CLI_ARGS=--no-half --precision full --allow-code --enable-insecure-extension-access --api
lstein: invoke:
<<: *base_service <<: *base_service
profiles: ["lstein"] profiles: ["invoke"]
build: ./services/lstein/ build: ./services/invoke/
image: sd-invoke:23
environment: environment:
- PRELOAD=false - PRELOAD=true
- CLI_ARGS= - CLI_ARGS=
sygil: &sygil
<<: *base_service
profiles: ["sygil"]
build: ./services/sygil/
image: sd-sygil:16
environment:
- CLI_ARGS=--optimized-turbo
- USE_STREAMLIT=0
sygil-sl:
<<: *sygil
profiles: ["sygil-sl"]
environment:
- USE_STREAMLIT=1

View File

@@ -2,74 +2,92 @@
FROM alpine/git:2.36.2 as download 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 git clone https://github.com/Hafiidz/latent-diffusion.git repositories/latent-diffusion && cd repositories/latent-diffusion && git reset --hard abf33e7002d59d9085081bce93ec798dcabd49af
RUN <<EOF RUN <<EOF
# because taming-transformers is huge cat <<'EOE' > /clone.sh
git config --global http.postBuffer 1048576000 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
git clone https://github.com/CompVis/taming-transformers.git repositories/taming-transformers EOE
git reset --hard 24268930bf1dce879235a7fddd0b2355b84d7ea6
rm -rf repositories/taming-transformers/data repositories/taming-transformers/assets
EOF EOF
RUN git clone https://github.com/crowsonkb/k-diffusion.git repositories/k-diffusion && cd repositories/k-diffusion && git reset --hard 9e3002b7cd64df7870e08527b7664eb2f2f5f3f5 RUN . /clone.sh taming-transformers https://github.com/CompVis/taming-transformers.git 24268930bf1dce879235a7fddd0b2355b84d7ea6 \
&& rm -rf data assets **/*.ipynb
RUN . /clone.sh stable-diffusion-stability-ai https://github.com/Stability-AI/stablediffusion.git 47b6b607fdd31875c9279cd2f4f16b92e4ea958e \
&& 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 5b3af030dd83e0297272d861c19477735d0317ec
RUN . /clone.sh clip-interrogator https://github.com/pharmapsychotic/clip-interrogator 2486589f24165c8e3b303f84e9dbbea318df83e8
FROM continuumio/miniconda3:4.12.0 FROM alpine:3.17 as xformers
RUN apk add --no-cache aria2
RUN aria2c -x 5 --dir / --out wheel.whl 'https://github.com/AbdBarho/stable-diffusion-webui-docker/releases/download/5.0.0/xformers-0.0.17.dev449-cp310-cp310-manylinux2014_x86_64.whl'
FROM python:3.10.9-slim
SHELL ["/bin/bash", "-ceuxo", "pipefail"] SHELL ["/bin/bash", "-ceuxo", "pipefail"]
ENV DEBIAN_FRONTEND=noninteractive ENV DEBIAN_FRONTEND=noninteractive PIP_PREFER_BINARY=1
RUN conda install python=3.8.5 && conda clean -a -y RUN PIP_NO_CACHE_DIR=1 pip install torch==1.13.1+cu117 torchvision --extra-index-url https://download.pytorch.org/whl/cu117
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 -y && apt-get clean RUN apt-get update && apt install fonts-dejavu-core rsync git jq moreutils -y && apt-get clean
RUN <<EOF RUN --mount=type=cache,target=/root/.cache/pip <<EOF
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
cd stable-diffusion-webui cd stable-diffusion-webui
git reset --hard 15f333a266c20319e2b95a47a8834adf7b914aec git reset --hard d7aec59c4eb02f723b3d55c6f927a42e97acd679
pip install --prefer-binary --no-cache-dir -r requirements_versions.txt pip install -r requirements_versions.txt
EOF EOF
ENV ROOT=/stable-diffusion-webui \ RUN --mount=type=cache,target=/root/.cache/pip \
WORKDIR=/stable-diffusion-webui/repositories/stable-diffusion --mount=type=bind,from=xformers,source=/wheel.whl,target=/xformers-0.0.15-cp310-cp310-linux_x86_64.whl \
pip install triton /xformers-0.0.15-cp310-cp310-linux_x86_64.whl
ENV ROOT=/stable-diffusion-webui
COPY --from=download /git/ ${ROOT} COPY --from=download /git/ ${ROOT}
RUN pip install --prefer-binary --no-cache-dir -r ${ROOT}/repositories/CodeFormer/requirements.txt RUN mkdir ${ROOT}/interrogate && cp ${ROOT}/repositories/clip-interrogator/data/* ${ROOT}/interrogate
RUN --mount=type=cache,target=/root/.cache/pip \
pip install -r ${ROOT}/repositories/CodeFormer/requirements.txt
RUN --mount=type=cache,target=/root/.cache/pip \
pip install pyngrok \
git+https://github.com/TencentARC/GFPGAN.git@8d2447a2d918f8eba5a4a01463fd48e45126a379 \
git+https://github.com/openai/CLIP.git@d50d76daa670286dd6cacf3bcd80b5e4823fc8e1 \
git+https://github.com/mlfoundations/open_clip.git@bb6e834e9c70d9c27d0dc3ecedeebeaeb1ffad6b
# Note: don't update the sha of previous versions because the install will take forever # Note: don't update the sha of previous versions because the install will take forever
# instead, update the repo state in a later step # instead, update the repo state in a later step
ARG SHA=3f417566b0bda8eab05d247567aebf001c1d1725 ARG SHA=3715ece0adce7bf7c5e9c5ab3710b2fdc3848f39
RUN <<EOF RUN --mount=type=cache,target=/root/.cache/pip <<EOF
cd stable-diffusion-webui cd stable-diffusion-webui
git pull --rebase git fetch
git reset --hard ${SHA} git reset --hard ${SHA}
pip install --prefer-binary --no-cache-dir -r requirements_versions.txt pip install -r requirements_versions.txt
pip install --prefer-binary --no-cache-dir -r requirements.txt
EOF EOF
RUN pip install --prefer-binary -U --no-cache-dir opencv-python-headless RUN --mount=type=cache,target=/root/.cache/pip pip install -U opencv-python-headless
COPY . /docker COPY . /docker
RUN <<EOF RUN <<EOF
chmod +x /docker/mount.sh && python3 /docker/info.py ${ROOT}/modules/ui.py python3 /docker/info.py ${ROOT}/modules/ui.py
mv ${ROOT}/style.css ${ROOT}/user.css
# one of the ugliest hacks I ever wrote
sed -i 's/in_app_dir = .*/in_app_dir = True/g' /usr/local/lib/python3.10/site-packages/gradio/routes.py
EOF EOF
WORKDIR ${ROOT}
ENV CLI_ARGS="" ENV CLI_ARGS=""
WORKDIR ${WORKDIR}
EXPOSE 7860 EXPOSE 7860
# run, -u to not buffer stdout / stderr ENTRYPOINT ["/docker/entrypoint.sh"]
CMD /docker/mount.sh && \ CMD python -u webui.py --listen --port 7860 ${CLI_ARGS}
python3 -u ../../webui.py --listen --port 7860 --hide-ui-dir-config --ckpt-dir ${ROOT}/models/Stable-diffusion ${CLI_ARGS}
# --gfpgan-models-path /data/GFPGAN --codeformer-models-path /data/Codeformer --esrgan-models-path /data/ESRGAN --bsrgan-models-path /data/BSRGAN --realesrgan-models-path /data/RealESRGAN --swinir-models-path /data/SwinIR --ldsr-models-path /data/LDSR

View File

@@ -1,79 +1,10 @@
{ {
"outdir_samples": "/output", "outdir_samples": "",
"outdir_txt2img_samples": "/output/txt2img-images", "outdir_txt2img_samples": "/output/txt2img",
"outdir_img2img_samples": "/output/img2img-images", "outdir_img2img_samples": "/output/img2img",
"outdir_extras_samples": "/output/extras-images", "outdir_extras_samples": "/output/extras",
"outdir_txt2img_grids": "/output/txt2img-grids", "outdir_txt2img_grids": "/output/txt2img-grids",
"outdir_img2img_grids": "/output/img2img-grids", "outdir_img2img_grids": "/output/img2img-grids",
"outdir_save": "/output/saved", "outdir_save": "/output/saved",
"font": "DejaVuSans.ttf", "font": "DejaVuSans.ttf"
"__WARNING__": "DON'T CHANGE ANYTHING BEFORE THIS",
"add_model_hash_to_info": false,
"code_former_weight": 0.5,
"directories_filename_pattern": "",
"directories_max_prompt_words": 8,
"enable_batch_seeds": true,
"enable_emphasis": true,
"enable_pnginfo": true,
"enable_quantization": false,
"ESRGAN_tile": 192,
"ESRGAN_tile_overlap": 8,
"export_for_4chan": true,
"face_restoration_model": null,
"face_restoration_unload": false,
"filter_nsfw": false,
"grid_extended_filename": false,
"grid_format": "png",
"grid_only_if_multiple": true,
"grid_save": true,
"grid_save_to_dirs": false,
"img2img_color_correction": false,
"img2img_fix_steps": false,
"interrogate_clip_dict_limit": 1500,
"interrogate_clip_max_length": 48,
"interrogate_clip_min_length": 24,
"interrogate_clip_num_beams": 1,
"interrogate_keep_models_in_memory": false,
"interrogate_use_builtin_artists": true,
"jpeg_quality": 80,
"js_modal_lightbox": true,
"js_modal_lightbox_initialy_zoomed": true,
"ldsr_post_down": 1,
"ldsr_pre_down": 1,
"ldsr_steps": 30,
"memmon_poll_rate": 8,
"multiple_tqdm": true,
"n_rows": -1,
"outdir_grids": "",
"random_artist_categories": [],
"realesrgan_enabled_models": [
"Real-ESRGAN 4x plus",
"Real-ESRGAN 4x plus anime 6B",
"Real-ESRGAN 2x plus",
"Real-ESRGAN AnimeVideo",
"Real-ESRGAN General WDN x4x3",
"Real-ESRGAN General x4x3"
],
"return_grid": true,
"samples_filename_format": "",
"samples_filename_pattern": "",
"samples_format": "png",
"samples_log_stdout": false,
"samples_save": true,
"save_images_before_color_correction": false,
"save_images_before_face_restoration": false,
"save_selected_only": false,
"save_to_dirs": false,
"save_to_dirs_prompt_len": 10,
"save_txt": false,
"sd_model_checkpoint": null,
"show_progress_every_n_steps": 7,
"show_progressbar": true,
"SWIN_tile": 192,
"SWIN_tile_overlap": 8,
"upscale_at_full_resolution_padding": 16,
"upscaler_for_hires_fix": null,
"upscaler_for_img2img": null,
"use_original_name_batch": false
} }

View File

@@ -0,0 +1,65 @@
#!/bin/bash
set -Eeuo pipefail
# TODO: move all mkdir -p ?
mkdir -p /data/config/auto/scripts/
# mount scripts individually
find "${ROOT}/scripts/" -maxdepth 1 -type l -delete
cp -vrfTs /data/config/auto/scripts/ "${ROOT}/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
if [ ! -f /data/config/auto/ui-config.json ]; then
echo '{}' >/data/config/auto/ui-config.json
fi
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"
MOUNTS["${ROOT}/models/BSRGAN"]="/data/BSRGAN"
MOUNTS["${ROOT}/models/RealESRGAN"]="/data/RealESRGAN"
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/torch_deepdanbooru"]="/data/Deepdanbooru"
MOUNTS["${ROOT}/models/BLIP"]="/data/BLIP"
MOUNTS["${ROOT}/models/midas"]="/data/MiDaS"
MOUNTS["${ROOT}/models/Lora"]="/data/Lora"
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"
for to_path in "${!MOUNTS[@]}"; do
set -Eeuo pipefail
from_path="${MOUNTS[${to_path}]}"
rm -rf "${to_path}"
if [ ! -f "$from_path" ]; then
mkdir -vp "$from_path"
fi
mkdir -vp "$(dirname "${to_path}")"
ln -sT "${from_path}" "${to_path}"
echo Mounted $(basename "${from_path}")
done
if [ -f "/data/config/auto/startup.sh" ]; then
pushd ${ROOT}
. /data/config/auto/startup.sh
popd
fi
exec "$@"

View File

@@ -1,31 +0,0 @@
#!/bin/bash
set -Eeuo pipefail
declare -A MOUNTS
MOUNTS["/root/.cache"]="/data/.cache"
# main
MOUNTS["${ROOT}/models/Stable-diffusion"]="/data/StableDiffusion"
MOUNTS["${ROOT}/models/Codeformer"]="/data/Codeformer"
MOUNTS["${ROOT}/models/GFPGAN"]="/data/GFPGAN"
MOUNTS["${ROOT}/models/ESRGAN"]="/data/ESRGAN"
MOUNTS["${ROOT}/models/BSRGAN"]="/data/BSRGAN"
MOUNTS["${ROOT}/models/RealESRGAN"]="/data/RealESRGAN"
MOUNTS["${ROOT}/models/SwinIR"]="/data/SwinIR"
MOUNTS["${ROOT}/models/LDSR"]="/data/LDSR"
MOUNTS["${ROOT}/embeddings"]="/data/embeddings"
# extra hacks
MOUNTS["${ROOT}/repositories/CodeFormer/weights/facelib"]="/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

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 e2cd4703ab14f4d01fd1383a8a8b266f9a5833dacee8e6a79d3bf21a1b6be5ad /data/GFPGAN/GFPGANv1.4.pth
4fa0d38905f75ac06eb49a7951b426670021be3018265fd191d2125df9d682f1 /data/RealESRGAN/RealESRGAN_x4plus.pth 4fa0d38905f75ac06eb49a7951b426670021be3018265fd191d2125df9d682f1 /data/RealESRGAN/RealESRGAN_x4plus.pth
f872d837d3c90ed2e05227bed711af5671a6fd1c9f7d7e91c911a61f155e99da /data/RealESRGAN/RealESRGAN_x4plus_anime_6B.pth f872d837d3c90ed2e05227bed711af5671a6fd1c9f7d7e91c911a61f155e99da /data/RealESRGAN/RealESRGAN_x4plus_anime_6B.pth

View File

@@ -2,22 +2,28 @@
set -Eeuo pipefail set -Eeuo pipefail
mkdir -p /data/.cache /data/StableDiffusion /data/Codeformer /data/GFPGAN /data/ESRGAN /data/BSRGAN /data/RealESRGAN /data/SwinIR /data/LDSR # 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 /data/MiDaS /data/Lora
cat <<EOF
By using this software, you agree to the following licenses:
https://github.com/CompVis/stable-diffusion/blob/main/LICENSE
https://github.com/TencentARC/GFPGAN/blob/master/LICENSE
https://github.com/xinntao/Real-ESRGAN/blob/master/LICENSE
EOF
echo "Downloading, this might take a while..." echo "Downloading, this might take a while..."
aria2c --input-file /docker/links.txt --dir /data --continue aria2c -x 10 --disable-ipv6 --input-file /docker/links.txt --dir /data --continue
echo "Checking SHAs..." echo "Checking SHAs..."
parallel --will-cite -a /docker/checksums.sha256 "echo -n {} | sha256sum -c" parallel --will-cite -a /docker/checksums.sha256 "echo -n {} | sha256sum -c"
# fix potential permissions cat <<EOF
chmod -R 777 /data /output By using this software, you agree to the following licenses:
https://github.com/AbdBarho/stable-diffusion-webui-docker/blob/master/LICENSE
https://github.com/CompVis/stable-diffusion/blob/main/LICENSE
https://github.com/AUTOMATIC1111/stable-diffusion-webui/blob/master/LICENSE.txt
https://github.com/invoke-ai/InvokeAI/blob/main/LICENSE
https://github.com/sd-webui/stable-diffusion-webui/blob/master/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
EOF

View File

@@ -1,5 +1,9 @@
https://www.googleapis.com/storage/v1/b/aai-blog-files/o/sd-v1-4.ckpt?alt=media https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.ckpt
out=StableDiffusion/model.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/runwayml/stable-diffusion-inpainting/resolve/main/sd-v1-5-inpainting.ckpt
out=StableDiffusion/sd-v1-5-inpainting.ckpt
https://github.com/TencentARC/GFPGAN/releases/download/v1.3.4/GFPGANv1.4.pth https://github.com/TencentARC/GFPGAN/releases/download/v1.3.4/GFPGANv1.4.pth
out=GFPGAN/GFPGANv1.4.pth out=GFPGAN/GFPGANv1.4.pth
https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth

View File

@@ -1,50 +0,0 @@
# syntax=docker/dockerfile:1
FROM continuumio/miniconda3:4.12.0
SHELL ["/bin/bash", "-ceuxo", "pipefail"]
ENV DEBIAN_FRONTEND=noninteractive
RUN conda install python=3.8.5 && 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
RUN <<EOF
git config --global http.postBuffer 1048576000
git clone https://github.com/sd-webui/stable-diffusion-webui.git stable-diffusion
cd stable-diffusion
git reset --hard 7623a5734740025d79b710f3744bff9276e1467b
conda env update --file environment.yaml -n base
conda clean -a -y
EOF
# 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 BRANCH=master SHA=d0bb60a139d60e6c2b9be4e18e0e29a86aa5af59
ARG BRANCH=dev SHA=aaa3be16e0e66f07c63dbdb49b9b7cac8fef5cfb
RUN <<EOF
cd stable-diffusion
git fetch
git checkout ${BRANCH}
git reset --hard ${SHA}
conda env update --file environment.yaml -n base
conda clean -a -y
EOF
RUN pip install -U --no-cache-dir pyperclip
# add info
COPY . /docker/
RUN python /docker/info.py /stable-diffusion/frontend/frontend.py && chmod +x /docker/mount.sh
WORKDIR /stable-diffusion
ENV PYTHONPATH="${PYTHONPATH}:${PWD}" CLI_ARGS=""
EXPOSE 7860
# run, -u to not buffer stdout / stderr
CMD /docker/mount.sh && \
python3 -u scripts/webui.py --outdir /output --ckpt /data/StableDiffusion/model.ckpt ${CLI_ARGS}
# sed -i -- 's/8501/7860/g' .streamlit/config.toml && STREAMLIT_SERVER_HEADLESS=true python -u -m streamlit run scripts/webui_streamlit.py --theme.base dark

View File

@@ -1,8 +0,0 @@
general:
outdir: /outputs
default_model: "Stable Diffusion v1.4"
default_model_path: /data/StableDiffusion/model.ckpt
outdir_txt2img: /outputs/txt2img-samples
outdir_img2img: /outputs/img2img-samples
optimized: True
optimized_turbo: True

View File

@@ -0,0 +1,72 @@
# syntax=docker/dockerfile:1
FROM alpine:3.17 as xformers
RUN apk add --no-cache aria2
RUN aria2c -x 5 --dir / --out wheel.whl 'https://github.com/AbdBarho/stable-diffusion-webui-docker/releases/download/5.0.0/xformers-0.0.17.dev449-cp310-cp310-manylinux2014_x86_64.whl'
FROM python:3.10-slim
SHELL ["/bin/bash", "-ceuxo", "pipefail"]
ENV DEBIAN_FRONTEND=noninteractive PIP_EXISTS_ACTION=w PIP_PREFER_BINARY=1
RUN --mount=type=cache,target=/root/.cache/pip pip install torch==1.13.1+cu117 torchvision --extra-index-url https://download.pytorch.org/whl/cu117
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 --mount=type=cache,target=/root/.cache/pip <<EOF
git reset --hard f232068ab89bd80e4f5f3133dcdb62ea78f1d0f7
git config --global http.postBuffer 1048576000
egrep -v '^-e .' environments-and-requirements/requirements-lin-cuda.txt > req.txt
pip install -r req.txt
rm req.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=6551527fe249dc7a44e3fab9db9451c0dc3ad851
RUN --mount=type=cache,target=/root/.cache/pip <<EOF
git fetch
git reset --hard
git checkout ${BRANCH}
git reset --hard ${SHA}
pip install .
# egrep -v '^-e .' environments-and-requirements/requirements-lin-cuda.txt > req.txt
# pip install -r req.txt
# rm req.txt
EOF
RUN --mount=type=cache,target=/root/.cache/pip \
--mount=type=bind,from=xformers,source=/wheel.whl,target=/xformers-0.0.15-cp310-cp310-linux_x86_64.whl \
pip install -U opencv-python-headless huggingface_hub triton /xformers-0.0.15-cp310-cp310-linux_x86_64.whl && \
python3 -c "from patchmatch import patch_match"
RUN touch invokeai.init
COPY . /docker/
# mkdir configs && cp invokeai/configs/INITIAL_MODELS.yaml configs/models.yaml
ENV PYTHONUNBUFFERED=1 ROOT=/stable-diffusion PYTHONPATH="${PYTHONPATH}:${ROOT}" PRELOAD=false CLI_ARGS="" HF_HOME=/root/.cache/huggingface
EXPOSE 7860
ENTRYPOINT ["/docker/entrypoint.sh"]
CMD invokeai --web --host 0.0.0.0 --port 7860 --config /docker/models.yaml --root_dir ${ROOT} --outdir /output/invoke ${CLI_ARGS}

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

@@ -0,0 +1,46 @@
#!/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 --skip-sd-weights --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: /stable-diffusion/invokeai/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: /stable-diffusion/invokeai/configs/stable-diffusion/v1-inpainting-inference.yaml
width: 512
height: 512
default: false

View File

@@ -1,59 +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
RUN <<EOF
git clone https://github.com/invoke-ai/InvokeAI.git stable-diffusion
cd stable-diffusion
git reset --hard a1739a73b48bfe98b6abcb67f5a0197a9ad270e0
sed -i -- 's/python=3.8.5/python=3.9/g' environment.yaml
conda env update --file environment.yaml -n base
conda clean -a -y
EOF
ARG BRANCH=development SHA=8c9f2ae705cf723d4a8a73c416e8d8bf2d746977
# this breaks on generation:
# there is a new UI anyway, but it is not by any means ready.
# ARG BRANCH=development SHA=bdbc76fcd4bd3362312dc91b087d9af66de423b1
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 transformers==4.19.2
COPY . /docker/
RUN <<EOF
python3 /docker/info.py /stable-diffusion/static/dream_web/index.html
chmod +x /docker/mount.sh
sed -i -- 's/outputs\//\/output/g' /stable-diffusion/backend/server.py
EOF
ENV TRANSFORMERS_CACHE=/cache/transformers TORCH_HOME=/cache/torch PRELOAD=false CLI_ARGS=""
WORKDIR /stable-diffusion
EXPOSE 7860
CMD /docker/mount.sh && \
# python3 -u backend/server.py --host 0.0.0.0 --port 7860 --cors http://localhost:7860
# python3 -u scripts/dream.py --outdir /output --web --host 0.0.0.0 --port 7860 ${CLI_ARGS}
echo The lstein webUI is currently deactivated due to implementation limitations: \
https://github.com/invoke-ai/InvokeAI/blob/8c9f2ae705cf723d4a8a73c416e8d8bf2d746977/backend/modules/create_cmd_parser.py#L26 \
Once the path the output is fixed, the UI will be activated again

View File

@@ -1,10 +0,0 @@
import sys
from pathlib import Path
file = Path(sys.argv[1])
file.write_text(
file.read_text()\
.replace('GitHub site</a>', """
GitHub site</a>, Deployed with <a href="https://github.com/AbdBarho/stable-diffusion-webui-docker/">stable-diffusion-webui-docker</a>
""", 1)
)

View File

@@ -1,29 +0,0 @@
#!/bin/bash
set -eu
ROOT=/stable-diffusion
mkdir -p "${ROOT}/models/ldm/stable-diffusion-v1/"
ln -sf /cache/models/model.ckpt "${ROOT}/models/ldm/stable-diffusion-v1/model.ckpt"
base="${ROOT}/src/gfpgan/experiments/pretrained_models/"
mkdir -p "${base}"
# TODO: "real" GFPGANv1.4.pth
ln -sf /cache/models/GFPGANv1.3.pth "${base}/GFPGANv1.4.pth"
echo "Mounted GFPGANv1.3.pth"
# facexlib
FACEX_WEIGHTS=/opt/conda/lib/python3.9/site-packages/facexlib/weights
rm -rf "${FACEX_WEIGHTS}"
mkdir -p /cache/weights
ln -sf -T /cache/weights "${FACEX_WEIGHTS}"
REALESRGAN_WEIGHTS=/opt/conda/lib/python3.9/site-packages/realesrgan/weights
rm -rf "${REALESRGAN_WEIGHTS}"
ln -sf -T /cache/weights "${REALESRGAN_WEIGHTS}"
if "${PRELOAD}" == "true"; then
python3 -u scripts/preload_models.py
fi

46
services/sygil/Dockerfile Normal file
View File

@@ -0,0 +1,46 @@
# syntax=docker/dockerfile:1
FROM python:3.8-slim
SHELL ["/bin/bash", "-ceuxo", "pipefail"]
ENV DEBIAN_FRONTEND=noninteractive PIP_PREFER_BINARY=1
RUN --mount=type=cache,target=/root/.cache/pip pip install torch==1.13.0 torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117
RUN apt-get update && apt install gcc libsndfile1 ffmpeg build-essential zip unzip git -y && apt-get clean
RUN --mount=type=cache,target=/root/.cache/pip <<EOF
git config --global http.postBuffer 1048576000
git clone https://github.com/Sygil-Dev/sygil-webui.git stable-diffusion
cd stable-diffusion
git reset --hard 5291437085bddd16d752f811b6552419a2044d12
pip install -r requirements.txt
EOF
ARG BRANCH=master SHA=571fb897edd58b714bb385dfaa1ad59aecef8bc7
RUN --mount=type=cache,target=/root/.cache/pip <<EOF
cd stable-diffusion
git fetch
git checkout ${BRANCH}
git reset --hard ${SHA}
pip install -r requirements.txt
EOF
RUN --mount=type=cache,target=/root/.cache/pip pip install -U 'transformers>=4.24'
# add info
COPY . /docker/
RUN <<EOF
python /docker/info.py /stable-diffusion/frontend/frontend.py
chmod +x /docker/mount.sh /docker/run.sh
# streamlit
sed -i -- 's/8501/7860/g' /stable-diffusion/.streamlit/config.toml
EOF
WORKDIR /stable-diffusion
ENV PYTHONPATH="${PYTHONPATH}:${PWD}" STREAMLIT_SERVER_HEADLESS=true USE_STREAMLIT=0 CLI_ARGS=""
EXPOSE 7860
CMD /docker/mount.sh && /docker/run.sh

View File

@@ -9,11 +9,15 @@ ROOT=/stable-diffusion/src
# cache # cache
MOUNTS["/root/.cache"]=/data/.cache MOUNTS["/root/.cache"]=/data/.cache
# ui specific # ui specific
MOUNTS["${ROOT}/gfpgan/experiments/pretrained_models/GFPGANv1.3.pth"]=/data/GFPGAN/GFPGANv1.4.pth MOUNTS["${PWD}/models/realesrgan"]=/data/RealESRGAN
MOUNTS["${ROOT}/realesrgan/experiments/pretrained_models"]=/data/RealESRGAN MOUNTS["${PWD}/models/ldsr"]=/data/LDSR
MOUNTS["${ROOT}/latent-diffusion/experiments/pretrained_models"]=/data/LDSR MOUNTS["${PWD}/models/custom"]=/data/StableDiffusion
# hacks
MOUNTS["/stable-diffusion/gfpgan/weights"]=/data/.cache # 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 for to_path in "${!MOUNTS[@]}"; do
set -Eeuo pipefail set -Eeuo pipefail

10
services/sygil/run.sh Executable file
View File

@@ -0,0 +1,10 @@
#!/bin/bash
set -Eeuo pipefail
echo "USE_STREAMLIT = ${USE_STREAMLIT}"
if [ "${USE_STREAMLIT}" == "1" ]; then
python -u -m streamlit run scripts/webui_streamlit.py
else
python3 -u scripts/webui.py --outdir /output --ckpt /data/StableDiffusion/v1-5-pruned-emaonly.ckpt ${CLI_ARGS}
fi

View File

@@ -0,0 +1,11 @@
# https://github.com/Sygil-Dev/sygil-webui/blob/master/configs/webui/webui_streamlit.yaml
general:
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
outdir_img2img: /output/img2img
outdir_img2txt: /output/img2txt
optimized: True
optimized_turbo: True