mirror of
https://github.com/AbdBarho/stable-diffusion-webui-docker.git
synced 2025-10-27 08:14:26 -04:00
Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
def76291f8 | ||
|
|
09a0f11946 | ||
|
|
6de45b1984 | ||
|
|
103e11493b | ||
|
|
95e96602f9 | ||
|
|
37a82af4b7 | ||
|
|
5e28222332 | ||
|
|
6c45e0c2ef | ||
|
|
6365811f35 | ||
|
|
cdde93b8bb |
28
.devscripts/migratev7tov8.sh
Normal file
28
.devscripts/migratev7tov8.sh
Normal file
@@ -0,0 +1,28 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -Eeuo pipefail
|
||||
|
||||
echo "Renaming..."
|
||||
|
||||
# compatible with default auto-names
|
||||
mv -v ./data/StableDiffusion ./data/Stable-diffusion
|
||||
mv -v ./data/Deepdanbooru ./data/torch_deepdanbooru
|
||||
|
||||
# casing problem on windows
|
||||
mv -v ./data/Hypernetworks ./data/hypernetworks1
|
||||
mv -v ./data/hypernetworks1 ./data/hypernetworks
|
||||
|
||||
mv -v ./data/MiDaS ./data/midas1
|
||||
mv -v ./data/midas1 ./data/midas
|
||||
|
||||
|
||||
echo "Moving folders..."
|
||||
|
||||
mkdir -pv ./final
|
||||
|
||||
mv -v ./data/config ./final/config
|
||||
mv -v ./data/.cache ./final/.cache
|
||||
mv -v ./data/embeddings ./final/embeddings
|
||||
mv -v ./data ./final/models
|
||||
|
||||
mv -v ./final ./data
|
||||
26
data/.gitignore
vendored
26
data/.gitignore
vendored
@@ -1,28 +1,4 @@
|
||||
# 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
|
||||
/MiDaS
|
||||
/BLIP
|
||||
/ScuNET
|
||||
/LDSR
|
||||
/Deepdanbooru
|
||||
/Hypernetworks
|
||||
/VAE
|
||||
/embeddings
|
||||
/Lora
|
||||
/ControlNet
|
||||
/openpose
|
||||
/ModelScope
|
||||
/LyCORIS
|
||||
/GLIGEN
|
||||
/CLIPEncoder
|
||||
/models
|
||||
|
||||
@@ -2,11 +2,12 @@ version: '3.9'
|
||||
|
||||
x-base_service: &base_service
|
||||
ports:
|
||||
- "7860:7860"
|
||||
- "${WEBUI_PORT:-7860}:7860"
|
||||
volumes:
|
||||
- &v1 ./data:/data
|
||||
- &v2 ./output:/output
|
||||
stop_signal: SIGINT
|
||||
stop_signal: SIGKILL
|
||||
tty: true
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
@@ -28,7 +29,7 @@ services:
|
||||
<<: *base_service
|
||||
profiles: ["auto"]
|
||||
build: ./services/AUTOMATIC1111
|
||||
image: sd-auto:58
|
||||
image: sd-auto:63
|
||||
environment:
|
||||
- CLI_ARGS=--allow-code --medvram --xformers --enable-insecure-extension-access --api
|
||||
|
||||
@@ -43,7 +44,7 @@ services:
|
||||
<<: *base_service
|
||||
profiles: ["invoke"]
|
||||
build: ./services/invoke/
|
||||
image: sd-invoke:29
|
||||
image: sd-invoke:30
|
||||
environment:
|
||||
- PRELOAD=true
|
||||
- CLI_ARGS=--xformers
|
||||
@@ -59,8 +60,7 @@ services:
|
||||
<<: *base_service
|
||||
profiles: ["comfy"]
|
||||
build: ./services/comfy/
|
||||
image: sd-comfy:2
|
||||
tty: true
|
||||
image: sd-comfy:4
|
||||
environment:
|
||||
- CLI_ARGS=
|
||||
|
||||
|
||||
@@ -12,8 +12,9 @@ RUN . /clone.sh CodeFormer https://github.com/sczhou/CodeFormer.git c5b4593074ba
|
||||
&& 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 5b3af030dd83e0297272d861c19477735d0317ec
|
||||
RUN . /clone.sh k-diffusion https://github.com/crowsonkb/k-diffusion.git c9fe758757e022f05ca5a53fa8fac28889e4f1cf
|
||||
RUN . /clone.sh clip-interrogator https://github.com/pharmapsychotic/clip-interrogator 2486589f24165c8e3b303f84e9dbbea318df83e8
|
||||
RUN . /clone.sh generative-models https://github.com/Stability-AI/generative-models 45c443b316737a4ab6e40413d7794a7f5657c19f
|
||||
|
||||
|
||||
FROM alpine:3.17 as xformers
|
||||
@@ -30,7 +31,7 @@ RUN --mount=type=cache,target=/var/cache/apt \
|
||||
# we need those
|
||||
apt-get install -y fonts-dejavu-core rsync git jq moreutils aria2 \
|
||||
# extensions needs those
|
||||
ffmpeg libglfw3-dev libgles2-mesa-dev pkg-config libcairo2 libcairo2-dev
|
||||
ffmpeg libglfw3-dev libgles2-mesa-dev pkg-config libcairo2 libcairo2-dev build-essential
|
||||
|
||||
|
||||
RUN --mount=type=cache,target=/cache --mount=type=cache,target=/root/.cache/pip \
|
||||
@@ -71,7 +72,7 @@ RUN --mount=type=cache,target=/root/.cache/pip \
|
||||
RUN apt-get -y install libgoogle-perftools-dev && apt-get clean
|
||||
ENV LD_PRELOAD=libtcmalloc.so
|
||||
|
||||
ARG SHA=20ae71faa8ef035c31aa3a410b707d792c8203a3
|
||||
ARG SHA=68f336bd994bed5442ad95bad6b6ad5564a5409a
|
||||
RUN --mount=type=cache,target=/root/.cache/pip \
|
||||
cd stable-diffusion-webui && \
|
||||
git fetch && \
|
||||
|
||||
@@ -19,30 +19,16 @@ if [ ! -f /data/config/auto/styles.csv ]; then
|
||||
touch /data/config/auto/styles.csv
|
||||
fi
|
||||
|
||||
# copy models from original models folder
|
||||
mkdir -p /data/models/VAE-approx/ /data/models/karlo/
|
||||
|
||||
rsync -a --info=NAME ${ROOT}/models/VAE-approx/ /data/models/VAE-approx/
|
||||
rsync -a --info=NAME ${ROOT}/models/karlo/ /data/models/karlo/
|
||||
|
||||
declare -A MOUNTS
|
||||
|
||||
MOUNTS["/root/.cache"]="/data/.cache"
|
||||
|
||||
# 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/torch_deepdanbooru"]="/data/Deepdanbooru"
|
||||
MOUNTS["${ROOT}/models/BLIP"]="/data/BLIP"
|
||||
MOUNTS["${ROOT}/models/midas"]="/data/MiDaS"
|
||||
MOUNTS["${ROOT}/models/Lora"]="/data/Lora"
|
||||
MOUNTS["${ROOT}/models/LyCORIS"]="/data/LyCORIS"
|
||||
MOUNTS["${ROOT}/models/ControlNet"]="/data/ControlNet"
|
||||
MOUNTS["${ROOT}/models/openpose"]="/data/openpose"
|
||||
MOUNTS["${ROOT}/models/ModelScope"]="/data/ModelScope"
|
||||
MOUNTS["${ROOT}/models"]="/data/models"
|
||||
|
||||
MOUNTS["${ROOT}/embeddings"]="/data/embeddings"
|
||||
MOUNTS["${ROOT}/config.json"]="/data/config/auto/config.json"
|
||||
@@ -66,8 +52,22 @@ for to_path in "${!MOUNTS[@]}"; do
|
||||
echo Mounted $(basename "${from_path}")
|
||||
done
|
||||
|
||||
echo "Installing extension dependencies (if any)"
|
||||
|
||||
# because we build our container as root:
|
||||
chown -R root ~/.cache/
|
||||
chmod 766 ~/.cache/
|
||||
|
||||
shopt -s nullglob
|
||||
# For install.py, please refer to https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Developing-extensions#installpy
|
||||
list=(./extensions/*/install.py)
|
||||
for installscript in "${list[@]}"; do
|
||||
PYTHONPATH=${ROOT} python "$installscript"
|
||||
done
|
||||
|
||||
if [ -f "/data/config/auto/startup.sh" ]; then
|
||||
pushd ${ROOT}
|
||||
echo "Running startup script"
|
||||
. /data/config/auto/startup.sh
|
||||
popd
|
||||
fi
|
||||
|
||||
@@ -1,14 +1,11 @@
|
||||
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'
|
||||
RUN aria2c -x 5 --dir / --out wheel.whl 'https://github.com/AbdBarho/stable-diffusion-webui-docker/releases/download/6.0.0/xformers-0.0.21.dev544-cp310-cp310-manylinux2014_x86_64-pytorch201.whl'
|
||||
|
||||
|
||||
FROM python:3.10.9-slim
|
||||
FROM pytorch/pytorch:2.0.1-cuda11.7-cudnn8-runtime
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive PIP_PREFER_BINARY=1
|
||||
|
||||
RUN --mount=type=cache,target=/root/.cache/pip pip install torch==1.13.1 torchvision --extra-index-url https://download.pytorch.org/whl/cu117
|
||||
|
||||
RUN apt-get update && apt-get install -y git && apt-get clean
|
||||
|
||||
ENV ROOT=/stable-diffusion
|
||||
@@ -21,13 +18,13 @@ RUN --mount=type=cache,target=/root/.cache/pip \
|
||||
|
||||
|
||||
RUN --mount=type=cache,target=/root/.cache/pip \
|
||||
--mount=type=bind,from=xformers,source=/wheel.whl,target=/xformers-0.0.17-cp310-cp310-linux_x86_64.whl \
|
||||
pip install triton /xformers-0.0.17-cp310-cp310-linux_x86_64.whl
|
||||
--mount=type=bind,from=xformers,source=/wheel.whl,target=/xformers-0.0.21-cp310-cp310-linux_x86_64.whl \
|
||||
pip install /xformers-0.0.21-cp310-cp310-linux_x86_64.whl
|
||||
|
||||
|
||||
WORKDIR ${ROOT}
|
||||
|
||||
ARG BRANCH=master SHA=884ea653c8d6fe19b3724f45a04a0d74cd881f2f
|
||||
ARG BRANCH=master SHA=8607c2d42d10b0108de02528e813cc703e58813f
|
||||
RUN --mount=type=cache,target=/root/.cache/pip \
|
||||
git fetch && \
|
||||
git checkout ${BRANCH} && \
|
||||
@@ -37,6 +34,8 @@ RUN --mount=type=cache,target=/root/.cache/pip \
|
||||
# add info
|
||||
COPY . /docker/
|
||||
RUN cp /docker/extra_model_paths.yaml ${ROOT}
|
||||
RUN chmod u+x /docker/entrypoint.sh
|
||||
RUN cp /docker/extra_model_paths.yaml ${ROOT}
|
||||
|
||||
ENV NVIDIA_VISIBLE_DEVICES=all
|
||||
ENV PYTHONPATH="${PYTHONPATH}:${PWD}" CLI_ARGS=""
|
||||
|
||||
@@ -22,4 +22,10 @@ for to_path in "${!MOUNTS[@]}"; do
|
||||
echo Mounted $(basename "${from_path}")
|
||||
done
|
||||
|
||||
if [ -f "/data/config/comfy/startup.sh" ]; then
|
||||
pushd ${ROOT}
|
||||
. /data/config/comfy/startup.sh
|
||||
popd
|
||||
fi
|
||||
|
||||
exec "$@"
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
a111:
|
||||
base_path: /data
|
||||
|
||||
checkpoints: StableDiffusion
|
||||
configs: StableDiffusion
|
||||
vae: VAE
|
||||
loras: Lora
|
||||
checkpoints: models/Stable-diffusion
|
||||
configs: models/Stable-diffusion
|
||||
vae: models/VAE
|
||||
loras: models/Lora
|
||||
upscale_models: |
|
||||
RealESRGAN
|
||||
ESRGAN
|
||||
SwinIR
|
||||
GFPGAN
|
||||
models/RealESRGAN
|
||||
models/ESRGAN
|
||||
models/SwinIR
|
||||
models/GFPGAN
|
||||
hypernetworks: models/hypernetworks
|
||||
controlnet: models/ControlNet
|
||||
gligen: models/GLIGEN
|
||||
clip: models/CLIPEncoder
|
||||
embeddings: embeddings
|
||||
hypernetworks: Hypernetworks
|
||||
controlnet: ControlNet
|
||||
gligen: GLIGEN
|
||||
clip: CLIPEncoder
|
||||
|
||||
custom_nodes: config/comfy/custom_nodes
|
||||
|
||||
|
||||
@@ -1,8 +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
|
||||
cc6cb27103417325ff94f52b7a5d2dde45a7515b25c255d8e396c90014281516 /data/models/Stable-diffusion/v1-5-pruned-emaonly.ckpt
|
||||
c6bbc15e3224e6973459ba78de4998b80b50112b0ae5b5c67113d56b4e366b19 /data/models/Stable-diffusion/sd-v1-5-inpainting.ckpt
|
||||
c6a580b13a5bc05a5e16e4dbb80608ff2ec251a162311590c1f34c013d7f3dab /data/models/VAE/vae-ft-mse-840000-ema-pruned.ckpt
|
||||
e2cd4703ab14f4d01fd1383a8a8b266f9a5833dacee8e6a79d3bf21a1b6be5ad /data/models/GFPGAN/GFPGANv1.4.pth
|
||||
4fa0d38905f75ac06eb49a7951b426670021be3018265fd191d2125df9d682f1 /data/models/RealESRGAN/RealESRGAN_x4plus.pth
|
||||
f872d837d3c90ed2e05227bed711af5671a6fd1c9f7d7e91c911a61f155e99da /data/models/RealESRGAN/RealESRGAN_x4plus_anime_6B.pth
|
||||
c209caecac2f97b4bb8f4d726b70ac2ac9b35904b7fc99801e1f5e61f9210c13 /data/models/LDSR/model.ckpt
|
||||
9d6ad53c5dafeb07200fb712db14b813b527edd262bc80ea136777bdb41be2ba /data/models/LDSR/project.yaml
|
||||
|
||||
@@ -4,30 +4,18 @@ set -Eeuo pipefail
|
||||
|
||||
# TODO: maybe just use the .gitignore file to create all of these
|
||||
mkdir -vp /data/.cache \
|
||||
/data/StableDiffusion \
|
||||
/data/LyCORIS \
|
||||
/data/Codeformer \
|
||||
/data/ModelScope \
|
||||
/data/GFPGAN \
|
||||
/data/ESRGAN \
|
||||
/data/BSRGAN \
|
||||
/data/RealESRGAN \
|
||||
/data/SwinIR \
|
||||
/data/LDSR \
|
||||
/data/ScuNET \
|
||||
/data/embeddings \
|
||||
/data/VAE \
|
||||
/data/Deepdanbooru \
|
||||
/data/MiDaS \
|
||||
/data/Lora \
|
||||
/data/ControlNet \
|
||||
/data/openpose \
|
||||
/data/GLIGEN \
|
||||
/data/CLIPEncoder # this is different from the cached pre-train ViT saved in /data/.cache/clip TODO: find out how
|
||||
/data/config/ \
|
||||
/data/models/ \
|
||||
/data/models/Stable-diffusion \
|
||||
/data/models/GFPGAN \
|
||||
/data/models/RealESRGAN \
|
||||
/data/models/LDSR \
|
||||
/data/models/VAE
|
||||
|
||||
echo "Downloading, this might take a while..."
|
||||
|
||||
aria2c -x 10 --disable-ipv6 --input-file /docker/links.txt --dir /data --continue
|
||||
aria2c -x 10 --disable-ipv6 --input-file /docker/links.txt --dir /data/models --continue
|
||||
|
||||
echo "Checking SHAs..."
|
||||
|
||||
@@ -39,11 +27,5 @@ https://github.com/AbdBarho/stable-diffusion-webui-docker/blob/master/LICENSE
|
||||
https://github.com/CompVis/stable-diffusion/blob/main/LICENSE
|
||||
https://github.com/AUTOMATIC1111/stable-diffusion-webui/blob/master/LICENSE.txt
|
||||
https://github.com/invoke-ai/InvokeAI/blob/main/LICENSE
|
||||
https://github.com/sd-webui/stable-diffusion-webui/blob/master/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
|
||||
And licenses of all UIs, third party libraries, and extensions.
|
||||
EOF
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.ckpt
|
||||
out=StableDiffusion/v1-5-pruned-emaonly.ckpt
|
||||
out=Stable-diffusion/v1-5-pruned-emaonly.ckpt
|
||||
https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.ckpt
|
||||
out=VAE/vae-ft-mse-840000-ema-pruned.ckpt
|
||||
https://huggingface.co/runwayml/stable-diffusion-inpainting/resolve/main/sd-v1-5-inpainting.ckpt
|
||||
out=StableDiffusion/sd-v1-5-inpainting.ckpt
|
||||
out=Stable-diffusion/sd-v1-5-inpainting.ckpt
|
||||
https://github.com/TencentARC/GFPGAN/releases/download/v1.3.4/GFPGANv1.4.pth
|
||||
out=GFPGAN/GFPGANv1.4.pth
|
||||
https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth
|
||||
|
||||
@@ -48,6 +48,6 @@ EXPOSE 7860
|
||||
|
||||
ENTRYPOINT ["/docker/entrypoint.sh"]
|
||||
CMD invokeai --web --host 0.0.0.0 --port 7860 --root_dir ${ROOT} --config ${CONFIG_DIR}/models.yaml \
|
||||
--outdir /output/invoke --embedding_directory /data/embeddings/ --lora_directory /data/Lora \
|
||||
--outdir /output/invoke --embedding_directory /data/embeddings/ --lora_directory /data/models/Lora \
|
||||
--no-nsfw_checker --no-safety_checker ${CLI_ARGS}
|
||||
|
||||
|
||||
@@ -13,10 +13,10 @@ MOUNTS["/root/.cache"]=/data/.cache/
|
||||
rm -rf ${HF_HOME}/diffusers
|
||||
|
||||
# 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/GFPGAN/
|
||||
MOUNTS["${ROOT}/models/realesrgan"]=/data/RealESRGAN/
|
||||
MOUNTS["${ROOT}/models/codeformer"]=/data/models/Codeformer/
|
||||
MOUNTS["${ROOT}/models/gfpgan/GFPGANv1.4.pth"]=/data/models/GFPGAN/GFPGANv1.4.pth
|
||||
MOUNTS["${ROOT}/models/gfpgan/weights"]=/data/models/GFPGAN/
|
||||
MOUNTS["${ROOT}/models/realesrgan"]=/data/models/RealESRGAN/
|
||||
|
||||
MOUNTS["${ROOT}/models/ldm"]=/data/.cache/invoke/ldm/
|
||||
|
||||
|
||||
Reference in New Issue
Block a user