mirror of
https://github.com/AbdBarho/stable-diffusion-webui-docker.git
synced 2025-10-27 16:24:26 -04:00
Compare commits
17 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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
|
||||
|
||||
- auto: https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/
|
||||
- hlky: https://github.com/sd-webui/stable-diffusion-webui/commit/
|
||||
- lstein: https://github.com/invoke-ai/InvokeAI/commit/
|
||||
- sygil: https://github.com/Sygil-Dev/sygil-webui/commit/
|
||||
- invoke: https://github.com/invoke-ai/InvokeAI/commit/
|
||||
|
||||
2
data/.gitignore
vendored
2
data/.gitignore
vendored
@@ -11,6 +11,8 @@
|
||||
/BSRGAN
|
||||
/RealESRGAN
|
||||
/SwinIR
|
||||
/MiDaS
|
||||
/BLIP
|
||||
/ScuNET
|
||||
/LDSR
|
||||
/Deepdanbooru
|
||||
|
||||
@@ -27,9 +27,9 @@ services:
|
||||
<<: *base_service
|
||||
profiles: ["auto"]
|
||||
build: ./services/AUTOMATIC1111
|
||||
image: sd-auto:20
|
||||
image: sd-auto:31
|
||||
environment:
|
||||
- CLI_ARGS=--allow-code --medvram --xformers --enable-insecure-extension-access
|
||||
- CLI_ARGS=--allow-code --medvram --xformers --enable-insecure-extension-access --api
|
||||
|
||||
auto-cpu:
|
||||
<<: *automatic
|
||||
@@ -38,26 +38,27 @@ services:
|
||||
environment:
|
||||
- CLI_ARGS=--no-half --precision full
|
||||
|
||||
invoke:
|
||||
<<: *base_service
|
||||
profiles: ["invoke"]
|
||||
build: ./services/invoke/
|
||||
image: sd-invoke:17
|
||||
environment:
|
||||
- PRELOAD=true
|
||||
- CLI_ARGS=
|
||||
|
||||
|
||||
sygil: &sygil
|
||||
<<: *base_service
|
||||
profiles: ["sygil"]
|
||||
build: ./services/sygil/
|
||||
image: sd-sygil:12
|
||||
image: sd-sygil:16
|
||||
environment:
|
||||
- CLI_ARGS=--optimized-turbo
|
||||
- USE_STREAMLIT=0
|
||||
|
||||
sygil-sl:
|
||||
<<: *sygil
|
||||
profiles: ["sygil-sl"]
|
||||
environment:
|
||||
- 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 \
|
||||
&& 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
|
||||
|
||||
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 k-diffusion https://github.com/crowsonkb/k-diffusion.git 5b3af030dd83e0297272d861c19477735d0317ec
|
||||
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'
|
||||
RUN aria2c -x 5 --dir / --out wheel.whl 'https://github.com/AbdBarho/stable-diffusion-webui-docker/releases/download/4.0.0/xformers-0.0.16rc393-cp310-cp310-manylinux2014_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
|
||||
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.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
|
||||
RUN --mount=type=cache,target=/root/.cache/pip <<EOF
|
||||
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
|
||||
cd stable-diffusion-webui
|
||||
git reset --hard 98947d173e3f1667eba29c904f681047dea9de90
|
||||
git reset --hard 4af3ca5393151d61363c30eef4965e694eeac15e
|
||||
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
|
||||
|
||||
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 triton /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
|
||||
RUN --mount=type=cache,target=/root/.cache/pip \
|
||||
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 \
|
||||
RUN --mount=type=cache,target=/root/.cache/pip \
|
||||
pip install opencv-python-headless \
|
||||
git+https://github.com/TencentARC/GFPGAN.git@8d2447a2d918f8eba5a4a01463fd48e45126a379 \
|
||||
git+https://github.com/openai/CLIP.git@d50d76daa670286dd6cacf3bcd80b5e4823fc8e1 \
|
||||
git+https://github.com/mlfoundations/open_clip.git@bb6e834e9c70d9c27d0dc3ecedeebeaeb1ffad6b \
|
||||
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
|
||||
ARG SHA=2b94ec78869db7d2beaad23bdff47340416edf85
|
||||
RUN --mount=type=cache,target=/root/.cache/pip <<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
|
||||
RUN --mount=type=cache,target=/root/.cache/pip \
|
||||
pip install -U opencv-python-headless transformers>=4.24
|
||||
|
||||
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
|
||||
mv ${ROOT}/style.css ${ROOT}/user.css
|
||||
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}
|
||||
|
||||
@@ -30,7 +30,9 @@ 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}/models/torch_deepdanbooru"]="/data/Deepdanbooru"
|
||||
MOUNTS["${ROOT}/models/BLIP"]="/data/BLIP"
|
||||
MOUNTS["${ROOT}/models/midas"]="/data/MiDaS"
|
||||
|
||||
MOUNTS["${ROOT}/embeddings"]="/data/embeddings"
|
||||
MOUNTS["${ROOT}/config.json"]="/data/config/auto/config.json"
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
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
|
||||
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
|
||||
|
||||
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..."
|
||||
|
||||
|
||||
@@ -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
|
||||
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
|
||||
https://huggingface.co/runwayml/stable-diffusion-inpainting/resolve/main/sd-v1-5-inpainting.ckpt
|
||||
out=StableDiffusion/sd-v1-5-inpainting.ckpt
|
||||
https://github.com/TencentARC/GFPGAN/releases/download/v1.3.4/GFPGANv1.4.pth
|
||||
out=GFPGAN/GFPGANv1.4.pth
|
||||
|
||||
@@ -3,10 +3,11 @@
|
||||
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
|
||||
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.12.0+cu116 --extra-index-url https://download.pytorch.org/whl/cu116
|
||||
|
||||
RUN apt-get update && apt-get install git -y && apt-get clean
|
||||
|
||||
@@ -14,7 +15,7 @@ RUN git clone https://github.com/invoke-ai/InvokeAI.git /stable-diffusion
|
||||
|
||||
WORKDIR /stable-diffusion
|
||||
|
||||
RUN <<EOF
|
||||
RUN --mount=type=cache,target=/root/.cache/pip <<EOF
|
||||
git reset --hard 5c31feb3a1096d437c94b6e1c3224eb7a7224a85
|
||||
git config --global http.postBuffer 1048576000
|
||||
pip install -r binary_installer/py3.10-linux-x86_64-cuda-reqs.txt
|
||||
@@ -32,8 +33,8 @@ cd /usr/lib/x86_64-linux-gnu/pkgconfig/
|
||||
ln -sf opencv4.pc opencv.pc
|
||||
EOF
|
||||
|
||||
ARG BRANCH=main SHA=38cd968130e386d188bdef68f9fbfbbbfabb2da0
|
||||
RUN <<EOF
|
||||
ARG BRANCH=main SHA=26e413ae9cf8dc04c617ca451a91a1624bfdf0c0
|
||||
RUN --mount=type=cache,target=/root/.cache/pip <<EOF
|
||||
git fetch
|
||||
git reset --hard
|
||||
git checkout ${BRANCH}
|
||||
@@ -41,14 +42,13 @@ 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"
|
||||
RUN --mount=type=cache,target=/root/.cache/pip \
|
||||
pip install -U --force-reinstall opencv-python-headless huggingface_hub && \
|
||||
python3 -c "from patchmatch import patch_match"
|
||||
|
||||
|
||||
RUN touch invokeai.init
|
||||
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=""
|
||||
|
||||
@@ -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/CompVis/stable-diffusion-safety-checker"]=/data/.cache/huggingface/transformers/
|
||||
|
||||
|
||||
MOUNTS["${ROOT}/embeddings"]=/data/embeddings/
|
||||
|
||||
# hacks
|
||||
@@ -41,7 +40,7 @@ done
|
||||
|
||||
if "${PRELOAD}" == "true"; then
|
||||
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
|
||||
|
||||
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)
|
||||
)
|
||||
@@ -1,41 +1,34 @@
|
||||
# syntax=docker/dockerfile:1
|
||||
|
||||
FROM continuumio/miniconda3:4.12.0
|
||||
FROM python:3.8-slim
|
||||
|
||||
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 conda install pytorch==1.11.0 torchvision==0.12.0 cudatoolkit=11.3 -c pytorch && 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 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
|
||||
|
||||
|
||||
ENV PIP_PREFER_BINARY=1 PIP_NO_CACHE_DIR=1
|
||||
|
||||
RUN <<EOF
|
||||
RUN --mount=type=cache,target=/root/.cache/pip <<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
|
||||
git reset --hard 5291437085bddd16d752f811b6552419a2044d12
|
||||
pip install -r requirements.txt
|
||||
EOF
|
||||
|
||||
RUN apt-get update && apt install libsndfile1 ffmpeg -y && apt-get clean
|
||||
|
||||
ARG BRANCH=dev SHA=18a3b809275c395b9a2730c78d6bc0f9b06671e1
|
||||
RUN <<EOF
|
||||
ARG BRANCH=master SHA=571fb897edd58b714bb385dfaa1ad59aecef8bc7
|
||||
RUN --mount=type=cache,target=/root/.cache/pip <<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
|
||||
pip install -r requirements.txt
|
||||
EOF
|
||||
|
||||
RUN pip install transformers==4.24.0
|
||||
RUN --mount=type=cache,target=/root/.cache/pip pip install transformers==4.24.0
|
||||
|
||||
# add info
|
||||
COPY . /docker/
|
||||
|
||||
Reference in New Issue
Block a user