mirror of
https://github.com/AbdBarho/stable-diffusion-webui-docker.git
synced 2025-10-27 16:24:26 -04:00
Compare commits
28 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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 |
@@ -2,4 +2,4 @@
|
|||||||
|
|
||||||
set -Eeuo pipefail
|
set -Eeuo pipefail
|
||||||
|
|
||||||
find . -name "*.sh" -exec git update-index --chmod=+x {} \;
|
find services -name "*.sh" -exec git update-index --chmod=+x {} \;
|
||||||
|
|||||||
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
|
||||||
8
.github/pull_request_template.md
vendored
8
.github/pull_request_template.md
vendored
@@ -1,3 +1,11 @@
|
|||||||
|
<!--
|
||||||
|
Have you created an issue before opening a merge request???
|
||||||
|
https://github.com/AbdBarho/stable-diffusion-webui-docker#contributing
|
||||||
|
Please create one so we can discuss it, I don't want your effort to go to waste.
|
||||||
|
-->
|
||||||
|
|
||||||
|
Closes issue #
|
||||||
|
|
||||||
### Update versions
|
### Update versions
|
||||||
|
|
||||||
- auto: https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/
|
- auto: https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/
|
||||||
|
|||||||
8
.github/workflows/docker.yml
vendored
8
.github/workflows/docker.yml
vendored
@@ -1,6 +1,12 @@
|
|||||||
name: Build Images
|
name: Build Images
|
||||||
|
|
||||||
on: [push]
|
on:
|
||||||
|
push:
|
||||||
|
branches: master
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- docker-compose.yml
|
||||||
|
- services
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
|||||||
4
.github/workflows/stale.yml
vendored
4
.github/workflows/stale.yml
vendored
@@ -1,13 +1,13 @@
|
|||||||
name: 'Close stale issues and PRs'
|
name: 'Close stale issues and PRs'
|
||||||
on:
|
on:
|
||||||
schedule:
|
schedule:
|
||||||
- cron: '30 1 * * *'
|
- cron: '0 0 * * *'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
stale:
|
stale:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/stale@v5
|
- uses: actions/stale@v6
|
||||||
with:
|
with:
|
||||||
only-labels: awaiting-response
|
only-labels: awaiting-response
|
||||||
stale-issue-message: This issue is stale because it has been open 14 days with no activity. Remove stale label or comment or this will be closed in 7 days.
|
stale-issue-message: This issue is stale because it has been open 14 days with no activity. Remove stale label or comment or this will be closed in 7 days.
|
||||||
|
|||||||
24
README.md
24
README.md
@@ -2,10 +2,19 @@
|
|||||||
|
|
||||||
Run Stable Diffusion on your machine with a nice UI without any hassle!
|
Run Stable Diffusion on your machine with a nice UI without any hassle!
|
||||||
|
|
||||||
This repository provides multiple UIs for you to play around with stable diffusion:
|
|
||||||
|
|
||||||
|
## 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!
|
||||||
|
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
Contributions are welcome! **Create a discussion first of what the problem is and what you want to contribute (before you implement anything)**
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
|
This repository provides multiple UIs for you to play around with stable diffusion:
|
||||||
|
|
||||||
### AUTOMATIC1111
|
### AUTOMATIC1111
|
||||||
|
|
||||||
[AUTOMATIC1111's fork](https://github.com/AUTOMATIC1111/stable-diffusion-webui) is imho the most feature rich yet elegant UI:
|
[AUTOMATIC1111's fork](https://github.com/AUTOMATIC1111/stable-diffusion-webui) is imho the most feature rich yet elegant UI:
|
||||||
@@ -23,16 +32,16 @@ This repository provides multiple UIs for you to play around with stable diffusi
|
|||||||
| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
|
| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
|
||||||
|  |  |  |
|
|  |  |  |
|
||||||
|
|
||||||
### hlky (sd-webui)
|
### hlky (sd-webui / sygil-webui)
|
||||||
|
|
||||||
[hlky's fork](https://github.com/sd-webui/stable-diffusion-webui) is one of the most popular UIs, with many features:
|
[hlky's fork](https://github.com/Sygil-Dev/sygil-webui) is one of the most popular UIs, with many features:
|
||||||
|
|
||||||
- Text to image, with many samplers
|
- Text to image, with many samplers
|
||||||
- Image to image, with masking, cropping, in-painting, variations.
|
- Image to image, with masking, cropping, in-painting, variations.
|
||||||
- GFPGAN, RealESRGAN, LDSR, GoBig, GoLatent
|
- GFPGAN, RealESRGAN, LDSR, GoBig, GoLatent
|
||||||
- Loopback, prompt weighting
|
- Loopback, prompt weighting
|
||||||
- 6GB or even 4GB GPU support!
|
- 6GB or even 4GB GPU support!
|
||||||
- [Full feature list here](https://github.com/sd-webui/stable-diffusion-webui/blob/master/README.md)
|
- [Full feature list here](https://github.com/Sygil-Dev/sygil-webui/blob/master/README.md)
|
||||||
|
|
||||||
Screenshots:
|
Screenshots:
|
||||||
|
|
||||||
@@ -55,13 +64,6 @@ Screenshots:
|
|||||||
| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
|
| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
|
||||||
|  |  |  |
|
|  |  |  |
|
||||||
|
|
||||||
## 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!
|
|
||||||
|
|
||||||
## Contributing
|
|
||||||
|
|
||||||
Contributions are welcome! create an issue first of what you want to contribute (before you implement anything) so we can talk about it.
|
|
||||||
|
|
||||||
## Disclaimer
|
## Disclaimer
|
||||||
|
|
||||||
|
|||||||
2
data/.gitignore
vendored
2
data/.gitignore
vendored
@@ -13,5 +13,7 @@
|
|||||||
/SwinIR
|
/SwinIR
|
||||||
/ScuNET
|
/ScuNET
|
||||||
/LDSR
|
/LDSR
|
||||||
|
/Deepdanbooru
|
||||||
/Hypernetworks
|
/Hypernetworks
|
||||||
|
/VAE
|
||||||
/embeddings
|
/embeddings
|
||||||
|
|||||||
@@ -23,20 +23,11 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- *v1
|
- *v1
|
||||||
|
|
||||||
hlky:
|
|
||||||
<<: *base_service
|
|
||||||
profiles: ["hlky"]
|
|
||||||
build: ./services/hlky/
|
|
||||||
image: sd-hlky:1
|
|
||||||
environment:
|
|
||||||
- CLI_ARGS=--optimized-turbo
|
|
||||||
- USE_STREAMLIT=0
|
|
||||||
|
|
||||||
auto: &automatic
|
auto: &automatic
|
||||||
<<: *base_service
|
<<: *base_service
|
||||||
profiles: ["auto"]
|
profiles: ["auto"]
|
||||||
build: ./services/AUTOMATIC1111
|
build: ./services/AUTOMATIC1111
|
||||||
image: sd-auto:1
|
image: sd-auto:18
|
||||||
environment:
|
environment:
|
||||||
- CLI_ARGS=--allow-code --medvram --xformers
|
- CLI_ARGS=--allow-code --medvram --xformers
|
||||||
|
|
||||||
@@ -47,11 +38,20 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- CLI_ARGS=--no-half --precision full
|
- CLI_ARGS=--no-half --precision full
|
||||||
|
|
||||||
|
hlky:
|
||||||
|
<<: *base_service
|
||||||
|
profiles: ["hlky"]
|
||||||
|
build: ./services/hlky/
|
||||||
|
image: sd-hlky:9
|
||||||
|
environment:
|
||||||
|
- CLI_ARGS=--optimized-turbo
|
||||||
|
- USE_STREAMLIT=0
|
||||||
|
|
||||||
lstein:
|
lstein:
|
||||||
<<: *base_service
|
<<: *base_service
|
||||||
profiles: ["lstein"]
|
profiles: ["lstein"]
|
||||||
build: ./services/lstein/
|
build: ./services/lstein/
|
||||||
image: sd-lstein:1
|
image: sd-lstein:7
|
||||||
environment:
|
environment:
|
||||||
- PRELOAD=true
|
- PRELOAD=true
|
||||||
- CLI_ARGS=
|
- CLI_ARGS=--max_loaded_models=1
|
||||||
|
|||||||
@@ -4,26 +4,29 @@ FROM alpine/git:2.36.2 as download
|
|||||||
|
|
||||||
SHELL ["/bin/sh", "-ceuxo", "pipefail"]
|
SHELL ["/bin/sh", "-ceuxo", "pipefail"]
|
||||||
|
|
||||||
RUN git clone https://github.com/CompVis/stable-diffusion.git repositories/stable-diffusion && cd repositories/stable-diffusion && git reset --hard 69ae4b35e0a0f6ee1af8bb9a5d0016ccb27e36dc
|
|
||||||
|
|
||||||
RUN git clone https://github.com/sczhou/CodeFormer.git repositories/CodeFormer && cd repositories/CodeFormer && git reset --hard c5b4593074ba6214284d6acd5f1719b6c5d739af
|
|
||||||
RUN git clone https://github.com/salesforce/BLIP.git repositories/BLIP && cd repositories/BLIP && git reset --hard 48211a1594f1321b00f14c9f7a5b4813144b2fb9
|
|
||||||
|
|
||||||
RUN <<EOF
|
RUN <<EOF
|
||||||
# because taming-transformers is huge
|
cat <<'EOE' > /clone.sh
|
||||||
git config --global http.postBuffer 1048576000
|
mkdir -p repositories/"$1" && cd repositories/"$1" && git init && git remote add origin "$2" && git fetch origin "$3" --depth=1 && git reset --hard "$3" && rm -rf .git
|
||||||
git clone https://github.com/CompVis/taming-transformers.git repositories/taming-transformers
|
EOE
|
||||||
cd repositories/taming-transformers
|
|
||||||
git reset --hard 24268930bf1dce879235a7fddd0b2355b84d7ea6
|
|
||||||
rm -rf data assets
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
RUN git clone https://github.com/crowsonkb/k-diffusion.git repositories/k-diffusion && cd repositories/k-diffusion && git reset --hard f4e99857772fc3a126ba886aadf795a332774878
|
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
|
FROM alpine:3 as xformers
|
||||||
RUN apk add aria2
|
RUN apk add aria2
|
||||||
RUN aria2c --dir / --out wheel.whl 'https://github.com/AbdBarho/stable-diffusion-webui-docker/releases/download/2.1.0/xformers-0.0.14.dev0-cp310-cp310-linux_x86_64.whl'
|
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
|
FROM python:3.10-slim
|
||||||
|
|
||||||
@@ -31,57 +34,63 @@ SHELL ["/bin/bash", "-ceuxo", "pipefail"]
|
|||||||
|
|
||||||
ENV DEBIAN_FRONTEND=noninteractive PIP_PREFER_BINARY=1 PIP_NO_CACHE_DIR=1
|
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 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 -y && apt-get clean
|
RUN apt-get update && apt install fonts-dejavu-core rsync git jq moreutils -y && apt-get clean
|
||||||
|
|
||||||
|
|
||||||
RUN <<EOF
|
RUN <<EOF
|
||||||
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
|
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
|
||||||
cd stable-diffusion-webui
|
cd stable-diffusion-webui
|
||||||
git reset --hard 1eb588cbf19924333b88beaa1ac0041904966640
|
git reset --hard 98947d173e3f1667eba29c904f681047dea9de90
|
||||||
pip install -r requirements_versions.txt
|
pip install -r requirements_versions.txt
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
ENV ROOT=/stable-diffusion-webui \
|
|
||||||
WORKDIR=/stable-diffusion-webui/repositories/stable-diffusion
|
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}
|
COPY --from=download /git/ ${ROOT}
|
||||||
RUN pip install --prefer-binary --no-cache-dir -r ${ROOT}/repositories/CodeFormer/requirements.txt
|
RUN mkdir ${ROOT}/interrogate && cp ${ROOT}/repositories/clip-interrogator/data/* ${ROOT}/interrogate
|
||||||
|
RUN pip install -r ${ROOT}/repositories/CodeFormer/requirements.txt
|
||||||
# TODO: move to top
|
|
||||||
RUN apt-get install jq moreutils -y
|
|
||||||
|
|
||||||
|
|
||||||
# Note: don't update the sha of previous versions because the install will take forever
|
ARG DEEPDANBOORU="0"
|
||||||
# instead, update the repo state in a later step
|
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
|
||||||
|
|
||||||
ARG SHA=f49c08ea566385db339c6628f65c3a121033f67c
|
|
||||||
RUN <<EOF
|
|
||||||
cd stable-diffusion-webui
|
|
||||||
git pull --rebase
|
|
||||||
git reset --hard ${SHA}
|
|
||||||
pip install -r requirements_versions.txt
|
|
||||||
EOF
|
|
||||||
|
|
||||||
RUN pip install opencv-python-headless \
|
RUN pip install opencv-python-headless \
|
||||||
git+https://github.com/TencentARC/GFPGAN.git@8d2447a2d918f8eba5a4a01463fd48e45126a379 \
|
git+https://github.com/TencentARC/GFPGAN.git@8d2447a2d918f8eba5a4a01463fd48e45126a379 \
|
||||||
git+https://github.com/openai/CLIP.git@d50d76daa670286dd6cacf3bcd80b5e4823fc8e1 \
|
git+https://github.com/openai/CLIP.git@d50d76daa670286dd6cacf3bcd80b5e4823fc8e1 \
|
||||||
pyngrok
|
pyngrok
|
||||||
|
|
||||||
COPY --from=xformers /wheel.whl xformers-0.0.14.dev0-cp310-cp310-linux_x86_64.whl
|
# Note: don't update the sha of previous versions because the install will take forever
|
||||||
RUN pip install xformers-0.0.14.dev0-cp310-cp310-linux_x86_64.whl
|
# instead, update the repo state in a later step
|
||||||
|
|
||||||
COPY . /docker
|
ARG SHA=47a44c7e421b98ca07e92dbf88769b04c9e28f86
|
||||||
RUN <<EOF
|
RUN <<EOF
|
||||||
chmod +x /docker/mount.sh && python3 /docker/info.py ${ROOT}/modules/ui.py
|
cd stable-diffusion-webui
|
||||||
|
git fetch
|
||||||
|
git reset --hard ${SHA}
|
||||||
|
pip install -r requirements_versions.txt
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
RUN pip install opencv-python-headless
|
||||||
|
|
||||||
|
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=""
|
ENV CLI_ARGS=""
|
||||||
WORKDIR ${WORKDIR}
|
|
||||||
EXPOSE 7860
|
EXPOSE 7860
|
||||||
|
ENTRYPOINT ["/docker/entrypoint.sh"]
|
||||||
# run, -u to not buffer stdout / stderr
|
# run, -u to not buffer stdout / stderr
|
||||||
CMD /docker/mount.sh && \
|
CMD python3 -u webui.py --listen --port 7860 ${CLI_ARGS}
|
||||||
python3 -u ../../webui.py --listen --port 7860 --ckpt-dir ${ROOT}/models/Stable-diffusion --theme dark ${CLI_ARGS}
|
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
|
|
||||||
set -Eeuo pipefail
|
set -Eeuo pipefail
|
||||||
|
|
||||||
mkdir -p /data/config/auto/
|
# TODO: move all mkdir -p ?
|
||||||
|
mkdir -p /data/config/auto/scripts/
|
||||||
cp -n /docker/config.json /data/config/auto/config.json
|
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
|
jq '. * input' /data/config/auto/config.json /docker/config.json | sponge /data/config/auto/config.json
|
||||||
|
|
||||||
@@ -10,12 +11,16 @@ if [ ! -f /data/config/auto/ui-config.json ]; then
|
|||||||
echo '{}' >/data/config/auto/ui-config.json
|
echo '{}' >/data/config/auto/ui-config.json
|
||||||
fi
|
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
|
declare -A MOUNTS
|
||||||
|
|
||||||
MOUNTS["/root/.cache"]="/data/.cache"
|
MOUNTS["/root/.cache"]="/data/.cache"
|
||||||
|
|
||||||
# main
|
# main
|
||||||
MOUNTS["${ROOT}/models/Stable-diffusion"]="/data/StableDiffusion"
|
MOUNTS["${ROOT}/models/Stable-diffusion"]="/data/StableDiffusion"
|
||||||
|
MOUNTS["${ROOT}/models/VAE"]="/data/VAE"
|
||||||
MOUNTS["${ROOT}/models/Codeformer"]="/data/Codeformer"
|
MOUNTS["${ROOT}/models/Codeformer"]="/data/Codeformer"
|
||||||
MOUNTS["${ROOT}/models/GFPGAN"]="/data/GFPGAN"
|
MOUNTS["${ROOT}/models/GFPGAN"]="/data/GFPGAN"
|
||||||
MOUNTS["${ROOT}/models/ESRGAN"]="/data/ESRGAN"
|
MOUNTS["${ROOT}/models/ESRGAN"]="/data/ESRGAN"
|
||||||
@@ -25,10 +30,12 @@ MOUNTS["${ROOT}/models/SwinIR"]="/data/SwinIR"
|
|||||||
MOUNTS["${ROOT}/models/ScuNET"]="/data/ScuNET"
|
MOUNTS["${ROOT}/models/ScuNET"]="/data/ScuNET"
|
||||||
MOUNTS["${ROOT}/models/LDSR"]="/data/LDSR"
|
MOUNTS["${ROOT}/models/LDSR"]="/data/LDSR"
|
||||||
MOUNTS["${ROOT}/models/hypernetworks"]="/data/Hypernetworks"
|
MOUNTS["${ROOT}/models/hypernetworks"]="/data/Hypernetworks"
|
||||||
|
MOUNTS["${ROOT}/models/deepbooru"]="/data/Deepdanbooru"
|
||||||
|
|
||||||
MOUNTS["${ROOT}/embeddings"]="/data/embeddings"
|
MOUNTS["${ROOT}/embeddings"]="/data/embeddings"
|
||||||
MOUNTS["${ROOT}/config.json"]="/data/config/auto/config.json"
|
MOUNTS["${ROOT}/config.json"]="/data/config/auto/config.json"
|
||||||
MOUNTS["${ROOT}/ui-config.json"]="/data/config/auto/ui-config.json"
|
MOUNTS["${ROOT}/ui-config.json"]="/data/config/auto/ui-config.json"
|
||||||
|
MOUNTS["${ROOT}/extensions"]="/data/config/auto/extensions"
|
||||||
|
|
||||||
# extra hacks
|
# extra hacks
|
||||||
MOUNTS["${ROOT}/repositories/CodeFormer/weights/facelib"]="/data/.cache"
|
MOUNTS["${ROOT}/repositories/CodeFormer/weights/facelib"]="/data/.cache"
|
||||||
@@ -46,3 +53,11 @@ for to_path in "${!MOUNTS[@]}"; do
|
|||||||
done
|
done
|
||||||
|
|
||||||
mkdir -p /output/saved /output/txt2img-images/ /output/img2img-images /output/extras-images/ /output/grids/ /output/txt2img-grids/ /output/img2img-grids/
|
mkdir -p /output/saved /output/txt2img-images/ /output/img2img-images /output/extras-images/ /output/grids/ /output/txt2img-grids/ /output/img2img-grids/
|
||||||
|
|
||||||
|
if [ -f "/data/config/auto/startup.sh" ]; then
|
||||||
|
pushd ${ROOT}
|
||||||
|
. /data/config/auto/startup.sh
|
||||||
|
popd
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec "$@"
|
||||||
@@ -1,4 +1,6 @@
|
|||||||
fe4efff1e174c627256e44ec2991ba279b3816e364b49f9be2abc0b3ff3f8556 /data/StableDiffusion/model.ckpt
|
cc6cb27103417325ff94f52b7a5d2dde45a7515b25c255d8e396c90014281516 /data/StableDiffusion/v1-5-pruned-emaonly.ckpt
|
||||||
|
c6bbc15e3224e6973459ba78de4998b80b50112b0ae5b5c67113d56b4e366b19 /data/StableDiffusion/sd-v1-5-inpainting.ckpt
|
||||||
|
c6a580b13a5bc05a5e16e4dbb80608ff2ec251a162311590c1f34c013d7f3dab /data/VAE/vae-ft-mse-840000-ema-pruned.ckpt
|
||||||
e2cd4703ab14f4d01fd1383a8a8b266f9a5833dacee8e6a79d3bf21a1b6be5ad /data/GFPGAN/GFPGANv1.4.pth
|
e2cd4703ab14f4d01fd1383a8a8b266f9a5833dacee8e6a79d3bf21a1b6be5ad /data/GFPGAN/GFPGANv1.4.pth
|
||||||
4fa0d38905f75ac06eb49a7951b426670021be3018265fd191d2125df9d682f1 /data/RealESRGAN/RealESRGAN_x4plus.pth
|
4fa0d38905f75ac06eb49a7951b426670021be3018265fd191d2125df9d682f1 /data/RealESRGAN/RealESRGAN_x4plus.pth
|
||||||
f872d837d3c90ed2e05227bed711af5671a6fd1c9f7d7e91c911a61f155e99da /data/RealESRGAN/RealESRGAN_x4plus_anime_6B.pth
|
f872d837d3c90ed2e05227bed711af5671a6fd1c9f7d7e91c911a61f155e99da /data/RealESRGAN/RealESRGAN_x4plus_anime_6B.pth
|
||||||
|
|||||||
@@ -2,18 +2,17 @@
|
|||||||
|
|
||||||
set -Eeuo pipefail
|
set -Eeuo pipefail
|
||||||
|
|
||||||
mkdir -p /data/.cache /data/StableDiffusion /data/Codeformer /data/GFPGAN /data/ESRGAN /data/BSRGAN /data/RealESRGAN /data/SwinIR /data/LDSR /data/ScuNET /data/embeddings
|
# TODO: maybe just use the .gitignore file to create all of these
|
||||||
|
mkdir -vp /data/.cache /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..."
|
echo "Downloading, this might take a while..."
|
||||||
|
|
||||||
aria2c --input-file /docker/links.txt --dir /data --continue
|
aria2c --disable-ipv6 --input-file /docker/links.txt --dir /data --continue
|
||||||
|
|
||||||
echo "Checking SHAs..."
|
echo "Checking SHAs..."
|
||||||
|
|
||||||
parallel --will-cite -a /docker/checksums.sha256 "echo -n {} | sha256sum -c"
|
parallel --will-cite -a /docker/checksums.sha256 "echo -n {} | sha256sum -c"
|
||||||
|
|
||||||
# aria2c already does hash check
|
|
||||||
# cc6cb27103417325ff94f52b7a5d2dde45a7515b25c255d8e396c90014281516 /data/StableDiffusion/v1-5-pruned-emaonly.ckpt
|
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
By using this software, you agree to the following licenses:
|
By using this software, you agree to the following licenses:
|
||||||
https://github.com/CompVis/stable-diffusion/blob/main/LICENSE
|
https://github.com/CompVis/stable-diffusion/blob/main/LICENSE
|
||||||
|
|||||||
@@ -1,13 +1,9 @@
|
|||||||
magnet:?xt=urn:btih:2daef5b5f63a16a9af9169a529b1a773fc452637&dn=v1-5-pruned-emaonly.ckpt&tr=udp%3a%2f%2ftracker.opentrackr.org%3a1337%2fannounce&tr=udp%3a%2f%2f9.rarbg.com%3a2810%2fannounce&tr=udp%3a%2f%2ftracker.openbittorrent.com%3a6969%2fannounce&tr=udp%3a%2f%2fopentracker.i2p.rocks%3a6969%2fannounce&tr=https%3a%2f%2fopentracker.i2p.rocks%3a443%2fannounce&tr=http%3a%2f%2ftracker.openbittorrent.com%3a80%2fannounce&tr=udp%3a%2f%2ftracker.torrent.eu.org%3a451%2fannounce&tr=udp%3a%2f%2fopen.stealth.si%3a80%2fannounce&tr=udp%3a%2f%2fvibe.sleepyinternetfun.xyz%3a1738%2fannounce&tr=udp%3a%2f%2ftracker2.dler.org%3a80%2fannounce&tr=udp%3a%2f%2ftracker1.bt.moack.co.kr%3a80%2fannounce&tr=udp%3a%2f%2ftracker.zemoj.com%3a6969%2fannounce&tr=udp%3a%2f%2ftracker.tiny-vps.com%3a6969%2fannounce&tr=udp%3a%2f%2ftracker.theoks.net%3a6969%2fannounce&tr=udp%3a%2f%2ftracker.publictracker.xyz%3a6969%2fannounce&tr=udp%3a%2f%2ftracker.monitorit4.me%3a6969%2fannounce&tr=udp%3a%2f%2ftracker.moeking.me%3a6969%2fannounce&tr=udp%3a%2f%2ftracker.lelux.fi%3a6969%2fannounce&tr=udp%3a%2f%2ftracker.dler.org%3a6969%2fannounce&tr=udp%3a%2f%2ftracker.army%3a6969%2fannounce
|
https://huggingface.co/ZeroCool94/stable-diffusion-v1-5/resolve/main/Stable%20Diffusion%20v1-5-Pruned-ema%20only.ckpt
|
||||||
select-file=1
|
out=StableDiffusion/v1-5-pruned-emaonly.ckpt
|
||||||
index-out=1=StableDiffusion/v1-5-pruned-emaonly.ckpt
|
https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.ckpt
|
||||||
follow-torrent=mem
|
out=VAE/vae-ft-mse-840000-ema-pruned.ckpt
|
||||||
follow-metalink=mem
|
https://huggingface.co/ZeroCool94/stable-diffusion-v1-5/resolve/main/Stable%20Diffusion-v1-5-Inpainting.ckpt
|
||||||
seed-time=0
|
out=StableDiffusion/sd-v1-5-inpainting.ckpt
|
||||||
# this is the only way aria2c won't fail if the file already exists
|
|
||||||
check-integrity=true
|
|
||||||
https://drive.yerf.org/wl/?id=EBfTrmcCCUAGaQBXVIj5lJmEhjoP1tgl&mode=grid&download=1
|
|
||||||
out=StableDiffusion/model.ckpt
|
|
||||||
https://github.com/TencentARC/GFPGAN/releases/download/v1.3.4/GFPGANv1.4.pth
|
https://github.com/TencentARC/GFPGAN/releases/download/v1.3.4/GFPGANv1.4.pth
|
||||||
out=GFPGAN/GFPGANv1.4.pth
|
out=GFPGAN/GFPGANv1.4.pth
|
||||||
https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth
|
https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth
|
||||||
|
|||||||
@@ -12,17 +12,20 @@ RUN conda install pytorch==1.11.0 torchvision==0.12.0 cudatoolkit=11.3 -c pytorc
|
|||||||
RUN apt-get update && apt install fonts-dejavu-core rsync gcc -y && apt-get clean
|
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
|
RUN <<EOF
|
||||||
git config --global http.postBuffer 1048576000
|
git config --global http.postBuffer 1048576000
|
||||||
git clone https://github.com/sd-webui/stable-diffusion-webui.git stable-diffusion
|
git clone https://github.com/Sygil-Dev/sygil-webui.git stable-diffusion
|
||||||
cd stable-diffusion
|
cd stable-diffusion
|
||||||
git reset --hard 1a9c053cb7b6832695771db2555c0adc9b41e95f
|
git reset --hard 091520bed06f913c9f432f9f47ccbe22b46068d7
|
||||||
conda env update --file environment.yaml -n base
|
conda env update --file environment.yaml -n base
|
||||||
conda clean -a -y
|
conda clean -a -y
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
RUN apt-get update && apt install libsndfile1 ffmpeg -y && apt-get clean
|
||||||
|
|
||||||
ARG BRANCH=dev SHA=8d1e42b9c50c747d056b0a98f3c2eb7652fb73a7
|
ARG BRANCH=dev SHA=269107a104fc9fee3201eb2c56cf7adb3d063e4b
|
||||||
RUN <<EOF
|
RUN <<EOF
|
||||||
cd stable-diffusion
|
cd stable-diffusion
|
||||||
git fetch
|
git fetch
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ MOUNTS["${PWD}/models/custom"]=/data/StableDiffusion
|
|||||||
# hack
|
# hack
|
||||||
MOUNTS["${PWD}/models/gfpgan/GFPGANv1.3.pth"]=/data/GFPGAN/GFPGANv1.4.pth
|
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}/models/gfpgan/GFPGANv1.4.pth"]=/data/GFPGAN/GFPGANv1.4.pth
|
||||||
|
MOUNTS["${PWD}/gfpgan/weights"]=/data/.cache
|
||||||
|
|
||||||
|
|
||||||
for to_path in "${!MOUNTS[@]}"; do
|
for to_path in "${!MOUNTS[@]}"; do
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
general:
|
general:
|
||||||
version: 1.20.0
|
version: 1.24.6
|
||||||
outdir: /output
|
outdir: /output
|
||||||
default_model: "Stable Diffusion v1.5"
|
default_model: "Stable Diffusion v1.5"
|
||||||
default_model_path: /data/StableDiffusion/v1-5-pruned-emaonly.ckpt
|
default_model_path: /data/StableDiffusion/v1-5-pruned-emaonly.ckpt
|
||||||
outdir_txt2img: /output/txt2img-samples
|
outdir_txt2img: /output/txt2img-samples
|
||||||
outdir_img2img: /output/img2img-samples
|
outdir_img2img: /output/img2img-samples
|
||||||
outdir_img2txt: /output/img2txt
|
outdir_img2txt: /output/img2txt
|
||||||
|
optimized: True
|
||||||
optimized_turbo: True
|
optimized_turbo: True
|
||||||
|
|||||||
@@ -1,52 +1,48 @@
|
|||||||
# syntax=docker/dockerfile:1
|
# syntax=docker/dockerfile:1
|
||||||
|
|
||||||
FROM continuumio/miniconda3:4.12.0
|
FROM python:3.10-slim
|
||||||
|
|
||||||
SHELL ["/bin/bash", "-ceuxo", "pipefail"]
|
SHELL ["/bin/bash", "-ceuxo", "pipefail"]
|
||||||
|
|
||||||
ENV DEBIAN_FRONTEND=noninteractive
|
ENV DEBIAN_FRONTEND=noninteractive PIP_EXISTS_ACTION=w PIP_PREFER_BINARY=1 PIP_NO_CACHE_DIR=1
|
||||||
|
|
||||||
# now it requires python3.9
|
|
||||||
RUN conda install python=3.9 && conda clean -a -y
|
|
||||||
RUN conda install pytorch==1.11.0 torchvision==0.12.0 cudatoolkit=11.3 -c pytorch && conda clean -a -y
|
|
||||||
|
|
||||||
RUN apt-get update && apt install fonts-dejavu-core rsync gcc -y && apt-get clean
|
RUN pip install torch==1.13.0 torchvision --extra-index-url https://download.pytorch.org/whl/cu117
|
||||||
|
|
||||||
ENV PIP_EXISTS_ACTION=w
|
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
|
RUN <<EOF
|
||||||
git clone https://github.com/invoke-ai/InvokeAI.git stable-diffusion
|
git reset --hard 2b7e3abe57963d199f1d825ddef87ae154c81045
|
||||||
cd stable-diffusion
|
|
||||||
git reset --hard 79e79b78aaeedb49afcc795e0e00eebfdbedee96
|
|
||||||
git config --global http.postBuffer 1048576000
|
git config --global http.postBuffer 1048576000
|
||||||
conda env update --file environment.yml -n base
|
ln -sf environments-and-requirements/requirements-lin-cuda.txt requirements.txt
|
||||||
conda clean -a -y
|
pip install -r requirements.txt
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
|
||||||
ARG BRANCH=development SHA=554445a985d970200095bbcb109273a49c462682
|
ARG BRANCH=development SHA=2b7e3abe57963d199f1d825ddef87ae154c81045
|
||||||
RUN <<EOF
|
RUN <<EOF
|
||||||
cd stable-diffusion
|
|
||||||
git fetch
|
git fetch
|
||||||
git reset --hard
|
git reset --hard
|
||||||
git checkout ${BRANCH}
|
git checkout ${BRANCH}
|
||||||
git reset --hard ${SHA}
|
git reset --hard ${SHA}
|
||||||
conda env update --file environment.yml -n base
|
pip install -r requirements.txt
|
||||||
conda clean -a -y
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
RUN pip uninstall opencv-python -y && pip install --prefer-binary --force-reinstall --no-cache-dir opencv-python-headless
|
RUN pip uninstall opencv-python -y && pip install --force-reinstall opencv-python-headless==4.5.5.64
|
||||||
|
|
||||||
COPY . /docker/
|
COPY . /docker/
|
||||||
RUN <<EOF
|
RUN <<EOF
|
||||||
python3 /docker/info.py /stable-diffusion/frontend/dist/index.html
|
python3 /docker/info.py /stable-diffusion/frontend/dist/index.html
|
||||||
chmod +x /docker/mount.sh
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
|
||||||
ENV PRELOAD=false CLI_ARGS=""
|
ENV ROOT=/stable-diffusion PRELOAD=false CLI_ARGS=""
|
||||||
WORKDIR /stable-diffusion
|
|
||||||
EXPOSE 7860
|
EXPOSE 7860
|
||||||
|
|
||||||
CMD /docker/mount.sh && \
|
|
||||||
python3 -u scripts/invoke.py --outdir /output --web --host 0.0.0.0 --port 7860 ${CLI_ARGS}
|
ENTRYPOINT ["/docker/entrypoint.sh"]
|
||||||
|
CMD python3 -u scripts/invoke.py --outdir /output --web --host 0.0.0.0 --port 7860 ${CLI_ARGS}
|
||||||
|
|||||||
47
services/lstein/entrypoint.sh
Executable file
47
services/lstein/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}/configs/models.yaml"]=/docker/models.yaml
|
||||||
|
# hacks
|
||||||
|
MOUNTS["/opt/conda/lib/python3.10/site-packages/facexlib/weights"]=/data/.cache/
|
||||||
|
MOUNTS["${ROOT}/models/clipseg"]=/data/.cache/invoke/clipseg/
|
||||||
|
|
||||||
|
# MOUNTS["/opt/conda/lib/python3.9/site-packages/realesrgan/weights"]=/data/RealESRGAN
|
||||||
|
|
||||||
|
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
|
||||||
|
python3 -u scripts/preload_models.py --no-interactive
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec "$@"
|
||||||
23
services/lstein/models.yaml
Normal file
23
services/lstein/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
|
||||||
@@ -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
|
|
||||||
Reference in New Issue
Block a user