mirror of
https://github.com/AbdBarho/stable-diffusion-webui-docker.git
synced 2025-10-28 08:44:33 -04:00
Compare commits
35 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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 |
4
.github/pull_request_template.md
vendored
4
.github/pull_request_template.md
vendored
@@ -9,5 +9,5 @@ Closes issue #
|
|||||||
### Update versions
|
### Update versions
|
||||||
|
|
||||||
- auto: https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/
|
- auto: https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/
|
||||||
- hlky: https://github.com/sd-webui/stable-diffusion-webui/commit/
|
- sygil: https://github.com/Sygil-Dev/sygil-webui/commit/
|
||||||
- lstein: https://github.com/invoke-ai/InvokeAI/commit/
|
- invoke: https://github.com/invoke-ai/InvokeAI/commit/
|
||||||
|
|||||||
3
data/.gitignore
vendored
3
data/.gitignore
vendored
@@ -11,9 +11,12 @@
|
|||||||
/BSRGAN
|
/BSRGAN
|
||||||
/RealESRGAN
|
/RealESRGAN
|
||||||
/SwinIR
|
/SwinIR
|
||||||
|
/MiDaS
|
||||||
|
/BLIP
|
||||||
/ScuNET
|
/ScuNET
|
||||||
/LDSR
|
/LDSR
|
||||||
/Deepdanbooru
|
/Deepdanbooru
|
||||||
/Hypernetworks
|
/Hypernetworks
|
||||||
/VAE
|
/VAE
|
||||||
/embeddings
|
/embeddings
|
||||||
|
/Lora
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ x-base_service: &base_service
|
|||||||
volumes:
|
volumes:
|
||||||
- &v1 ./data:/data
|
- &v1 ./data:/data
|
||||||
- &v2 ./output:/output
|
- &v2 ./output:/output
|
||||||
|
stop_signal: SIGINT
|
||||||
deploy:
|
deploy:
|
||||||
resources:
|
resources:
|
||||||
reservations:
|
reservations:
|
||||||
@@ -27,37 +28,38 @@ services:
|
|||||||
<<: *base_service
|
<<: *base_service
|
||||||
profiles: ["auto"]
|
profiles: ["auto"]
|
||||||
build: ./services/AUTOMATIC1111
|
build: ./services/AUTOMATIC1111
|
||||||
image: sd-auto:20
|
image: sd-auto:45
|
||||||
environment:
|
environment:
|
||||||
- CLI_ARGS=--allow-code --medvram --xformers --enable-insecure-extension-access
|
- CLI_ARGS=--allow-code --medvram --xformers --enable-insecure-extension-access --api
|
||||||
|
|
||||||
auto-cpu:
|
auto-cpu:
|
||||||
<<: *automatic
|
<<: *automatic
|
||||||
profiles: ["auto-cpu"]
|
profiles: ["auto-cpu"]
|
||||||
deploy: {}
|
deploy: {}
|
||||||
environment:
|
environment:
|
||||||
- CLI_ARGS=--no-half --precision full
|
- CLI_ARGS=--no-half --precision full --allow-code --enable-insecure-extension-access --api
|
||||||
|
|
||||||
|
invoke:
|
||||||
|
<<: *base_service
|
||||||
|
profiles: ["invoke"]
|
||||||
|
build: ./services/invoke/
|
||||||
|
image: sd-invoke:23
|
||||||
|
environment:
|
||||||
|
- PRELOAD=true
|
||||||
|
- CLI_ARGS=
|
||||||
|
|
||||||
|
|
||||||
sygil: &sygil
|
sygil: &sygil
|
||||||
<<: *base_service
|
<<: *base_service
|
||||||
profiles: ["sygil"]
|
profiles: ["sygil"]
|
||||||
build: ./services/sygil/
|
build: ./services/sygil/
|
||||||
image: sd-sygil:12
|
image: sd-sygil:16
|
||||||
environment:
|
environment:
|
||||||
- CLI_ARGS=--optimized-turbo
|
- CLI_ARGS=--optimized-turbo
|
||||||
- USE_STREAMLIT=0
|
- USE_STREAMLIT=0
|
||||||
|
|
||||||
sygil-sl:
|
sygil-sl:
|
||||||
<<: *sygil
|
<<: *sygil
|
||||||
|
profiles: ["sygil-sl"]
|
||||||
environment:
|
environment:
|
||||||
- USE_STREAMLIT=1
|
- USE_STREAMLIT=1
|
||||||
|
|
||||||
|
|
||||||
invoke:
|
|
||||||
<<: *base_service
|
|
||||||
profiles: ["invoke"]
|
|
||||||
build: ./services/invoke/
|
|
||||||
image: sd-invoke:10
|
|
||||||
environment:
|
|
||||||
- PRELOAD=true
|
|
||||||
- CLI_ARGS=
|
|
||||||
|
|||||||
@@ -13,84 +13,81 @@ EOF
|
|||||||
RUN . /clone.sh taming-transformers https://github.com/CompVis/taming-transformers.git 24268930bf1dce879235a7fddd0b2355b84d7ea6 \
|
RUN . /clone.sh taming-transformers https://github.com/CompVis/taming-transformers.git 24268930bf1dce879235a7fddd0b2355b84d7ea6 \
|
||||||
&& rm -rf data assets **/*.ipynb
|
&& rm -rf data assets **/*.ipynb
|
||||||
|
|
||||||
RUN . /clone.sh stable-diffusion https://github.com/CompVis/stable-diffusion.git 69ae4b35e0a0f6ee1af8bb9a5d0016ccb27e36dc \
|
RUN . /clone.sh stable-diffusion-stability-ai https://github.com/Stability-AI/stablediffusion.git 47b6b607fdd31875c9279cd2f4f16b92e4ea958e \
|
||||||
&& rm -rf assets data/**/*.png data/**/*.jpg data/**/*.gif
|
&& rm -rf assets data/**/*.png data/**/*.jpg data/**/*.gif
|
||||||
|
|
||||||
RUN . /clone.sh CodeFormer https://github.com/sczhou/CodeFormer.git c5b4593074ba6214284d6acd5f1719b6c5d739af \
|
RUN . /clone.sh CodeFormer https://github.com/sczhou/CodeFormer.git c5b4593074ba6214284d6acd5f1719b6c5d739af \
|
||||||
&& rm -rf assets inputs
|
&& rm -rf assets inputs
|
||||||
|
|
||||||
RUN . /clone.sh BLIP https://github.com/salesforce/BLIP.git 48211a1594f1321b00f14c9f7a5b4813144b2fb9
|
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 k-diffusion https://github.com/crowsonkb/k-diffusion.git 5b3af030dd83e0297272d861c19477735d0317ec
|
||||||
RUN . /clone.sh clip-interrogator https://github.com/pharmapsychotic/clip-interrogator 2486589f24165c8e3b303f84e9dbbea318df83e8
|
RUN . /clone.sh clip-interrogator https://github.com/pharmapsychotic/clip-interrogator 2486589f24165c8e3b303f84e9dbbea318df83e8
|
||||||
|
|
||||||
|
|
||||||
FROM alpine:3 as xformers
|
FROM alpine:3.17 as xformers
|
||||||
RUN apk add aria2
|
RUN apk add --no-cache 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'
|
RUN aria2c -x 5 --dir / --out wheel.whl 'https://github.com/AbdBarho/stable-diffusion-webui-docker/releases/download/5.0.0/xformers-0.0.17.dev449-cp310-cp310-manylinux2014_x86_64.whl'
|
||||||
|
|
||||||
FROM python:3.10-slim
|
FROM python:3.10.9-slim
|
||||||
|
|
||||||
SHELL ["/bin/bash", "-ceuxo", "pipefail"]
|
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
|
||||||
|
|
||||||
RUN pip install torch==1.12.1+cu116 torchvision==0.13.1+cu116 --extra-index-url https://download.pytorch.org/whl/cu116
|
RUN PIP_NO_CACHE_DIR=1 pip install torch==1.13.1+cu117 torchvision --extra-index-url https://download.pytorch.org/whl/cu117
|
||||||
|
|
||||||
RUN apt-get update && apt install fonts-dejavu-core rsync git jq moreutils -y && apt-get clean
|
RUN apt-get update && apt install fonts-dejavu-core rsync git jq moreutils -y && apt-get clean
|
||||||
|
|
||||||
|
|
||||||
RUN <<EOF
|
RUN --mount=type=cache,target=/root/.cache/pip <<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 98947d173e3f1667eba29c904f681047dea9de90
|
git reset --hard d7aec59c4eb02f723b3d55c6f927a42e97acd679
|
||||||
pip install -r requirements_versions.txt
|
pip install -r requirements_versions.txt
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
RUN --mount=type=cache,target=/root/.cache/pip \
|
||||||
COPY --from=xformers /wheel.whl xformers-0.0.15-cp310-cp310-linux_x86_64.whl
|
--mount=type=bind,from=xformers,source=/wheel.whl,target=/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
|
pip install triton /xformers-0.0.15-cp310-cp310-linux_x86_64.whl
|
||||||
|
|
||||||
|
|
||||||
ENV ROOT=/stable-diffusion-webui
|
ENV ROOT=/stable-diffusion-webui
|
||||||
|
|
||||||
|
|
||||||
COPY --from=download /git/ ${ROOT}
|
COPY --from=download /git/ ${ROOT}
|
||||||
RUN mkdir ${ROOT}/interrogate && cp ${ROOT}/repositories/clip-interrogator/data/* ${ROOT}/interrogate
|
RUN mkdir ${ROOT}/interrogate && cp ${ROOT}/repositories/clip-interrogator/data/* ${ROOT}/interrogate
|
||||||
RUN pip install -r ${ROOT}/repositories/CodeFormer/requirements.txt
|
RUN --mount=type=cache,target=/root/.cache/pip \
|
||||||
|
pip install -r ${ROOT}/repositories/CodeFormer/requirements.txt
|
||||||
|
|
||||||
|
RUN --mount=type=cache,target=/root/.cache/pip \
|
||||||
ARG DEEPDANBOORU="0"
|
pip install pyngrok \
|
||||||
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/TencentARC/GFPGAN.git@8d2447a2d918f8eba5a4a01463fd48e45126a379 \
|
||||||
git+https://github.com/openai/CLIP.git@d50d76daa670286dd6cacf3bcd80b5e4823fc8e1 \
|
git+https://github.com/openai/CLIP.git@d50d76daa670286dd6cacf3bcd80b5e4823fc8e1 \
|
||||||
pyngrok
|
git+https://github.com/mlfoundations/open_clip.git@bb6e834e9c70d9c27d0dc3ecedeebeaeb1ffad6b
|
||||||
|
|
||||||
# Note: don't update the sha of previous versions because the install will take forever
|
# Note: don't update the sha of previous versions because the install will take forever
|
||||||
# instead, update the repo state in a later step
|
# instead, update the repo state in a later step
|
||||||
|
|
||||||
ARG SHA=47a44c7e421b98ca07e92dbf88769b04c9e28f86
|
ARG SHA=3715ece0adce7bf7c5e9c5ab3710b2fdc3848f39
|
||||||
RUN <<EOF
|
RUN --mount=type=cache,target=/root/.cache/pip <<EOF
|
||||||
cd stable-diffusion-webui
|
cd stable-diffusion-webui
|
||||||
git fetch
|
git fetch
|
||||||
git reset --hard ${SHA}
|
git reset --hard ${SHA}
|
||||||
pip install -r requirements_versions.txt
|
pip install -r requirements_versions.txt
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
RUN pip install opencv-python-headless transformers==4.24.0
|
RUN --mount=type=cache,target=/root/.cache/pip pip install -U opencv-python-headless
|
||||||
|
|
||||||
COPY . /docker
|
COPY . /docker
|
||||||
|
|
||||||
RUN <<EOF
|
RUN <<EOF
|
||||||
python3 /docker/info.py ${ROOT}/modules/ui.py
|
python3 /docker/info.py ${ROOT}/modules/ui.py
|
||||||
mv ${ROOT}/style.css ${ROOT}/user.css
|
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
|
# one of the ugliest hacks I ever wrote
|
||||||
|
sed -i 's/in_app_dir = .*/in_app_dir = True/g' /usr/local/lib/python3.10/site-packages/gradio/routes.py
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
WORKDIR ${ROOT}
|
WORKDIR ${ROOT}
|
||||||
ENV CLI_ARGS=""
|
ENV CLI_ARGS=""
|
||||||
EXPOSE 7860
|
EXPOSE 7860
|
||||||
ENTRYPOINT ["/docker/entrypoint.sh"]
|
ENTRYPOINT ["/docker/entrypoint.sh"]
|
||||||
# run, -u to not buffer stdout / stderr
|
CMD python -u webui.py --listen --port 7860 ${CLI_ARGS}
|
||||||
CMD python3 -u webui.py --listen --port 7860 ${CLI_ARGS}
|
|
||||||
|
|||||||
@@ -4,6 +4,10 @@ set -Eeuo pipefail
|
|||||||
|
|
||||||
# TODO: move all mkdir -p ?
|
# TODO: move all mkdir -p ?
|
||||||
mkdir -p /data/config/auto/scripts/
|
mkdir -p /data/config/auto/scripts/
|
||||||
|
# mount scripts individually
|
||||||
|
find "${ROOT}/scripts/" -maxdepth 1 -type l -delete
|
||||||
|
cp -vrfTs /data/config/auto/scripts/ "${ROOT}/scripts/"
|
||||||
|
|
||||||
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
|
||||||
|
|
||||||
@@ -11,9 +15,6 @@ 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"
|
||||||
@@ -30,7 +31,10 @@ 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}/models/torch_deepdanbooru"]="/data/Deepdanbooru"
|
||||||
|
MOUNTS["${ROOT}/models/BLIP"]="/data/BLIP"
|
||||||
|
MOUNTS["${ROOT}/models/midas"]="/data/MiDaS"
|
||||||
|
MOUNTS["${ROOT}/models/Lora"]="/data/Lora"
|
||||||
|
|
||||||
MOUNTS["${ROOT}/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"
|
||||||
|
|||||||
@@ -3,11 +3,11 @@
|
|||||||
set -Eeuo pipefail
|
set -Eeuo pipefail
|
||||||
|
|
||||||
# TODO: maybe just use the .gitignore file to create all of these
|
# 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
|
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 /data/MiDaS /data/Lora
|
||||||
|
|
||||||
echo "Downloading, this might take a while..."
|
echo "Downloading, this might take a while..."
|
||||||
|
|
||||||
aria2c --disable-ipv6 --input-file /docker/links.txt --dir /data --continue
|
aria2c -x 10 --disable-ipv6 --input-file /docker/links.txt --dir /data --continue
|
||||||
|
|
||||||
echo "Checking SHAs..."
|
echo "Checking SHAs..."
|
||||||
|
|
||||||
@@ -15,10 +15,11 @@ parallel --will-cite -a /docker/checksums.sha256 "echo -n {} | sha256sum -c"
|
|||||||
|
|
||||||
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/AbdBarho/stable-diffusion-webui-docker/blob/master/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/CompVis/stable-diffusion/blob/main/LICENSE
|
||||||
|
https://github.com/AUTOMATIC1111/stable-diffusion-webui/blob/master/LICENSE.txt
|
||||||
https://github.com/invoke-ai/InvokeAI/blob/main/LICENSE
|
https://github.com/invoke-ai/InvokeAI/blob/main/LICENSE
|
||||||
|
https://github.com/sd-webui/stable-diffusion-webui/blob/master/LICENSE
|
||||||
https://github.com/cszn/BSRGAN/blob/main/LICENSE
|
https://github.com/cszn/BSRGAN/blob/main/LICENSE
|
||||||
https://github.com/sczhou/CodeFormer/blob/master/LICENSE
|
https://github.com/sczhou/CodeFormer/blob/master/LICENSE
|
||||||
https://github.com/TencentARC/GFPGAN/blob/master/LICENSE
|
https://github.com/TencentARC/GFPGAN/blob/master/LICENSE
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
https://huggingface.co/ZeroCool94/stable-diffusion-v1-5/resolve/main/Stable%20Diffusion%20v1-5-Pruned-ema%20only.ckpt
|
https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.ckpt
|
||||||
out=StableDiffusion/v1-5-pruned-emaonly.ckpt
|
out=StableDiffusion/v1-5-pruned-emaonly.ckpt
|
||||||
https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.ckpt
|
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
|
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
|
https://huggingface.co/runwayml/stable-diffusion-inpainting/resolve/main/sd-v1-5-inpainting.ckpt
|
||||||
out=StableDiffusion/sd-v1-5-inpainting.ckpt
|
out=StableDiffusion/sd-v1-5-inpainting.ckpt
|
||||||
https://github.com/TencentARC/GFPGAN/releases/download/v1.3.4/GFPGANv1.4.pth
|
https://github.com/TencentARC/GFPGAN/releases/download/v1.3.4/GFPGANv1.4.pth
|
||||||
out=GFPGAN/GFPGANv1.4.pth
|
out=GFPGAN/GFPGANv1.4.pth
|
||||||
|
|||||||
@@ -1,12 +1,18 @@
|
|||||||
# syntax=docker/dockerfile:1
|
# syntax=docker/dockerfile:1
|
||||||
|
|
||||||
|
FROM alpine:3.17 as xformers
|
||||||
|
RUN apk add --no-cache aria2
|
||||||
|
RUN aria2c -x 5 --dir / --out wheel.whl 'https://github.com/AbdBarho/stable-diffusion-webui-docker/releases/download/5.0.0/xformers-0.0.17.dev449-cp310-cp310-manylinux2014_x86_64.whl'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
FROM python:3.10-slim
|
FROM python:3.10-slim
|
||||||
SHELL ["/bin/bash", "-ceuxo", "pipefail"]
|
SHELL ["/bin/bash", "-ceuxo", "pipefail"]
|
||||||
|
|
||||||
ENV DEBIAN_FRONTEND=noninteractive PIP_EXISTS_ACTION=w PIP_PREFER_BINARY=1 PIP_NO_CACHE_DIR=1
|
ENV DEBIAN_FRONTEND=noninteractive PIP_EXISTS_ACTION=w PIP_PREFER_BINARY=1
|
||||||
|
|
||||||
|
|
||||||
RUN pip install torch==1.12.0+cu116 --extra-index-url https://download.pytorch.org/whl/cu116
|
RUN --mount=type=cache,target=/root/.cache/pip pip install torch==1.13.1+cu117 torchvision --extra-index-url https://download.pytorch.org/whl/cu117
|
||||||
|
|
||||||
RUN apt-get update && apt-get install git -y && apt-get clean
|
RUN apt-get update && apt-get install git -y && apt-get clean
|
||||||
|
|
||||||
@@ -14,10 +20,12 @@ RUN git clone https://github.com/invoke-ai/InvokeAI.git /stable-diffusion
|
|||||||
|
|
||||||
WORKDIR /stable-diffusion
|
WORKDIR /stable-diffusion
|
||||||
|
|
||||||
RUN <<EOF
|
RUN --mount=type=cache,target=/root/.cache/pip <<EOF
|
||||||
git reset --hard 5c31feb3a1096d437c94b6e1c3224eb7a7224a85
|
git reset --hard f232068ab89bd80e4f5f3133dcdb62ea78f1d0f7
|
||||||
git config --global http.postBuffer 1048576000
|
git config --global http.postBuffer 1048576000
|
||||||
pip install -r binary_installer/py3.10-linux-x86_64-cuda-reqs.txt
|
egrep -v '^-e .' environments-and-requirements/requirements-lin-cuda.txt > req.txt
|
||||||
|
pip install -r req.txt
|
||||||
|
rm req.txt
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
|
||||||
@@ -32,27 +40,33 @@ cd /usr/lib/x86_64-linux-gnu/pkgconfig/
|
|||||||
ln -sf opencv4.pc opencv.pc
|
ln -sf opencv4.pc opencv.pc
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
ARG BRANCH=main SHA=38cd968130e386d188bdef68f9fbfbbbfabb2da0
|
|
||||||
RUN <<EOF
|
ARG BRANCH=main SHA=6551527fe249dc7a44e3fab9db9451c0dc3ad851
|
||||||
|
RUN --mount=type=cache,target=/root/.cache/pip <<EOF
|
||||||
git fetch
|
git fetch
|
||||||
git reset --hard
|
git reset --hard
|
||||||
git checkout ${BRANCH}
|
git checkout ${BRANCH}
|
||||||
git reset --hard ${SHA}
|
git reset --hard ${SHA}
|
||||||
pip install -r binary_installer/py3.10-linux-x86_64-cuda-reqs.txt
|
pip install .
|
||||||
|
# egrep -v '^-e .' environments-and-requirements/requirements-lin-cuda.txt > req.txt
|
||||||
|
# pip install -r req.txt
|
||||||
|
# rm req.txt
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
RUN pip install --force-reinstall opencv-python-headless && python3 -c "from patchmatch import patch_match"
|
|
||||||
|
RUN --mount=type=cache,target=/root/.cache/pip \
|
||||||
|
--mount=type=bind,from=xformers,source=/wheel.whl,target=/xformers-0.0.15-cp310-cp310-linux_x86_64.whl \
|
||||||
|
pip install -U opencv-python-headless huggingface_hub triton /xformers-0.0.15-cp310-cp310-linux_x86_64.whl && \
|
||||||
|
python3 -c "from patchmatch import patch_match"
|
||||||
|
|
||||||
|
|
||||||
|
RUN touch invokeai.init
|
||||||
COPY . /docker/
|
COPY . /docker/
|
||||||
RUN <<EOF
|
|
||||||
python3 /docker/info.py /stable-diffusion/frontend/dist/index.html
|
|
||||||
touch ~/.invokeai
|
|
||||||
EOF
|
|
||||||
|
|
||||||
|
# mkdir configs && cp invokeai/configs/INITIAL_MODELS.yaml configs/models.yaml
|
||||||
|
|
||||||
ENV ROOT=/stable-diffusion PYTHONPATH="${PYTHONPATH}:${ROOT}" PRELOAD=false CLI_ARGS=""
|
ENV PYTHONUNBUFFERED=1 ROOT=/stable-diffusion PYTHONPATH="${PYTHONPATH}:${ROOT}" PRELOAD=false CLI_ARGS="" HF_HOME=/root/.cache/huggingface
|
||||||
EXPOSE 7860
|
EXPOSE 7860
|
||||||
|
|
||||||
ENTRYPOINT ["/docker/entrypoint.sh"]
|
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}
|
CMD invokeai --web --host 0.0.0.0 --port 7860 --config /docker/models.yaml --root_dir ${ROOT} --outdir /output/invoke ${CLI_ARGS}
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ 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/openai/clip-vit-large-patch14"]=/data/.cache/huggingface/transformers/
|
||||||
MOUNTS["${ROOT}/models/CompVis/stable-diffusion-safety-checker"]=/data/.cache/huggingface/transformers/
|
MOUNTS["${ROOT}/models/CompVis/stable-diffusion-safety-checker"]=/data/.cache/huggingface/transformers/
|
||||||
|
|
||||||
|
|
||||||
MOUNTS["${ROOT}/embeddings"]=/data/embeddings/
|
MOUNTS["${ROOT}/embeddings"]=/data/embeddings/
|
||||||
|
|
||||||
# hacks
|
# hacks
|
||||||
@@ -39,9 +38,9 @@ for to_path in "${!MOUNTS[@]}"; do
|
|||||||
echo Mounted $(basename "${from_path}")
|
echo Mounted $(basename "${from_path}")
|
||||||
done
|
done
|
||||||
|
|
||||||
if "${PRELOAD}" == "true"; then
|
# if "${PRELOAD}" == "true"; then
|
||||||
set -Eeuo pipefail
|
# set -Eeuo pipefail
|
||||||
python3 -u scripts/preload_models.py --no-interactive --root ${ROOT} --config_file /docker/models.yaml
|
# python3 -u scripts/preload_models.py --skip-sd-weights --root ${ROOT} --config_file /docker/models.yaml
|
||||||
fi
|
# fi
|
||||||
|
|
||||||
exec "$@"
|
exec "$@"
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
import sys
|
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
file = Path(sys.argv[1])
|
|
||||||
file.write_text(
|
|
||||||
file.read_text()\
|
|
||||||
.replace(' <div id="root"></div>', """
|
|
||||||
<div id="root"></div>
|
|
||||||
<div>
|
|
||||||
Deployed with <a href="https://github.com/AbdBarho/stable-diffusion-webui-docker/">stable-diffusion-webui-docker</a>
|
|
||||||
</div>
|
|
||||||
""", 1)
|
|
||||||
)
|
|
||||||
@@ -9,7 +9,7 @@ stable-diffusion-1.5:
|
|||||||
description: Stable Diffusion version 1.5
|
description: Stable Diffusion version 1.5
|
||||||
weights: /data/StableDiffusion/v1-5-pruned-emaonly.ckpt
|
weights: /data/StableDiffusion/v1-5-pruned-emaonly.ckpt
|
||||||
vae: /data/VAE/vae-ft-mse-840000-ema-pruned.ckpt
|
vae: /data/VAE/vae-ft-mse-840000-ema-pruned.ckpt
|
||||||
config: ./configs/stable-diffusion/v1-inference.yaml
|
config: /stable-diffusion/invokeai/configs/stable-diffusion/v1-inference.yaml
|
||||||
width: 512
|
width: 512
|
||||||
height: 512
|
height: 512
|
||||||
default: true
|
default: true
|
||||||
@@ -17,7 +17,7 @@ inpainting-1.5:
|
|||||||
description: RunwayML SD 1.5 model optimized for inpainting
|
description: RunwayML SD 1.5 model optimized for inpainting
|
||||||
weights: /data/StableDiffusion/sd-v1-5-inpainting.ckpt
|
weights: /data/StableDiffusion/sd-v1-5-inpainting.ckpt
|
||||||
vae: /data/VAE/vae-ft-mse-840000-ema-pruned.ckpt
|
vae: /data/VAE/vae-ft-mse-840000-ema-pruned.ckpt
|
||||||
config: ./configs/stable-diffusion/v1-inpainting-inference.yaml
|
config: /stable-diffusion/invokeai/configs/stable-diffusion/v1-inpainting-inference.yaml
|
||||||
width: 512
|
width: 512
|
||||||
height: 512
|
height: 512
|
||||||
default: false
|
default: false
|
||||||
|
|||||||
@@ -1,41 +1,34 @@
|
|||||||
# syntax=docker/dockerfile:1
|
# syntax=docker/dockerfile:1
|
||||||
|
|
||||||
FROM continuumio/miniconda3:4.12.0
|
FROM python:3.8-slim
|
||||||
|
|
||||||
SHELL ["/bin/bash", "-ceuxo", "pipefail"]
|
SHELL ["/bin/bash", "-ceuxo", "pipefail"]
|
||||||
|
|
||||||
ENV DEBIAN_FRONTEND=noninteractive
|
ENV DEBIAN_FRONTEND=noninteractive PIP_PREFER_BINARY=1
|
||||||
|
|
||||||
RUN conda install python=3.8.5 && conda clean -a -y
|
RUN --mount=type=cache,target=/root/.cache/pip pip install torch==1.13.0 torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117
|
||||||
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 apt-get update && apt install gcc libsndfile1 ffmpeg build-essential zip unzip git -y && apt-get clean
|
||||||
|
|
||||||
|
RUN --mount=type=cache,target=/root/.cache/pip <<EOF
|
||||||
ENV PIP_PREFER_BINARY=1 PIP_NO_CACHE_DIR=1
|
|
||||||
|
|
||||||
RUN <<EOF
|
|
||||||
git config --global http.postBuffer 1048576000
|
git config --global http.postBuffer 1048576000
|
||||||
git clone https://github.com/Sygil-Dev/sygil-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 091520bed06f913c9f432f9f47ccbe22b46068d7
|
git reset --hard 5291437085bddd16d752f811b6552419a2044d12
|
||||||
conda env update --file environment.yaml -n base
|
pip install -r requirements.txt
|
||||||
conda clean -a -y
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
RUN apt-get update && apt install libsndfile1 ffmpeg -y && apt-get clean
|
|
||||||
|
|
||||||
ARG BRANCH=dev SHA=18a3b809275c395b9a2730c78d6bc0f9b06671e1
|
ARG BRANCH=master SHA=571fb897edd58b714bb385dfaa1ad59aecef8bc7
|
||||||
RUN <<EOF
|
RUN --mount=type=cache,target=/root/.cache/pip <<EOF
|
||||||
cd stable-diffusion
|
cd stable-diffusion
|
||||||
git fetch
|
git fetch
|
||||||
git checkout ${BRANCH}
|
git checkout ${BRANCH}
|
||||||
git reset --hard ${SHA}
|
git reset --hard ${SHA}
|
||||||
conda env update --file environment.yaml -n base
|
pip install -r requirements.txt
|
||||||
conda clean -a -y
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
RUN pip install transformers==4.24.0
|
RUN --mount=type=cache,target=/root/.cache/pip pip install -U 'transformers>=4.24'
|
||||||
|
|
||||||
# add info
|
# add info
|
||||||
COPY . /docker/
|
COPY . /docker/
|
||||||
|
|||||||
Reference in New Issue
Block a user