Compare commits

..

132 commits

Author SHA1 Message Date
AbdBarho 802d0bcd68
Remove invoke (#705)
The invoke team already maintains a docker setup for their service, this
copy here was maybe relevant 2 years ago when all of this started, but I
don't think it makes sense anymore.

Refer to invoke's docs to install using docker
https://invoke-ai.github.io/InvokeAI/installation/040_INSTALL_DOCKER/
2024-06-23 11:16:21 +02:00
mohamednabiel717 b1a26b8041
Update Auto to 1.9.4 (#700)
feee37d75f

---------

Co-authored-by: AbdBarho <ka70911@gmail.com>
2024-06-07 19:10:28 +02:00
AbdBarho f1bf3b0943
Bump pytorch containers (#697)
Closes #696
Closes #694
2024-05-28 19:39:33 +02:00
AbdBarho 35a18b3d46
Update Comfy (#693)
276f8fce9f

Closes #676 
Closes #674

Refs #686
2024-05-20 14:44:41 +02:00
神楽坂·喵 887e49c495
Add missing assets to auto1111 (#684)
Closes #683

Co-authored-by: AbdBarho <ka70911@gmail.com>
2024-05-20 13:41:54 +02:00
Derek Palmer (Creative) 7051ce0a44
Updated docker-compose to remove obsolete version syntax (#692)
Removes `version:` syntax in `docker-compose` file. If left in, it
throws an obsolete warning. I removed it from the docker-compose file to
reduce unnecessary warnings and to keep the code up to current
standards.

See [Version top-level element
(obsolete)](https://docs.docker.com/compose/compose-file/04-version-and-name/#version-top-level-element-obsolete)
for reference.
2024-05-20 13:41:36 +02:00
SachiaLanlus ac94eac2b5
Update Auto v1.9.3 (#673)
Closes issue  #672

### Update versions

- auto:
https://github.com/AUTOMATIC1111/stable-diffusion-webui/releases/tag/v1.9.3
2024-05-20 13:35:07 +02:00
AbdBarho 015c2ec829
Pin xformers (for now) (#651)
Closes #648
Closes #649
2024-02-03 08:50:40 +01:00
AbdBarho 245d1d443f
Update package index (#650)
Closes #622
2024-02-03 08:17:45 +01:00
Johannes Sjölund 60c4832185
Update open_clip to v2.20.0 in Auto (#617)
Fixes #615.

Updates `open-clip-torch` to the one specified in auto's
[requirements_versions.txt](https://github.com/AUTOMATIC1111/stable-diffusion-webui/blob/master/requirements_versions.txt#L18).

---------

Co-authored-by: AbdBarho <ka70911@gmail.com>
2024-01-01 11:34:46 +01:00
Adam Florizone f613639748
Update Auto v1.7.0 (#632)
Update Auto v1.7.0


https://github.com/AUTOMATIC1111/stable-diffusion-webui/releases/tag/v1.7.0

---------

Co-authored-by: AbdBarho <ka70911@gmail.com>
2024-01-01 11:30:40 +01:00
simonmcnair fbc5c359d0
Resolve memory usage situation in Auto (#620)
Fixes
https://github.com/AbdBarho/stable-diffusion-webui-docker/issues/612

---------

Co-authored-by: AbdBarho <ka70911@gmail.com>
2024-01-01 11:13:01 +01:00
sejoung kim 90affeb72a
Bump Comfy (#603)
d1f3637a5a

---------

Co-authored-by: AbdBarho <ka70911@gmail.com>
2024-01-01 11:04:02 +01:00
AbdBarho 3e67f559d4
Update Auto (#610)
Closes #609

4afaaf8a02
2023-11-13 21:12:07 +01:00
cococig a2561f2659
Update automatic1111 webui base image (#601)
Update the minor version of Python in the base image for AUTOMATIC1111
web UI.

Closes issue #600
2023-11-13 19:35:24 +01:00
cloudaxes 6a34739135
Update Automatic1111 to v1.6.0 (#585)
Update Automatic1111 Stable Diffusion Webui to v1.6.0.

Closes #583 

---------

Co-authored-by: AbdBarho <ka70911@gmail.com>
2023-09-09 16:10:05 +02:00
Sebastian Piechowiak 630980b1bf
Skipping installation of requirements for disabled extensions (#582)
Closes #563
2023-09-09 15:34:06 +02:00
66li 84740598bc
Update generative-models version (#581)
Upgrade a dependent library



https://github.com/AUTOMATIC1111/stable-diffusion-webui/blob/v1.5.2/modules/launch_utils.py#L288C90-L288C130

---------

Co-authored-by: AbdBarho <ka70911@gmail.com>
2023-08-31 20:04:32 +02:00
AbdBarho 59b9762ac7
Update Comfy (#580)
7e941f9f24
2023-08-30 20:00:48 +02:00
AbdBarho 70357bf01e
Auto 1.5.2 (#579)
c9c8485bc1
2023-08-30 19:55:06 +02:00
Manuel Schmid def76291f8
Update Automatic1111 to 1.5.1 to add compatibility for SDXL (#560)
Uses the latest release of
https://github.com/Stability-AI/generative-models
45c443b316737a4ab6e40413d7794a7f5657c19f

Tested with the official SDXL 1.0 model from
https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/blob/main/sd_xl_base_1.0.safetensors
and official refiner from
https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/blob/main/sd_xl_refiner_1.0.safetensors.
VAE:
https://huggingface.co/stabilityai/sdxl-vae/blob/main/sdxl_vae.safetensors

Closes #558
Closes #559

68f336bd99

---------

Co-authored-by: AbdBarho <ka70911@gmail.com>
2023-07-30 15:42:32 +02:00
AbdBarho 09a0f11946
Add startup script for comfy (#552)
Closes #451

---------

Co-authored-by: PassiveLemon <lemonl3mn@protonmail.com>
2023-07-22 08:31:17 +02:00
cloudaxes 6de45b1984
Upgrade k-diffusion to Release 0.0.15 to get access to DPM++ (2M) SDE sampler. (#537)
Closes issue #536
2023-07-22 07:23:30 +02:00
AbdBarho 103e11493b
Auto 1.4.0 (#507)
394ffa7b0a

Maybe bug:
https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/11040
2023-07-02 08:15:51 +02:00
AbdBarho 95e96602f9
Bump auto 2023-06-26 21:57:45 +02:00
神楽坂·喵 37a82af4b7
Add build-essential package (#522)
Fix the problem that some extensions need to be installed from src
Now, because the step of installing extensions is moved forward in
`entrypoint.sh` instead of `startup.sh`, we cannot install some required
packages before executing `install.py`
When installing the extension `sd-webui-roop`, it relies on
`insightface==0.7.3`, and when installing this pypi package, it is found
that when building the wheel package, an error will be reported because
`gcc` cannot be found

ddc02ee1a9/requirements.txt (L1)
Therefore, considering that not all pypi packages are distributed in
wheel, those pypi packages distributed in src need `build-essential` to
build
2023-06-26 21:37:37 +02:00
AbdBarho 5e28222332
Allow setting port through env WEBUI_PORT (#521)
I am actually not happy with this solution, I would prefer if it was
possible to customize the ports within `docker-compose.override.yml`
2023-06-25 20:33:57 +02:00
AbdBarho 6c45e0c2ef
Create dirs if not exist (#520)
Closes #519
2023-06-25 20:21:41 +02:00
神楽坂·喵 6365811f35
Modify installation extension dependencies (#518)
Perform a full extension installation process instead of just installing
dependencies
Some extensions do not include `requirements.txt` but install
dependencies in `install.py`, and all extensions include `install.py`,
so it is safe to use it for extended dependency installation
This is because the extension development of AUTOMATIC1111's webui does
not require the existence of `requirements.txt` but uses `install.py` to
initialize the extension

https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Developing-extensions#installpy
2023-06-25 12:42:04 +02:00
AbdBarho cdde93b8bb
v8 (#516)
8607c2d42d
2023-06-24 10:06:30 +02:00
AbdBarho 660c098da0
Change capabilities in docker-compose (#497)
#479
2023-06-02 21:29:00 +02:00
AbdBarho 6695c23150
InvokeAI 2.3.5.post2 (#491)
f3b2e02921
#489
2023-05-29 19:07:01 +02:00
AbdBarho a3ecd4a79c
Update auto to 1.3.0 (#490)
20ae71faa8

Pytorch 2.0.1 #489
2023-05-29 15:17:06 +02:00
AbdBarho 1df18b803c
Add extension dependencies (#485)
It seems that users are struggling to follow the instructions on the
wiki


https://github.com/AbdBarho/stable-diffusion-webui-docker/pull/483#issuecomment-1561241372
2023-05-24 16:53:59 +02:00
AbdBarho 110627415d
Deprecate Sygil (#450)
It has been a long and wonderful journey
2023-05-16 18:58:52 +02:00
AbdBarho 87b1509dc2
Update Auto to 1.2.1 (#466)
89f9faa633

Fix #448
2023-05-16 18:56:36 +02:00
AbdBarho 71f4abb2db
Create custom_nodes dir (#461)
Closes #460
2023-05-10 07:32:58 +02:00
AbdBarho c836f41921
Add ClipEncoder (#458)
https://github.com/AbdBarho/stable-diffusion-webui-docker/pull/432#issuecomment-1537380951
2023-05-08 19:29:38 +02:00
LEv145 d47e77f19c
Update/fix mounts for comfyUI (#432)
I updated the paths to make all paths work

Now paths in ComfyUI are working
Added: 
- `input`
- `models/configs`
- `models/gligen`
- `models/diffusers`
- `models/hypernetworks`

Was broken:
- `custom_nodes`
- `models/clip_vision` 
- `models/clip`

---------

Co-authored-by: LEv145 <you@example.com>
Co-authored-by: AbdBarho <ka70911@gmail.com>
2023-05-07 11:11:30 +02:00
AbdBarho 7fb8b97b90
Invoke 2.3.5 (#449)
d73f1c363c
2023-05-06 09:48:38 +02:00
Mat 9ac33db795
Fix overwriting existing values in config.json in auto (#418)
`jq` merge direction in this case is right to left so if the user had
set up custom paths it would replace them with the default ones.

This PR switches the direction to use the defaults as fallback instead
of overwriting user settings.

----
Didn't want to create an issue for the tiny change.

Thanks for your work on the repo, it saved me a lot of time, 👍

---------

Co-authored-by: AbdBarho <ka70911@gmail.com>
2023-05-06 07:38:36 +02:00
AbdBarho a68734c9f9 Revert "Only run if changed (#444)"
This reverts commit 36f39043de.
2023-05-04 23:00:46 +02:00
AbdBarho 36f39043de
Only run if changed (#444) 2023-05-04 22:54:37 +02:00
AbdBarho 0e5801e9d6
Update auto to pytorch 2 (#442)
Closes #410
2023-05-04 22:41:51 +02:00
AbdBarho 2efaeb41cd
Add styles.csv support (#440)
Follow up to #386 after
https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/9334 has
been merged.

Closes #435
2023-05-04 07:48:19 +02:00
AbdBarho 56b942237e
Update Auto (#379)
Last version before pytorch 2


5ab7f213be
2023-05-04 07:29:49 +02:00
AbdBarho 7b8bc3d74a
LyCORIS - ModelScope (#439)
Follow up to #401

Closes #401
Closes #437

---------

Co-authored-by: svupper <56261963+svupper@users.noreply.github.com>
Co-authored-by: Ubuntu <ubuntu@ip-10-123-2-162.eu-west-3.compute.internal>
2023-05-04 06:55:01 +02:00
divens 445f3f8bac
Add tty to comfy service (#429)
Closes issue #428

Co-authored-by: Dylan Ivens <12586504+divens@users.noreply.github.com>
2023-04-28 19:55:06 +02:00
LEv145 076b5747d3
Fix file permissions (#425)
https://github.com/AbdBarho/stable-diffusion-webui-docker/issues/424

Co-authored-by: LEv145 <you@example.com>
2023-04-28 15:42:12 +02:00
PassiveLemon 2a0de025e2
Support for ComfyUI (#384)
As discussed in Discussion
[#367](https://github.com/AbdBarho/stable-diffusion-webui-docker/discussions/367),
this adds support for the newer ComfyUI. I forked the fork that would
already add this but the maintainer of that fork hasn't implemented the
changes needed to properly get the output function working, which I did.
I believe everything is functional though I have not tested every single
node.

I changed the table format for the README and a few other minor things
for aesthetic reasons but if you want me to revert those, I will.

---------

Co-authored-by: Jonathan Kovacs <jkovacs-dev@users.noreply.github.com>
Co-authored-by: AbdBarho <ka70911@gmail.com>
2023-04-21 21:34:17 +02:00
AbdBarho 10c16e1971
Refactor invoke (#405)
Fixes a problem with cross attention class missing from diffusers


models are now taken from the huggingFace cache.


50eb02f68b
2023-04-16 10:56:27 +02:00
AJ Walter 555c26b7ce
Make Dockerfiles OCI compliant (#408)
## Justification

Closes issue #352

This update makes the Dockerfiles OCI compliant, making it easier to use
Buildah or other image building techniques that require it

## Implementation

This changes a few things, listed below:

* auto: Download container is switched to alpine. The `git` container
specified the `/git` directory as a volume. As such, all the files under
`/git` would be lost after each script invoke. Alpine is used later in
the build process anyway, so it shouldn't be any extra cost to switch to
it
* auto: "New" clone.sh script is copied into the container, which is
basically just the previous clone script that was embedded in the
Dockerfile.
* all: `<<EOF` heredoc styles have been switched to `&& \`
* all: I added NVIDIA_DRIVER_CAPABILITIES and NVIDIA_VISIBLE_DEVICES to
expose my Nvidia card. This is most likely a selinux/podman problem, but
shouldn't change anything with docker to add it.
* docker-compose: I added selinux labeling. I tested this with real
docker (not just podman!) and it seems to work fine. Though I suggest
you try it too.

## Testing

Locally builds with buildah. 

Note: for caching to work properly, you still need to replace
`/root/.cache/pip` with `/root/.cache/pip,Z` on selinux systems.

Note: I was having some trouble running invoke. Thought it was this PR,
but it's a known issue. See
https://github.com/invoke-ai/InvokeAI/issues/3182

---------

Co-authored-by: AbdBarho <ka70911@gmail.com>
2023-04-16 10:32:03 +02:00
Simon Oelerich 5d379bf7bc
Add mounts for openpose (#387)
Upon enabling the ControlNet addon from
https://github.com/AbdBarho/stable-diffusion-webui-docker/pull/385 one
might want to use the `openpose` preprocessors. Those are downloaded by
the addon the first time they are used. Without proper mounts those
networks will be downloaded on usage after each container start.
This PR enables those mounts to reduce data traffic.
2023-04-05 19:09:07 +02:00
Simon Oelerich d2c1e551d7
Enable ControlNet mounts for AUTOMATIC1111 (#385)
The ControlNet addon
[sd-webui-controlnet](https://github.com/Mikubill/sd-webui-controlnet)
requires the `data/ControlNet` folder to be mounted into
`models/ControlNet`.
This PR enables said mount and adds the ControlNet folder to
`.gitignore` file.

---------

Co-authored-by: AbdBarho <ka70911@gmail.com>
2023-04-04 18:55:14 +02:00
AbdBarho 063665eae1
Update Auto (#365)
a9fed7c364
2023-03-14 18:30:08 +01:00
AbdBarho bb54e89b34
Update Auto (#363)
27e319dc4f
2023-03-11 22:35:11 +01:00
AbdBarho aa69f11230
Fix preload for Invoke (#346)
Refs #345
2023-02-27 19:59:36 +01:00
AbdBarho c54e26348e
Update Invoke (#343)
6e0c6d9cc9
2023-02-26 10:53:57 +01:00
AbdBarho b36de9ef2b
Add libgoogle-perftools-dev (#341)
- auto:
0cc0ee1bcb

Closes #326
2023-02-23 21:50:16 +01:00
AbdBarho 70d8d7f37f
Update versions (#338)
- auto:
076d624a29
- invoke:
d3c1b747ee
2023-02-19 16:25:06 +01:00
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
37 changed files with 456 additions and 515 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 {} \;

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

@ -0,0 +1,28 @@
#!/bin/bash
set -Eeuo pipefail
echo "Renaming..."
# compatible with default auto-names
mv -v ./data/StableDiffusion ./data/Stable-diffusion
mv -v ./data/Deepdanbooru ./data/torch_deepdanbooru
# casing problem on windows
mv -v ./data/Hypernetworks ./data/hypernetworks1
mv -v ./data/hypernetworks1 ./data/hypernetworks
mv -v ./data/MiDaS ./data/midas1
mv -v ./data/midas1 ./data/midas
echo "Moving folders..."
mkdir -pv ./final
mv -v ./data/config ./final/config
mv -v ./data/.cache ./final/.cache
mv -v ./data/embeddings ./final/embeddings
mv -v ./data ./final/models
mv -v ./final ./data

View file

@ -1,10 +1,9 @@
--- ---
name: Bug name: Bug
about: Report a bug about: Report a bug
title: '' title: ""
labels: bug labels: bug
assignees: '' assignees: ""
--- ---
<!-- PLEASE FILL THIS OUT, IT WILL MAKE BOTH OF OUR LIVES EASIER --> <!-- 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 [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. - [ ] 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 --> <!-- 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 comfy?
**Hardware / Software** **Hardware / Software**
- OS: [e.g. Windows 10 / Ubuntu ]
- OS version: <!-- on windows, use the command `winver` to find out, on ubuntu `lsb_release -d` --> - OS: [e.g. Windows 10 / Ubuntu 22.04]
- WSL version (if applicable): <!-- get using `wsl -l -v` --> - OS version: <!-- on windows, use the command `winver` to find out, on ubuntu `lsb_release -d` -->
- Docker Version: <!-- get using `docker version` --> - WSL version (if applicable): <!-- get using `wsl -l -v` -->
- Docker compose version: <!-- get using `docker compose version` --> - Docker Version: <!-- get using `docker version` -->
- Repo version: <!-- tag, commit sha, or "from master" --> - Docker compose version: <!-- get using `docker compose version` -->
- RAM: - Repo version: <!-- tag, commit sha, or "from master" -->
- GPU/VRAM: - 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 '....'

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/ - invoke: https://github.com/invoke-ai/InvokeAI/commit/
- lstein: https://github.com/invoke-ai/InvokeAI/commit/ - comfy: https://github.com/comfyanonymous/ComfyUI/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,10 @@ jobs:
matrix: matrix:
profile: profile:
- auto - auto
- hlky - comfy
- lstein
- 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,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.

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

4
.gitignore vendored
View file

@ -1,2 +1,6 @@
/.devcontainer /.devcontainer
/docker-compose.override.yml /docker-compose.override.yml
# VSCode specific
*.code-workspace
/.vscode

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,66 +2,33 @@
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/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 ## 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) |
### [ComfyUI](https://github.com/comfyanonymous/ComfyUI)
[Full feature list here](https://github.com/comfyanonymous/ComfyUI#features), Screenshot:
| Workflow |
| -------------------------------------------------------------------------------- |
| ![](https://github.com/comfyanonymous/ComfyUI/raw/master/comfyui_screenshot.png) |
## 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
@ -73,10 +40,9 @@ 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)
- [ComfyUI](https://github.com/comfyanonymous/ComfyUI)
- [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) - [Sygil-webui](https://github.com/Sygil-Dev/sygil-webui)
- [devilismyfriend/latent-diffusion](https://github.com/devilismyfriend/latent-diffusion) - and many many more.
- [Hafiidz/latent-diffusion](https://github.com/Hafiidz/latent-diffusion)

15
data/.gitignore vendored
View file

@ -1,17 +1,4 @@
# for all of the stuff downloaded by transformers, pytorch, and others
/.cache /.cache
# for UIs
/config /config
# for all stable diffusion models (main, waifu diffusion, etc..)
/StableDiffusion
# others
/Codeformer
/GFPGAN
/ESRGAN
/BSRGAN
/RealESRGAN
/SwinIR
/ScuNET
/LDSR
/Hypernetworks
/embeddings /embeddings
/models

View file

@ -1,18 +1,18 @@
version: '3.9'
x-base_service: &base_service x-base_service: &base_service
ports: ports:
- "7860:7860" - "${WEBUI_PORT:-7860}:7860"
volumes: volumes:
- &v1 ./data:/data - &v1 ./data:/data
- &v2 ./output:/output - &v2 ./output:/output
stop_signal: SIGKILL
tty: true
deploy: deploy:
resources: resources:
reservations: reservations:
devices: devices:
- driver: nvidia - driver: nvidia
device_ids: ['0'] device_ids: ['0']
capabilities: [gpu] capabilities: [compute, utility]
name: webui-docker name: webui-docker
@ -23,32 +23,33 @@ services:
volumes: volumes:
- *v1 - *v1
hlky:
<<: *base_service
profiles: ["hlky"]
build: ./services/hlky/
environment:
- CLI_ARGS=--optimized-turbo
- USE_STREAMLIT=0
auto: &automatic auto: &automatic
<<: *base_service <<: *base_service
profiles: ["auto"] profiles: ["auto"]
build: ./services/AUTOMATIC1111 build: ./services/AUTOMATIC1111
image: sd-auto:78
environment: environment:
- CLI_ARGS=--allow-code --medvram --xformers - 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: comfy: &comfy
<<: *base_service <<: *base_service
profiles: ["lstein"] profiles: ["comfy"]
build: ./services/lstein/ build: ./services/comfy/
image: sd-comfy:7
environment: environment:
- PRELOAD=true
- CLI_ARGS= - CLI_ARGS=
comfy-cpu:
<<: *comfy
profiles: ["comfy-cpu"]
deploy: {}
environment:
- CLI_ARGS=--cpu

View file

@ -1,87 +1,66 @@
# syntax=docker/dockerfile:1
FROM alpine/git:2.36.2 as download FROM alpine/git:2.36.2 as download
SHELL ["/bin/sh", "-ceuxo", "pipefail"] COPY clone.sh /clone.sh
RUN git clone https://github.com/CompVis/stable-diffusion.git repositories/stable-diffusion && cd repositories/stable-diffusion && git reset --hard 69ae4b35e0a0f6ee1af8bb9a5d0016ccb27e36dc RUN . /clone.sh stable-diffusion-webui-assets https://github.com/AUTOMATIC1111/stable-diffusion-webui-assets.git 6f7db241d2f8ba7457bac5ca9753331f0c266917
RUN git clone https://github.com/sczhou/CodeFormer.git repositories/CodeFormer && cd repositories/CodeFormer && git reset --hard c5b4593074ba6214284d6acd5f1719b6c5d739af RUN . /clone.sh stable-diffusion-stability-ai https://github.com/Stability-AI/stablediffusion.git cf1d67a6fd5ea1aa600c4df58e5b47da45f6bdbf \
RUN git clone https://github.com/salesforce/BLIP.git repositories/BLIP && cd repositories/BLIP && git reset --hard 48211a1594f1321b00f14c9f7a5b4813144b2fb9 && rm -rf assets data/**/*.png data/**/*.jpg data/**/*.gif
RUN <<EOF RUN . /clone.sh BLIP https://github.com/salesforce/BLIP.git 48211a1594f1321b00f14c9f7a5b4813144b2fb9
# because taming-transformers is huge RUN . /clone.sh k-diffusion https://github.com/crowsonkb/k-diffusion.git ab527a9a6d347f364e3d185ba6d714e22d80cb3c
git config --global http.postBuffer 1048576000 RUN . /clone.sh clip-interrogator https://github.com/pharmapsychotic/clip-interrogator 2cf03aaf6e704197fd0dae7c7f96aa59cf1b11c9
git clone https://github.com/CompVis/taming-transformers.git repositories/taming-transformers RUN . /clone.sh generative-models https://github.com/Stability-AI/generative-models 45c443b316737a4ab6e40413d7794a7f5657c19f
cd repositories/taming-transformers RUN . /clone.sh stable-diffusion-webui-assets https://github.com/AUTOMATIC1111/stable-diffusion-webui-assets 6f7db241d2f8ba7457bac5ca9753331f0c266917
git reset --hard 24268930bf1dce879235a7fddd0b2355b84d7ea6
rm -rf data assets
EOF
RUN git clone https://github.com/crowsonkb/k-diffusion.git repositories/k-diffusion && cd repositories/k-diffusion && git reset --hard f4e99857772fc3a126ba886aadf795a332774878
FROM python:3.10-slim as xformers
SHELL ["/bin/bash", "-ceuxo", "pipefail"]
RUN pip install gdown
RUN gdown https://drive.google.com/uc?id=1SqwicrLx1TrG_sbbEoIF_3TUHd4EYSmw -O /wheel.whl
FROM python:3.10-slim
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 apt-get update && apt install fonts-dejavu-core rsync git -y && apt-get clean
RUN <<EOF FROM pytorch/pytorch:2.3.0-cuda12.1-cudnn8-runtime
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
cd stable-diffusion-webui
git reset --hard 1eb588cbf19924333b88beaa1ac0041904966640
pip install -r requirements_versions.txt
EOF
ENV ROOT=/stable-diffusion-webui \ ENV DEBIAN_FRONTEND=noninteractive PIP_PREFER_BINARY=1
WORKDIR=/stable-diffusion-webui/repositories/stable-diffusion
RUN --mount=type=cache,target=/var/cache/apt \
apt-get update && \
# we need those
apt-get install -y fonts-dejavu-core rsync git jq moreutils aria2 \
# extensions needs those
ffmpeg libglfw3-dev libgles2-mesa-dev pkg-config libcairo2 libcairo2-dev build-essential
COPY --from=download /git/ ${ROOT} WORKDIR /
RUN pip install --prefer-binary --no-cache-dir -r ${ROOT}/repositories/CodeFormer/requirements.txt RUN --mount=type=cache,target=/root/.cache/pip \
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git && \
# TODO: move to top cd stable-diffusion-webui && \
RUN apt-get install jq moreutils -y git reset --hard v1.9.4 && \
pip install -r requirements_versions.txt
# Note: don't update the sha of previous versions because the install will take forever ENV ROOT=/stable-diffusion-webui
# instead, update the repo state in a later step
ARG SHA=36a0ba357ab0742c3c4a28437b68fb29a235afbe COPY --from=download /repositories/ ${ROOT}/repositories/
RUN <<EOF RUN mkdir ${ROOT}/interrogate && cp ${ROOT}/repositories/clip-interrogator/clip_interrogator/data/* ${ROOT}/interrogate
cd stable-diffusion-webui
git pull --rebase
git reset --hard ${SHA}
pip install --prefer-binary --no-cache-dir -r requirements_versions.txt
EOF
RUN pip install --prefer-binary --no-cache-dir opencv-python-headless \ RUN --mount=type=cache,target=/root/.cache/pip \
pip install pyngrok xformers==0.0.26.post1 \
git+https://github.com/TencentARC/GFPGAN.git@8d2447a2d918f8eba5a4a01463fd48e45126a379 \ git+https://github.com/TencentARC/GFPGAN.git@8d2447a2d918f8eba5a4a01463fd48e45126a379 \
git+https://github.com/openai/CLIP.git@d50d76daa670286dd6cacf3bcd80b5e4823fc8e1 \ git+https://github.com/openai/CLIP.git@d50d76daa670286dd6cacf3bcd80b5e4823fc8e1 \
pyngrok git+https://github.com/mlfoundations/open_clip.git@v2.20.0
COPY --from=xformers /wheel.whl xformers-0.0.14.dev0-cp310-cp310-linux_x86_64.whl # there seems to be a memory leak (or maybe just memory not being freed fast enough) that is fixed by this version of malloc
RUN pip install xformers-0.0.14.dev0-cp310-cp310-linux_x86_64.whl # maybe move this up to the dependencies list.
RUN apt-get -y install libgoogle-perftools-dev && apt-get clean
ENV LD_PRELOAD=libtcmalloc.so
COPY . /docker COPY . /docker
RUN <<EOF
chmod +x /docker/mount.sh && python3 /docker/info.py ${ROOT}/modules/ui.py
EOF
RUN \
# 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' /opt/conda/lib/python3.10/site-packages/gradio/routes.py && \
git config --global --add safe.directory '*'
WORKDIR ${ROOT}
ENV NVIDIA_VISIBLE_DEVICES=all
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 --ckpt-dir ${ROOT}/models/Stable-diffusion ${CLI_ARGS}

View file

@ -0,0 +1,11 @@
#!/bin/bash
set -Eeuox pipefail
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

View file

@ -1,10 +0,0 @@
{
"outdir_samples": "/output",
"outdir_txt2img_samples": "/output/txt2img-images",
"outdir_img2img_samples": "/output/img2img-images",
"outdir_extras_samples": "/output/extras-images",
"outdir_txt2img_grids": "/output/txt2img-grids",
"outdir_img2img_grids": "/output/img2img-grids",
"outdir_save": "/output/saved",
"font": "DejaVuSans.ttf"
}

View file

@ -0,0 +1,78 @@
#!/usr/bin/env python3
"""Checks and sets default values for config.json before starting the container."""
import json
import re
import os.path
import sys
DEFAULT_FILEPATH = '/data/config/auto/config.json'
DEFAULT_OUTDIRS = {
"outdir_samples": "",
"outdir_txt2img_samples": "/output/txt2img",
"outdir_img2img_samples": "/output/img2img",
"outdir_extras_samples": "/output/extras",
"outdir_grids": "",
"outdir_txt2img_grids": "/output/txt2img-grids",
"outdir_img2img_grids": "/output/img2img-grids",
"outdir_save": "/output/saved",
"outdir_init_images": "/output/init-images",
}
RE_VALID_OUTDIR = re.compile(r"(^/output(/\.?[\w\-\_]+)+/?$)|(^\s?$)")
DEFAULT_OTHER = {
"font": "DejaVuSans.ttf",
}
def dict_to_json_file(target_file: str, data: dict):
"""Write dictionary to specified json file"""
with open(target_file, 'w') as f:
json.dump(data, f)
def json_file_to_dict(config_file: str) -> dict|None:
"""Load json file into a dictionary. Return None if file does not exist."""
if os.path.isfile(config_file):
with open(config_file, 'r') as f:
return json.load(f)
else:
return None
def replace_if_invalid(value: str, replacement: str, pattern: str|re.Pattern[str]) -> str:
"""Returns original value if valid, fallback value if invalid"""
if re.match(pattern, value):
return value
else:
return replacement
def check_and_replace_config(config_file: str, target_file: str = None):
"""Checks given file for invalid values. Replaces those with fallback values (default: overwrites file)."""
# Get current user config, or empty if file does not exists
data = json_file_to_dict(config_file) or {}
# Check and fix output directories
for k, def_val in DEFAULT_OUTDIRS.items():
if k not in data:
data[k] = def_val
else:
data[k] = replace_if_invalid(value=data[k], replacement=def_val, pattern=RE_VALID_OUTDIR)
# Check and fix other default settings
for k, def_val in DEFAULT_OTHER.items():
if k not in data:
data[k] = def_val
# Write results to file
dict_to_json_file(target_file or config_file, data)
if __name__ == '__main__':
if len(sys.argv) > 1:
check_and_replace_config(*sys.argv[1:])
else:
check_and_replace_config(DEFAULT_FILEPATH)

View file

@ -0,0 +1,85 @@
#!/bin/bash
set -Eeuo pipefail
# TODO: move all mkdir -p ?
mkdir -p /data/config/auto/scripts/
# mount scripts individually
echo $ROOT
ls -lha $ROOT
find "${ROOT}/scripts/" -maxdepth 1 -type l -delete
cp -vrfTs /data/config/auto/scripts/ "${ROOT}/scripts/"
# Set up config file
python /docker/config.py /data/config/auto/config.json
if [ ! -f /data/config/auto/ui-config.json ]; then
echo '{}' >/data/config/auto/ui-config.json
fi
if [ ! -f /data/config/auto/styles.csv ]; then
touch /data/config/auto/styles.csv
fi
# copy models from original models folder
mkdir -p /data/models/VAE-approx/ /data/models/karlo/
rsync -a --info=NAME ${ROOT}/models/VAE-approx/ /data/models/VAE-approx/
rsync -a --info=NAME ${ROOT}/models/karlo/ /data/models/karlo/
declare -A MOUNTS
MOUNTS["/root/.cache"]="/data/.cache"
MOUNTS["${ROOT}/models"]="/data/models"
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}/styles.csv"]="/data/config/auto/styles.csv"
MOUNTS["${ROOT}/extensions"]="/data/config/auto/extensions"
MOUNTS["${ROOT}/config_states"]="/data/config/auto/config_states"
# 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
echo "Installing extension dependencies (if any)"
# because we build our container as root:
chown -R root ~/.cache/
chmod 766 ~/.cache/
shopt -s nullglob
# For install.py, please refer to https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Developing-extensions#installpy
list=(./extensions/*/install.py)
for installscript in "${list[@]}"; do
EXTNAME=$(echo $installscript | cut -d '/' -f 3)
# Skip installing dependencies if extension is disabled in config
if $(jq -e ".disabled_extensions|any(. == \"$EXTNAME\")" config.json); then
echo "Skipping disabled extension ($EXTNAME)"
continue
fi
PYTHONPATH=${ROOT} python "$installscript"
done
if [ -f "/data/config/auto/startup.sh" ]; then
pushd ${ROOT}
echo "Running startup script"
. /data/config/auto/startup.sh
popd
fi
exec "$@"

View file

@ -1,14 +0,0 @@
import sys
from pathlib import Path
file = Path(sys.argv[1])
file.write_text(
file.read_text()\
.replace(' return demo', """
with demo:
gr.Markdown(
'Created by [AUTOMATIC1111 / stable-diffusion-webui-docker](https://github.com/AbdBarho/stable-diffusion-webui-docker/)'
)
return demo
""", 1)
)

View file

@ -1,43 +0,0 @@
#!/bin/bash
set -Eeuo pipefail
mkdir -p /data/config/auto/
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
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/ScuNET"]="/data/ScuNET"
MOUNTS["${ROOT}/models/LDSR"]="/data/LDSR"
MOUNTS["${ROOT}/models/hypernetworks"]="/data/Hypernetworks"
MOUNTS["${ROOT}/embeddings"]="/data/embeddings"
MOUNTS["${ROOT}/config.json"]="/data/config/auto/config.json"
# 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
mkdir -p /output/saved /output/txt2img-images/ /output/img2img-images /output/extras-images/ /output/grids/ /output/txt2img-grids/ /output/img2img-grids/

22
services/comfy/Dockerfile Normal file
View file

@ -0,0 +1,22 @@
FROM pytorch/pytorch:2.3.0-cuda12.1-cudnn8-runtime
ENV DEBIAN_FRONTEND=noninteractive PIP_PREFER_BINARY=1
RUN apt-get update && apt-get install -y git && apt-get clean
ENV ROOT=/stable-diffusion
RUN --mount=type=cache,target=/root/.cache/pip \
git clone https://github.com/comfyanonymous/ComfyUI.git ${ROOT} && \
cd ${ROOT} && \
git checkout master && \
git reset --hard 276f8fce9f5a80b500947fb5745a4dde9e84622d && \
pip install -r requirements.txt
WORKDIR ${ROOT}
COPY . /docker/
RUN chmod u+x /docker/entrypoint.sh && cp /docker/extra_model_paths.yaml ${ROOT}
ENV NVIDIA_VISIBLE_DEVICES=all PYTHONPATH="${PYTHONPATH}:${PWD}" CLI_ARGS=""
EXPOSE 7860
ENTRYPOINT ["/docker/entrypoint.sh"]
CMD python -u main.py --listen --port 7860 ${CLI_ARGS}

31
services/comfy/entrypoint.sh Executable file
View file

@ -0,0 +1,31 @@
#!/bin/bash
set -Eeuo pipefail
mkdir -vp /data/config/comfy/custom_nodes
declare -A MOUNTS
MOUNTS["/root/.cache"]="/data/.cache"
MOUNTS["${ROOT}/input"]="/data/config/comfy/input"
MOUNTS["${ROOT}/output"]="/output/comfy"
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/comfy/startup.sh" ]; then
pushd ${ROOT}
. /data/config/comfy/startup.sh
popd
fi
exec "$@"

View file

@ -0,0 +1,25 @@
a111:
base_path: /data
checkpoints: models/Stable-diffusion
configs: models/Stable-diffusion
vae: models/VAE
loras: models/Lora
upscale_models: |
models/RealESRGAN
models/ESRGAN
models/SwinIR
models/GFPGAN
hypernetworks: models/hypernetworks
controlnet: models/ControlNet
gligen: models/GLIGEN
clip: models/CLIPEncoder
embeddings: embeddings
custom_nodes: config/comfy/custom_nodes
# TODO: I am unsure about these, need more testing
# style_models: config/comfy/style_models
# t2i_adapter: config/comfy/t2i_adapter
# clip_vision: config/comfy/clip_vision
# diffusers: config/comfy/diffusers

View file

@ -1,6 +1,6 @@
FROM bash:alpine3.15 FROM bash:alpine3.19
RUN apk add parallel aria2 RUN apk update && apk add parallel aria2
COPY . /docker COPY . /docker
RUN chmod +x /docker/download.sh RUN chmod +x /docker/download.sh
ENTRYPOINT ["/docker/download.sh"] ENTRYPOINT ["/docker/download.sh"]

View file

@ -1,6 +1,8 @@
fe4efff1e174c627256e44ec2991ba279b3816e364b49f9be2abc0b3ff3f8556 /data/StableDiffusion/model.ckpt cc6cb27103417325ff94f52b7a5d2dde45a7515b25c255d8e396c90014281516 /data/models/Stable-diffusion/v1-5-pruned-emaonly.ckpt
e2cd4703ab14f4d01fd1383a8a8b266f9a5833dacee8e6a79d3bf21a1b6be5ad /data/GFPGAN/GFPGANv1.4.pth c6bbc15e3224e6973459ba78de4998b80b50112b0ae5b5c67113d56b4e366b19 /data/models/Stable-diffusion/sd-v1-5-inpainting.ckpt
4fa0d38905f75ac06eb49a7951b426670021be3018265fd191d2125df9d682f1 /data/RealESRGAN/RealESRGAN_x4plus.pth c6a580b13a5bc05a5e16e4dbb80608ff2ec251a162311590c1f34c013d7f3dab /data/models/VAE/vae-ft-mse-840000-ema-pruned.ckpt
f872d837d3c90ed2e05227bed711af5671a6fd1c9f7d7e91c911a61f155e99da /data/RealESRGAN/RealESRGAN_x4plus_anime_6B.pth e2cd4703ab14f4d01fd1383a8a8b266f9a5833dacee8e6a79d3bf21a1b6be5ad /data/models/GFPGAN/GFPGANv1.4.pth
c209caecac2f97b4bb8f4d726b70ac2ac9b35904b7fc99801e1f5e61f9210c13 /data/LDSR/model.ckpt 4fa0d38905f75ac06eb49a7951b426670021be3018265fd191d2125df9d682f1 /data/models/RealESRGAN/RealESRGAN_x4plus.pth
9d6ad53c5dafeb07200fb712db14b813b527edd262bc80ea136777bdb41be2ba /data/LDSR/project.yaml f872d837d3c90ed2e05227bed711af5671a6fd1c9f7d7e91c911a61f155e99da /data/models/RealESRGAN/RealESRGAN_x4plus_anime_6B.pth
c209caecac2f97b4bb8f4d726b70ac2ac9b35904b7fc99801e1f5e61f9210c13 /data/models/LDSR/model.ckpt
9d6ad53c5dafeb07200fb712db14b813b527edd262bc80ea136777bdb41be2ba /data/models/LDSR/project.yaml

View file

@ -2,23 +2,30 @@
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 /data/ScuNET /data/embeddings # TODO: maybe just use the .gitignore file to create all of these
mkdir -vp /data/.cache \
cat <<EOF /data/embeddings \
By using this software, you agree to the following licenses: /data/config/ \
https://github.com/CompVis/stable-diffusion/blob/main/LICENSE /data/models/ \
https://github.com/TencentARC/GFPGAN/blob/master/LICENSE /data/models/Stable-diffusion \
https://github.com/xinntao/Real-ESRGAN/blob/master/LICENSE /data/models/GFPGAN \
EOF /data/models/RealESRGAN \
/data/models/LDSR \
/data/models/VAE
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/models --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
# TODO: need something better than this: By using this software, you agree to the following licenses:
# chmod -R 777 /data /output 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
And licenses of all UIs, third party libraries, and extensions.
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=Stable-diffusion/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=Stable-diffusion/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,48 +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 1a9c053cb7b6832695771db2555c0adc9b41e95f
conda env update --file environment.yaml -n base
conda clean -a -y
EOF
ARG BRANCH=dev SHA=bd57d22f2e0ec7eed084bdf2a4c0dcc0ed745daf
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
# 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

@ -1,13 +0,0 @@
import sys
from pathlib import Path
file = Path(sys.argv[1])
file.write_text(
file.read_text()\
.replace('<p>For help and advanced usage guides,', """
<p>
Created using <a href="https://github.com/AbdBarho/stable-diffusion-webui-docker">stable-diffusion-webui-docker</a>.
</p>
<p>For help and advanced usage guides,
""", 1)
)

View file

@ -1,31 +0,0 @@
#!/bin/bash
set -Eeuo pipefail
declare -A MOUNTS
ROOT=/stable-diffusion/src
# cache
MOUNTS["/root/.cache"]=/data/.cache
# ui specific
MOUNTS["${PWD}/models/realesrgan"]=/data/RealESRGAN
MOUNTS["${PWD}/models/ldsr"]=/data/LDSR
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
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
# streamlit config
ln -sf /docker/userconfig_streamlit.yaml /stable-diffusion/configs/webui/userconfig_streamlit.yaml

View file

@ -1,10 +0,0 @@
#!/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/model.ckpt ${CLI_ARGS}
fi

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

@ -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=fe2a2cfc8b6156805c420c026c5ef8bbb256899e
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,13 +0,0 @@
import sys
from pathlib import Path
file = Path(sys.argv[1])
file.write_text(
file.read_text()\
.replace(' <div id="root"></div>', """
<div id="root"></div>
<div>
Deployed with <a href="https://github.com/AbdBarho/stable-diffusion-webui-docker/">stable-diffusion-webui-docker</a>
</div>
""", 1)
)

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