From 076b5747d37620eae2a1211e1405c6d98bd57d14 Mon Sep 17 00:00:00 2001 From: LEv145 <40071054+LEv145@users.noreply.github.com> Date: Fri, 28 Apr 2023 15:42:12 +0200 Subject: [PATCH 01/42] Fix file permissions (#425) https://github.com/AbdBarho/stable-diffusion-webui-docker/issues/424 Co-authored-by: LEv145 --- services/comfy/entrypoint.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 services/comfy/entrypoint.sh diff --git a/services/comfy/entrypoint.sh b/services/comfy/entrypoint.sh old mode 100644 new mode 100755 From 445f3f8bac144adc2645eb68a8e6f0c22020627a Mon Sep 17 00:00:00 2001 From: divens Date: Fri, 28 Apr 2023 19:55:06 +0200 Subject: [PATCH 02/42] Add tty to comfy service (#429) Closes issue #428 Co-authored-by: Dylan Ivens <12586504+divens@users.noreply.github.com> --- docker-compose.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker-compose.yml b/docker-compose.yml index 3199435..fd89410 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -68,6 +68,7 @@ services: profiles: ["comfy"] build: ./services/comfy/ image: sd-comfy:1 + tty: true environment: - CLI_ARGS= From 7b8bc3d74ae33978e78324a6e00499d755db1902 Mon Sep 17 00:00:00 2001 From: AbdBarho Date: Thu, 4 May 2023 06:55:01 +0200 Subject: [PATCH 03/42] LyCORIS - ModelScope (#439) Follow up to #401 Closes #401 Closes #437 --------- Co-authored-by: svupper <56261963+svupper@users.noreply.github.com> Co-authored-by: Ubuntu --- data/.gitignore | 2 ++ docker-compose.yml | 2 +- services/AUTOMATIC1111/entrypoint.sh | 2 ++ services/download/download.sh | 2 +- 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/data/.gitignore b/data/.gitignore index 5194313..9649426 100644 --- a/data/.gitignore +++ b/data/.gitignore @@ -22,3 +22,5 @@ /Lora /ControlNet /openpose +/ModelScope +/LyCORIS diff --git a/docker-compose.yml b/docker-compose.yml index fd89410..a577202 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -28,7 +28,7 @@ services: <<: *base_service profiles: ["auto"] build: ./services/AUTOMATIC1111 - image: sd-auto:51 + image: sd-auto:52 environment: - CLI_ARGS=--allow-code --medvram --xformers --enable-insecure-extension-access --api diff --git a/services/AUTOMATIC1111/entrypoint.sh b/services/AUTOMATIC1111/entrypoint.sh index c6df995..dd96248 100755 --- a/services/AUTOMATIC1111/entrypoint.sh +++ b/services/AUTOMATIC1111/entrypoint.sh @@ -35,8 +35,10 @@ 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}/config.json"]="/data/config/auto/config.json" diff --git a/services/download/download.sh b/services/download/download.sh index 54176d0..91e39d9 100755 --- a/services/download/download.sh +++ b/services/download/download.sh @@ -3,7 +3,7 @@ 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 /data/MiDaS /data/Lora /data/ControlNet /data/openpose +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 echo "Downloading, this might take a while..." From 56b942237e93c113702598e90fe4058c869a220a Mon Sep 17 00:00:00 2001 From: AbdBarho Date: Thu, 4 May 2023 07:29:49 +0200 Subject: [PATCH 04/42] Update Auto (#379) Last version before pytorch 2 https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/5ab7f213bec2f816f9c5644becb32eb72c8ffb89 --- docker-compose.yml | 2 +- services/AUTOMATIC1111/Dockerfile | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index a577202..2853c5c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -28,7 +28,7 @@ services: <<: *base_service profiles: ["auto"] build: ./services/AUTOMATIC1111 - image: sd-auto:52 + image: sd-auto:53 environment: - CLI_ARGS=--allow-code --medvram --xformers --enable-insecure-extension-access --api diff --git a/services/AUTOMATIC1111/Dockerfile b/services/AUTOMATIC1111/Dockerfile index a610d0c..19adbef 100644 --- a/services/AUTOMATIC1111/Dockerfile +++ b/services/AUTOMATIC1111/Dockerfile @@ -24,8 +24,9 @@ FROM python:3.10.9-slim ENV DEBIAN_FRONTEND=noninteractive PIP_PREFER_BINARY=1 -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 --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 --mount=type=cache,target=/root/.cache/pip pip install torch==2.0.0+cu118 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 @@ -61,7 +62,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=a9fed7c364061ae6efb37f797b6b522cb3cf7aa2 +ARG SHA=5ab7f213bec2f816f9c5644becb32eb72c8ffb89 RUN --mount=type=cache,target=/root/.cache/pip \ cd stable-diffusion-webui && \ git fetch && \ @@ -76,7 +77,8 @@ RUN \ python3 /docker/info.py ${ROOT}/modules/ui.py && \ mv ${ROOT}/style.css ${ROOT}/user.css && \ # 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 + sed -i 's/in_app_dir = .*/in_app_dir = True/g' /usr/local/lib/python3.10/site-packages/gradio/routes.py && \ + git config --global --add safe.directory '*' WORKDIR ${ROOT} ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility From 2efaeb41cdcfddd17a86db096a26a57b971de32e Mon Sep 17 00:00:00 2001 From: AbdBarho Date: Thu, 4 May 2023 07:48:19 +0200 Subject: [PATCH 05/42] Add styles.csv support (#440) Follow up to #386 after https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/9334 has been merged. Closes #435 --- docker-compose.yml | 2 +- services/AUTOMATIC1111/entrypoint.sh | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 2853c5c..e6750be 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -28,7 +28,7 @@ services: <<: *base_service profiles: ["auto"] build: ./services/AUTOMATIC1111 - image: sd-auto:53 + image: sd-auto:54 environment: - CLI_ARGS=--allow-code --medvram --xformers --enable-insecure-extension-access --api diff --git a/services/AUTOMATIC1111/entrypoint.sh b/services/AUTOMATIC1111/entrypoint.sh index dd96248..5f9e243 100755 --- a/services/AUTOMATIC1111/entrypoint.sh +++ b/services/AUTOMATIC1111/entrypoint.sh @@ -15,6 +15,10 @@ if [ ! -f /data/config/auto/ui-config.json ]; then echo '{}' >/data/config/auto/ui-config.json fi +if [ ! -f /data/config/auto/styles.csv ]; then + touch /data/config/auto/styles.csv +fi + declare -A MOUNTS MOUNTS["/root/.cache"]="/data/.cache" @@ -43,6 +47,7 @@ MOUNTS["${ROOT}/models/ModelScope"]="/data/ModelScope" MOUNTS["${ROOT}/embeddings"]="/data/embeddings" MOUNTS["${ROOT}/config.json"]="/data/config/auto/config.json" MOUNTS["${ROOT}/ui-config.json"]="/data/config/auto/ui-config.json" +MOUNTS["${ROOT}/styles.csv"]="/data/config/auto/styles.csv" MOUNTS["${ROOT}/extensions"]="/data/config/auto/extensions" # extra hacks From 0e5801e9d6c181a6e6535604698bc724799b104d Mon Sep 17 00:00:00 2001 From: AbdBarho Date: Thu, 4 May 2023 22:41:51 +0200 Subject: [PATCH 06/42] Update auto to pytorch 2 (#442) Closes #410 --- docker-compose.yml | 2 +- services/AUTOMATIC1111/Dockerfile | 15 +++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index e6750be..68cb4b1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -28,7 +28,7 @@ services: <<: *base_service profiles: ["auto"] build: ./services/AUTOMATIC1111 - image: sd-auto:54 + image: sd-auto:55 environment: - CLI_ARGS=--allow-code --medvram --xformers --enable-insecure-extension-access --api diff --git a/services/AUTOMATIC1111/Dockerfile b/services/AUTOMATIC1111/Dockerfile index 19adbef..580dea1 100644 --- a/services/AUTOMATIC1111/Dockerfile +++ b/services/AUTOMATIC1111/Dockerfile @@ -18,17 +18,20 @@ RUN . /clone.sh clip-interrogator https://github.com/pharmapsychotic/clip-interr 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/5.0.3/xformers-0.0.20.dev528-cp310-cp310-manylinux2014_x86_64-pytorch2.whl' + FROM python:3.10.9-slim ENV DEBIAN_FRONTEND=noninteractive PIP_PREFER_BINARY=1 -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 install fonts-dejavu-core rsync git jq moreutils aria2 -y && apt-get clean -# RUN --mount=type=cache,target=/root/.cache/pip pip install torch==2.0.0+cu118 torchvision --extra-index-url https://download.pytorch.org/whl/cu117 +RUN --mount=type=cache,target=/cache --mount=type=cache,target=/root/.cache/pip \ + aria2c -x 5 --dir /cache --out torch-2.0.0-cp310-cp310-linux_x86_64.whl -c \ + https://download.pytorch.org/whl/cu118/torch-2.0.0%2Bcu118-cp310-cp310-linux_x86_64.whl && \ + pip install /cache/torch-2.0.0-cp310-cp310-linux_x86_64.whl torchvision --index-url https://download.pytorch.org/whl/cu118 -RUN apt-get update && apt install fonts-dejavu-core rsync git jq moreutils -y && apt-get clean RUN --mount=type=cache,target=/root/.cache/pip \ @@ -38,8 +41,8 @@ RUN --mount=type=cache,target=/root/.cache/pip \ pip install -r requirements_versions.txt 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 + --mount=type=bind,from=xformers,source=/wheel.whl,target=/xformers-0.0.20.dev528-cp310-cp310-manylinux2014_x86_64.whl \ + pip install /xformers-0.0.20.dev528-cp310-cp310-manylinux2014_x86_64.whl ENV ROOT=/stable-diffusion-webui From 36f39043ded164e29901d2b075c2851b32fb2b3d Mon Sep 17 00:00:00 2001 From: AbdBarho Date: Thu, 4 May 2023 22:54:37 +0200 Subject: [PATCH 07/42] Only run if changed (#444) --- .github/workflows/docker.yml | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 0955d69..448a65c 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -4,9 +4,9 @@ on: push: branches: master pull_request: - paths: - - docker-compose.yml - - services + paths: + - docker-compose.yml + - services jobs: build: @@ -22,4 +22,18 @@ jobs: name: ${{ matrix.profile }} steps: - uses: actions/checkout@v3 + - uses: dorny/paths-filter@v2 + id: changes + with: + filters: | + auto: + - 'services/auto/**' + sygil: + - 'services/sygil/**' + invoke: + - 'services/invoke/**' + comfy: + - 'services/comfy/**' + - run: docker compose --profile ${{ matrix.profile }} build --progress plain + if: github.ref == 'refs/heads/master' || steps.changes.outputs.${{ matrix.profile }} == 'true' From a68734c9f9f50becf264a4dd6028fa096579dc1a Mon Sep 17 00:00:00 2001 From: AbdBarho Date: Thu, 4 May 2023 23:00:46 +0200 Subject: [PATCH 08/42] Revert "Only run if changed (#444)" This reverts commit 36f39043ded164e29901d2b075c2851b32fb2b3d. --- .github/workflows/docker.yml | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 448a65c..0955d69 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -4,9 +4,9 @@ on: push: branches: master pull_request: - paths: - - docker-compose.yml - - services + paths: + - docker-compose.yml + - services jobs: build: @@ -22,18 +22,4 @@ jobs: name: ${{ matrix.profile }} steps: - uses: actions/checkout@v3 - - uses: dorny/paths-filter@v2 - id: changes - with: - filters: | - auto: - - 'services/auto/**' - sygil: - - 'services/sygil/**' - invoke: - - 'services/invoke/**' - comfy: - - 'services/comfy/**' - - run: docker compose --profile ${{ matrix.profile }} build --progress plain - if: github.ref == 'refs/heads/master' || steps.changes.outputs.${{ matrix.profile }} == 'true' From 9ac33db795c8f3626eac98b6aa5f5d3b02def2bc Mon Sep 17 00:00:00 2001 From: Mat Date: Sat, 6 May 2023 07:38:36 +0200 Subject: [PATCH 09/42] Fix overwriting existing values in config.json in auto (#418) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `jq` merge direction in this case is right to left so if the user had set up custom paths it would replace them with the default ones. This PR switches the direction to use the defaults as fallback instead of overwriting user settings. ---- Didn't want to create an issue for the tiny change. Thanks for your work on the repo, it saved me a lot of time, 👍 --------- Co-authored-by: AbdBarho --- .gitignore | 4 ++ services/AUTOMATIC1111/config.json | 10 ---- services/AUTOMATIC1111/config.py | 78 ++++++++++++++++++++++++++++ services/AUTOMATIC1111/entrypoint.sh | 4 +- 4 files changed, 84 insertions(+), 12 deletions(-) delete mode 100644 services/AUTOMATIC1111/config.json create mode 100644 services/AUTOMATIC1111/config.py diff --git a/.gitignore b/.gitignore index f64b472..2a011a1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,6 @@ /.devcontainer /docker-compose.override.yml + +# VSCode specific +*.code-workspace +/.vscode diff --git a/services/AUTOMATIC1111/config.json b/services/AUTOMATIC1111/config.json deleted file mode 100644 index 7fff2b7..0000000 --- a/services/AUTOMATIC1111/config.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "outdir_samples": "", - "outdir_txt2img_samples": "/output/txt2img", - "outdir_img2img_samples": "/output/img2img", - "outdir_extras_samples": "/output/extras", - "outdir_txt2img_grids": "/output/txt2img-grids", - "outdir_img2img_grids": "/output/img2img-grids", - "outdir_save": "/output/saved", - "font": "DejaVuSans.ttf" -} diff --git a/services/AUTOMATIC1111/config.py b/services/AUTOMATIC1111/config.py new file mode 100644 index 0000000..b8d699e --- /dev/null +++ b/services/AUTOMATIC1111/config.py @@ -0,0 +1,78 @@ +#!/usr/bin/env python3 + +"""Checks and sets default values for config.json before starting the container.""" + +import json +import re +import os.path +import sys + +DEFAULT_FILEPATH = '/data/config/auto/config.json' + +DEFAULT_OUTDIRS = { + "outdir_samples": "", + "outdir_txt2img_samples": "/output/txt2img", + "outdir_img2img_samples": "/output/img2img", + "outdir_extras_samples": "/output/extras", + "outdir_grids": "", + "outdir_txt2img_grids": "/output/txt2img-grids", + "outdir_img2img_grids": "/output/img2img-grids", + "outdir_save": "/output/saved", + "outdir_init_images": "/output/init-images", +} +RE_VALID_OUTDIR = re.compile(r"(^/output(/\.?[\w\-\_]+)+/?$)|(^\s?$)") + +DEFAULT_OTHER = { + "font": "DejaVuSans.ttf", +} + +def dict_to_json_file(target_file: str, data: dict): + """Write dictionary to specified json file""" + + with open(target_file, 'w') as f: + json.dump(data, f) + +def json_file_to_dict(config_file: str) -> dict|None: + """Load json file into a dictionary. Return None if file does not exist.""" + + if os.path.isfile(config_file): + with open(config_file, 'r') as f: + return json.load(f) + else: + return None + +def replace_if_invalid(value: str, replacement: str, pattern: str|re.Pattern[str]) -> str: + """Returns original value if valid, fallback value if invalid""" + + if re.match(pattern, value): + return value + else: + return replacement + +def check_and_replace_config(config_file: str, target_file: str = None): + """Checks given file for invalid values. Replaces those with fallback values (default: overwrites file).""" + + # Get current user config, or empty if file does not exists + data = json_file_to_dict(config_file) or {} + + # Check and fix output directories + for k, def_val in DEFAULT_OUTDIRS.items(): + if k not in data: + data[k] = def_val + else: + data[k] = replace_if_invalid(value=data[k], replacement=def_val, pattern=RE_VALID_OUTDIR) + + # Check and fix other default settings + for k, def_val in DEFAULT_OTHER.items(): + if k not in data: + data[k] = def_val + + # Write results to file + dict_to_json_file(target_file or config_file, data) + +if __name__ == '__main__': + if len(sys.argv) > 1: + check_and_replace_config(*sys.argv[1:]) + else: + check_and_replace_config(DEFAULT_FILEPATH) + diff --git a/services/AUTOMATIC1111/entrypoint.sh b/services/AUTOMATIC1111/entrypoint.sh index 5f9e243..54e709c 100755 --- a/services/AUTOMATIC1111/entrypoint.sh +++ b/services/AUTOMATIC1111/entrypoint.sh @@ -8,8 +8,8 @@ mkdir -p /data/config/auto/scripts/ 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 -jq '. * input' /data/config/auto/config.json /docker/config.json | sponge /data/config/auto/config.json +# Set up config file +python /docker/config.py /data/config/auto/config.json if [ ! -f /data/config/auto/ui-config.json ]; then echo '{}' >/data/config/auto/ui-config.json From 7fb8b97b90aa7fd849c7d59eeed5a43e875af67a Mon Sep 17 00:00:00 2001 From: AbdBarho Date: Sat, 6 May 2023 09:48:38 +0200 Subject: [PATCH 10/42] Invoke 2.3.5 (#449) https://github.com/invoke-ai/InvokeAI/commit/d73f1c363c3f2fe00f14ed34e276b4366b32a886 --- docker-compose.yml | 13 ++++++++++--- services/invoke/Dockerfile | 19 ++++++++++--------- services/invoke/entrypoint.sh | 4 +--- 3 files changed, 21 insertions(+), 15 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 68cb4b1..711cee8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -39,14 +39,21 @@ services: environment: - CLI_ARGS=--no-half --precision full --allow-code --enable-insecure-extension-access --api - invoke: + invoke: &invoke <<: *base_service profiles: ["invoke"] build: ./services/invoke/ - image: sd-invoke:27 + image: sd-invoke:28 environment: - PRELOAD=true - - CLI_ARGS=--no-nsfw_checker --no-safety_checker --xformers + - CLI_ARGS=--xformers + + # invoke-cpu: + # <<: *invoke + # profiles: ["invoke-cpu"] + # environment: + # - PRELOAD=true + # - CLI_ARGS=--always_use_cpu sygil: &sygil <<: *base_service diff --git a/services/invoke/Dockerfile b/services/invoke/Dockerfile index 514d525..5568ac0 100644 --- a/services/invoke/Dockerfile +++ b/services/invoke/Dockerfile @@ -1,6 +1,6 @@ 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/5.0.3/xformers-0.0.20.dev528-cp310-cp310-manylinux2014_x86_64-pytorch1.13.whl' @@ -22,27 +22,26 @@ RUN --mount=type=cache,target=/var/cache/apt \ ln -sf opencv4.pc opencv.pc - ENV ROOT=/InvokeAI RUN git clone https://github.com/invoke-ai/InvokeAI.git ${ROOT} WORKDIR ${ROOT} RUN --mount=type=cache,target=/root/.cache/pip \ git reset --hard 4463124bddd221c333d4c70e73aa2949ad35453d && \ - pip install . + pip install -e . -ARG BRANCH=main SHA=50eb02f68be912276a9c106d5e8038a5671a0386 +ARG BRANCH=main SHA=d73f1c363c3f2fe00f14ed34e276b4366b32a886 RUN --mount=type=cache,target=/root/.cache/pip \ git fetch && \ git reset --hard && \ git checkout ${BRANCH} && \ git reset --hard ${SHA} && \ - pip install -U . + pip install -U -e . 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 -U opencv-python-headless triton /xformers-0.0.17-cp310-cp310-linux_x86_64.whl && \ + --mount=type=bind,from=xformers,source=/wheel.whl,target=/xformers-0.0.20-cp310-cp310-linux_x86_64.whl \ + pip install -U opencv-python-headless triton /xformers-0.0.20-cp310-cp310-linux_x86_64.whl && \ python3 -c "from patchmatch import patch_match" @@ -54,5 +53,7 @@ ENV PYTHONUNBUFFERED=1 PRELOAD=false HF_HOME=/root/.cache/huggingface CONFIG_DIR 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 ${CLI_ARGS} -# TODO: make sure the config is persisted between sessions +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 \ + --no-nsfw_checker --no-safety_checker ${CLI_ARGS} + diff --git a/services/invoke/entrypoint.sh b/services/invoke/entrypoint.sh index 3594c85..b137c45 100755 --- a/services/invoke/entrypoint.sh +++ b/services/invoke/entrypoint.sh @@ -4,7 +4,7 @@ set -Eeuo pipefail declare -A MOUNTS -mkdir -p ${CONFIG_DIR} +mkdir -p ${CONFIG_DIR} ${ROOT}/configs/stable-diffusion/ # cache MOUNTS["/root/.cache"]=/data/.cache/ @@ -20,8 +20,6 @@ MOUNTS["${ROOT}/models/realesrgan"]=/data/RealESRGAN/ MOUNTS["${ROOT}/models/ldm"]=/data/.cache/invoke/ldm/ -MOUNTS["${ROOT}/embeddings"]=/data/embeddings/ - # hacks for to_path in "${!MOUNTS[@]}"; do From d47e77f19c82411d0e1a32f6926c94478bdd1eea Mon Sep 17 00:00:00 2001 From: LEv145 <40071054+LEv145@users.noreply.github.com> Date: Sun, 7 May 2023 11:11:30 +0200 Subject: [PATCH 11/42] Update/fix mounts for comfyUI (#432) I updated the paths to make all paths work Now paths in ComfyUI are working Added: - `input` - `models/configs` - `models/gligen` - `models/diffusers` - `models/hypernetworks` Was broken: - `custom_nodes` - `models/clip_vision` - `models/clip` --------- Co-authored-by: LEv145 Co-authored-by: AbdBarho --- data/.gitignore | 1 + services/comfy/Dockerfile | 1 + services/comfy/entrypoint.sh | 28 +++------------------------ services/comfy/extra_model_paths.yaml | 24 +++++++++++++++++++++++ services/download/download.sh | 2 +- 5 files changed, 30 insertions(+), 26 deletions(-) create mode 100644 services/comfy/extra_model_paths.yaml diff --git a/data/.gitignore b/data/.gitignore index 9649426..3bb809d 100644 --- a/data/.gitignore +++ b/data/.gitignore @@ -24,3 +24,4 @@ /openpose /ModelScope /LyCORIS +/GLIGEN diff --git a/services/comfy/Dockerfile b/services/comfy/Dockerfile index 0df273f..ac0556f 100644 --- a/services/comfy/Dockerfile +++ b/services/comfy/Dockerfile @@ -36,6 +36,7 @@ RUN --mount=type=cache,target=/root/.cache/pip \ # add info COPY . /docker/ +RUN cp /docker/extra_model_paths.yaml ${ROOT} ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility NVIDIA_VISIBLE_DEVICES=all ENV PYTHONPATH="${PYTHONPATH}:${PWD}" CLI_ARGS="" diff --git a/services/comfy/entrypoint.sh b/services/comfy/entrypoint.sh index 5ffc6bc..f9faf7c 100755 --- a/services/comfy/entrypoint.sh +++ b/services/comfy/entrypoint.sh @@ -2,34 +2,12 @@ set -Eeuo pipefail -declare -A MOUNTS - - mkdir -vp /data/config/comfy/ -# cache -MOUNTS["/root/.cache"]=/data/.cache -# ui specific -MOUNTS["${ROOT}/models/checkpoints"]="/data/StableDiffusion" -MOUNTS["${ROOT}/models/controlnet"]="/data/ControlNet" -MOUNTS["${ROOT}/models/upscale_models/RealESRGAN"]="/data/RealESRGAN" -MOUNTS["${ROOT}/models/upscale_models/GFPGAN"]="/data/GFPGAN" -MOUNTS["${ROOT}/models/upscale_models/SwinIR"]="/data/SwinIR" -MOUNTS["${ROOT}/models/vae"]="/data/VAE" +declare -A MOUNTS -# data -MOUNTS["${ROOT}/models/loras"]="/data/Lora" -MOUNTS["${ROOT}/models/embeddings"]="/data/embeddings" - -# config -# TODO: I am not sure if this is final, maybe it should change in the future -MOUNTS["${ROOT}/models/clip"]="/data/.cache/comfy/clip" -MOUNTS["${ROOT}/models/clip_vision"]="/data/.cache/comfy/clip_vision" -MOUNTS["${ROOT}/models/custom_nodes"]="/data/config/comfy/custom_nodes" -MOUNTS["${ROOT}/models/style_models"]="/data/config/comfy/style_models" -MOUNTS["${ROOT}/models/t2i_adapter"]="/data/config/comfy/t2i_adapter" - -# output +MOUNTS["/root/.cache"]="/data/.cache" +MOUNTS["${ROOT}/input"]="/data/config/comfy/input" MOUNTS["${ROOT}/output"]="/output/comfy" for to_path in "${!MOUNTS[@]}"; do diff --git a/services/comfy/extra_model_paths.yaml b/services/comfy/extra_model_paths.yaml new file mode 100644 index 0000000..ba27ae2 --- /dev/null +++ b/services/comfy/extra_model_paths.yaml @@ -0,0 +1,24 @@ +a111: + base_path: /data + + checkpoints: StableDiffusion + configs: StableDiffusion + vae: VAE + loras: Lora + upscale_models: | + RealESRGAN + ESRGAN + SwinIR + GFPGAN + embeddings: embeddings + hypernetworks: Hypernetworks + controlnet: ControlNet + gligen: GLIGEN + custom_nodes: config/comfy/custom_nodes + + # TODO: I am unsure about these, need more testing + # clip: .cache/clip + # style_models: config/comfy/style_models + # t2i_adapter: config/comfy/t2i_adapter + # clip_vision: config/comfy/clip_vision + # diffusers: config/comfy/diffusers diff --git a/services/download/download.sh b/services/download/download.sh index 91e39d9..03835ac 100755 --- a/services/download/download.sh +++ b/services/download/download.sh @@ -3,7 +3,7 @@ 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 +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 echo "Downloading, this might take a while..." From c836f419219811a60007757b1ba7af9e87a8882a Mon Sep 17 00:00:00 2001 From: AbdBarho Date: Mon, 8 May 2023 19:29:38 +0200 Subject: [PATCH 12/42] Add ClipEncoder (#458) https://github.com/AbdBarho/stable-diffusion-webui-docker/pull/432#issuecomment-1537380951 --- data/.gitignore | 1 + docker-compose.yml | 2 +- services/comfy/extra_model_paths.yaml | 3 ++- services/download/download.sh | 22 +++++++++++++++++++++- 4 files changed, 25 insertions(+), 3 deletions(-) diff --git a/data/.gitignore b/data/.gitignore index 3bb809d..90e640d 100644 --- a/data/.gitignore +++ b/data/.gitignore @@ -25,3 +25,4 @@ /ModelScope /LyCORIS /GLIGEN +/CLIPEncoder diff --git a/docker-compose.yml b/docker-compose.yml index 711cee8..a42425d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -74,7 +74,7 @@ services: <<: *base_service profiles: ["comfy"] build: ./services/comfy/ - image: sd-comfy:1 + image: sd-comfy:2 tty: true environment: - CLI_ARGS= diff --git a/services/comfy/extra_model_paths.yaml b/services/comfy/extra_model_paths.yaml index ba27ae2..d16dfef 100644 --- a/services/comfy/extra_model_paths.yaml +++ b/services/comfy/extra_model_paths.yaml @@ -14,10 +14,11 @@ a111: hypernetworks: Hypernetworks controlnet: ControlNet gligen: GLIGEN + clip: CLIPEncoder + custom_nodes: config/comfy/custom_nodes # TODO: I am unsure about these, need more testing - # clip: .cache/clip # style_models: config/comfy/style_models # t2i_adapter: config/comfy/t2i_adapter # clip_vision: config/comfy/clip_vision diff --git a/services/download/download.sh b/services/download/download.sh index 03835ac..68ea540 100755 --- a/services/download/download.sh +++ b/services/download/download.sh @@ -3,7 +3,27 @@ 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 +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 echo "Downloading, this might take a while..." From 71f4abb2dbf233cd78a1ba32187310adb193cb88 Mon Sep 17 00:00:00 2001 From: AbdBarho Date: Wed, 10 May 2023 07:32:58 +0200 Subject: [PATCH 13/42] Create custom_nodes dir (#461) Closes #460 --- services/comfy/entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/comfy/entrypoint.sh b/services/comfy/entrypoint.sh index f9faf7c..f5a7430 100755 --- a/services/comfy/entrypoint.sh +++ b/services/comfy/entrypoint.sh @@ -2,7 +2,7 @@ set -Eeuo pipefail -mkdir -vp /data/config/comfy/ +mkdir -vp /data/config/comfy/custom_nodes declare -A MOUNTS From 87b1509dc2b86ec1aa413d8b03dd7b6d0cccb2a6 Mon Sep 17 00:00:00 2001 From: AbdBarho Date: Tue, 16 May 2023 18:56:36 +0200 Subject: [PATCH 14/42] Update Auto to 1.2.1 (#466) https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/89f9faa63388756314e8a1d96cf86bf5e0663045 Fix #448 --- docker-compose.yml | 2 +- services/AUTOMATIC1111/Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index a42425d..6053a37 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -28,7 +28,7 @@ services: <<: *base_service profiles: ["auto"] build: ./services/AUTOMATIC1111 - image: sd-auto:55 + image: sd-auto:56 environment: - CLI_ARGS=--allow-code --medvram --xformers --enable-insecure-extension-access --api diff --git a/services/AUTOMATIC1111/Dockerfile b/services/AUTOMATIC1111/Dockerfile index 580dea1..c387e4e 100644 --- a/services/AUTOMATIC1111/Dockerfile +++ b/services/AUTOMATIC1111/Dockerfile @@ -65,7 +65,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=5ab7f213bec2f816f9c5644becb32eb72c8ffb89 +ARG SHA=89f9faa63388756314e8a1d96cf86bf5e0663045 RUN --mount=type=cache,target=/root/.cache/pip \ cd stable-diffusion-webui && \ git fetch && \ From 110627415deb90d5141dd068afaca206d4bb6339 Mon Sep 17 00:00:00 2001 From: AbdBarho Date: Tue, 16 May 2023 18:58:52 +0200 Subject: [PATCH 15/42] Deprecate Sygil (#450) It has been a long and wonderful journey --- .github/workflows/docker.yml | 1 - README.md | 10 +----- docker-compose.yml | 15 --------- services/sygil/Dockerfile | 40 ------------------------ services/sygil/info.py | 13 -------- services/sygil/mount.sh | 32 ------------------- services/sygil/run.sh | 10 ------ services/sygil/userconfig_streamlit.yaml | 11 ------- 8 files changed, 1 insertion(+), 131 deletions(-) delete mode 100644 services/sygil/Dockerfile delete mode 100644 services/sygil/info.py delete mode 100755 services/sygil/mount.sh delete mode 100755 services/sygil/run.sh delete mode 100644 services/sygil/userconfig_streamlit.yaml diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 0955d69..8bb5799 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -14,7 +14,6 @@ jobs: matrix: profile: - auto - - sygil - invoke - comfy - download diff --git a/README.md b/README.md index 78a1732..659d510 100644 --- a/README.md +++ b/README.md @@ -26,14 +26,6 @@ This repository provides multiple UIs for you to play around with stable diffusi | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | | ![](https://user-images.githubusercontent.com/24505302/195158552-39f58cb6-cfcc-4141-9995-a626e3760752.jpg) | ![](https://user-images.githubusercontent.com/24505302/195158553-152a0ab8-c0fd-4087-b121-4823bcd8d6b5.jpg) | ![](https://user-images.githubusercontent.com/24505302/195158548-e118206e-c519-4915-85d6-4c248eb10fc0.jpg) | -### [Sygil (sd-webui / hlky)](https://github.com/Sygil-Dev/sygil-webui) - -[Full feature list here](https://github.com/Sygil-Dev/sygil-webui/blob/master/README.md), Screenshots: - -| Text to image | Image to image | Image Lab | -| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | -| ![](https://user-images.githubusercontent.com/24505302/189541298-f902b021-a1eb-4e4b-b2eb-b6a696a8ec80.jpg) | ![](https://user-images.githubusercontent.com/24505302/189541295-7d7f2162-2189-4e0a-abbd-703f4779e1cd.jpg) | ![](https://user-images.githubusercontent.com/24505302/189541294-aa7f7735-a973-4e17-ada0-1fe3acbb1772.jpg) | - ### [ComfyUI](https://github.com/comfyanonymous/ComfyUI) [Full feature list here](https://github.com/comfyanonymous/ComfyUI#features), Screenshot: @@ -58,7 +50,7 @@ Special thanks to everyone behind these awesome projects, without them, none of - [AUTOMATIC1111/stable-diffusion-webui](https://github.com/AUTOMATIC1111/stable-diffusion-webui) - [InvokeAI](https://github.com/invoke-ai/InvokeAI) -- [Sygil-webui](https://github.com/Sygil-Dev/sygil-webui) - [ComfyUI](https://github.com/comfyanonymous/ComfyUI) - [CompVis/stable-diffusion](https://github.com/CompVis/stable-diffusion) +- [Sygil-webui](https://github.com/Sygil-Dev/sygil-webui) - and many many more. diff --git a/docker-compose.yml b/docker-compose.yml index 6053a37..f7567ee 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -55,21 +55,6 @@ services: # - PRELOAD=true # - CLI_ARGS=--always_use_cpu - sygil: &sygil - <<: *base_service - profiles: ["sygil"] - build: ./services/sygil/ - image: sd-sygil:16 - environment: - - CLI_ARGS=--optimized-turbo - - USE_STREAMLIT=0 - - sygil-sl: - <<: *sygil - profiles: ["sygil-sl"] - environment: - - USE_STREAMLIT=1 - comfy: &comfy <<: *base_service profiles: ["comfy"] diff --git a/services/sygil/Dockerfile b/services/sygil/Dockerfile deleted file mode 100644 index 7ed2b5e..0000000 --- a/services/sygil/Dockerfile +++ /dev/null @@ -1,40 +0,0 @@ -FROM python:3.8-slim - -ENV DEBIAN_FRONTEND=noninteractive PIP_PREFER_BINARY=1 - -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 gcc libsndfile1 ffmpeg build-essential zip unzip git -y && apt-get clean - -RUN --mount=type=cache,target=/root/.cache/pip \ - git config --global http.postBuffer 1048576000 && \ - git clone https://github.com/Sygil-Dev/sygil-webui.git stable-diffusion && \ - cd stable-diffusion && \ - git reset --hard 5291437085bddd16d752f811b6552419a2044d12 && \ - pip install -r requirements.txt - - -ARG BRANCH=master SHA=571fb897edd58b714bb385dfaa1ad59aecef8bc7 -RUN --mount=type=cache,target=/root/.cache/pip \ - cd stable-diffusion && \ - git fetch && \ - git checkout ${BRANCH} && \ - git reset --hard ${SHA} && \ - pip install -r requirements.txt - -RUN --mount=type=cache,target=/root/.cache/pip pip install -U 'transformers>=4.24' - -# add info -COPY . /docker/ -RUN python /docker/info.py /stable-diffusion/frontend/frontend.py && \ - chmod +x /docker/mount.sh /docker/run.sh && \ - # streamlit \ - sed -i -- 's/8501/7860/g' /stable-diffusion/.streamlit/config.toml - -WORKDIR /stable-diffusion -ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility -ENV NVIDIA_VISIBLE_DEVICES=all -ENV PYTHONPATH="${PYTHONPATH}:${PWD}" STREAMLIT_SERVER_HEADLESS=true USE_STREAMLIT=0 CLI_ARGS="" -EXPOSE 7860 - -CMD /docker/mount.sh && /docker/run.sh diff --git a/services/sygil/info.py b/services/sygil/info.py deleted file mode 100644 index a8b418c..0000000 --- a/services/sygil/info.py +++ /dev/null @@ -1,13 +0,0 @@ -import sys -from pathlib import Path - -file = Path(sys.argv[1]) -file.write_text( - file.read_text()\ - .replace('

For help and advanced usage guides,', """ -

- Created using stable-diffusion-webui-docker. -

-

For help and advanced usage guides, -""", 1) -) diff --git a/services/sygil/mount.sh b/services/sygil/mount.sh deleted file mode 100755 index cc0dc9d..0000000 --- a/services/sygil/mount.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash - -set -Eeuo pipefail - -declare -A MOUNTS - -ROOT=/stable-diffusion/src - -# cache -MOUNTS["/root/.cache"]=/data/.cache -# ui specific -MOUNTS["${PWD}/models/realesrgan"]=/data/RealESRGAN -MOUNTS["${PWD}/models/ldsr"]=/data/LDSR -MOUNTS["${PWD}/models/custom"]=/data/StableDiffusion - -# hack -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}/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 - -# streamlit config -ln -sf /docker/userconfig_streamlit.yaml /stable-diffusion/configs/webui/userconfig_streamlit.yaml diff --git a/services/sygil/run.sh b/services/sygil/run.sh deleted file mode 100755 index 89f7959..0000000 --- a/services/sygil/run.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -set -Eeuo pipefail - -echo "USE_STREAMLIT = ${USE_STREAMLIT}" -if [ "${USE_STREAMLIT}" == "1" ]; then - python -u -m streamlit run scripts/webui_streamlit.py -else - python3 -u scripts/webui.py --outdir /output --ckpt /data/StableDiffusion/v1-5-pruned-emaonly.ckpt ${CLI_ARGS} -fi diff --git a/services/sygil/userconfig_streamlit.yaml b/services/sygil/userconfig_streamlit.yaml deleted file mode 100644 index 07a20af..0000000 --- a/services/sygil/userconfig_streamlit.yaml +++ /dev/null @@ -1,11 +0,0 @@ -# https://github.com/Sygil-Dev/sygil-webui/blob/master/configs/webui/webui_streamlit.yaml -general: - version: 1.24.6 - outdir: /output - default_model: "Stable Diffusion v1.5" - default_model_path: /data/StableDiffusion/v1-5-pruned-emaonly.ckpt - outdir_txt2img: /output/txt2img - outdir_img2img: /output/img2img - outdir_img2txt: /output/img2txt - optimized: True - optimized_turbo: True From 1df18b803cda07309507088128c7ab999d04de63 Mon Sep 17 00:00:00 2001 From: AbdBarho Date: Wed, 24 May 2023 16:53:59 +0200 Subject: [PATCH 16/42] Add extension dependencies (#485) It seems that users are struggling to follow the instructions on the wiki https://github.com/AbdBarho/stable-diffusion-webui-docker/pull/483#issuecomment-1561241372 --- docker-compose.yml | 2 +- services/AUTOMATIC1111/Dockerfile | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index f7567ee..2f1a83a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -28,7 +28,7 @@ services: <<: *base_service profiles: ["auto"] build: ./services/AUTOMATIC1111 - image: sd-auto:56 + image: sd-auto:57 environment: - CLI_ARGS=--allow-code --medvram --xformers --enable-insecure-extension-access --api diff --git a/services/AUTOMATIC1111/Dockerfile b/services/AUTOMATIC1111/Dockerfile index c387e4e..6bfcda0 100644 --- a/services/AUTOMATIC1111/Dockerfile +++ b/services/AUTOMATIC1111/Dockerfile @@ -25,7 +25,12 @@ FROM python:3.10.9-slim ENV DEBIAN_FRONTEND=noninteractive PIP_PREFER_BINARY=1 -RUN apt-get update && apt install fonts-dejavu-core rsync git jq moreutils aria2 -y && apt-get clean +RUN --mount=type=cache,target=/var/cache/apt \ + apt-get update && \ + # 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 RUN --mount=type=cache,target=/cache --mount=type=cache,target=/root/.cache/pip \ aria2c -x 5 --dir /cache --out torch-2.0.0-cp310-cp310-linux_x86_64.whl -c \ From a3ecd4a79c5c3c30b4feccfc827d822184439a7c Mon Sep 17 00:00:00 2001 From: AbdBarho Date: Mon, 29 May 2023 15:17:06 +0200 Subject: [PATCH 17/42] Update auto to 1.3.0 (#490) https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/20ae71faa8ef035c31aa3a410b707d792c8203a3 Pytorch 2.0.1 #489 --- docker-compose.yml | 2 +- services/AUTOMATIC1111/Dockerfile | 19 +++++++++---------- services/AUTOMATIC1111/entrypoint.sh | 1 + 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 2f1a83a..8f34fe3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -28,7 +28,7 @@ services: <<: *base_service profiles: ["auto"] build: ./services/AUTOMATIC1111 - image: sd-auto:57 + image: sd-auto:58 environment: - CLI_ARGS=--allow-code --medvram --xformers --enable-insecure-extension-access --api diff --git a/services/AUTOMATIC1111/Dockerfile b/services/AUTOMATIC1111/Dockerfile index 6bfcda0..173b356 100644 --- a/services/AUTOMATIC1111/Dockerfile +++ b/services/AUTOMATIC1111/Dockerfile @@ -18,7 +18,7 @@ RUN . /clone.sh clip-interrogator https://github.com/pharmapsychotic/clip-interr 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.3/xformers-0.0.20.dev528-cp310-cp310-manylinux2014_x86_64-pytorch2.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 @@ -32,22 +32,23 @@ RUN --mount=type=cache,target=/var/cache/apt \ # extensions needs those ffmpeg libglfw3-dev libgles2-mesa-dev pkg-config libcairo2 libcairo2-dev + RUN --mount=type=cache,target=/cache --mount=type=cache,target=/root/.cache/pip \ - aria2c -x 5 --dir /cache --out torch-2.0.0-cp310-cp310-linux_x86_64.whl -c \ - https://download.pytorch.org/whl/cu118/torch-2.0.0%2Bcu118-cp310-cp310-linux_x86_64.whl && \ - pip install /cache/torch-2.0.0-cp310-cp310-linux_x86_64.whl torchvision --index-url https://download.pytorch.org/whl/cu118 + aria2c -x 5 --dir /cache --out torch-2.0.1-cp310-cp310-linux_x86_64.whl -c \ + https://download.pytorch.org/whl/cu118/torch-2.0.1%2Bcu118-cp310-cp310-linux_x86_64.whl && \ + pip install /cache/torch-2.0.1-cp310-cp310-linux_x86_64.whl torchvision --index-url https://download.pytorch.org/whl/cu118 RUN --mount=type=cache,target=/root/.cache/pip \ git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git && \ cd stable-diffusion-webui && \ - git reset --hard d7aec59c4eb02f723b3d55c6f927a42e97acd679 && \ + git reset --hard 20ae71faa8ef035c31aa3a410b707d792c8203a3 && \ pip install -r requirements_versions.txt RUN --mount=type=cache,target=/root/.cache/pip \ - --mount=type=bind,from=xformers,source=/wheel.whl,target=/xformers-0.0.20.dev528-cp310-cp310-manylinux2014_x86_64.whl \ - pip install /xformers-0.0.20.dev528-cp310-cp310-manylinux2014_x86_64.whl + --mount=type=bind,from=xformers,source=/wheel.whl,target=/xformers-0.0.21.dev544-cp310-cp310-manylinux2014_x86_64.whl \ + pip install /xformers-0.0.21.dev544-cp310-cp310-manylinux2014_x86_64.whl ENV ROOT=/stable-diffusion-webui @@ -70,15 +71,13 @@ 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=89f9faa63388756314e8a1d96cf86bf5e0663045 +ARG SHA=20ae71faa8ef035c31aa3a410b707d792c8203a3 RUN --mount=type=cache,target=/root/.cache/pip \ cd stable-diffusion-webui && \ git fetch && \ git reset --hard ${SHA} && \ pip install -r requirements_versions.txt -RUN --mount=type=cache,target=/root/.cache/pip pip install -U opencv-python-headless - COPY . /docker RUN \ diff --git a/services/AUTOMATIC1111/entrypoint.sh b/services/AUTOMATIC1111/entrypoint.sh index 54e709c..337a4d6 100755 --- a/services/AUTOMATIC1111/entrypoint.sh +++ b/services/AUTOMATIC1111/entrypoint.sh @@ -49,6 +49,7 @@ MOUNTS["${ROOT}/config.json"]="/data/config/auto/config.json" MOUNTS["${ROOT}/ui-config.json"]="/data/config/auto/ui-config.json" MOUNTS["${ROOT}/styles.csv"]="/data/config/auto/styles.csv" MOUNTS["${ROOT}/extensions"]="/data/config/auto/extensions" +MOUNTS["${ROOT}/config_states"]="/data/config/auto/config_states" # extra hacks MOUNTS["${ROOT}/repositories/CodeFormer/weights/facelib"]="/data/.cache" From 6695c2315000915203f843c80a4b8fa163e83cf8 Mon Sep 17 00:00:00 2001 From: AbdBarho Date: Mon, 29 May 2023 19:07:01 +0200 Subject: [PATCH 18/42] InvokeAI 2.3.5.post2 (#491) https://github.com/invoke-ai/InvokeAI/commit/f3b2e02921927d9317255b1c3811f47bd40a2bf9 #489 --- README.md | 2 +- docker-compose.yml | 2 +- services/invoke/Dockerfile | 22 ++++++++-------------- 3 files changed, 10 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 659d510..95e10c3 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ This repository provides multiple UIs for you to play around with stable diffusi | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | | ![](https://user-images.githubusercontent.com/24505302/189541954-46afd772-d0c8-4005-874c-e2eca40c02f2.jpg) | ![](https://user-images.githubusercontent.com/24505302/189541956-5b528de7-1b5d-479f-a1db-d3f5a53afc59.jpg) | ![](https://user-images.githubusercontent.com/24505302/189541957-cf78b352-a071-486d-8889-f26952779a61.jpg) | -### [InvokeAI (lstein)](https://github.com/invoke-ai/InvokeAI) +### [InvokeAI](https://github.com/invoke-ai/InvokeAI) [Full feature list here](https://github.com/invoke-ai/InvokeAI#features), Screenshots: diff --git a/docker-compose.yml b/docker-compose.yml index 8f34fe3..ab5bf8c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -43,7 +43,7 @@ services: <<: *base_service profiles: ["invoke"] build: ./services/invoke/ - image: sd-invoke:28 + image: sd-invoke:29 environment: - PRELOAD=true - CLI_ARGS=--xformers diff --git a/services/invoke/Dockerfile b/services/invoke/Dockerfile index 5568ac0..e3466d1 100644 --- a/services/invoke/Dockerfile +++ b/services/invoke/Dockerfile @@ -1,16 +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.3/xformers-0.0.20.dev528-cp310-cp310-manylinux2014_x86_64-pytorch1.13.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-slim - -ENV DEBIAN_FRONTEND=noninteractive PIP_EXISTS_ACTION=w PIP_PREFER_BINARY=1 - - -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 - +ENV DEBIAN_FRONTEND=noninteractive PIP_EXISTS_ACTION=w PIP_PREFER_BINARY=1 # patch match: # https://github.com/invoke-ai/InvokeAI/blob/main/docs/installation/INSTALL_PATCHMATCH.md @@ -27,11 +22,11 @@ RUN git clone https://github.com/invoke-ai/InvokeAI.git ${ROOT} WORKDIR ${ROOT} RUN --mount=type=cache,target=/root/.cache/pip \ - git reset --hard 4463124bddd221c333d4c70e73aa2949ad35453d && \ + git reset --hard f3b2e02921927d9317255b1c3811f47bd40a2bf9 && \ pip install -e . -ARG BRANCH=main SHA=d73f1c363c3f2fe00f14ed34e276b4366b32a886 +ARG BRANCH=main SHA=f3b2e02921927d9317255b1c3811f47bd40a2bf9 RUN --mount=type=cache,target=/root/.cache/pip \ git fetch && \ git reset --hard && \ @@ -40,15 +35,14 @@ RUN --mount=type=cache,target=/root/.cache/pip \ pip install -U -e . RUN --mount=type=cache,target=/root/.cache/pip \ - --mount=type=bind,from=xformers,source=/wheel.whl,target=/xformers-0.0.20-cp310-cp310-linux_x86_64.whl \ - pip install -U opencv-python-headless triton /xformers-0.0.20-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 -U opencv-python-headless triton /xformers-0.0.21-cp310-cp310-linux_x86_64.whl && \ python3 -c "from patchmatch import patch_match" COPY . /docker/ -ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility -ENV NVIDIA_VISIBLE_DEVICES=all +ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility NVIDIA_VISIBLE_DEVICES=all ENV PYTHONUNBUFFERED=1 PRELOAD=false HF_HOME=/root/.cache/huggingface CONFIG_DIR=/data/config/invoke CLI_ARGS="" EXPOSE 7860 From 660c098da05dd24febee45111b9117c7a75c2ed2 Mon Sep 17 00:00:00 2001 From: AbdBarho Date: Fri, 2 Jun 2023 21:29:00 +0200 Subject: [PATCH 19/42] Change capabilities in docker-compose (#497) #479 --- docker-compose.yml | 2 +- services/AUTOMATIC1111/Dockerfile | 1 - services/comfy/Dockerfile | 2 +- services/invoke/Dockerfile | 2 +- 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index ab5bf8c..20e98f7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -13,7 +13,7 @@ x-base_service: &base_service devices: - driver: nvidia device_ids: ['0'] - capabilities: [gpu] + capabilities: [compute, utility] name: webui-docker diff --git a/services/AUTOMATIC1111/Dockerfile b/services/AUTOMATIC1111/Dockerfile index 173b356..6ef8fda 100644 --- a/services/AUTOMATIC1111/Dockerfile +++ b/services/AUTOMATIC1111/Dockerfile @@ -88,7 +88,6 @@ RUN \ git config --global --add safe.directory '*' WORKDIR ${ROOT} -ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility ENV NVIDIA_VISIBLE_DEVICES=all ENV CLI_ARGS="" EXPOSE 7860 diff --git a/services/comfy/Dockerfile b/services/comfy/Dockerfile index ac0556f..ddf60fb 100644 --- a/services/comfy/Dockerfile +++ b/services/comfy/Dockerfile @@ -38,7 +38,7 @@ RUN --mount=type=cache,target=/root/.cache/pip \ COPY . /docker/ RUN cp /docker/extra_model_paths.yaml ${ROOT} -ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility NVIDIA_VISIBLE_DEVICES=all +ENV NVIDIA_VISIBLE_DEVICES=all ENV PYTHONPATH="${PYTHONPATH}:${PWD}" CLI_ARGS="" EXPOSE 7860 ENTRYPOINT ["/docker/entrypoint.sh"] diff --git a/services/invoke/Dockerfile b/services/invoke/Dockerfile index e3466d1..3bc90b1 100644 --- a/services/invoke/Dockerfile +++ b/services/invoke/Dockerfile @@ -42,7 +42,7 @@ RUN --mount=type=cache,target=/root/.cache/pip \ COPY . /docker/ -ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility NVIDIA_VISIBLE_DEVICES=all +ENV NVIDIA_VISIBLE_DEVICES=all ENV PYTHONUNBUFFERED=1 PRELOAD=false HF_HOME=/root/.cache/huggingface CONFIG_DIR=/data/config/invoke CLI_ARGS="" EXPOSE 7860 From cdde93b8bbcf19b607411dcc9dbdcf7b22981b84 Mon Sep 17 00:00:00 2001 From: AbdBarho Date: Sat, 24 Jun 2023 10:06:30 +0200 Subject: [PATCH 20/42] v8 (#516) https://github.com/comfyanonymous/ComfyUI/commit/8607c2d42d10b0108de02528e813cc703e58813f --- .devscripts/migratev7tov8.sh | 28 +++++++++++++++++++ data/.gitignore | 26 +----------------- docker-compose.yml | 10 +++---- services/AUTOMATIC1111/entrypoint.sh | 39 +++++++++++++-------------- services/comfy/Dockerfile | 13 ++++----- services/comfy/extra_model_paths.yaml | 24 ++++++++--------- services/download/checksums.sha256 | 16 +++++------ services/download/download.sh | 36 +++++++------------------ services/download/links.txt | 4 +-- services/invoke/Dockerfile | 2 +- services/invoke/entrypoint.sh | 8 +++--- 11 files changed, 93 insertions(+), 113 deletions(-) create mode 100644 .devscripts/migratev7tov8.sh diff --git a/.devscripts/migratev7tov8.sh b/.devscripts/migratev7tov8.sh new file mode 100644 index 0000000..421da1e --- /dev/null +++ b/.devscripts/migratev7tov8.sh @@ -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 diff --git a/data/.gitignore b/data/.gitignore index 90e640d..946349a 100644 --- a/data/.gitignore +++ b/data/.gitignore @@ -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 diff --git a/docker-compose.yml b/docker-compose.yml index 20e98f7..bff738d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,7 +6,8 @@ x-base_service: &base_service 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:59 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:3 environment: - CLI_ARGS= diff --git a/services/AUTOMATIC1111/entrypoint.sh b/services/AUTOMATIC1111/entrypoint.sh index 337a4d6..095c2d1 100755 --- a/services/AUTOMATIC1111/entrypoint.sh +++ b/services/AUTOMATIC1111/entrypoint.sh @@ -19,30 +19,14 @@ if [ ! -f /data/config/auto/styles.csv ]; then touch /data/config/auto/styles.csv 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 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 +50,21 @@ 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 +list=(./extensions/*/requirements.txt) +for req in "${list[@]}"; do + pip install -r "$req" +done + if [ -f "/data/config/auto/startup.sh" ]; then pushd ${ROOT} + echo "Running startup script" . /data/config/auto/startup.sh popd fi diff --git a/services/comfy/Dockerfile b/services/comfy/Dockerfile index ddf60fb..69aaf49 100644 --- a/services/comfy/Dockerfile +++ b/services/comfy/Dockerfile @@ -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} && \ diff --git a/services/comfy/extra_model_paths.yaml b/services/comfy/extra_model_paths.yaml index d16dfef..eb374eb 100644 --- a/services/comfy/extra_model_paths.yaml +++ b/services/comfy/extra_model_paths.yaml @@ -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 diff --git a/services/download/checksums.sha256 b/services/download/checksums.sha256 index a64d6a4..ec4ed16 100644 --- a/services/download/checksums.sha256 +++ b/services/download/checksums.sha256 @@ -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 diff --git a/services/download/download.sh b/services/download/download.sh index 68ea540..fbe5a70 100755 --- a/services/download/download.sh +++ b/services/download/download.sh @@ -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 diff --git a/services/download/links.txt b/services/download/links.txt index 693c911..3616449 100644 --- a/services/download/links.txt +++ b/services/download/links.txt @@ -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 diff --git a/services/invoke/Dockerfile b/services/invoke/Dockerfile index 3bc90b1..209c368 100644 --- a/services/invoke/Dockerfile +++ b/services/invoke/Dockerfile @@ -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} diff --git a/services/invoke/entrypoint.sh b/services/invoke/entrypoint.sh index b137c45..348bb2b 100755 --- a/services/invoke/entrypoint.sh +++ b/services/invoke/entrypoint.sh @@ -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/ From 6365811f3552766b5ed8f1b459a97d397cf9f7e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A5=9E=E6=A5=BD=E5=9D=82=C2=B7=E5=96=B5?= Date: Sun, 25 Jun 2023 18:42:04 +0800 Subject: [PATCH 21/42] Modify installation extension dependencies (#518) Perform a full extension installation process instead of just installing dependencies Some extensions do not include `requirements.txt` but install dependencies in `install.py`, and all extensions include `install.py`, so it is safe to use it for extended dependency installation This is because the extension development of AUTOMATIC1111's webui does not require the existence of `requirements.txt` but uses `install.py` to initialize the extension https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Developing-extensions#installpy --- docker-compose.yml | 2 +- services/AUTOMATIC1111/entrypoint.sh | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index bff738d..8caad1d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -29,7 +29,7 @@ services: <<: *base_service profiles: ["auto"] build: ./services/AUTOMATIC1111 - image: sd-auto:59 + image: sd-auto:60 environment: - CLI_ARGS=--allow-code --medvram --xformers --enable-insecure-extension-access --api diff --git a/services/AUTOMATIC1111/entrypoint.sh b/services/AUTOMATIC1111/entrypoint.sh index 095c2d1..985f6f1 100755 --- a/services/AUTOMATIC1111/entrypoint.sh +++ b/services/AUTOMATIC1111/entrypoint.sh @@ -57,9 +57,10 @@ chown -R root ~/.cache/ chmod 766 ~/.cache/ shopt -s nullglob -list=(./extensions/*/requirements.txt) -for req in "${list[@]}"; do - pip install -r "$req" +# 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 From 6c45e0c2efd479a6c91bd7530db5dd20e0fa80c5 Mon Sep 17 00:00:00 2001 From: AbdBarho Date: Sun, 25 Jun 2023 20:21:41 +0200 Subject: [PATCH 22/42] Create dirs if not exist (#520) Closes #519 --- services/AUTOMATIC1111/entrypoint.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/services/AUTOMATIC1111/entrypoint.sh b/services/AUTOMATIC1111/entrypoint.sh index 985f6f1..5cdaacf 100755 --- a/services/AUTOMATIC1111/entrypoint.sh +++ b/services/AUTOMATIC1111/entrypoint.sh @@ -20,6 +20,8 @@ if [ ! -f /data/config/auto/styles.csv ]; then 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/ From 5e28222332a26692090c403787fd239c570189dd Mon Sep 17 00:00:00 2001 From: AbdBarho Date: Sun, 25 Jun 2023 20:33:57 +0200 Subject: [PATCH 23/42] Allow setting port through env WEBUI_PORT (#521) I am actually not happy with this solution, I would prefer if it was possible to customize the ports within `docker-compose.override.yml` --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 8caad1d..8d14e57 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.9' x-base_service: &base_service ports: - - "7860:7860" + - "${WEBUI_PORT:-7860}:7860" volumes: - &v1 ./data:/data - &v2 ./output:/output From 37a82af4b7de53e3f029b499a8a467bd388cfb0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A5=9E=E6=A5=BD=E5=9D=82=C2=B7=E5=96=B5?= Date: Tue, 27 Jun 2023 03:37:37 +0800 Subject: [PATCH 24/42] Add build-essential package (#522) Fix the problem that some extensions need to be installed from src Now, because the step of installing extensions is moved forward in `entrypoint.sh` instead of `startup.sh`, we cannot install some required packages before executing `install.py` When installing the extension `sd-webui-roop`, it relies on `insightface==0.7.3`, and when installing this pypi package, it is found that when building the wheel package, an error will be reported because `gcc` cannot be found https://github.com/s0md3v/sd-webui-roop/blob/ddc02ee1a914ba387fa338f9542ec16d128c56e5/requirements.txt#L1 Therefore, considering that not all pypi packages are distributed in wheel, those pypi packages distributed in src need `build-essential` to build --- services/AUTOMATIC1111/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/AUTOMATIC1111/Dockerfile b/services/AUTOMATIC1111/Dockerfile index 6ef8fda..08ee0b6 100644 --- a/services/AUTOMATIC1111/Dockerfile +++ b/services/AUTOMATIC1111/Dockerfile @@ -30,7 +30,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 \ From 95e96602f93f789166e51909263ddb5e60476633 Mon Sep 17 00:00:00 2001 From: AbdBarho Date: Mon, 26 Jun 2023 21:57:45 +0200 Subject: [PATCH 25/42] Bump auto --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 8d14e57..5795e5b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -29,7 +29,7 @@ services: <<: *base_service profiles: ["auto"] build: ./services/AUTOMATIC1111 - image: sd-auto:60 + image: sd-auto:61 environment: - CLI_ARGS=--allow-code --medvram --xformers --enable-insecure-extension-access --api From 103e11493b80d5f945eb61902a6ba23409abcd39 Mon Sep 17 00:00:00 2001 From: AbdBarho Date: Sun, 2 Jul 2023 08:15:51 +0200 Subject: [PATCH 26/42] Auto 1.4.0 (#507) https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/394ffa7b0a7fff3ec484bcd084e673a8b301ccc8 Maybe bug: https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/11040 --- docker-compose.yml | 2 +- services/AUTOMATIC1111/Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 5795e5b..815a9bf 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -29,7 +29,7 @@ services: <<: *base_service profiles: ["auto"] build: ./services/AUTOMATIC1111 - image: sd-auto:61 + image: sd-auto:62 environment: - CLI_ARGS=--allow-code --medvram --xformers --enable-insecure-extension-access --api diff --git a/services/AUTOMATIC1111/Dockerfile b/services/AUTOMATIC1111/Dockerfile index 08ee0b6..55a049b 100644 --- a/services/AUTOMATIC1111/Dockerfile +++ b/services/AUTOMATIC1111/Dockerfile @@ -71,7 +71,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=394ffa7b0a7fff3ec484bcd084e673a8b301ccc8 RUN --mount=type=cache,target=/root/.cache/pip \ cd stable-diffusion-webui && \ git fetch && \ From 6de45b19844207bc0656328c48c00057d7dae207 Mon Sep 17 00:00:00 2001 From: cloudaxes <132535135+cloudaxes@users.noreply.github.com> Date: Sat, 22 Jul 2023 14:23:30 +0900 Subject: [PATCH 27/42] Upgrade k-diffusion to Release 0.0.15 to get access to DPM++ (2M) SDE sampler. (#537) Closes issue #536 --- services/AUTOMATIC1111/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/AUTOMATIC1111/Dockerfile b/services/AUTOMATIC1111/Dockerfile index 55a049b..fa08018 100644 --- a/services/AUTOMATIC1111/Dockerfile +++ b/services/AUTOMATIC1111/Dockerfile @@ -12,7 +12,7 @@ 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 From 09a0f11946d4f600993a6d77afe81853da62cbbb Mon Sep 17 00:00:00 2001 From: AbdBarho Date: Sat, 22 Jul 2023 08:31:17 +0200 Subject: [PATCH 28/42] Add startup script for comfy (#552) Closes #451 --------- Co-authored-by: PassiveLemon --- docker-compose.yml | 2 +- services/comfy/Dockerfile | 2 ++ services/comfy/entrypoint.sh | 6 ++++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 815a9bf..2b6c49d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -60,7 +60,7 @@ services: <<: *base_service profiles: ["comfy"] build: ./services/comfy/ - image: sd-comfy:3 + image: sd-comfy:4 environment: - CLI_ARGS= diff --git a/services/comfy/Dockerfile b/services/comfy/Dockerfile index 69aaf49..1cc2600 100644 --- a/services/comfy/Dockerfile +++ b/services/comfy/Dockerfile @@ -34,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="" diff --git a/services/comfy/entrypoint.sh b/services/comfy/entrypoint.sh index f5a7430..b4299a7 100755 --- a/services/comfy/entrypoint.sh +++ b/services/comfy/entrypoint.sh @@ -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 "$@" From def76291f808cb249f8cfe35d8424a16a6a4c2f7 Mon Sep 17 00:00:00 2001 From: Manuel Schmid <9307310+mashb1t@users.noreply.github.com> Date: Sun, 30 Jul 2023 15:42:32 +0200 Subject: [PATCH 29/42] Update Automatic1111 to 1.5.1 to add compatibility for SDXL (#560) Uses the latest release of https://github.com/Stability-AI/generative-models 45c443b316737a4ab6e40413d7794a7f5657c19f Tested with the official SDXL 1.0 model from https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/blob/main/sd_xl_base_1.0.safetensors and official refiner from https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/blob/main/sd_xl_refiner_1.0.safetensors. VAE: https://huggingface.co/stabilityai/sdxl-vae/blob/main/sdxl_vae.safetensors Closes #558 Closes #559 https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/68f336bd994bed5442ad95bad6b6ad5564a5409a --------- Co-authored-by: AbdBarho --- docker-compose.yml | 2 +- services/AUTOMATIC1111/Dockerfile | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 2b6c49d..3f81ee2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -29,7 +29,7 @@ services: <<: *base_service profiles: ["auto"] build: ./services/AUTOMATIC1111 - image: sd-auto:62 + image: sd-auto:63 environment: - CLI_ARGS=--allow-code --medvram --xformers --enable-insecure-extension-access --api diff --git a/services/AUTOMATIC1111/Dockerfile b/services/AUTOMATIC1111/Dockerfile index fa08018..abca84f 100644 --- a/services/AUTOMATIC1111/Dockerfile +++ b/services/AUTOMATIC1111/Dockerfile @@ -14,6 +14,7 @@ RUN . /clone.sh CodeFormer https://github.com/sczhou/CodeFormer.git c5b4593074ba RUN . /clone.sh BLIP https://github.com/salesforce/BLIP.git 48211a1594f1321b00f14c9f7a5b4813144b2fb9 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 @@ -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=394ffa7b0a7fff3ec484bcd084e673a8b301ccc8 +ARG SHA=68f336bd994bed5442ad95bad6b6ad5564a5409a RUN --mount=type=cache,target=/root/.cache/pip \ cd stable-diffusion-webui && \ git fetch && \ From 70357bf01e94a476416713f4a441f7739e9d4e8a Mon Sep 17 00:00:00 2001 From: AbdBarho Date: Wed, 30 Aug 2023 19:55:06 +0200 Subject: [PATCH 30/42] Auto 1.5.2 (#579) https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/c9c8485bc1e8720aba70f029d25cba1c4abf2b5c --- docker-compose.yml | 2 +- services/AUTOMATIC1111/Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 3f81ee2..b4c1ee0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -29,7 +29,7 @@ services: <<: *base_service profiles: ["auto"] build: ./services/AUTOMATIC1111 - image: sd-auto:63 + image: sd-auto:64 environment: - CLI_ARGS=--allow-code --medvram --xformers --enable-insecure-extension-access --api diff --git a/services/AUTOMATIC1111/Dockerfile b/services/AUTOMATIC1111/Dockerfile index abca84f..e09f60b 100644 --- a/services/AUTOMATIC1111/Dockerfile +++ b/services/AUTOMATIC1111/Dockerfile @@ -72,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=68f336bd994bed5442ad95bad6b6ad5564a5409a +ARG SHA=c9c8485bc1e8720aba70f029d25cba1c4abf2b5c RUN --mount=type=cache,target=/root/.cache/pip \ cd stable-diffusion-webui && \ git fetch && \ From 59b9762ac7017e1cbe89101642e8794654246865 Mon Sep 17 00:00:00 2001 From: AbdBarho Date: Wed, 30 Aug 2023 20:00:48 +0200 Subject: [PATCH 31/42] Update Comfy (#580) https://github.com/comfyanonymous/ComfyUI/commit/7e941f9f247f9b013a33c2e7d117466108414e99 --- docker-compose.yml | 2 +- services/comfy/Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index b4c1ee0..b91b990 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -60,7 +60,7 @@ services: <<: *base_service profiles: ["comfy"] build: ./services/comfy/ - image: sd-comfy:4 + image: sd-comfy:5 environment: - CLI_ARGS= diff --git a/services/comfy/Dockerfile b/services/comfy/Dockerfile index 1cc2600..6d1f6ce 100644 --- a/services/comfy/Dockerfile +++ b/services/comfy/Dockerfile @@ -24,7 +24,7 @@ RUN --mount=type=cache,target=/root/.cache/pip \ WORKDIR ${ROOT} -ARG BRANCH=master SHA=8607c2d42d10b0108de02528e813cc703e58813f +ARG BRANCH=master SHA=7e941f9f247f9b013a33c2e7d117466108414e99 RUN --mount=type=cache,target=/root/.cache/pip \ git fetch && \ git checkout ${BRANCH} && \ From 84740598bc0cb98632db975cffc90b3cd9da6cab Mon Sep 17 00:00:00 2001 From: 66li <37136076+66li@users.noreply.github.com> Date: Fri, 1 Sep 2023 02:04:32 +0800 Subject: [PATCH 32/42] Update generative-models version (#581) Upgrade a dependent library https://github.com/AUTOMATIC1111/stable-diffusion-webui/blob/v1.5.2/modules/launch_utils.py#L288C90-L288C130 --------- Co-authored-by: AbdBarho --- docker-compose.yml | 2 +- services/AUTOMATIC1111/Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index b91b990..9157684 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -29,7 +29,7 @@ services: <<: *base_service profiles: ["auto"] build: ./services/AUTOMATIC1111 - image: sd-auto:64 + image: sd-auto:65 environment: - CLI_ARGS=--allow-code --medvram --xformers --enable-insecure-extension-access --api diff --git a/services/AUTOMATIC1111/Dockerfile b/services/AUTOMATIC1111/Dockerfile index e09f60b..25ffcac 100644 --- a/services/AUTOMATIC1111/Dockerfile +++ b/services/AUTOMATIC1111/Dockerfile @@ -14,7 +14,7 @@ RUN . /clone.sh CodeFormer https://github.com/sczhou/CodeFormer.git c5b4593074ba RUN . /clone.sh BLIP https://github.com/salesforce/BLIP.git 48211a1594f1321b00f14c9f7a5b4813144b2fb9 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 +RUN . /clone.sh generative-models https://github.com/Stability-AI/generative-models 5c10deee76adad0032b412294130090932317a87 FROM alpine:3.17 as xformers From 630980b1bfb5404ebff662cb0edb7643de08849c Mon Sep 17 00:00:00 2001 From: Sebastian Piechowiak Date: Sat, 9 Sep 2023 15:34:06 +0200 Subject: [PATCH 33/42] Skipping installation of requirements for disabled extensions (#582) Closes #563 --- docker-compose.yml | 2 +- services/AUTOMATIC1111/entrypoint.sh | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 9157684..d7e543b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -29,7 +29,7 @@ services: <<: *base_service profiles: ["auto"] build: ./services/AUTOMATIC1111 - image: sd-auto:65 + image: sd-auto:66 environment: - CLI_ARGS=--allow-code --medvram --xformers --enable-insecure-extension-access --api diff --git a/services/AUTOMATIC1111/entrypoint.sh b/services/AUTOMATIC1111/entrypoint.sh index 5cdaacf..52f025f 100755 --- a/services/AUTOMATIC1111/entrypoint.sh +++ b/services/AUTOMATIC1111/entrypoint.sh @@ -62,6 +62,12 @@ 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 + EXTNAME=`echo $installscript | cut -d '/' -f 3` + # Skip installing dependencies if extension is disabled in config + if `jq -e ".disabled_extensions|any(. == \"$EXTNAME\")" config.json`; then + echo "Skipping disabled extension ($EXTNAME)" + continue + fi PYTHONPATH=${ROOT} python "$installscript" done From 6a34739135eb112667f00943c1fac98ab294716a Mon Sep 17 00:00:00 2001 From: cloudaxes <132535135+cloudaxes@users.noreply.github.com> Date: Sat, 9 Sep 2023 23:10:05 +0900 Subject: [PATCH 34/42] Update Automatic1111 to v1.6.0 (#585) Update Automatic1111 Stable Diffusion Webui to v1.6.0. Closes #583 --------- Co-authored-by: AbdBarho --- docker-compose.yml | 2 +- services/AUTOMATIC1111/Dockerfile | 18 ++++++++---------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index d7e543b..93fba1d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -29,7 +29,7 @@ services: <<: *base_service profiles: ["auto"] build: ./services/AUTOMATIC1111 - image: sd-auto:66 + image: sd-auto:67 environment: - CLI_ARGS=--allow-code --medvram --xformers --enable-insecure-extension-access --api diff --git a/services/AUTOMATIC1111/Dockerfile b/services/AUTOMATIC1111/Dockerfile index 25ffcac..f380f30 100644 --- a/services/AUTOMATIC1111/Dockerfile +++ b/services/AUTOMATIC1111/Dockerfile @@ -2,19 +2,17 @@ FROM alpine/git:2.36.2 as download COPY clone.sh /clone.sh -RUN . /clone.sh taming-transformers https://github.com/CompVis/taming-transformers.git 24268930bf1dce879235a7fddd0b2355b84d7ea6 \ - && rm -rf data assets **/*.ipynb -RUN . /clone.sh stable-diffusion-stability-ai https://github.com/Stability-AI/stablediffusion.git 47b6b607fdd31875c9279cd2f4f16b92e4ea958e \ +RUN . /clone.sh stable-diffusion-stability-ai https://github.com/Stability-AI/stablediffusion.git cf1d67a6fd5ea1aa600c4df58e5b47da45f6bdbf \ && 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 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 5c10deee76adad0032b412294130090932317a87 +RUN . /clone.sh k-diffusion https://github.com/crowsonkb/k-diffusion.git ab527a9a6d347f364e3d185ba6d714e22d80cb3c +RUN . /clone.sh clip-interrogator https://github.com/pharmapsychotic/clip-interrogator 2cf03aaf6e704197fd0dae7c7f96aa59cf1b11c9 +RUN . /clone.sh generative-models https://github.com/Stability-AI/generative-models 45c443b316737a4ab6e40413d7794a7f5657c19f FROM alpine:3.17 as xformers @@ -40,11 +38,10 @@ RUN --mount=type=cache,target=/cache --mount=type=cache,target=/root/.cache/pip pip install /cache/torch-2.0.1-cp310-cp310-linux_x86_64.whl torchvision --index-url https://download.pytorch.org/whl/cu118 - RUN --mount=type=cache,target=/root/.cache/pip \ git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git && \ cd stable-diffusion-webui && \ - git reset --hard 20ae71faa8ef035c31aa3a410b707d792c8203a3 && \ + git reset --hard 5ef669de080814067961f28357256e8fe27544f4 && \ pip install -r requirements_versions.txt RUN --mount=type=cache,target=/root/.cache/pip \ @@ -55,7 +52,7 @@ ENV ROOT=/stable-diffusion-webui COPY --from=download /repositories/ ${ROOT}/repositories/ -RUN mkdir ${ROOT}/interrogate && cp ${ROOT}/repositories/clip-interrogator/data/* ${ROOT}/interrogate +RUN mkdir ${ROOT}/interrogate && cp ${ROOT}/repositories/clip-interrogator/clip_interrogator/data/* ${ROOT}/interrogate RUN --mount=type=cache,target=/root/.cache/pip \ pip install -r ${ROOT}/repositories/CodeFormer/requirements.txt @@ -65,6 +62,7 @@ RUN --mount=type=cache,target=/root/.cache/pip \ git+https://github.com/openai/CLIP.git@d50d76daa670286dd6cacf3bcd80b5e4823fc8e1 \ git+https://github.com/mlfoundations/open_clip.git@bb6e834e9c70d9c27d0dc3ecedeebeaeb1ffad6b + # Note: don't update the sha of previous versions because the install will take forever # instead, update the repo state in a later step @@ -72,7 +70,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=c9c8485bc1e8720aba70f029d25cba1c4abf2b5c +ARG SHA=5ef669de080814067961f28357256e8fe27544f4 RUN --mount=type=cache,target=/root/.cache/pip \ cd stable-diffusion-webui && \ git fetch && \ From a2561f2659234c1adf69ccbcd302cb9578387729 Mon Sep 17 00:00:00 2001 From: cococig <84442548+cococig@users.noreply.github.com> Date: Tue, 14 Nov 2023 03:35:24 +0900 Subject: [PATCH 35/42] Update automatic1111 webui base image (#601) Update the minor version of Python in the base image for AUTOMATIC1111 web UI. Closes issue #600 --- services/AUTOMATIC1111/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/AUTOMATIC1111/Dockerfile b/services/AUTOMATIC1111/Dockerfile index f380f30..b2618d0 100644 --- a/services/AUTOMATIC1111/Dockerfile +++ b/services/AUTOMATIC1111/Dockerfile @@ -20,7 +20,7 @@ RUN apk add --no-cache aria2 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 python:3.10.13-slim ENV DEBIAN_FRONTEND=noninteractive PIP_PREFER_BINARY=1 From 3e67f559d43b53faeb4a32b63c8b89391f0b7248 Mon Sep 17 00:00:00 2001 From: AbdBarho Date: Mon, 13 Nov 2023 21:12:07 +0100 Subject: [PATCH 36/42] Update Auto (#610) Closes #609 https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/4afaaf8a020c1df457bcf7250cb1c7f609699fa7 --- .github/ISSUE_TEMPLATE/bug.md | 2 +- .github/pull_request_template.md | 1 - docker-compose.yml | 2 +- services/AUTOMATIC1111/Dockerfile | 41 ++++------------------------ services/AUTOMATIC1111/entrypoint.sh | 8 ++++-- services/AUTOMATIC1111/info.py | 14 ---------- 6 files changed, 14 insertions(+), 54 deletions(-) delete mode 100644 services/AUTOMATIC1111/info.py diff --git a/.github/ISSUE_TEMPLATE/bug.md b/.github/ISSUE_TEMPLATE/bug.md index 2c2c54f..a475834 100644 --- a/.github/ISSUE_TEMPLATE/bug.md +++ b/.github/ISSUE_TEMPLATE/bug.md @@ -19,7 +19,7 @@ assignees: "" **Which UI** -auto or auto-cpu or invoke or sygil? +auto or auto-cpu or invoke or comfy? **Hardware / Software** diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 6fd8686..38bdfd8 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -9,6 +9,5 @@ Closes issue # ### Update versions - auto: https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/ -- sygil: https://github.com/Sygil-Dev/sygil-webui/commit/ - invoke: https://github.com/invoke-ai/InvokeAI/commit/ - comfy: https://github.com/comfyanonymous/ComfyUI/commit/ diff --git a/docker-compose.yml b/docker-compose.yml index 93fba1d..b5b57e8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -29,7 +29,7 @@ services: <<: *base_service profiles: ["auto"] build: ./services/AUTOMATIC1111 - image: sd-auto:67 + image: sd-auto:68 environment: - CLI_ARGS=--allow-code --medvram --xformers --enable-insecure-extension-access --api diff --git a/services/AUTOMATIC1111/Dockerfile b/services/AUTOMATIC1111/Dockerfile index b2618d0..9e40d8c 100644 --- a/services/AUTOMATIC1111/Dockerfile +++ b/services/AUTOMATIC1111/Dockerfile @@ -15,12 +15,7 @@ RUN . /clone.sh clip-interrogator https://github.com/pharmapsychotic/clip-interr RUN . /clone.sh generative-models https://github.com/Stability-AI/generative-models 45c443b316737a4ab6e40413d7794a7f5657c19f -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/6.0.0/xformers-0.0.21.dev544-cp310-cp310-manylinux2014_x86_64-pytorch201.whl' - - -FROM python:3.10.13-slim +FROM pytorch/pytorch:2.1.0-cuda12.1-cudnn8-runtime ENV DEBIAN_FRONTEND=noninteractive PIP_PREFER_BINARY=1 @@ -32,58 +27,34 @@ RUN --mount=type=cache,target=/var/cache/apt \ 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 \ - aria2c -x 5 --dir /cache --out torch-2.0.1-cp310-cp310-linux_x86_64.whl -c \ - https://download.pytorch.org/whl/cu118/torch-2.0.1%2Bcu118-cp310-cp310-linux_x86_64.whl && \ - pip install /cache/torch-2.0.1-cp310-cp310-linux_x86_64.whl torchvision --index-url https://download.pytorch.org/whl/cu118 - - +WORKDIR / RUN --mount=type=cache,target=/root/.cache/pip \ git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git && \ cd stable-diffusion-webui && \ - git reset --hard 5ef669de080814067961f28357256e8fe27544f4 && \ + git reset --hard 4afaaf8a020c1df457bcf7250cb1c7f609699fa7 && \ pip install -r requirements_versions.txt -RUN --mount=type=cache,target=/root/.cache/pip \ - --mount=type=bind,from=xformers,source=/wheel.whl,target=/xformers-0.0.21.dev544-cp310-cp310-manylinux2014_x86_64.whl \ - pip install /xformers-0.0.21.dev544-cp310-cp310-manylinux2014_x86_64.whl ENV ROOT=/stable-diffusion-webui - COPY --from=download /repositories/ ${ROOT}/repositories/ RUN mkdir ${ROOT}/interrogate && cp ${ROOT}/repositories/clip-interrogator/clip_interrogator/data/* ${ROOT}/interrogate RUN --mount=type=cache,target=/root/.cache/pip \ pip install -r ${ROOT}/repositories/CodeFormer/requirements.txt RUN --mount=type=cache,target=/root/.cache/pip \ - pip install pyngrok \ + pip install pyngrok xformers \ 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 -# Note: don't update the sha of previous versions because the install will take forever -# instead, update the repo state in a later step - -# TODO: either remove if fixed in A1111 (unlikely) or move to the top with other apt stuff -RUN apt-get -y install libgoogle-perftools-dev && apt-get clean -ENV LD_PRELOAD=libtcmalloc.so - -ARG SHA=5ef669de080814067961f28357256e8fe27544f4 -RUN --mount=type=cache,target=/root/.cache/pip \ - cd stable-diffusion-webui && \ - git fetch && \ - git reset --hard ${SHA} && \ - pip install -r requirements_versions.txt - COPY . /docker RUN \ - python3 /docker/info.py ${ROOT}/modules/ui.py && \ - mv ${ROOT}/style.css ${ROOT}/user.css && \ + # mv ${ROOT}/style.css ${ROOT}/user.css && \ # 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 && \ + sed -i 's/in_app_dir = .*/in_app_dir = True/g' /opt/conda/lib/python3.10/site-packages/gradio/routes.py && \ git config --global --add safe.directory '*' WORKDIR ${ROOT} diff --git a/services/AUTOMATIC1111/entrypoint.sh b/services/AUTOMATIC1111/entrypoint.sh index 52f025f..35023af 100755 --- a/services/AUTOMATIC1111/entrypoint.sh +++ b/services/AUTOMATIC1111/entrypoint.sh @@ -5,6 +5,10 @@ set -Eeuo pipefail # TODO: move all mkdir -p ? mkdir -p /data/config/auto/scripts/ # mount scripts individually + +echo $ROOT +ls -lha $ROOT + find "${ROOT}/scripts/" -maxdepth 1 -type l -delete cp -vrfTs /data/config/auto/scripts/ "${ROOT}/scripts/" @@ -62,9 +66,9 @@ 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 - EXTNAME=`echo $installscript | cut -d '/' -f 3` + EXTNAME=$(echo $installscript | cut -d '/' -f 3) # Skip installing dependencies if extension is disabled in config - if `jq -e ".disabled_extensions|any(. == \"$EXTNAME\")" config.json`; then + if $(jq -e ".disabled_extensions|any(. == \"$EXTNAME\")" config.json); then echo "Skipping disabled extension ($EXTNAME)" continue fi diff --git a/services/AUTOMATIC1111/info.py b/services/AUTOMATIC1111/info.py deleted file mode 100644 index edfa7b0..0000000 --- a/services/AUTOMATIC1111/info.py +++ /dev/null @@ -1,14 +0,0 @@ -import sys -from pathlib import Path - -file = Path(sys.argv[1]) -file.write_text( - file.read_text()\ - .replace(' return demo', """ - with demo: - gr.Markdown( - 'Created by [AUTOMATIC1111 / stable-diffusion-webui-docker](https://github.com/AbdBarho/stable-diffusion-webui-docker/)' - ) - return demo -""", 1) -) From 90affeb72ab15a66537e171dcb24bee03f8291b4 Mon Sep 17 00:00:00 2001 From: sejoung kim Date: Mon, 1 Jan 2024 19:04:02 +0900 Subject: [PATCH 37/42] Bump Comfy (#603) https://github.com/comfyanonymous/ComfyUI/commit/d1f3637a5a944d0607b899babd8ff11d87100503 --------- Co-authored-by: AbdBarho --- docker-compose.yml | 2 +- services/comfy/Dockerfile | 30 ++++-------------------------- 2 files changed, 5 insertions(+), 27 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index b5b57e8..c8e98de 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -60,7 +60,7 @@ services: <<: *base_service profiles: ["comfy"] build: ./services/comfy/ - image: sd-comfy:5 + image: sd-comfy:6 environment: - CLI_ARGS= diff --git a/services/comfy/Dockerfile b/services/comfy/Dockerfile index 6d1f6ce..f813c68 100644 --- a/services/comfy/Dockerfile +++ b/services/comfy/Dockerfile @@ -1,8 +1,4 @@ -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/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 pytorch/pytorch:2.1.2-cuda12.1-cudnn8-runtime ENV DEBIAN_FRONTEND=noninteractive PIP_PREFER_BINARY=1 @@ -13,32 +9,14 @@ RUN --mount=type=cache,target=/root/.cache/pip \ git clone https://github.com/comfyanonymous/ComfyUI.git ${ROOT} && \ cd ${ROOT} && \ git checkout master && \ - git reset --hard 884ea653c8d6fe19b3724f45a04a0d74cd881f2f && \ + git reset --hard d1f3637a5a944d0607b899babd8ff11d87100503 && \ pip install -r requirements.txt - -RUN --mount=type=cache,target=/root/.cache/pip \ - --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=7e941f9f247f9b013a33c2e7d117466108414e99 -RUN --mount=type=cache,target=/root/.cache/pip \ - git fetch && \ - git checkout ${BRANCH} && \ - git reset --hard ${SHA} && \ - pip install -r requirements.txt - -# 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} +RUN chmod u+x /docker/entrypoint.sh && cp /docker/extra_model_paths.yaml ${ROOT} -ENV NVIDIA_VISIBLE_DEVICES=all -ENV PYTHONPATH="${PYTHONPATH}:${PWD}" CLI_ARGS="" +ENV NVIDIA_VISIBLE_DEVICES=all PYTHONPATH="${PYTHONPATH}:${PWD}" CLI_ARGS="" EXPOSE 7860 ENTRYPOINT ["/docker/entrypoint.sh"] CMD python -u main.py --listen --port 7860 ${CLI_ARGS} From fbc5c359d03f539d4f6eaa90fd18d8590a2a4b61 Mon Sep 17 00:00:00 2001 From: simonmcnair <101189766+simonmcnair@users.noreply.github.com> Date: Mon, 1 Jan 2024 10:13:01 +0000 Subject: [PATCH 38/42] Resolve memory usage situation in Auto (#620) Fixes https://github.com/AbdBarho/stable-diffusion-webui-docker/issues/612 --------- Co-authored-by: AbdBarho --- docker-compose.yml | 2 +- services/AUTOMATIC1111/Dockerfile | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index c8e98de..f9a475c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -29,7 +29,7 @@ services: <<: *base_service profiles: ["auto"] build: ./services/AUTOMATIC1111 - image: sd-auto:68 + image: sd-auto:69 environment: - CLI_ARGS=--allow-code --medvram --xformers --enable-insecure-extension-access --api diff --git a/services/AUTOMATIC1111/Dockerfile b/services/AUTOMATIC1111/Dockerfile index 9e40d8c..c30ac1f 100644 --- a/services/AUTOMATIC1111/Dockerfile +++ b/services/AUTOMATIC1111/Dockerfile @@ -48,6 +48,10 @@ RUN --mount=type=cache,target=/root/.cache/pip \ git+https://github.com/openai/CLIP.git@d50d76daa670286dd6cacf3bcd80b5e4823fc8e1 \ git+https://github.com/mlfoundations/open_clip.git@bb6e834e9c70d9c27d0dc3ecedeebeaeb1ffad6b +# there seems to be a memory leak (or maybe just memory not being freed fast eno8ugh) that is fixed by this version of malloc +# maybe move this up to the dependencies list. +RUN apt-get -y install libgoogle-perftools-dev && apt-get clean +ENV LD_PRELOAD=libtcmalloc.so COPY . /docker From f61363974802f22f6c0cfd869239b1a5b93254bb Mon Sep 17 00:00:00 2001 From: Adam Florizone <72236049+adamflorizone@users.noreply.github.com> Date: Mon, 1 Jan 2024 05:30:40 -0500 Subject: [PATCH 39/42] Update Auto v1.7.0 (#632) Update Auto v1.7.0 https://github.com/AUTOMATIC1111/stable-diffusion-webui/releases/tag/v1.7.0 --------- Co-authored-by: AbdBarho --- docker-compose.yml | 2 +- services/AUTOMATIC1111/Dockerfile | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index f9a475c..4901b80 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -29,7 +29,7 @@ services: <<: *base_service profiles: ["auto"] build: ./services/AUTOMATIC1111 - image: sd-auto:69 + image: sd-auto:70 environment: - CLI_ARGS=--allow-code --medvram --xformers --enable-insecure-extension-access --api diff --git a/services/AUTOMATIC1111/Dockerfile b/services/AUTOMATIC1111/Dockerfile index c30ac1f..3a2f5a5 100644 --- a/services/AUTOMATIC1111/Dockerfile +++ b/services/AUTOMATIC1111/Dockerfile @@ -15,7 +15,7 @@ RUN . /clone.sh clip-interrogator https://github.com/pharmapsychotic/clip-interr RUN . /clone.sh generative-models https://github.com/Stability-AI/generative-models 45c443b316737a4ab6e40413d7794a7f5657c19f -FROM pytorch/pytorch:2.1.0-cuda12.1-cudnn8-runtime +FROM pytorch/pytorch:2.1.2-cuda12.1-cudnn8-runtime ENV DEBIAN_FRONTEND=noninteractive PIP_PREFER_BINARY=1 @@ -31,7 +31,7 @@ WORKDIR / RUN --mount=type=cache,target=/root/.cache/pip \ git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git && \ cd stable-diffusion-webui && \ - git reset --hard 4afaaf8a020c1df457bcf7250cb1c7f609699fa7 && \ + git reset --hard cf2772fab0af5573da775e7437e6acdca424f26e && \ pip install -r requirements_versions.txt From 60c4832185dc492166c5e3f8492f00120d15e35a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Sj=C3=B6lund?= Date: Mon, 1 Jan 2024 11:34:46 +0100 Subject: [PATCH 40/42] Update open_clip to v2.20.0 in Auto (#617) Fixes #615. Updates `open-clip-torch` to the one specified in auto's [requirements_versions.txt](https://github.com/AUTOMATIC1111/stable-diffusion-webui/blob/master/requirements_versions.txt#L18). --------- Co-authored-by: AbdBarho --- docker-compose.yml | 2 +- services/AUTOMATIC1111/Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 4901b80..44dcc87 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -29,7 +29,7 @@ services: <<: *base_service profiles: ["auto"] build: ./services/AUTOMATIC1111 - image: sd-auto:70 + image: sd-auto:71 environment: - CLI_ARGS=--allow-code --medvram --xformers --enable-insecure-extension-access --api diff --git a/services/AUTOMATIC1111/Dockerfile b/services/AUTOMATIC1111/Dockerfile index 3a2f5a5..efc712c 100644 --- a/services/AUTOMATIC1111/Dockerfile +++ b/services/AUTOMATIC1111/Dockerfile @@ -46,7 +46,7 @@ RUN --mount=type=cache,target=/root/.cache/pip \ pip install pyngrok xformers \ 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 + git+https://github.com/mlfoundations/open_clip.git@v2.20.0 # there seems to be a memory leak (or maybe just memory not being freed fast eno8ugh) that is fixed by this version of malloc # maybe move this up to the dependencies list. From 245d1d443f4cc249ef7547f221b7209941a6a84d Mon Sep 17 00:00:00 2001 From: AbdBarho Date: Sat, 3 Feb 2024 08:17:45 +0100 Subject: [PATCH 41/42] Update package index (#650) Closes #622 --- services/download/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/download/Dockerfile b/services/download/Dockerfile index 9c111b1..a95ad03 100644 --- a/services/download/Dockerfile +++ b/services/download/Dockerfile @@ -1,6 +1,6 @@ -FROM bash:alpine3.15 +FROM bash:alpine3.19 -RUN apk add parallel aria2 +RUN apk update && apk add parallel aria2 COPY . /docker RUN chmod +x /docker/download.sh ENTRYPOINT ["/docker/download.sh"] From 015c2ec829c28d08ed122ad02b3fda84d9608dca Mon Sep 17 00:00:00 2001 From: AbdBarho Date: Sat, 3 Feb 2024 08:50:40 +0100 Subject: [PATCH 42/42] Pin xformers (for now) (#651) Closes #648 Closes #649 --- docker-compose.yml | 2 +- services/AUTOMATIC1111/Dockerfile | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 44dcc87..a1cc6c2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -29,7 +29,7 @@ services: <<: *base_service profiles: ["auto"] build: ./services/AUTOMATIC1111 - image: sd-auto:71 + image: sd-auto:72 environment: - CLI_ARGS=--allow-code --medvram --xformers --enable-insecure-extension-access --api diff --git a/services/AUTOMATIC1111/Dockerfile b/services/AUTOMATIC1111/Dockerfile index efc712c..4c478b3 100644 --- a/services/AUTOMATIC1111/Dockerfile +++ b/services/AUTOMATIC1111/Dockerfile @@ -43,12 +43,12 @@ RUN --mount=type=cache,target=/root/.cache/pip \ pip install -r ${ROOT}/repositories/CodeFormer/requirements.txt RUN --mount=type=cache,target=/root/.cache/pip \ - pip install pyngrok xformers \ + pip install pyngrok xformers==0.0.23.post1 \ git+https://github.com/TencentARC/GFPGAN.git@8d2447a2d918f8eba5a4a01463fd48e45126a379 \ git+https://github.com/openai/CLIP.git@d50d76daa670286dd6cacf3bcd80b5e4823fc8e1 \ git+https://github.com/mlfoundations/open_clip.git@v2.20.0 -# there seems to be a memory leak (or maybe just memory not being freed fast eno8ugh) that is fixed by this version of malloc +# there seems to be a memory leak (or maybe just memory not being freed fast enough) that is fixed by this version of malloc # maybe move this up to the dependencies list. RUN apt-get -y install libgoogle-perftools-dev && apt-get clean ENV LD_PRELOAD=libtcmalloc.so