mirror of
https://github.com/AbdBarho/stable-diffusion-webui-docker.git
synced 2025-10-27 16:24:26 -04:00
Compare commits
134 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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
|
||||
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 sygil?
|
||||
|
||||
**Hardware / Software**
|
||||
|
||||
- OS: [e.g. Windows 10 / Ubuntu 22.04]
|
||||
- OS version: <!-- on windows, use the command `winver` to find out, on ubuntu `lsb_release -d` -->
|
||||
- WSL version (if applicable): <!-- get using `wsl -l -v` -->
|
||||
- Docker Version: <!-- get using `docker version` -->
|
||||
- Docker compose version: <!-- get using `docker compose version` -->
|
||||
- Repo version: <!-- tag, commit sha, or "from master" -->
|
||||
- RAM:
|
||||
- GPU/VRAM:
|
||||
|
||||
**Steps to Reproduce**
|
||||
|
||||
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/
|
||||
- hlky: https://github.com/sd-webui/stable-diffusion-webui/commit/
|
||||
- lstein: https://github.com/invoke-ai/InvokeAI/commit/
|
||||
24
.github/workflows/docker.yml
vendored
Normal file
24
.github/workflows/docker.yml
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
name: Build Images
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: master
|
||||
pull_request:
|
||||
paths:
|
||||
- docker-compose.yml
|
||||
- services
|
||||
|
||||
jobs:
|
||||
build:
|
||||
strategy:
|
||||
matrix:
|
||||
profile:
|
||||
- auto
|
||||
- sygil
|
||||
- invoke
|
||||
- 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
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1 +1,2 @@
|
||||
/dev
|
||||
/.devcontainer
|
||||
/docker-compose.override.yml
|
||||
|
||||
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
|
||||
}
|
||||
]
|
||||
}
|
||||
2
LICENSE
2
LICENSE
@@ -86,4 +86,4 @@ administration of justice, law enforcement, immigration or asylum
|
||||
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).
|
||||
use).
|
||||
|
||||
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
|
||||
19
data/.gitignore
vendored
Normal file
19
data/.gitignore
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
# for all of the stuff downloaded by transformers, pytorch, and others
|
||||
/.cache
|
||||
# for UIs
|
||||
/config
|
||||
# for all stable diffusion models (main, waifu diffusion, etc..)
|
||||
/StableDiffusion
|
||||
# others
|
||||
/Codeformer
|
||||
/GFPGAN
|
||||
/ESRGAN
|
||||
/BSRGAN
|
||||
/RealESRGAN
|
||||
/SwinIR
|
||||
/ScuNET
|
||||
/LDSR
|
||||
/Deepdanbooru
|
||||
/Hypernetworks
|
||||
/VAE
|
||||
/embeddings
|
||||
@@ -1,17 +1,11 @@
|
||||
version: '3.9'
|
||||
|
||||
services:
|
||||
model:
|
||||
build: ./build/
|
||||
restart: always
|
||||
x-base_service: &base_service
|
||||
ports:
|
||||
- "7860:7860"
|
||||
volumes:
|
||||
- ./cache:/cache
|
||||
- ./output:/output
|
||||
- ./models:/models
|
||||
environment:
|
||||
- CLI_ARGS=--extra-models-cpu
|
||||
- &v1 ./data:/data
|
||||
- &v2 ./output:/output
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
@@ -19,3 +13,51 @@ services:
|
||||
- driver: nvidia
|
||||
device_ids: ['0']
|
||||
capabilities: [gpu]
|
||||
|
||||
name: webui-docker
|
||||
|
||||
services:
|
||||
download:
|
||||
build: ./services/download/
|
||||
profiles: ["download"]
|
||||
volumes:
|
||||
- *v1
|
||||
|
||||
auto: &automatic
|
||||
<<: *base_service
|
||||
profiles: ["auto"]
|
||||
build: ./services/AUTOMATIC1111
|
||||
image: sd-auto:20
|
||||
environment:
|
||||
- CLI_ARGS=--allow-code --medvram --xformers --enable-insecure-extension-access
|
||||
|
||||
auto-cpu:
|
||||
<<: *automatic
|
||||
profiles: ["auto-cpu"]
|
||||
deploy: {}
|
||||
environment:
|
||||
- CLI_ARGS=--no-half --precision full
|
||||
|
||||
sygil: &sygil
|
||||
<<: *base_service
|
||||
profiles: ["sygil"]
|
||||
build: ./services/sygil/
|
||||
image: sd-sygil:12
|
||||
environment:
|
||||
- CLI_ARGS=--optimized-turbo
|
||||
- USE_STREAMLIT=0
|
||||
|
||||
sygil-sl:
|
||||
<<: *sygil
|
||||
environment:
|
||||
- USE_STREAMLIT=1
|
||||
|
||||
|
||||
invoke:
|
||||
<<: *base_service
|
||||
profiles: ["invoke"]
|
||||
build: ./services/invoke/
|
||||
image: sd-invoke:10
|
||||
environment:
|
||||
- PRELOAD=true
|
||||
- CLI_ARGS=
|
||||
|
||||
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
|
||||
96
services/AUTOMATIC1111/Dockerfile
Normal file
96
services/AUTOMATIC1111/Dockerfile
Normal file
@@ -0,0 +1,96 @@
|
||||
# syntax=docker/dockerfile:1
|
||||
|
||||
FROM alpine/git:2.36.2 as download
|
||||
|
||||
SHELL ["/bin/sh", "-ceuxo", "pipefail"]
|
||||
|
||||
RUN <<EOF
|
||||
cat <<'EOE' > /clone.sh
|
||||
mkdir -p repositories/"$1" && cd repositories/"$1" && git init && git remote add origin "$2" && git fetch origin "$3" --depth=1 && git reset --hard "$3" && rm -rf .git
|
||||
EOE
|
||||
EOF
|
||||
|
||||
RUN . /clone.sh taming-transformers https://github.com/CompVis/taming-transformers.git 24268930bf1dce879235a7fddd0b2355b84d7ea6 \
|
||||
&& rm -rf data assets **/*.ipynb
|
||||
|
||||
RUN . /clone.sh stable-diffusion https://github.com/CompVis/stable-diffusion.git 69ae4b35e0a0f6ee1af8bb9a5d0016ccb27e36dc \
|
||||
&& rm -rf assets data/**/*.png data/**/*.jpg data/**/*.gif
|
||||
|
||||
RUN . /clone.sh CodeFormer https://github.com/sczhou/CodeFormer.git c5b4593074ba6214284d6acd5f1719b6c5d739af \
|
||||
&& rm -rf assets inputs
|
||||
|
||||
RUN . /clone.sh BLIP https://github.com/salesforce/BLIP.git 48211a1594f1321b00f14c9f7a5b4813144b2fb9
|
||||
RUN . /clone.sh k-diffusion https://github.com/crowsonkb/k-diffusion.git 60e5042ca0da89c14d1dd59d73883280f8fce991
|
||||
RUN . /clone.sh clip-interrogator https://github.com/pharmapsychotic/clip-interrogator 2486589f24165c8e3b303f84e9dbbea318df83e8
|
||||
|
||||
|
||||
FROM alpine:3 as xformers
|
||||
RUN apk add aria2
|
||||
RUN aria2c -x 10 --dir / --out wheel.whl 'https://github.com/AbdBarho/stable-diffusion-webui-docker/releases/download/3.1.0/xformers-0.0.15.dev0+4e3631d.d20221125-cp310-cp310-linux_x86_64.whl'
|
||||
|
||||
FROM python:3.10-slim
|
||||
|
||||
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+cu116 torchvision==0.13.1+cu116 --extra-index-url https://download.pytorch.org/whl/cu116
|
||||
|
||||
RUN apt-get update && apt install fonts-dejavu-core rsync git jq moreutils -y && apt-get clean
|
||||
|
||||
|
||||
RUN <<EOF
|
||||
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
|
||||
cd stable-diffusion-webui
|
||||
git reset --hard 98947d173e3f1667eba29c904f681047dea9de90
|
||||
pip install -r requirements_versions.txt
|
||||
EOF
|
||||
|
||||
|
||||
COPY --from=xformers /wheel.whl xformers-0.0.15-cp310-cp310-linux_x86_64.whl
|
||||
RUN pip install xformers-0.0.15-cp310-cp310-linux_x86_64.whl && rm xformers-0.0.15-cp310-cp310-linux_x86_64.whl
|
||||
|
||||
|
||||
ENV ROOT=/stable-diffusion-webui
|
||||
|
||||
|
||||
COPY --from=download /git/ ${ROOT}
|
||||
RUN mkdir ${ROOT}/interrogate && cp ${ROOT}/repositories/clip-interrogator/data/* ${ROOT}/interrogate
|
||||
RUN pip install -r ${ROOT}/repositories/CodeFormer/requirements.txt
|
||||
|
||||
|
||||
ARG DEEPDANBOORU="0"
|
||||
RUN [[ "${DEEPDANBOORU:-0}" == "0" ]] && : || pip install tensorflow-cpu==2.10 tensorflow-io==0.27.0 git+https://github.com/KichangKim/DeepDanbooru.git@edf73df4cdaeea2cf00e9ac08bd8a9026b7a7b26#egg=deepdanbooru
|
||||
|
||||
RUN pip install opencv-python-headless \
|
||||
git+https://github.com/TencentARC/GFPGAN.git@8d2447a2d918f8eba5a4a01463fd48e45126a379 \
|
||||
git+https://github.com/openai/CLIP.git@d50d76daa670286dd6cacf3bcd80b5e4823fc8e1 \
|
||||
pyngrok
|
||||
|
||||
# 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=47a44c7e421b98ca07e92dbf88769b04c9e28f86
|
||||
RUN <<EOF
|
||||
cd stable-diffusion-webui
|
||||
git fetch
|
||||
git reset --hard ${SHA}
|
||||
pip install -r requirements_versions.txt
|
||||
EOF
|
||||
|
||||
RUN pip install opencv-python-headless transformers==4.24.0
|
||||
|
||||
COPY . /docker
|
||||
|
||||
RUN <<EOF
|
||||
python3 /docker/info.py ${ROOT}/modules/ui.py
|
||||
mv ${ROOT}/style.css ${ROOT}/user.css
|
||||
sed -i 's/os.rename(tmpdir, target_dir)/shutil.move(tmpdir,target_dir)/' ${ROOT}/modules/ui_extensions.py
|
||||
EOF
|
||||
|
||||
WORKDIR ${ROOT}
|
||||
ENV CLI_ARGS=""
|
||||
EXPOSE 7860
|
||||
ENTRYPOINT ["/docker/entrypoint.sh"]
|
||||
# run, -u to not buffer stdout / stderr
|
||||
CMD python3 -u webui.py --listen --port 7860 ${CLI_ARGS}
|
||||
10
services/AUTOMATIC1111/config.json
Normal file
10
services/AUTOMATIC1111/config.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"outdir_samples": "",
|
||||
"outdir_txt2img_samples": "/output/txt2img",
|
||||
"outdir_img2img_samples": "/output/img2img",
|
||||
"outdir_extras_samples": "/output/extras",
|
||||
"outdir_txt2img_grids": "/output/txt2img-grids",
|
||||
"outdir_img2img_grids": "/output/img2img-grids",
|
||||
"outdir_save": "/output/saved",
|
||||
"font": "DejaVuSans.ttf"
|
||||
}
|
||||
61
services/AUTOMATIC1111/entrypoint.sh
Executable file
61
services/AUTOMATIC1111/entrypoint.sh
Executable file
@@ -0,0 +1,61 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -Eeuo pipefail
|
||||
|
||||
# TODO: move all mkdir -p ?
|
||||
mkdir -p /data/config/auto/scripts/
|
||||
cp -n /docker/config.json /data/config/auto/config.json
|
||||
jq '. * input' /data/config/auto/config.json /docker/config.json | sponge /data/config/auto/config.json
|
||||
|
||||
if [ ! -f /data/config/auto/ui-config.json ]; then
|
||||
echo '{}' >/data/config/auto/ui-config.json
|
||||
fi
|
||||
|
||||
# copy scripts, we cannot just mount the directory because it will override the already provided scripts in the repo
|
||||
cp -rfT /data/config/auto/scripts/ "${ROOT}/scripts"
|
||||
|
||||
declare -A MOUNTS
|
||||
|
||||
MOUNTS["/root/.cache"]="/data/.cache"
|
||||
|
||||
# main
|
||||
MOUNTS["${ROOT}/models/Stable-diffusion"]="/data/StableDiffusion"
|
||||
MOUNTS["${ROOT}/models/VAE"]="/data/VAE"
|
||||
MOUNTS["${ROOT}/models/Codeformer"]="/data/Codeformer"
|
||||
MOUNTS["${ROOT}/models/GFPGAN"]="/data/GFPGAN"
|
||||
MOUNTS["${ROOT}/models/ESRGAN"]="/data/ESRGAN"
|
||||
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/deepbooru"]="/data/Deepdanbooru"
|
||||
|
||||
MOUNTS["${ROOT}/embeddings"]="/data/embeddings"
|
||||
MOUNTS["${ROOT}/config.json"]="/data/config/auto/config.json"
|
||||
MOUNTS["${ROOT}/ui-config.json"]="/data/config/auto/ui-config.json"
|
||||
MOUNTS["${ROOT}/extensions"]="/data/config/auto/extensions"
|
||||
|
||||
# extra hacks
|
||||
MOUNTS["${ROOT}/repositories/CodeFormer/weights/facelib"]="/data/.cache"
|
||||
|
||||
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 "$@"
|
||||
14
services/AUTOMATIC1111/info.py
Normal file
14
services/AUTOMATIC1111/info.py
Normal file
@@ -0,0 +1,14 @@
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
file = Path(sys.argv[1])
|
||||
file.write_text(
|
||||
file.read_text()\
|
||||
.replace(' return demo', """
|
||||
with demo:
|
||||
gr.Markdown(
|
||||
'Created by [AUTOMATIC1111 / stable-diffusion-webui-docker](https://github.com/AbdBarho/stable-diffusion-webui-docker/)'
|
||||
)
|
||||
return demo
|
||||
""", 1)
|
||||
)
|
||||
6
services/download/Dockerfile
Normal file
6
services/download/Dockerfile
Normal file
@@ -0,0 +1,6 @@
|
||||
FROM bash:alpine3.15
|
||||
|
||||
RUN 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/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
|
||||
c209caecac2f97b4bb8f4d726b70ac2ac9b35904b7fc99801e1f5e61f9210c13 /data/LDSR/model.ckpt
|
||||
9d6ad53c5dafeb07200fb712db14b813b527edd262bc80ea136777bdb41be2ba /data/LDSR/project.yaml
|
||||
28
services/download/download.sh
Executable file
28
services/download/download.sh
Executable file
@@ -0,0 +1,28 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -Eeuo pipefail
|
||||
|
||||
# TODO: maybe just use the .gitignore file to create all of these
|
||||
mkdir -vp /data/.cache /data/StableDiffusion /data/Codeformer /data/GFPGAN /data/ESRGAN /data/BSRGAN /data/RealESRGAN /data/SwinIR /data/LDSR /data/ScuNET /data/embeddings /data/VAE /data/Deepdanbooru
|
||||
|
||||
echo "Downloading, this might take a while..."
|
||||
|
||||
aria2c --disable-ipv6 --input-file /docker/links.txt --dir /data --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/CompVis/stable-diffusion/blob/main/LICENSE
|
||||
https://github.com/AbdBarho/stable-diffusion-webui-docker/blob/master/LICENSE
|
||||
https://github.com/sd-webui/stable-diffusion-webui/blob/master/LICENSE
|
||||
https://github.com/invoke-ai/InvokeAI/blob/main/LICENSE
|
||||
https://github.com/cszn/BSRGAN/blob/main/LICENSE
|
||||
https://github.com/sczhou/CodeFormer/blob/master/LICENSE
|
||||
https://github.com/TencentARC/GFPGAN/blob/master/LICENSE
|
||||
https://github.com/xinntao/Real-ESRGAN/blob/master/LICENSE
|
||||
https://github.com/xinntao/ESRGAN/blob/master/LICENSE
|
||||
https://github.com/cszn/SCUNet/blob/main/LICENSE
|
||||
EOF
|
||||
16
services/download/links.txt
Normal file
16
services/download/links.txt
Normal file
@@ -0,0 +1,16 @@
|
||||
https://huggingface.co/ZeroCool94/stable-diffusion-v1-5/resolve/main/Stable%20Diffusion%20v1-5-Pruned-ema%20only.ckpt
|
||||
out=StableDiffusion/v1-5-pruned-emaonly.ckpt
|
||||
https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.ckpt
|
||||
out=VAE/vae-ft-mse-840000-ema-pruned.ckpt
|
||||
https://huggingface.co/ZeroCool94/stable-diffusion-v1-5/resolve/main/Stable%20Diffusion-v1-5-Inpainting.ckpt
|
||||
out=StableDiffusion/sd-v1-5-inpainting.ckpt
|
||||
https://github.com/TencentARC/GFPGAN/releases/download/v1.3.4/GFPGANv1.4.pth
|
||||
out=GFPGAN/GFPGANv1.4.pth
|
||||
https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth
|
||||
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
|
||||
58
services/invoke/Dockerfile
Normal file
58
services/invoke/Dockerfile
Normal file
@@ -0,0 +1,58 @@
|
||||
# syntax=docker/dockerfile:1
|
||||
|
||||
FROM python:3.10-slim
|
||||
SHELL ["/bin/bash", "-ceuxo", "pipefail"]
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive PIP_EXISTS_ACTION=w PIP_PREFER_BINARY=1 PIP_NO_CACHE_DIR=1
|
||||
|
||||
|
||||
RUN pip install torch==1.12.0+cu116 --extra-index-url https://download.pytorch.org/whl/cu116
|
||||
|
||||
RUN apt-get update && apt-get install git -y && apt-get clean
|
||||
|
||||
RUN git clone https://github.com/invoke-ai/InvokeAI.git /stable-diffusion
|
||||
|
||||
WORKDIR /stable-diffusion
|
||||
|
||||
RUN <<EOF
|
||||
git reset --hard 5c31feb3a1096d437c94b6e1c3224eb7a7224a85
|
||||
git config --global http.postBuffer 1048576000
|
||||
pip install -r binary_installer/py3.10-linux-x86_64-cuda-reqs.txt
|
||||
EOF
|
||||
|
||||
|
||||
# patch match:
|
||||
# https://github.com/invoke-ai/InvokeAI/blob/main/docs/installation/INSTALL_PATCHMATCH.md
|
||||
RUN <<EOF
|
||||
apt-get update
|
||||
# apt-get install build-essential python3-opencv libopencv-dev -y
|
||||
apt-get install make g++ libopencv-dev -y
|
||||
apt-get clean
|
||||
cd /usr/lib/x86_64-linux-gnu/pkgconfig/
|
||||
ln -sf opencv4.pc opencv.pc
|
||||
EOF
|
||||
|
||||
ARG BRANCH=main SHA=38cd968130e386d188bdef68f9fbfbbbfabb2da0
|
||||
RUN <<EOF
|
||||
git fetch
|
||||
git reset --hard
|
||||
git checkout ${BRANCH}
|
||||
git reset --hard ${SHA}
|
||||
pip install -r binary_installer/py3.10-linux-x86_64-cuda-reqs.txt
|
||||
EOF
|
||||
|
||||
RUN pip install --force-reinstall opencv-python-headless && python3 -c "from patchmatch import patch_match"
|
||||
|
||||
|
||||
COPY . /docker/
|
||||
RUN <<EOF
|
||||
python3 /docker/info.py /stable-diffusion/frontend/dist/index.html
|
||||
touch ~/.invokeai
|
||||
EOF
|
||||
|
||||
|
||||
ENV ROOT=/stable-diffusion PYTHONPATH="${PYTHONPATH}:${ROOT}" PRELOAD=false CLI_ARGS=""
|
||||
EXPOSE 7860
|
||||
|
||||
ENTRYPOINT ["/docker/entrypoint.sh"]
|
||||
CMD python3 -u scripts/invoke.py --web --host 0.0.0.0 --port 7860 --config /docker/models.yaml --root_dir ${ROOT} --outdir /output/invoke ${CLI_ARGS}
|
||||
47
services/invoke/entrypoint.sh
Executable file
47
services/invoke/entrypoint.sh
Executable file
@@ -0,0 +1,47 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -Eeuo pipefail
|
||||
|
||||
declare -A MOUNTS
|
||||
|
||||
# cache
|
||||
MOUNTS["/root/.cache"]=/data/.cache/
|
||||
|
||||
# ui specific
|
||||
MOUNTS["${ROOT}/models/codeformer"]=/data/Codeformer/
|
||||
|
||||
MOUNTS["${ROOT}/models/gfpgan/GFPGANv1.4.pth"]=/data/GFPGAN/GFPGANv1.4.pth
|
||||
MOUNTS["${ROOT}/models/gfpgan/weights"]=/data/.cache/
|
||||
|
||||
MOUNTS["${ROOT}/models/realesrgan"]=/data/RealESRGAN/
|
||||
|
||||
MOUNTS["${ROOT}/models/bert-base-uncased"]=/data/.cache/huggingface/transformers/
|
||||
MOUNTS["${ROOT}/models/openai/clip-vit-large-patch14"]=/data/.cache/huggingface/transformers/
|
||||
MOUNTS["${ROOT}/models/CompVis/stable-diffusion-safety-checker"]=/data/.cache/huggingface/transformers/
|
||||
|
||||
|
||||
MOUNTS["${ROOT}/embeddings"]=/data/embeddings/
|
||||
|
||||
# hacks
|
||||
MOUNTS["${ROOT}/models/clipseg"]=/data/.cache/invoke/clipseg/
|
||||
|
||||
for to_path in "${!MOUNTS[@]}"; do
|
||||
set -Eeuo pipefail
|
||||
from_path="${MOUNTS[${to_path}]}"
|
||||
rm -rf "${to_path}"
|
||||
mkdir -p "$(dirname "${to_path}")"
|
||||
# ends with slash, make it!
|
||||
if [[ "$from_path" == */ ]]; then
|
||||
mkdir -vp "$from_path"
|
||||
fi
|
||||
|
||||
ln -sT "${from_path}" "${to_path}"
|
||||
echo Mounted $(basename "${from_path}")
|
||||
done
|
||||
|
||||
if "${PRELOAD}" == "true"; then
|
||||
set -Eeuo pipefail
|
||||
python3 -u scripts/preload_models.py --no-interactive --root ${ROOT} --config_file /docker/models.yaml
|
||||
fi
|
||||
|
||||
exec "$@"
|
||||
13
services/invoke/info.py
Normal file
13
services/invoke/info.py
Normal file
@@ -0,0 +1,13 @@
|
||||
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)
|
||||
)
|
||||
23
services/invoke/models.yaml
Normal file
23
services/invoke/models.yaml
Normal file
@@ -0,0 +1,23 @@
|
||||
# This file describes the alternative machine learning models
|
||||
# available to InvokeAI script.
|
||||
#
|
||||
# To add a new model, follow the examples below. Each
|
||||
# model requires a model config file, a weights file,
|
||||
# and the width and height of the images it
|
||||
# was trained on.
|
||||
stable-diffusion-1.5:
|
||||
description: Stable Diffusion version 1.5
|
||||
weights: /data/StableDiffusion/v1-5-pruned-emaonly.ckpt
|
||||
vae: /data/VAE/vae-ft-mse-840000-ema-pruned.ckpt
|
||||
config: ./configs/stable-diffusion/v1-inference.yaml
|
||||
width: 512
|
||||
height: 512
|
||||
default: true
|
||||
inpainting-1.5:
|
||||
description: RunwayML SD 1.5 model optimized for inpainting
|
||||
weights: /data/StableDiffusion/sd-v1-5-inpainting.ckpt
|
||||
vae: /data/VAE/vae-ft-mse-840000-ema-pruned.ckpt
|
||||
config: ./configs/stable-diffusion/v1-inpainting-inference.yaml
|
||||
width: 512
|
||||
height: 512
|
||||
default: false
|
||||
53
services/sygil/Dockerfile
Normal file
53
services/sygil/Dockerfile
Normal file
@@ -0,0 +1,53 @@
|
||||
# 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
|
||||
|
||||
|
||||
ENV PIP_PREFER_BINARY=1 PIP_NO_CACHE_DIR=1
|
||||
|
||||
RUN <<EOF
|
||||
git config --global http.postBuffer 1048576000
|
||||
git clone https://github.com/Sygil-Dev/sygil-webui.git stable-diffusion
|
||||
cd stable-diffusion
|
||||
git reset --hard 091520bed06f913c9f432f9f47ccbe22b46068d7
|
||||
conda env update --file environment.yaml -n base
|
||||
conda clean -a -y
|
||||
EOF
|
||||
|
||||
RUN apt-get update && apt install libsndfile1 ffmpeg -y && apt-get clean
|
||||
|
||||
ARG BRANCH=dev SHA=18a3b809275c395b9a2730c78d6bc0f9b06671e1
|
||||
RUN <<EOF
|
||||
cd stable-diffusion
|
||||
git fetch
|
||||
git checkout ${BRANCH}
|
||||
git reset --hard ${SHA}
|
||||
conda env update --file environment.yaml -n base
|
||||
conda clean -a -y
|
||||
EOF
|
||||
|
||||
RUN pip install transformers==4.24.0
|
||||
|
||||
# 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
services/sygil/info.py
Normal file
13
services/sygil/info.py
Normal file
@@ -0,0 +1,13 @@
|
||||
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)
|
||||
)
|
||||
32
services/sygil/mount.sh
Executable file
32
services/sygil/mount.sh
Executable file
@@ -0,0 +1,32 @@
|
||||
#!/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
|
||||
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
|
||||
|
||||
# streamlit config
|
||||
ln -sf /docker/userconfig_streamlit.yaml /stable-diffusion/configs/webui/userconfig_streamlit.yaml
|
||||
10
services/sygil/run.sh
Executable file
10
services/sygil/run.sh
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -Eeuo pipefail
|
||||
|
||||
echo "USE_STREAMLIT = ${USE_STREAMLIT}"
|
||||
if [ "${USE_STREAMLIT}" == "1" ]; then
|
||||
python -u -m streamlit run scripts/webui_streamlit.py
|
||||
else
|
||||
python3 -u scripts/webui.py --outdir /output --ckpt /data/StableDiffusion/v1-5-pruned-emaonly.ckpt ${CLI_ARGS}
|
||||
fi
|
||||
11
services/sygil/userconfig_streamlit.yaml
Normal file
11
services/sygil/userconfig_streamlit.yaml
Normal file
@@ -0,0 +1,11 @@
|
||||
# https://github.com/Sygil-Dev/sygil-webui/blob/master/configs/webui/webui_streamlit.yaml
|
||||
general:
|
||||
version: 1.24.6
|
||||
outdir: /output
|
||||
default_model: "Stable Diffusion v1.5"
|
||||
default_model_path: /data/StableDiffusion/v1-5-pruned-emaonly.ckpt
|
||||
outdir_txt2img: /output/txt2img
|
||||
outdir_img2img: /output/img2img
|
||||
outdir_img2txt: /output/img2txt
|
||||
optimized: True
|
||||
optimized_turbo: True
|
||||
Reference in New Issue
Block a user