mirror of
https://github.com/AbdBarho/stable-diffusion-webui-docker.git
synced 2025-10-27 08:14:26 -04:00
Compare commits
231 Commits
0.0.3
...
45e79c7765
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
45e79c7765 | ||
|
|
802d0bcd68 | ||
|
|
b1a26b8041 | ||
|
|
f1bf3b0943 | ||
|
|
35a18b3d46 | ||
|
|
887e49c495 | ||
|
|
7051ce0a44 | ||
|
|
ac94eac2b5 | ||
|
|
8bf77f58f1 | ||
|
|
015c2ec829 | ||
|
|
245d1d443f | ||
|
|
60c4832185 | ||
|
|
f613639748 | ||
|
|
fbc5c359d0 | ||
|
|
90affeb72a | ||
|
|
3e67f559d4 | ||
|
|
a2561f2659 | ||
|
|
6a34739135 | ||
|
|
630980b1bf | ||
|
|
84740598bc | ||
|
|
59b9762ac7 | ||
|
|
70357bf01e | ||
|
|
def76291f8 | ||
|
|
09a0f11946 | ||
|
|
6de45b1984 | ||
|
|
103e11493b | ||
|
|
95e96602f9 | ||
|
|
37a82af4b7 | ||
|
|
5e28222332 | ||
|
|
6c45e0c2ef | ||
|
|
6365811f35 | ||
|
|
cdde93b8bb | ||
|
|
660c098da0 | ||
|
|
6695c23150 | ||
|
|
a3ecd4a79c | ||
|
|
1df18b803c | ||
|
|
110627415d | ||
|
|
87b1509dc2 | ||
|
|
71f4abb2db | ||
|
|
c836f41921 | ||
|
|
d47e77f19c | ||
|
|
7fb8b97b90 | ||
|
|
9ac33db795 | ||
|
|
a68734c9f9 | ||
|
|
36f39043de | ||
|
|
0e5801e9d6 | ||
|
|
2efaeb41cd | ||
|
|
56b942237e | ||
|
|
7b8bc3d74a | ||
|
|
445f3f8bac | ||
|
|
076b5747d3 | ||
|
|
2a0de025e2 | ||
|
|
10c16e1971 | ||
|
|
555c26b7ce | ||
|
|
5d379bf7bc | ||
|
|
d2c1e551d7 | ||
|
|
063665eae1 | ||
|
|
bb54e89b34 | ||
|
|
aa69f11230 | ||
|
|
c54e26348e | ||
|
|
b36de9ef2b | ||
|
|
70d8d7f37f | ||
|
|
67c9d118d9 | ||
|
|
2829ef3581 | ||
|
|
1e0561c5cb | ||
|
|
3c860d6eaa | ||
|
|
15e9841860 | ||
|
|
eeb410f2de | ||
|
|
9d2a3388c3 | ||
|
|
95e489afec | ||
|
|
00518a0340 | ||
|
|
f8de9190ed | ||
|
|
8713163a3c | ||
|
|
e2b0fb905b | ||
|
|
510f9fab2b | ||
|
|
042d5c561c | ||
|
|
66846377a6 | ||
|
|
c9153faff7 | ||
|
|
13dfd4eba5 | ||
|
|
9b1ea3cacf | ||
|
|
b5cdf299ca | ||
|
|
db831ece65 | ||
|
|
ceeac61cb0 | ||
|
|
19972f3cac | ||
|
|
0c16c105bc | ||
|
|
78c90e5435 | ||
|
|
6a3826c80a | ||
|
|
56d9763a73 | ||
|
|
41e0dcc2f6 | ||
|
|
5a9d305e5c | ||
|
|
d70e96da71 | ||
|
|
d97d257fd3 | ||
|
|
c3cf8129a9 | ||
|
|
b8256cccd2 | ||
|
|
4969906ec8 | ||
|
|
8201e361fa | ||
|
|
1423b274b1 | ||
|
|
87a51e9fd1 | ||
|
|
bdee804112 | ||
|
|
f1a1641add | ||
|
|
8df9d10a58 | ||
|
|
7a1e52bc7a | ||
|
|
d20b8732b3 | ||
|
|
23757d2356 | ||
|
|
9e7979b756 | ||
|
|
8623c73741 | ||
|
|
9b6750b2f6 | ||
|
|
5e3f20ba43 | ||
|
|
53ac3601d7 | ||
|
|
37feff58bb | ||
|
|
427320475b | ||
|
|
9a60522244 | ||
|
|
887a16ef35 | ||
|
|
0a4c2a34b8 | ||
|
|
73cd69075e | ||
|
|
b33c0d4bcf | ||
|
|
5450583be1 | ||
|
|
1cfb915d12 | ||
|
|
fb9d1e579c | ||
|
|
9092aa233b | ||
|
|
a5218b8639 | ||
|
|
d6cbafdca8 | ||
|
|
4464e9d9e9 | ||
|
|
fb5407a6bc | ||
|
|
5b4acd605d | ||
|
|
48f8650fd8 | ||
|
|
31c21025ea | ||
|
|
1211e9c5de | ||
|
|
49ad173e95 | ||
|
|
5122f83c0f | ||
|
|
3c544dd7f4 | ||
|
|
42cc17da74 | ||
|
|
31e4dec08f | ||
|
|
0148e5e109 | ||
|
|
111825ac25 | ||
|
|
c1e13867d9 | ||
|
|
463f332d14 | ||
|
|
3682303355 | ||
|
|
402c691a49 | ||
|
|
b36113b7d8 | ||
|
|
b60c787474 | ||
|
|
161fd52c16 | ||
|
|
3b3c244c31 | ||
|
|
5698c49653 | ||
|
|
710280c7ab | ||
|
|
e1e03229fd | ||
|
|
79868d88e8 | ||
|
|
6f5eef42a7 | ||
|
|
14c4b36aff | ||
|
|
28f171e64d | ||
|
|
9af4a23ec4 | ||
|
|
24ecd676ab | ||
|
|
ef36c50cf9 | ||
|
|
43a5e5e85f | ||
|
|
5bbc21ea3d | ||
|
|
09366ed955 | ||
|
|
d4874e7c3a | ||
|
|
7638fb4e5e | ||
|
|
15a61a99d6 | ||
|
|
556a50f49b | ||
|
|
b899f4e516 | ||
|
|
a8c85b4699 | ||
|
|
a96285d10b | ||
|
|
83b78fe504 | ||
|
|
84f9cb84e7 | ||
|
|
6a66ff6abb | ||
|
|
59892da866 | ||
|
|
fceb83c2b0 | ||
|
|
17b01a7627 | ||
|
|
b96d7c30d0 | ||
|
|
aae83bb8f2 | ||
|
|
10763a8f61 | ||
|
|
64e8f093d2 | ||
|
|
3e0a137c23 | ||
|
|
a1c16942ff | ||
|
|
6ae3473214 | ||
|
|
5d731cb43c | ||
|
|
c1fa2f1457 | ||
|
|
d8cfdd3af5 | ||
|
|
03d12cbcd9 | ||
|
|
2e76b6c4e7 | ||
|
|
5eae2076ce | ||
|
|
725e1f39ba | ||
|
|
ab651fe0d7 | ||
|
|
f76f8d4671 | ||
|
|
e32a48f42a | ||
|
|
76989b39a6 | ||
|
|
4d9fc381bb | ||
|
|
bcee253fe0 | ||
|
|
499143009a | ||
|
|
c614625f04 | ||
|
|
ccd6e238b2 | ||
|
|
829864af9b | ||
|
|
ccc7306f48 | ||
|
|
082876aab3 | ||
|
|
ae834cb764 | ||
|
|
5f6d9fbb03 | ||
|
|
d4da252343 | ||
|
|
5af482ed8c | ||
|
|
ce4e190f8f | ||
|
|
bae3590980 | ||
|
|
1588d1eecf | ||
|
|
9cbd58b3f4 | ||
|
|
089fc524d8 | ||
|
|
0d8b7d4ac8 | ||
|
|
561664ea6e | ||
|
|
77c2b2d217 | ||
|
|
6c0c610f27 | ||
|
|
dc730b7f6b | ||
|
|
15952906a1 | ||
|
|
4aaf38970a | ||
|
|
61bd38dfe4 | ||
|
|
bec4997639 | ||
|
|
44903ca3aa | ||
|
|
af409daa0e | ||
|
|
19f9402076 | ||
|
|
eef83a318c | ||
|
|
bc8ec0fe55 | ||
|
|
f5e9997a55 | ||
|
|
fec97dc9e1 | ||
|
|
134130a3b2 | ||
|
|
2ecfb0fe59 | ||
|
|
89d8a17064 | ||
|
|
05829c5ae3 | ||
|
|
66c0658255 | ||
|
|
b3fa72a614 | ||
|
|
3efd62aac2 | ||
|
|
b5537dbc78 | ||
|
|
76bd1bf3cb | ||
|
|
43492b0ba1 | ||
|
|
6178aee73b |
6
.devscripts/chmod.sh
Executable file
6
.devscripts/chmod.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -Eeuo pipefail
|
||||
|
||||
find services -name "*.sh" -exec git update-index --chmod=+x {} \;
|
||||
find .devscripts -name "*.sh" -exec git update-index --chmod=+x {} \;
|
||||
30
.devscripts/migratev1tov2.sh
Executable file
30
.devscripts/migratev1tov2.sh
Executable file
@@ -0,0 +1,30 @@
|
||||
mkdir -p data/.cache data/StableDiffusion data/Codeformer data/GFPGAN data/ESRGAN data/BSRGAN data/RealESRGAN data/SwinIR data/LDSR data/embeddings
|
||||
|
||||
cp -vf cache/models/model.ckpt data/StableDiffusion/model.ckpt
|
||||
|
||||
cp -vf cache/models/LDSR.ckpt data/LDSR/model.ckpt
|
||||
cp -vf cache/models/LDSR.yaml data/LDSR/project.yaml
|
||||
|
||||
cp -vf cache/models/RealESRGAN_x4plus.pth data/RealESRGAN/
|
||||
cp -vf cache/models/RealESRGAN_x4plus_anime_6B.pth data/RealESRGAN/
|
||||
|
||||
cp -vrf cache/torch data/.cache/
|
||||
|
||||
mkdir -p data/.cache/huggingface/transformers/
|
||||
cp -vrf cache/transformers/* data/.cache/huggingface/transformers/
|
||||
|
||||
cp -v cache/custom-models/* data/StableDiffusion/
|
||||
|
||||
mkdir -p data/.cache/clip/
|
||||
cp -vf cache/weights/ViT-L-14.pt data/.cache/clip/
|
||||
|
||||
cp -vf cache/weights/codeformer.pth data/Codeformer/codeformer-v0.1.0.pth
|
||||
|
||||
cp -vf cache/weights/detection_Resnet50_Final.pth data/.cache/
|
||||
cp -vf cache/weights/parsing_parsenet.pth data/.cache/
|
||||
|
||||
cp -v embeddings/* data/embeddings/
|
||||
|
||||
echo this script was created 10/2022
|
||||
echo Dont forget to run: docker compose --profile download up --build
|
||||
echo the cache and embeddings folders can be deleted, but its not necessary.
|
||||
9
.devscripts/migratev3tov4.sh
Executable file
9
.devscripts/migratev3tov4.sh
Executable 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
|
||||
28
.devscripts/migratev7tov8.sh
Normal file
28
.devscripts/migratev7tov8.sh
Normal 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
|
||||
9
.editorconfig
Normal file
9
.editorconfig
Normal file
@@ -0,0 +1,9 @@
|
||||
root = true
|
||||
|
||||
[*]
|
||||
end_of_line = lf
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
charset = utf-8
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
1
.gitattributes
vendored
Normal file
1
.gitattributes
vendored
Normal file
@@ -0,0 +1 @@
|
||||
* text=auto eol=lf
|
||||
43
.github/ISSUE_TEMPLATE/bug.md
vendored
Normal file
43
.github/ISSUE_TEMPLATE/bug.md
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
---
|
||||
name: Bug
|
||||
about: Report a bug
|
||||
title: ""
|
||||
labels: bug
|
||||
assignees: ""
|
||||
---
|
||||
|
||||
<!-- PLEASE FILL THIS OUT, IT WILL MAKE BOTH OF OUR LIVES EASIER -->
|
||||
|
||||
**Has this issue been opened before?**
|
||||
|
||||
- [ ] It is not in the [FAQ](https://github.com/AbdBarho/stable-diffusion-webui-docker/wiki/FAQ), I checked.
|
||||
- [ ] It is not in the [issues](https://github.com/AbdBarho/stable-diffusion-webui-docker/issues?q=), I searched.
|
||||
|
||||
**Describe the bug**
|
||||
|
||||
<!-- tried to run the app, my cat exploded -->
|
||||
|
||||
**Which UI**
|
||||
|
||||
auto or auto-cpu or invoke or comfy?
|
||||
|
||||
**Hardware / Software**
|
||||
|
||||
- OS: [e.g. Windows 10 / Ubuntu 22.04]
|
||||
- OS version: <!-- on windows, use the command `winver` to find out, on ubuntu `lsb_release -d` -->
|
||||
- WSL version (if applicable): <!-- get using `wsl -l -v` -->
|
||||
- Docker Version: <!-- get using `docker version` -->
|
||||
- Docker compose version: <!-- get using `docker compose version` -->
|
||||
- Repo version: <!-- tag, commit sha, or "from master" -->
|
||||
- RAM:
|
||||
- GPU/VRAM:
|
||||
|
||||
**Steps to Reproduce**
|
||||
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
**Additional context**
|
||||
Any other context about the problem here. If applicable, add screenshots to help explain your problem.
|
||||
5
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
5
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal 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
|
||||
13
.github/pull_request_template.md
vendored
Normal file
13
.github/pull_request_template.md
vendored
Normal file
@@ -0,0 +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
|
||||
|
||||
- auto: https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/
|
||||
- invoke: https://github.com/invoke-ai/InvokeAI/commit/
|
||||
- comfy: https://github.com/comfyanonymous/ComfyUI/commit/
|
||||
23
.github/workflows/docker.yml
vendored
Normal file
23
.github/workflows/docker.yml
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
name: Build Images
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: master
|
||||
pull_request:
|
||||
paths:
|
||||
- docker-compose.yml
|
||||
- services
|
||||
|
||||
jobs:
|
||||
build:
|
||||
strategy:
|
||||
matrix:
|
||||
profile:
|
||||
- auto
|
||||
- comfy
|
||||
- download
|
||||
runs-on: ubuntu-latest
|
||||
name: ${{ matrix.profile }}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- run: docker compose --profile ${{ matrix.profile }} build --progress plain
|
||||
20
.github/workflows/stale.yml
vendored
Normal file
20
.github/workflows/stale.yml
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
name: 'Close stale issues and PRs'
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
|
||||
jobs:
|
||||
stale:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- 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.
|
||||
stale-pr-message: This PR 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.
|
||||
close-issue-message: This issue was closed because it has been stalled for 7 days with no activity.
|
||||
close-pr-message: This PR was closed because it has been stalled for 7 days with no activity.
|
||||
days-before-issue-stale: 14
|
||||
days-before-pr-stale: 14
|
||||
days-before-issue-close: 7
|
||||
days-before-pr-close: 7
|
||||
7
.gitignore
vendored
7
.gitignore
vendored
@@ -1 +1,6 @@
|
||||
/dev
|
||||
/.devcontainer
|
||||
/docker-compose.override.yml
|
||||
|
||||
# VSCode specific
|
||||
*.code-workspace
|
||||
/.vscode
|
||||
|
||||
22
.vscode/launch.json
vendored
Normal file
22
.vscode/launch.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
// Use IntelliSense to learn about possible attributes.
|
||||
// Hover to view descriptions of existing attributes.
|
||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "WebUI",
|
||||
"type": "python",
|
||||
"request": "launch",
|
||||
"program": "${file}",
|
||||
"cwd": "/stable-diffusion",
|
||||
"args": ["--ckpt", "${workspaceFolder}/models/model.ckpt", "--gfpgan-dir", "${workspaceFolder}/models/", "--extra-models-cpu"],
|
||||
"env": {
|
||||
"TRANSFORMERS_CACHE":"${workspaceFolder}/cache/transformers",
|
||||
"TORCH_HOME":"${workspaceFolder}/cache/torch"
|
||||
},
|
||||
"console": "integratedTerminal",
|
||||
"justMyCode": false
|
||||
}
|
||||
]
|
||||
}
|
||||
24
Licen.TXT
24
Licen.TXT
@@ -1,24 +0,0 @@
|
||||
Microsoft TrueType Fonts
|
||||
END-USER LICENSE AGREEMENT FOR MICROSOFT SOFTWARE
|
||||
---------------------------------------------------
|
||||
|
||||
IMPORTANT - READ CAREFULLY: This Microsoft End-User License Agreement ("EULA") is a legal agreement between you (either an individual or a single entity) and Microsoft Corporation for the Microsoft software accompanying this EULA, which includes computer software and may include associated media, printed materials, and "on-line" or electronic documentation ("SOFTWARE PRODUCT" or "SOFTWARE"). By exercising your rights to make and use copies of the SOFTWARE PRODUCT, you agree to be bound by the terms of this EULA. If you do not agree to the terms of this EULA, you may not use the SOFTWARE PRODUCT.
|
||||
SOFTWARE PRODUCT LICENSE
|
||||
The SOFTWARE PRODUCT is protected by copyright laws and international copyright treaties, as well as other intellectual property laws and treaties. The SOFTWARE PRODUCT is licensed, not sold.
|
||||
1. GRANT OF LICENSE. This EULA grants you the following rights:
|
||||
<EFBFBD> Installation and Use. You may install and use an unlimited number of copies of the SOFTWARE PRODUCT.
|
||||
<EFBFBD> Reproduction and Distribution. You may reproduce and distribute an unlimited number of copies of the SOFTWARE PRODUCT; provided that each copy shall be a true and complete copy, including all copyright and trademark notices, and shall be accompanied by a copy of this EULA. Copies of the SOFTWARE PRODUCT may not be distributed for profit either on a standalone basis or included as part of your own product.
|
||||
2. DESCRIPTION OF OTHER RIGHTS AND LIMITATIONS.
|
||||
<EFBFBD> Limitations on Reverse Engineering, Decompilation, and Disassembly. You may not reverse engineer, decompile, or disassemble the SOFTWARE PRODUCT, except and only to the extent that such activity is expressly permitted by applicable law notwithstanding this limitation.
|
||||
<EFBFBD> Restrictions on Alteration. You may not rename, edit or create any derivative works from the SOFTWARE PRODUCT, other than subsetting when embedding them in documents.
|
||||
<EFBFBD> Software Transfer. You may permanently transfer all of your rights under this EULA, provided the recipient agrees to the terms of this EULA.
|
||||
<EFBFBD> Termination. Without prejudice to any other rights, Microsoft may terminate this EULA if you fail to comply with the terms and conditions of this EULA. In such event, you must destroy all copies of the SOFTWARE PRODUCT and all of its component parts.
|
||||
3. COPYRIGHT. All title and copyrights in and to the SOFTWARE PRODUCT (including but not limited to any images, text, and "applets" incorporated into the SOFTWARE PRODUCT), the accompanying printed materials, and any copies of the SOFTWARE PRODUCT are owned by Microsoft or its suppliers. The SOFTWARE PRODUCT is protected by copyright laws and international treaty provisions. Therefore, you must treat the SOFTWARE PRODUCT like any other copyrighted material.
|
||||
4. U.S. GOVERNMENT RESTRICTED RIGHTS. The SOFTWARE PRODUCT and documentation are provided with RESTRICTED RIGHTS. Use, duplication, or disclosure by the Government is subject to restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS 252.227-7013 or subparagraphs (c)(1) and (2) of the Commercial Computer Software-Restricted Rights at 48 CFR 52.227-19, as applicable. Manufacturer is Microsoft Corporation/One Microsoft Way/Redmond, WA 98052-6399.
|
||||
LIMITED WARRANTY
|
||||
NO WARRANTIES. Microsoft expressly disclaims any warranty for the SOFTWARE PRODUCT. The SOFTWARE PRODUCT and any related documentation is provided "as is" without warranty of any kind, either express or implied, including, without limitation, the implied warranties or merchantability, fitness for a particular purpose, or noninfringement. The entire risk arising out of use or performance of the SOFTWARE PRODUCT remains with you.
|
||||
NO LIABILITY FOR CONSEQUENTIAL DAMAGES. In no event shall Microsoft or its suppliers be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or any other pecuniary loss) arising out of the use of or inability to use this Microsoft product, even if Microsoft has been advised of the possibility of such damages. Because some states/jurisdictions do not allow the exclusion or limitation of liability for consequential or incidental damages, the above limitation may not apply to you.
|
||||
MISCELLANEOUS
|
||||
If you acquired this product in the United States, this EULA is governed by the laws of the State of Washington.
|
||||
If this product was acquired outside the United States, then local laws may apply.
|
||||
Should you have any questions concerning this EULA, or if you desire to contact Microsoft for any reason, please contact the Microsoft subsidiary serving your country, or write: Microsoft Sales Information Center/One Microsoft Way/Redmond, WA 98052-6399.
|
||||
@@ -1,31 +0,0 @@
|
||||
# syntax=docker/dockerfile:1
|
||||
|
||||
FROM continuumio/miniconda3:4.12.0
|
||||
|
||||
|
||||
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 git clone https://github.com/hlky/stable-diffusion.git && cd stable-diffusion && git reset --hard 554bd068e6f2f6bc55449a67fe017ddd77090f28
|
||||
RUN conda env update --file stable-diffusion/environment.yaml --name base && conda clean -a -y
|
||||
|
||||
# fonts
|
||||
RUN apt-get update && apt install fonts-dejavu-core && apt-get clean
|
||||
|
||||
RUN git clone https://github.com/hlky/stable-diffusion-webui.git && cd stable-diffusion-webui && \
|
||||
git reset --hard fe6f1e3dc5773aabf879e1d686699092bf483a6b && \
|
||||
cp -t /stable-diffusion/scripts/ txt2img.yaml webui.py webui.yaml webui_playground.py && \
|
||||
cd / && rm -rf stable-diffusion-webui
|
||||
|
||||
|
||||
WORKDIR /stable-diffusion
|
||||
ENV TRANSFORMERS_CACHE=/cache/transformers TORCH_HOME=/cache/torch CLI_ARGS=""
|
||||
|
||||
EXPOSE 7860
|
||||
CMD ln -sf /models/model.ckpt /stable-diffusion/models/ldm/stable-diffusion-v1/model.ckpt && \
|
||||
ln -sf /models/GFPGANv1.3.pth /stable-diffusion/src/gfpgan/experiments/pretrained_models/GFPGANv1.3.pth && \
|
||||
ln -sf /models/RealESRGAN_x4plus.pth /stable-diffusion/src/realesrgan/experiments/pretrained_models/RealESRGAN_x4plus.pth && \
|
||||
# force facexlib cache
|
||||
mkdir -p /cache/weights/ && rm -rf /opt/conda/lib/python3.8/site-packages/facexlib/weights && \
|
||||
ln -sf /cache/weights/ /opt/conda/lib/python3.8/site-packages/facexlib/ && \
|
||||
# run, -u to not buffer stdout / stderr
|
||||
python3 -u scripts/webui.py --outdir /output --save-metadata --ckpt /models/model.ckpt ${CLI_ARGS}
|
||||
3
cache/.gitignore
vendored
3
cache/.gitignore
vendored
@@ -1,3 +0,0 @@
|
||||
/torch
|
||||
/transformers
|
||||
/weights
|
||||
4
data/.gitignore
vendored
Normal file
4
data/.gitignore
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
/.cache
|
||||
/config
|
||||
/embeddings
|
||||
/models
|
||||
@@ -1,21 +1,68 @@
|
||||
version: '3.9'
|
||||
|
||||
services:
|
||||
model:
|
||||
build: ./build/
|
||||
restart: always
|
||||
x-base_service: &base_service
|
||||
ports:
|
||||
- "7860:7860"
|
||||
- "${WEBUI_PORT:-7860}:7860"
|
||||
volumes:
|
||||
- ./cache:/cache
|
||||
- ./output:/output
|
||||
- ./models:/models
|
||||
environment:
|
||||
- CLI_ARGS=--extra-models-cpu
|
||||
- &v1 ./data:/data
|
||||
- &v2 ./output:/output
|
||||
stop_signal: SIGKILL
|
||||
tty: true
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
devices:
|
||||
- driver: nvidia
|
||||
device_ids: ['0']
|
||||
capabilities: [gpu]
|
||||
capabilities: [compute, utility]
|
||||
|
||||
name: webui-docker
|
||||
|
||||
services:
|
||||
download:
|
||||
build: ./services/download/
|
||||
profiles: ["download"]
|
||||
volumes:
|
||||
- *v1
|
||||
|
||||
auto: &automatic
|
||||
<<: *base_service
|
||||
profiles: ["auto"]
|
||||
build: ./services/AUTOMATIC1111
|
||||
image: sd-auto:78
|
||||
environment:
|
||||
- CLI_ARGS=--allow-code --medvram --xformers --enable-insecure-extension-access --api
|
||||
|
||||
auto-rocm:
|
||||
<<: *base_service
|
||||
profiles: ["auto-rocm"]
|
||||
build:
|
||||
context: ./services/AUTOMATIC1111
|
||||
dockerfile: Dockerfile.rocm
|
||||
devices:
|
||||
- "/dev/kfd"
|
||||
- "/dev/dri"
|
||||
deploy: {}
|
||||
environment:
|
||||
- CLI_ARGS=--allow-code --medvram --enable-insecure-extension-access --api
|
||||
|
||||
auto-cpu:
|
||||
<<: *automatic
|
||||
profiles: ["auto-cpu"]
|
||||
deploy: {}
|
||||
environment:
|
||||
- CLI_ARGS=--no-half --precision full --allow-code --enable-insecure-extension-access --api
|
||||
|
||||
comfy: &comfy
|
||||
<<: *base_service
|
||||
profiles: ["comfy"]
|
||||
build: ./services/comfy/
|
||||
image: sd-comfy:7
|
||||
environment:
|
||||
- CLI_ARGS=
|
||||
|
||||
|
||||
comfy-cpu:
|
||||
<<: *comfy
|
||||
profiles: ["comfy-cpu"]
|
||||
deploy: {}
|
||||
environment:
|
||||
- CLI_ARGS=--cpu
|
||||
|
||||
4
models/.gitignore
vendored
4
models/.gitignore
vendored
@@ -1,4 +0,0 @@
|
||||
/model.ckpt
|
||||
/GFPGANv1.3.pth
|
||||
/RealESRGAN_x4plus.pth
|
||||
/RealESRGAN_x4plus_anime_6B.pth
|
||||
66
services/AUTOMATIC1111/Dockerfile
Normal file
66
services/AUTOMATIC1111/Dockerfile
Normal file
@@ -0,0 +1,66 @@
|
||||
FROM alpine/git:2.36.2 as download
|
||||
|
||||
COPY clone.sh /clone.sh
|
||||
|
||||
RUN . /clone.sh stable-diffusion-webui-assets https://github.com/AUTOMATIC1111/stable-diffusion-webui-assets.git 6f7db241d2f8ba7457bac5ca9753331f0c266917
|
||||
|
||||
RUN . /clone.sh stable-diffusion-stability-ai https://github.com/Stability-AI/stablediffusion.git cf1d67a6fd5ea1aa600c4df58e5b47da45f6bdbf \
|
||||
&& rm -rf assets data/**/*.png data/**/*.jpg data/**/*.gif
|
||||
|
||||
RUN . /clone.sh BLIP https://github.com/salesforce/BLIP.git 48211a1594f1321b00f14c9f7a5b4813144b2fb9
|
||||
RUN . /clone.sh k-diffusion https://github.com/crowsonkb/k-diffusion.git ab527a9a6d347f364e3d185ba6d714e22d80cb3c
|
||||
RUN . /clone.sh clip-interrogator https://github.com/pharmapsychotic/clip-interrogator 2cf03aaf6e704197fd0dae7c7f96aa59cf1b11c9
|
||||
RUN . /clone.sh generative-models https://github.com/Stability-AI/generative-models 45c443b316737a4ab6e40413d7794a7f5657c19f
|
||||
RUN . /clone.sh stable-diffusion-webui-assets https://github.com/AUTOMATIC1111/stable-diffusion-webui-assets 6f7db241d2f8ba7457bac5ca9753331f0c266917
|
||||
|
||||
|
||||
FROM pytorch/pytorch:2.3.0-cuda12.1-cudnn8-runtime
|
||||
|
||||
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 build-essential
|
||||
|
||||
|
||||
WORKDIR /
|
||||
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 v1.9.4 && \
|
||||
pip install -r requirements_versions.txt
|
||||
|
||||
|
||||
ENV ROOT=/stable-diffusion-webui
|
||||
|
||||
COPY --from=download /repositories/ ${ROOT}/repositories/
|
||||
RUN mkdir ${ROOT}/interrogate && cp ${ROOT}/repositories/clip-interrogator/clip_interrogator/data/* ${ROOT}/interrogate
|
||||
|
||||
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/openai/CLIP.git@d50d76daa670286dd6cacf3bcd80b5e4823fc8e1 \
|
||||
git+https://github.com/mlfoundations/open_clip.git@v2.20.0
|
||||
|
||||
# there seems to be a memory leak (or maybe just memory not being freed fast enough) that is fixed by this version of malloc
|
||||
# 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
|
||||
|
||||
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=""
|
||||
EXPOSE 7860
|
||||
ENTRYPOINT ["/docker/entrypoint.sh"]
|
||||
CMD python -u webui.py --listen --port 7860 ${CLI_ARGS}
|
||||
70
services/AUTOMATIC1111/Dockerfile.rocm
Normal file
70
services/AUTOMATIC1111/Dockerfile.rocm
Normal file
@@ -0,0 +1,70 @@
|
||||
FROM alpine/git:2.36.2 as download
|
||||
|
||||
COPY clone.sh /clone.sh
|
||||
|
||||
|
||||
RUN . /clone.sh stable-diffusion-stability-ai https://github.com/Stability-AI/stablediffusion.git cf1d67a6fd5ea1aa600c4df58e5b47da45f6bdbf \
|
||||
&& rm -rf assets data/**/*.png data/**/*.jpg data/**/*.gif
|
||||
|
||||
RUN . /clone.sh CodeFormer https://github.com/sczhou/CodeFormer.git c5b4593074ba6214284d6acd5f1719b6c5d739af \
|
||||
&& rm -rf assets inputs
|
||||
|
||||
RUN . /clone.sh BLIP https://github.com/salesforce/BLIP.git 48211a1594f1321b00f14c9f7a5b4813144b2fb9
|
||||
RUN . /clone.sh k-diffusion https://github.com/crowsonkb/k-diffusion.git ab527a9a6d347f364e3d185ba6d714e22d80cb3c
|
||||
RUN . /clone.sh clip-interrogator https://github.com/pharmapsychotic/clip-interrogator 2cf03aaf6e704197fd0dae7c7f96aa59cf1b11c9
|
||||
RUN . /clone.sh generative-models https://github.com/Stability-AI/generative-models 45c443b316737a4ab6e40413d7794a7f5657c19f
|
||||
|
||||
|
||||
FROM rocm/pytorch:rocm6.0.2_ubuntu22.04_py3.10_pytorch_2.1.2
|
||||
|
||||
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 build-essential
|
||||
|
||||
|
||||
RUN python -m pip install --upgrade pip wheel
|
||||
|
||||
WORKDIR /
|
||||
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 cf2772fab0af5573da775e7437e6acdca424f26e && \
|
||||
pip install -r requirements_versions.txt
|
||||
|
||||
|
||||
ENV ROOT=/stable-diffusion-webui
|
||||
|
||||
COPY --from=download /repositories/ ${ROOT}/repositories/
|
||||
RUN mkdir ${ROOT}/interrogate && cp ${ROOT}/repositories/clip-interrogator/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 xformers==0.0.23.post1 \
|
||||
git+https://github.com/TencentARC/GFPGAN.git@8d2447a2d918f8eba5a4a01463fd48e45126a379 \
|
||||
git+https://github.com/openai/CLIP.git@d50d76daa670286dd6cacf3bcd80b5e4823fc8e1 \
|
||||
git+https://github.com/mlfoundations/open_clip.git@v2.20.0
|
||||
|
||||
# there seems to be a memory leak (or maybe just memory not being freed fast enough) that is fixed by this version of malloc
|
||||
# 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
|
||||
|
||||
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/envs/py_3.10/lib/python3.10/site-packages/gradio/routes.py && \
|
||||
git config --global --add safe.directory '*'
|
||||
|
||||
WORKDIR ${ROOT}
|
||||
ENV CLI_ARGS=""
|
||||
EXPOSE 7860
|
||||
ENTRYPOINT ["/docker/entrypoint.sh"]
|
||||
CMD python -u webui.py --listen --port 7860 ${CLI_ARGS}
|
||||
11
services/AUTOMATIC1111/clone.sh
Normal file
11
services/AUTOMATIC1111/clone.sh
Normal 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
|
||||
78
services/AUTOMATIC1111/config.py
Normal file
78
services/AUTOMATIC1111/config.py
Normal 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)
|
||||
|
||||
85
services/AUTOMATIC1111/entrypoint.sh
Executable file
85
services/AUTOMATIC1111/entrypoint.sh
Executable 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 "$@"
|
||||
22
services/comfy/Dockerfile
Normal file
22
services/comfy/Dockerfile
Normal 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
31
services/comfy/entrypoint.sh
Executable 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 "$@"
|
||||
25
services/comfy/extra_model_paths.yaml
Normal file
25
services/comfy/extra_model_paths.yaml
Normal 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
|
||||
6
services/download/Dockerfile
Normal file
6
services/download/Dockerfile
Normal file
@@ -0,0 +1,6 @@
|
||||
FROM bash:alpine3.19
|
||||
|
||||
RUN apk update && apk add parallel aria2
|
||||
COPY . /docker
|
||||
RUN chmod +x /docker/download.sh
|
||||
ENTRYPOINT ["/docker/download.sh"]
|
||||
8
services/download/checksums.sha256
Normal file
8
services/download/checksums.sha256
Normal file
@@ -0,0 +1,8 @@
|
||||
cc6cb27103417325ff94f52b7a5d2dde45a7515b25c255d8e396c90014281516 /data/models/Stable-diffusion/v1-5-pruned-emaonly.ckpt
|
||||
c6bbc15e3224e6973459ba78de4998b80b50112b0ae5b5c67113d56b4e366b19 /data/models/Stable-diffusion/sd-v1-5-inpainting.ckpt
|
||||
c6a580b13a5bc05a5e16e4dbb80608ff2ec251a162311590c1f34c013d7f3dab /data/models/VAE/vae-ft-mse-840000-ema-pruned.ckpt
|
||||
e2cd4703ab14f4d01fd1383a8a8b266f9a5833dacee8e6a79d3bf21a1b6be5ad /data/models/GFPGAN/GFPGANv1.4.pth
|
||||
4fa0d38905f75ac06eb49a7951b426670021be3018265fd191d2125df9d682f1 /data/models/RealESRGAN/RealESRGAN_x4plus.pth
|
||||
f872d837d3c90ed2e05227bed711af5671a6fd1c9f7d7e91c911a61f155e99da /data/models/RealESRGAN/RealESRGAN_x4plus_anime_6B.pth
|
||||
c209caecac2f97b4bb8f4d726b70ac2ac9b35904b7fc99801e1f5e61f9210c13 /data/models/LDSR/model.ckpt
|
||||
9d6ad53c5dafeb07200fb712db14b813b527edd262bc80ea136777bdb41be2ba /data/models/LDSR/project.yaml
|
||||
31
services/download/download.sh
Executable file
31
services/download/download.sh
Executable file
@@ -0,0 +1,31 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -Eeuo pipefail
|
||||
|
||||
# TODO: maybe just use the .gitignore file to create all of these
|
||||
mkdir -vp /data/.cache \
|
||||
/data/embeddings \
|
||||
/data/config/ \
|
||||
/data/models/ \
|
||||
/data/models/Stable-diffusion \
|
||||
/data/models/GFPGAN \
|
||||
/data/models/RealESRGAN \
|
||||
/data/models/LDSR \
|
||||
/data/models/VAE
|
||||
|
||||
echo "Downloading, this might take a while..."
|
||||
|
||||
aria2c -x 10 --disable-ipv6 --input-file /docker/links.txt --dir /data/models --continue
|
||||
|
||||
echo "Checking SHAs..."
|
||||
|
||||
parallel --will-cite -a /docker/checksums.sha256 "echo -n {} | sha256sum -c"
|
||||
|
||||
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
|
||||
And licenses of all UIs, third party libraries, and extensions.
|
||||
EOF
|
||||
16
services/download/links.txt
Normal file
16
services/download/links.txt
Normal file
@@ -0,0 +1,16 @@
|
||||
https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.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
|
||||
out=GFPGAN/GFPGANv1.4.pth
|
||||
https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth
|
||||
out=RealESRGAN/RealESRGAN_x4plus.pth
|
||||
https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.2.4/RealESRGAN_x4plus_anime_6B.pth
|
||||
out=RealESRGAN/RealESRGAN_x4plus_anime_6B.pth
|
||||
https://heibox.uni-heidelberg.de/f/31a76b13ea27482981b4/?dl=1
|
||||
out=LDSR/project.yaml
|
||||
https://heibox.uni-heidelberg.de/f/578df07c8fc04ffbadf3/?dl=1
|
||||
out=LDSR/model.ckpt
|
||||
Reference in New Issue
Block a user