mirror of
https://github.com/AbdBarho/stable-diffusion-webui-docker.git
synced 2026-03-20 12:04:46 +01:00
v8
This commit is contained in:
parent
660c098da0
commit
b1c58750a9
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
|
||||||
30
data/.gitignore
vendored
30
data/.gitignore
vendored
|
|
@ -1,28 +1,2 @@
|
||||||
# for all of the stuff downloaded by transformers, pytorch, and others
|
/*
|
||||||
/.cache
|
!/.gitignore
|
||||||
# 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
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,8 @@ x-base_service: &base_service
|
||||||
volumes:
|
volumes:
|
||||||
- &v1 ./data:/data
|
- &v1 ./data:/data
|
||||||
- &v2 ./output:/output
|
- &v2 ./output:/output
|
||||||
stop_signal: SIGINT
|
stop_signal: SIGKILL
|
||||||
|
tty: true
|
||||||
deploy:
|
deploy:
|
||||||
resources:
|
resources:
|
||||||
reservations:
|
reservations:
|
||||||
|
|
@ -28,7 +29,7 @@ services:
|
||||||
<<: *base_service
|
<<: *base_service
|
||||||
profiles: ["auto"]
|
profiles: ["auto"]
|
||||||
build: ./services/AUTOMATIC1111
|
build: ./services/AUTOMATIC1111
|
||||||
image: sd-auto:58
|
image: sd-auto:59
|
||||||
environment:
|
environment:
|
||||||
- CLI_ARGS=--allow-code --medvram --xformers --enable-insecure-extension-access --api
|
- CLI_ARGS=--allow-code --medvram --xformers --enable-insecure-extension-access --api
|
||||||
|
|
||||||
|
|
@ -43,7 +44,7 @@ services:
|
||||||
<<: *base_service
|
<<: *base_service
|
||||||
profiles: ["invoke"]
|
profiles: ["invoke"]
|
||||||
build: ./services/invoke/
|
build: ./services/invoke/
|
||||||
image: sd-invoke:29
|
image: sd-invoke:30
|
||||||
environment:
|
environment:
|
||||||
- PRELOAD=true
|
- PRELOAD=true
|
||||||
- CLI_ARGS=--xformers
|
- CLI_ARGS=--xformers
|
||||||
|
|
@ -59,8 +60,7 @@ services:
|
||||||
<<: *base_service
|
<<: *base_service
|
||||||
profiles: ["comfy"]
|
profiles: ["comfy"]
|
||||||
build: ./services/comfy/
|
build: ./services/comfy/
|
||||||
image: sd-comfy:2
|
image: sd-comfy:3
|
||||||
tty: true
|
|
||||||
environment:
|
environment:
|
||||||
- CLI_ARGS=
|
- CLI_ARGS=
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,30 +19,14 @@ if [ ! -f /data/config/auto/styles.csv ]; then
|
||||||
touch /data/config/auto/styles.csv
|
touch /data/config/auto/styles.csv
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# copy models from original models folder
|
||||||
|
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
|
declare -A MOUNTS
|
||||||
|
|
||||||
MOUNTS["/root/.cache"]="/data/.cache"
|
MOUNTS["/root/.cache"]="/data/.cache"
|
||||||
|
MOUNTS["${ROOT}/models"]="/data/models"
|
||||||
# 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}/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"
|
||||||
|
|
@ -66,8 +50,21 @@ for to_path in "${!MOUNTS[@]}"; do
|
||||||
echo Mounted $(basename "${from_path}")
|
echo Mounted $(basename "${from_path}")
|
||||||
done
|
done
|
||||||
|
|
||||||
|
echo "Installing extension dependencies (if any)"
|
||||||
|
|
||||||
|
# because we build our container as root:
|
||||||
|
chown -R root ~/.cache/
|
||||||
|
chmod 766 ~/.cache/
|
||||||
|
|
||||||
|
shopt -s nullglob
|
||||||
|
list=(./extensions/*/requirements.txt)
|
||||||
|
for req in "${list[@]}"; do
|
||||||
|
pip install -r "$req"
|
||||||
|
done
|
||||||
|
|
||||||
if [ -f "/data/config/auto/startup.sh" ]; then
|
if [ -f "/data/config/auto/startup.sh" ]; then
|
||||||
pushd ${ROOT}
|
pushd ${ROOT}
|
||||||
|
echo "Running startup script"
|
||||||
. /data/config/auto/startup.sh
|
. /data/config/auto/startup.sh
|
||||||
popd
|
popd
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,11 @@
|
||||||
FROM alpine:3.17 as xformers
|
FROM alpine:3.17 as xformers
|
||||||
RUN apk add --no-cache aria2
|
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 pytorch/pytorch:2.0.1-cuda11.7-cudnn8-runtime
|
||||||
FROM python:3.10.9-slim
|
|
||||||
|
|
||||||
ENV DEBIAN_FRONTEND=noninteractive PIP_PREFER_BINARY=1
|
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
|
RUN apt-get update && apt-get install -y git && apt-get clean
|
||||||
|
|
||||||
ENV ROOT=/stable-diffusion
|
ENV ROOT=/stable-diffusion
|
||||||
|
|
@ -21,13 +18,13 @@ RUN --mount=type=cache,target=/root/.cache/pip \
|
||||||
|
|
||||||
|
|
||||||
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 \
|
--mount=type=bind,from=xformers,source=/wheel.whl,target=/xformers-0.0.21-cp310-cp310-linux_x86_64.whl \
|
||||||
pip install triton /xformers-0.0.17-cp310-cp310-linux_x86_64.whl
|
pip install /xformers-0.0.21-cp310-cp310-linux_x86_64.whl
|
||||||
|
|
||||||
|
|
||||||
WORKDIR ${ROOT}
|
WORKDIR ${ROOT}
|
||||||
|
|
||||||
ARG BRANCH=master SHA=884ea653c8d6fe19b3724f45a04a0d74cd881f2f
|
ARG BRANCH=master SHA=8607c2d42d10b0108de02528e813cc703e58813f
|
||||||
RUN --mount=type=cache,target=/root/.cache/pip \
|
RUN --mount=type=cache,target=/root/.cache/pip \
|
||||||
git fetch && \
|
git fetch && \
|
||||||
git checkout ${BRANCH} && \
|
git checkout ${BRANCH} && \
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,20 @@
|
||||||
a111:
|
a111:
|
||||||
base_path: /data
|
base_path: /data
|
||||||
|
|
||||||
checkpoints: StableDiffusion
|
checkpoints: models/Stable-diffusion
|
||||||
configs: StableDiffusion
|
configs: models/Stable-diffusion
|
||||||
vae: VAE
|
vae: models/VAE
|
||||||
loras: Lora
|
loras: models/Lora
|
||||||
upscale_models: |
|
upscale_models: |
|
||||||
RealESRGAN
|
models/RealESRGAN
|
||||||
ESRGAN
|
models/ESRGAN
|
||||||
SwinIR
|
models/SwinIR
|
||||||
GFPGAN
|
models/GFPGAN
|
||||||
|
hypernetworks: models/hypernetworks
|
||||||
|
controlnet: models/ControlNet
|
||||||
|
gligen: models/GLIGEN
|
||||||
|
clip: models/CLIPEncoder
|
||||||
embeddings: embeddings
|
embeddings: embeddings
|
||||||
hypernetworks: Hypernetworks
|
|
||||||
controlnet: ControlNet
|
|
||||||
gligen: GLIGEN
|
|
||||||
clip: CLIPEncoder
|
|
||||||
|
|
||||||
custom_nodes: config/comfy/custom_nodes
|
custom_nodes: config/comfy/custom_nodes
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,6 @@ EXPOSE 7860
|
||||||
|
|
||||||
ENTRYPOINT ["/docker/entrypoint.sh"]
|
ENTRYPOINT ["/docker/entrypoint.sh"]
|
||||||
CMD invokeai --web --host 0.0.0.0 --port 7860 --root_dir ${ROOT} --config ${CONFIG_DIR}/models.yaml \
|
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}
|
--no-nsfw_checker --no-safety_checker ${CLI_ARGS}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,10 +13,10 @@ MOUNTS["/root/.cache"]=/data/.cache/
|
||||||
rm -rf ${HF_HOME}/diffusers
|
rm -rf ${HF_HOME}/diffusers
|
||||||
|
|
||||||
# ui specific
|
# ui specific
|
||||||
MOUNTS["${ROOT}/models/codeformer"]=/data/Codeformer/
|
MOUNTS["${ROOT}/models/codeformer"]=/data/models/Codeformer/
|
||||||
MOUNTS["${ROOT}/models/gfpgan/GFPGANv1.4.pth"]=/data/GFPGAN/GFPGANv1.4.pth
|
MOUNTS["${ROOT}/models/gfpgan/GFPGANv1.4.pth"]=/data/models/GFPGAN/GFPGANv1.4.pth
|
||||||
MOUNTS["${ROOT}/models/gfpgan/weights"]=/data/GFPGAN/
|
MOUNTS["${ROOT}/models/gfpgan/weights"]=/data/models/GFPGAN/
|
||||||
MOUNTS["${ROOT}/models/realesrgan"]=/data/RealESRGAN/
|
MOUNTS["${ROOT}/models/realesrgan"]=/data/models/RealESRGAN/
|
||||||
|
|
||||||
MOUNTS["${ROOT}/models/ldm"]=/data/.cache/invoke/ldm/
|
MOUNTS["${ROOT}/models/ldm"]=/data/.cache/invoke/ldm/
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue