Compare commits

...

102 Commits

Author SHA1 Message Date
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)
https://github.com/invoke-ai/InvokeAI/commit/f3b2e02921927d9317255b1c3811f47bd40a2bf9
#489
2023-05-29 19:07:01 +02:00
AbdBarho a3ecd4a79c Update auto to 1.3.0 (#490)
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/20ae71faa8ef035c31aa3a410b707d792c8203a3

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)
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/89f9faa63388756314e8a1d96cf86bf5e0663045

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)
https://github.com/invoke-ai/InvokeAI/commit/d73f1c363c3f2fe00f14ed34e276b4366b32a886
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


https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/5ab7f213bec2f816f9c5644becb32eb72c8ffb89
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.


https://github.com/invoke-ai/InvokeAI/commit/50eb02f68be912276a9c106d5e8038a5671a0386
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)
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/a9fed7c364061ae6efb37f797b6b522cb3cf7aa2
2023-03-14 18:30:08 +01:00
AbdBarho bb54e89b34 Update Auto (#363)
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/27e319dc4f09a2f040043948e5c52965976f8491
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)
https://github.com/invoke-ai/InvokeAI/commit/6e0c6d9cc9f6bdbdefc4b9e94bc1ccde1b04aa42
2023-02-26 10:53:57 +01:00
AbdBarho b36de9ef2b Add libgoogle-perftools-dev (#341)
- auto:
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/0cc0ee1bcb4c24a8c9715f66cede06601bfc00c8

Closes #326
2023-02-23 21:50:16 +01:00
AbdBarho 70d8d7f37f Update versions (#338)
- auto:
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/076d624a297532d6e4abebe5807fd7c7504d7a73
- invoke:
https://github.com/invoke-ai/InvokeAI/commit/d3c1b747ee1632c6fab81ba9f89314e9fbdd55e4
2023-02-19 16:25:06 +01:00
AbdBarho 67c9d118d9 Update versions (#332)
### Update versions

- auto:
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/3715ece0adce7bf7c5e9c5ab3710b2fdc3848f39
- invoke:
https://github.com/invoke-ai/InvokeAI/commit/6551527fe249dc7a44e3fab9db9451c0dc3ad851

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)
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/3993aa43e95bb60b9df977946af988f119525a71
2023-02-05 11:04:32 +01:00
AbdBarho 3c860d6eaa Update versions (#320)
- auto:
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/226d840e84c5f306350b0681945989b86760e616
- invoke:
https://github.com/invoke-ai/InvokeAI/commit/80c5322cccc6f9c6f77aaea80b4bb95e25bc05ba


Remove `accelerate` for startup. Refs #317 

Use `SIGINT` Fixes #319
2023-02-02 19:53:48 +01:00
AbdBarho 15e9841860 Update versions (#316)
- auto:
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/00dab8f10defbbda579a1bc89c8d4e972c58a20d
- invoke:
https://github.com/invoke-ai/InvokeAI/commit/07e03b31b7610a27d709b366a491e57085d9b393
2023-01-29 20:07:41 +01:00
AbdBarho eeb410f2de Update versions (#315)
auto:
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/7a14c8ab45da8a681792a6331d48a88dd684a0a9
invoke:
https://github.com/invoke-ai/InvokeAI/commit/e4cd66216e0b941de7f27b4e2e260aa4f8c956e7

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)
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/93fad28a979727f9b1331dbdc447598824057cdc
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:
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/c98cb0f8ecc904666f47684e238dd022039ca16f
- invoke:
https://github.com/invoke-ai/InvokeAI/commit/89791d91e84abfc127ffecca21db68920781709f
2023-01-22 20:32:03 +01:00
AbdBarho 042d5c561c Fix link / mkdir order (#299)
Fixes
https://github.com/AbdBarho/stable-diffusion-webui-docker/commit/c9153faff74a954fdb3de6289a6e6e5b78aa01a3#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:
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/6faae2323963f9b0e0086a85b9d0472a24fbaa73
- invoke:
https://github.com/invoke-ai/InvokeAI/commit/f232068ab89bd80e4f5f3133dcdb62ea78f1d0f7
2023-01-18 18:48:34 +01:00
AbdBarho 13dfd4eba5 Update auto (#293)
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/d97f467c0d27695d23edad5e4f8898a57e0ccb00

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)
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/82725f0ac439f7e3b67858d55900e95330bbd326

torch==1.13.1+cu117

This might break your extensions!
2023-01-13 21:27:55 +01:00
AbdBarho b5cdf299ca Update versions (#287)
- auto:
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/2b94ec78869db7d2beaad23bdff47340416edf85
- sygil:
https://github.com/Sygil-Dev/sygil-webui/commit/571fb897edd58b714bb385dfaa1ad59aecef8bc7
2023-01-09 19:04:40 +01:00
AbdBarho db831ece65 Bump versions (#286)
- auto:
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/151233399c4b79934bdbb7c12a97eeb6499572fb
- invoke:
https://github.com/invoke-ai/InvokeAI/commit/26e413ae9cf8dc04c617ca451a91a1624bfdf0c0
2023-01-07 18:58:50 +01:00
AbdBarho ceeac61cb0 Update auto (#282)
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/683287d87f6401083a8d63eedc00ca7410214ca1
2023-01-06 10:24:20 +01:00
AbdBarho 19972f3cac Update Versions (#281)
- auto:
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/81490780949fffed77493b4bd741e96ec737fe27
- sygil:
https://github.com/Sygil-Dev/sygil-webui/commit/e48482823bb73697a6f1e39b3a7e47fe2ba1d697
- invoke:
https://github.com/invoke-ai/InvokeAI/commit/21bf512056eb7bc883174a4203011105fc1b8b50
2023-01-04 20:36:49 +01:00
AbdBarho 0c16c105bc Update auto (#280)
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/3e22e294135ed0327ce9d9738655ff03c53df3c0
2023-01-03 21:19:37 +01:00
AbdBarho 78c90e5435 Update auto & invoke (#277)
- auto:
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/524d532b387732d4d32f237e792c7f201a934400
- invoke:
https://github.com/invoke-ai/InvokeAI/commit/524d532b387732d4d32f237e792c7f201a934400

Happy new Year!!!
2023-01-01 16:46:41 +01:00
AbdBarho 6a3826c80a Update auto (#274)
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/4af3ca5393151d61363c30eef4965e694eeac15e

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)
https://github.com/invoke-ai/InvokeAI/commit/ffa54f4a35ed1aa5a574f911de9dab777cf01f3e
2022-12-16 09:57:33 +01:00
AbdBarho d70e96da71 Update Invoke (#261)
https://github.com/invoke-ai/InvokeAI/commit/5d20f479938489d6e242fff9c65b5c5005e18fbe
2022-12-14 09:47:36 +01:00
AbdBarho d97d257fd3 Update versions (#257)
- auto:
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/685f9631b56ff8bd43bce24ff5ce0f9a0e9af490
- sygil:
https://github.com/Sygil-Dev/sygil-webui/commit/d3f9d054e8203bd56a6a1712227eac41bef2f291
- invoke:
https://github.com/invoke-ai/InvokeAI/commit/e159bb3dceb26d1bc3ab12f249e4ef4669fa1584
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)
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/44c46f0ed395967cd3830dd481a2db759fda5b3b

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:
https://github.com/sd-webui/stable-diffusion-webui/commit/5291437085bddd16d752f811b6552419a2044d12
Also, switch to pip instead of conda because it is really slow

invoke:
https://github.com/invoke-ai/InvokeAI/commit/ed9186b09950f2652a0b07c93a08490f475435f7
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:
https://github.com/invoke-ai/InvokeAI/commit/5c31feb3a1096d437c94b6e1c3224eb7a7224a85
2022-12-03 13:36:18 +01:00
AbdBarho 8df9d10a58 Update versions (#246)
- hlky:
https://github.com/sd-webui/stable-diffusion-webui/commit/18a3b809275c395b9a2730c78d6bc0f9b06671e1
- lstein:
https://github.com/invoke-ai/InvokeAI/commit/a9aa4e45aa6f5d5a2aa385349131d8733dd380fa
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)
https://github.com/facebookresearch/xformers/commit/8910bb5a6536e01b49f4b85e01868970bfea7850
2022-11-25 13:25:10 +01:00
AbdBarho 23757d2356 Update invoke (#234)
https://github.com/invoke-ai/InvokeAI/commit/2b7e3abe57963d199f1d825ddef87ae154c81045
2022-11-20 11:35:56 +01:00
AbdBarho 9e7979b756 Update Versions (#230)
- auto:
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/47a44c7e421b98ca07e92dbf88769b04c9e28f86
- hlky:
https://github.com/sd-webui/stable-diffusion-webui/commit/269107a104fc9fee3201eb2c56cf7adb3d063e4b


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:
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/98947d173e3f1667eba29c904f681047dea9de90

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:
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/ac085628540d0ec6a988fad93f5b8f2154209571
- hlky:
https://github.com/sd-webui/stable-diffusion-webui/commit/09b64d4f759c44c7c6bc4d433ddd8e964d48b854
- 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)
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/804d9fb83d0c63ca3acd36378707ce47b8f12599

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:
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/30b1bcc64e67ad50c5d3af3a6fe1bd1e9553f34e
- hlky:
https://github.com/sd-webui/stable-diffusion-webui/commit/6f6d7571ea56809c1beaf11430ec36ab28e0884f
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)
https://github.com/invoke-ai/InvokeAI/commit/6b89adfa7ebd4591ed91a76ecf152e3517cda385
2022-11-04 22:35:44 +01:00
AbdBarho fb9d1e579c Update versions (#193)
- auto:
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/cd5eafaf03a25d2b0e35154666947b9489078af9
- hlky:
https://github.com/sd-webui/stable-diffusion-webui/commit/62f9706d6abf52c7a0facbfddbc22f98e2b3fa85
2022-11-02 21:57:01 +01:00
AbdBarho 9092aa233b Update versions (#189)
- auto:
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/dd02889124b2f89aa1d9acafedfa8774e53c98cb
- hlky:
https://github.com/sd-webui/stable-diffusion-webui/commit/d8e61a5cd3c7a6f55a3f94852f54d7c76d29c2ce
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:
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/35c45df28b303a05d56a13cb56d4046f08cf8c25
- hlky:
https://github.com/sd-webui/stable-diffusion-webui/commit/091520bed06f913c9f432f9f47ccbe22b46068d7
- lstein:
https://github.com/invoke-ai/InvokeAI/commit/fdf9b1c40c243d6806e787877e42ae4c115790ee
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:
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/737eb28faca8be2bb996ee0930ec77d1f7ebd939
- hlky:
https://github.com/sd-webui/stable-diffusion-webui/commit/5f6141ae7c8520b250896c80ac938396164f78df
- lstein:
https://github.com/invoke-ai/InvokeAI/commit/2b6d78e4363f3eca726228a40b6de832eb0ac040
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:
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/df0a1f83815c771246a7b1bca85d63feaefad8d1
- hlky:
https://github.com/sd-webui/stable-diffusion-webui/commit/bb7fce1a871cc434145d5a2114e5d70cbdafa34d
- lstein:
https://github.com/invoke-ai/InvokeAI/commit/3081b6b7dd4c2fb1156e7a99dc461012c4ecda35
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:
https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/f49c08ea566385db339c6628f65c3a121033f67c
- hlky:
https://github.com/sd-webui/stable-diffusion-webui/commit/8d1e42b9c50c747d056b0a98f3c2eb7652fb73a7
- lstein:
https://github.com/invoke-ai/InvokeAI/commit/554445a985d970200095bbcb109273a49c462682
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
36 changed files with 607 additions and 476 deletions
+2 -1
View File
@@ -2,4 +2,5 @@
set -Eeuo pipefail
find . -name "*.sh" -exec git update-index --chmod=+x {} \;
find services -name "*.sh" -exec git update-index --chmod=+x {} \;
find .devscripts -name "*.sh" -exec git update-index --chmod=+x {} \;
+9
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
+13 -15
View File
@@ -1,10 +1,9 @@
---
name: Bug
about: Report a bug
title: ''
title: ""
labels: bug
assignees: ''
assignees: ""
---
<!-- PLEASE FILL THIS OUT, IT WILL MAKE BOTH OF OUR LIVES EASIER -->
@@ -14,28 +13,27 @@ assignees: ''
- [ ] It is not in the [FAQ](https://github.com/AbdBarho/stable-diffusion-webui-docker/wiki/FAQ), I checked.
- [ ] It is not in the [issues](https://github.com/AbdBarho/stable-diffusion-webui-docker/issues?q=), I searched.
**Describe the bug**
<!-- tried to run the app, my cat exploded -->
**Which UI**
hlky or auto or auto-cpu or lstein?
auto or auto-cpu or invoke or sygil?
**Hardware / Software**
- OS: [e.g. Windows 10 / Ubuntu ]
- OS version: <!-- on windows, use the command `winver` to find out, on ubuntu `lsb_release -d` -->
- WSL version (if applicable): <!-- get using `wsl -l -v` -->
- Docker Version: <!-- get using `docker version` -->
- Docker compose version: <!-- get using `docker compose version` -->
- Repo version: <!-- tag, commit sha, or "from master" -->
- RAM:
- GPU/VRAM:
- OS: [e.g. Windows 10 / Ubuntu 22.04]
- OS version: <!-- on windows, use the command `winver` to find out, on ubuntu `lsb_release -d` -->
- WSL version (if applicable): <!-- get using `wsl -l -v` -->
- Docker Version: <!-- get using `docker version` -->
- Docker compose version: <!-- get using `docker compose version` -->
- Repo version: <!-- tag, commit sha, or "from master" -->
- RAM:
- GPU/VRAM:
**Steps to Reproduce**
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
+5
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
+11 -2
View File
@@ -1,5 +1,14 @@
<!--
Have you created an issue before opening a merge request???
https://github.com/AbdBarho/stable-diffusion-webui-docker#contributing
Please create one so we can discuss it, I don't want your effort to go to waste.
-->
Closes issue #
### Update versions
- auto: https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/
- hlky: https://github.com/sd-webui/stable-diffusion-webui/commit/
- lstein: https://github.com/invoke-ai/InvokeAI/commit/
- sygil: https://github.com/Sygil-Dev/sygil-webui/commit/
- invoke: https://github.com/invoke-ai/InvokeAI/commit/
- comfy: https://github.com/comfyanonymous/ComfyUI/commit/
@@ -1,6 +1,12 @@
name: Build Images
on: [push]
on:
push:
branches: master
pull_request:
paths:
- docker-compose.yml
- services
jobs:
build:
@@ -8,12 +14,11 @@ jobs:
matrix:
profile:
- auto
- hlky
- lstein
- invoke
- comfy
- download
runs-on: ubuntu-latest
name: ${{ matrix.profile }}
steps:
- uses: actions/checkout@v3
# better caching?
- run: docker compose --profile ${{ matrix.profile }} build --progress plain
+2 -2
View File
@@ -1,13 +1,13 @@
name: 'Close stale issues and PRs'
on:
schedule:
- cron: '30 1 * * *'
- cron: '0 0 * * *'
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v5
- uses: actions/stale@v6
with:
only-labels: awaiting-response
stale-issue-message: This issue is stale because it has been open 14 days with no activity. Remove stale label or comment or this will be closed in 7 days.
-36
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
View File
@@ -1,2 +1,6 @@
/.devcontainer
/docker-compose.override.yml
# VSCode specific
*.code-workspace
/.vscode
-7
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
assertions made in documents, indiscriminate and arbitrarily-targeted
use).
By using this software, you also agree to the following licenses:
https://github.com/CompVis/stable-diffusion/blob/main/LICENSE
https://github.com/TencentARC/GFPGAN/blob/master/LICENSE
https://github.com/xinntao/Real-ESRGAN/blob/master/LICENSE
+33 -59
View File
@@ -2,66 +2,41 @@
Run Stable Diffusion on your machine with a nice UI without any hassle!
This repository provides multiple UIs for you to play around with stable diffusion:
## Features
### AUTOMATIC1111
[AUTOMATIC1111's fork](https://github.com/AUTOMATIC1111/stable-diffusion-webui) is imho the most feature rich yet elegant UI:
- Text to image, with many samplers and even negative prompts!
- Image to image, with masking, cropping, in-painting, out-painting, variations.
- GFPGAN, RealESRGAN, LDSR, CodeFormer.
- Loopback, prompt weighting, prompt matrix, X/Y plot
- Live preview of the generated images.
- Highly optimized 4GB GPU support, or even CPU only!
- Textual inversion allows you to use pretrained textual inversion embeddings
- [Full feature list here](https://github.com/AUTOMATIC1111/stable-diffusion-webui-feature-showcase)
| Text to image | Image to image | Extras |
| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| ![](https://user-images.githubusercontent.com/24505302/189541954-46afd772-d0c8-4005-874c-e2eca40c02f2.jpg) | ![](https://user-images.githubusercontent.com/24505302/189541956-5b528de7-1b5d-479f-a1db-d3f5a53afc59.jpg) | ![](https://user-images.githubusercontent.com/24505302/189541957-cf78b352-a071-486d-8889-f26952779a61.jpg) |
### hlky
[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
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](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) |
### [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
Contributions are welcome! create an issue first of what you want to contribute (before you implement anything) so we can talk about it.
Contributions are welcome! **Create a discussion first of what the problem is and what you want to contribute (before you implement anything)**
## Disclaimer
@@ -73,10 +48,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:
- [hlky/stable-diffusion-webui](https://github.com/hlky/stable-diffusion-webui)
- [AUTOMATIC1111/stable-diffusion-webui](https://github.com/AUTOMATIC1111/stable-diffusion-webui)
- [lstein/stable-diffusion](https://github.com/lstein/stable-diffusion)
- [InvokeAI](https://github.com/invoke-ai/InvokeAI)
- [ComfyUI](https://github.com/comfyanonymous/ComfyUI)
- [CompVis/stable-diffusion](https://github.com/CompVis/stable-diffusion)
- [hlky/sd-enable-textual-inversion](https://github.com/hlky/sd-enable-textual-inversion)
- [devilismyfriend/latent-diffusion](https://github.com/devilismyfriend/latent-diffusion)
- [Hafiidz/latent-diffusion](https://github.com/Hafiidz/latent-diffusion)
- [Sygil-webui](https://github.com/Sygil-Dev/sygil-webui)
- and many many more.
+11
View File
@@ -11,7 +11,18 @@
/BSRGAN
/RealESRGAN
/SwinIR
/MiDaS
/BLIP
/ScuNET
/LDSR
/Deepdanbooru
/Hypernetworks
/VAE
/embeddings
/Lora
/ControlNet
/openpose
/ModelScope
/LyCORIS
/GLIGEN
/CLIPEncoder
+33 -14
View File
@@ -6,13 +6,14 @@ x-base_service: &base_service
volumes:
- &v1 ./data:/data
- &v2 ./output:/output
stop_signal: SIGINT
deploy:
resources:
reservations:
devices:
- driver: nvidia
device_ids: ['0']
capabilities: [gpu]
capabilities: [compute, utility]
name: webui-docker
@@ -23,32 +24,50 @@ services:
volumes:
- *v1
hlky:
<<: *base_service
profiles: ["hlky"]
build: ./services/hlky/
environment:
- CLI_ARGS=--optimized-turbo
- USE_STREAMLIT=0
auto: &automatic
<<: *base_service
profiles: ["auto"]
build: ./services/AUTOMATIC1111
image: sd-auto:58
environment:
- CLI_ARGS=--allow-code --medvram --xformers
- CLI_ARGS=--allow-code --medvram --xformers --enable-insecure-extension-access --api
auto-cpu:
<<: *automatic
profiles: ["auto-cpu"]
deploy: {}
environment:
- CLI_ARGS=--no-half --precision full
- CLI_ARGS=--no-half --precision full --allow-code --enable-insecure-extension-access --api
lstein:
invoke: &invoke
<<: *base_service
profiles: ["lstein"]
build: ./services/lstein/
profiles: ["invoke"]
build: ./services/invoke/
image: sd-invoke:29
environment:
- PRELOAD=true
- CLI_ARGS=--xformers
# invoke-cpu:
# <<: *invoke
# profiles: ["invoke-cpu"]
# environment:
# - PRELOAD=true
# - CLI_ARGS=--always_use_cpu
comfy: &comfy
<<: *base_service
profiles: ["comfy"]
build: ./services/comfy/
image: sd-comfy:2
tty: true
environment:
- CLI_ARGS=
comfy-cpu:
<<: *comfy
profiles: ["comfy-cpu"]
deploy: {}
environment:
- CLI_ARGS=--cpu
+72 -64
View File
@@ -1,87 +1,95 @@
# syntax=docker/dockerfile:1
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 taming-transformers https://github.com/CompVis/taming-transformers.git 24268930bf1dce879235a7fddd0b2355b84d7ea6 \
&& rm -rf data assets **/*.ipynb
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 . /clone.sh stable-diffusion-stability-ai https://github.com/Stability-AI/stablediffusion.git 47b6b607fdd31875c9279cd2f4f16b92e4ea958e \
&& rm -rf assets data/**/*.png data/**/*.jpg data/**/*.gif
RUN <<EOF
# because taming-transformers is huge
git config --global http.postBuffer 1048576000
git clone https://github.com/CompVis/taming-transformers.git repositories/taming-transformers
cd repositories/taming-transformers
git reset --hard 24268930bf1dce879235a7fddd0b2355b84d7ea6
rm -rf data assets
EOF
RUN . /clone.sh CodeFormer https://github.com/sczhou/CodeFormer.git c5b4593074ba6214284d6acd5f1719b6c5d739af \
&& rm -rf assets inputs
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 . /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
RUN <<EOF
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 \
WORKDIR=/stable-diffusion-webui/repositories/stable-diffusion
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/6.0.0/xformers-0.0.21.dev544-cp310-cp310-manylinux2014_x86_64-pytorch201.whl'
COPY --from=download /git/ ${ROOT}
RUN pip install --prefer-binary --no-cache-dir -r ${ROOT}/repositories/CodeFormer/requirements.txt
FROM python:3.10.9-slim
# TODO: move to top
RUN apt-get install jq moreutils -y
ENV DEBIAN_FRONTEND=noninteractive PIP_PREFER_BINARY=1
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
RUN --mount=type=cache,target=/cache --mount=type=cache,target=/root/.cache/pip \
aria2c -x 5 --dir /cache --out torch-2.0.1-cp310-cp310-linux_x86_64.whl -c \
https://download.pytorch.org/whl/cu118/torch-2.0.1%2Bcu118-cp310-cp310-linux_x86_64.whl && \
pip install /cache/torch-2.0.1-cp310-cp310-linux_x86_64.whl torchvision --index-url https://download.pytorch.org/whl/cu118
RUN --mount=type=cache,target=/root/.cache/pip \
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git && \
cd stable-diffusion-webui && \
git reset --hard 20ae71faa8ef035c31aa3a410b707d792c8203a3 && \
pip install -r requirements_versions.txt
RUN --mount=type=cache,target=/root/.cache/pip \
--mount=type=bind,from=xformers,source=/wheel.whl,target=/xformers-0.0.21.dev544-cp310-cp310-manylinux2014_x86_64.whl \
pip install /xformers-0.0.21.dev544-cp310-cp310-manylinux2014_x86_64.whl
ENV ROOT=/stable-diffusion-webui
COPY --from=download /repositories/ ${ROOT}/repositories/
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
# instead, update the repo state in a later step
ARG SHA=36a0ba357ab0742c3c4a28437b68fb29a235afbe
RUN <<EOF
cd stable-diffusion-webui
git pull --rebase
git reset --hard ${SHA}
pip install --prefer-binary --no-cache-dir -r requirements_versions.txt
EOF
# TODO: either remove if fixed in A1111 (unlikely) or move to the top with other apt stuff
RUN apt-get -y install libgoogle-perftools-dev && apt-get clean
ENV LD_PRELOAD=libtcmalloc.so
RUN pip install --prefer-binary --no-cache-dir opencv-python-headless \
git+https://github.com/TencentARC/GFPGAN.git@8d2447a2d918f8eba5a4a01463fd48e45126a379 \
git+https://github.com/openai/CLIP.git@d50d76daa670286dd6cacf3bcd80b5e4823fc8e1 \
pyngrok
COPY --from=xformers /wheel.whl xformers-0.0.14.dev0-cp310-cp310-linux_x86_64.whl
RUN pip install xformers-0.0.14.dev0-cp310-cp310-linux_x86_64.whl
ARG SHA=20ae71faa8ef035c31aa3a410b707d792c8203a3
RUN --mount=type=cache,target=/root/.cache/pip \
cd stable-diffusion-webui && \
git fetch && \
git reset --hard ${SHA} && \
pip install -r requirements_versions.txt
COPY . /docker
RUN <<EOF
chmod +x /docker/mount.sh && python3 /docker/info.py ${ROOT}/modules/ui.py
EOF
RUN \
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 && \
git config --global --add safe.directory '*'
WORKDIR ${ROOT}
ENV NVIDIA_VISIBLE_DEVICES=all
ENV CLI_ARGS=""
WORKDIR ${WORKDIR}
EXPOSE 7860
# run, -u to not buffer stdout / stderr
CMD /docker/mount.sh && \
python3 -u ../../webui.py --listen --port 7860 --ckpt-dir ${ROOT}/models/Stable-diffusion ${CLI_ARGS}
ENTRYPOINT ["/docker/entrypoint.sh"]
CMD python -u webui.py --listen --port 7860 ${CLI_ARGS}
+11
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
-10
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"
}
+78
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)
+75
View File
@@ -0,0 +1,75 @@
#!/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/"
# 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
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}/models/LyCORIS"]="/data/LyCORIS"
MOUNTS["${ROOT}/models/ControlNet"]="/data/ControlNet"
MOUNTS["${ROOT}/models/openpose"]="/data/openpose"
MOUNTS["${ROOT}/models/ModelScope"]="/data/ModelScope"
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
if [ -f "/data/config/auto/startup.sh" ]; then
pushd ${ROOT}
. /data/config/auto/startup.sh
popd
fi
exec "$@"
-43
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/
+45
View File
@@ -0,0 +1,45 @@
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
ENV DEBIAN_FRONTEND=noninteractive PIP_PREFER_BINARY=1
RUN --mount=type=cache,target=/root/.cache/pip pip install torch==1.13.1 torchvision --extra-index-url https://download.pytorch.org/whl/cu117
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 884ea653c8d6fe19b3724f45a04a0d74cd881f2f && \
pip install -r requirements.txt
RUN --mount=type=cache,target=/root/.cache/pip \
--mount=type=bind,from=xformers,source=/wheel.whl,target=/xformers-0.0.17-cp310-cp310-linux_x86_64.whl \
pip install triton /xformers-0.0.17-cp310-cp310-linux_x86_64.whl
WORKDIR ${ROOT}
ARG BRANCH=master SHA=884ea653c8d6fe19b3724f45a04a0d74cd881f2f
RUN --mount=type=cache,target=/root/.cache/pip \
git fetch && \
git checkout ${BRANCH} && \
git reset --hard ${SHA} && \
pip install -r requirements.txt
# add info
COPY . /docker/
RUN cp /docker/extra_model_paths.yaml ${ROOT}
ENV NVIDIA_VISIBLE_DEVICES=all
ENV PYTHONPATH="${PYTHONPATH}:${PWD}" CLI_ARGS=""
EXPOSE 7860
ENTRYPOINT ["/docker/entrypoint.sh"]
CMD python -u main.py --listen --port 7860 ${CLI_ARGS}
+25
View File
@@ -0,0 +1,25 @@
#!/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
exec "$@"
+25
View File
@@ -0,0 +1,25 @@
a111:
base_path: /data
checkpoints: StableDiffusion
configs: StableDiffusion
vae: VAE
loras: Lora
upscale_models: |
RealESRGAN
ESRGAN
SwinIR
GFPGAN
embeddings: embeddings
hypernetworks: Hypernetworks
controlnet: ControlNet
gligen: GLIGEN
clip: CLIPEncoder
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
+3 -1
View File
@@ -1,4 +1,6 @@
fe4efff1e174c627256e44ec2991ba279b3816e364b49f9be2abc0b3ff3f8556 /data/StableDiffusion/model.ckpt
cc6cb27103417325ff94f52b7a5d2dde45a7515b25c255d8e396c90014281516 /data/StableDiffusion/v1-5-pruned-emaonly.ckpt
c6bbc15e3224e6973459ba78de4998b80b50112b0ae5b5c67113d56b4e366b19 /data/StableDiffusion/sd-v1-5-inpainting.ckpt
c6a580b13a5bc05a5e16e4dbb80608ff2ec251a162311590c1f34c013d7f3dab /data/VAE/vae-ft-mse-840000-ema-pruned.ckpt
e2cd4703ab14f4d01fd1383a8a8b266f9a5833dacee8e6a79d3bf21a1b6be5ad /data/GFPGAN/GFPGANv1.4.pth
4fa0d38905f75ac06eb49a7951b426670021be3018265fd191d2125df9d682f1 /data/RealESRGAN/RealESRGAN_x4plus.pth
f872d837d3c90ed2e05227bed711af5671a6fd1c9f7d7e91c911a61f155e99da /data/RealESRGAN/RealESRGAN_x4plus_anime_6B.pth
+37 -12
View File
@@ -2,23 +2,48 @@
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
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
# TODO: maybe just use the .gitignore file to create all of these
mkdir -vp /data/.cache \
/data/StableDiffusion \
/data/LyCORIS \
/data/Codeformer \
/data/ModelScope \
/data/GFPGAN \
/data/ESRGAN \
/data/BSRGAN \
/data/RealESRGAN \
/data/SwinIR \
/data/LDSR \
/data/ScuNET \
/data/embeddings \
/data/VAE \
/data/Deepdanbooru \
/data/MiDaS \
/data/Lora \
/data/ControlNet \
/data/openpose \
/data/GLIGEN \
/data/CLIPEncoder # this is different from the cached pre-train ViT saved in /data/.cache/clip TODO: find out how
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..."
parallel --will-cite -a /docker/checksums.sha256 "echo -n {} | sha256sum -c"
# fix potential permissions
# TODO: need something better than this:
# chmod -R 777 /data /output
cat <<EOF
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
+6 -2
View File
@@ -1,5 +1,9 @@
https://www.googleapis.com/storage/v1/b/aai-blog-files/o/sd-v1-4.ckpt?alt=media
out=StableDiffusion/model.ckpt
https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.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
out=GFPGAN/GFPGANv1.4.pth
https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth
-48
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
-13
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)
)
-31
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
-10
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
-8
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
+53
View File
@@ -0,0 +1,53 @@
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/6.0.0/xformers-0.0.21.dev544-cp310-cp310-manylinux2014_x86_64-pytorch201.whl'
FROM pytorch/pytorch:2.0.1-cuda11.7-cudnn8-runtime
ENV DEBIAN_FRONTEND=noninteractive PIP_EXISTS_ACTION=w PIP_PREFER_BINARY=1
# patch match:
# https://github.com/invoke-ai/InvokeAI/blob/main/docs/installation/INSTALL_PATCHMATCH.md
RUN --mount=type=cache,target=/var/cache/apt \
apt-get update && \
apt-get install make g++ git libopencv-dev -y && \
apt-get clean && \
cd /usr/lib/x86_64-linux-gnu/pkgconfig/ && \
ln -sf opencv4.pc opencv.pc
ENV ROOT=/InvokeAI
RUN git clone https://github.com/invoke-ai/InvokeAI.git ${ROOT}
WORKDIR ${ROOT}
RUN --mount=type=cache,target=/root/.cache/pip \
git reset --hard f3b2e02921927d9317255b1c3811f47bd40a2bf9 && \
pip install -e .
ARG BRANCH=main SHA=f3b2e02921927d9317255b1c3811f47bd40a2bf9
RUN --mount=type=cache,target=/root/.cache/pip \
git fetch && \
git reset --hard && \
git checkout ${BRANCH} && \
git reset --hard ${SHA} && \
pip install -U -e .
RUN --mount=type=cache,target=/root/.cache/pip \
--mount=type=bind,from=xformers,source=/wheel.whl,target=/xformers-0.0.21-cp310-cp310-linux_x86_64.whl \
pip install -U opencv-python-headless triton /xformers-0.0.21-cp310-cp310-linux_x86_64.whl && \
python3 -c "from patchmatch import patch_match"
COPY . /docker/
ENV NVIDIA_VISIBLE_DEVICES=all
ENV PYTHONUNBUFFERED=1 PRELOAD=false HF_HOME=/root/.cache/huggingface CONFIG_DIR=/data/config/invoke CLI_ARGS=""
EXPOSE 7860
ENTRYPOINT ["/docker/entrypoint.sh"]
CMD invokeai --web --host 0.0.0.0 --port 7860 --root_dir ${ROOT} --config ${CONFIG_DIR}/models.yaml \
--outdir /output/invoke --embedding_directory /data/embeddings/ --lora_directory /data/Lora \
--no-nsfw_checker --no-safety_checker ${CLI_ARGS}
+45
View File
@@ -0,0 +1,45 @@
#!/bin/bash
set -Eeuo pipefail
declare -A MOUNTS
mkdir -p ${CONFIG_DIR} ${ROOT}/configs/stable-diffusion/
# cache
MOUNTS["/root/.cache"]=/data/.cache/
# this is really just a hack to avoid migrations
rm -rf ${HF_HOME}/diffusers
# 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/GFPGAN/
MOUNTS["${ROOT}/models/realesrgan"]=/data/RealESRGAN/
MOUNTS["${ROOT}/models/ldm"]=/data/.cache/invoke/ldm/
# hacks
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
invokeai-configure --root ${ROOT} --yes
cp ${ROOT}/configs/models.yaml ${CONFIG_DIR}/models.yaml
fi
exec "$@"
-52
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}
-13
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)
)
-29
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