mirror of
https://github.com/AbdBarho/stable-diffusion-webui-docker.git
synced 2025-10-27 16:24:26 -04:00
Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d20b8732b3 | ||
|
|
23757d2356 | ||
|
|
9e7979b756 | ||
|
|
8623c73741 | ||
|
|
9b6750b2f6 | ||
|
|
5e3f20ba43 | ||
|
|
53ac3601d7 | ||
|
|
37feff58bb | ||
|
|
427320475b | ||
|
|
9a60522244 | ||
|
|
887a16ef35 | ||
|
|
0a4c2a34b8 | ||
|
|
73cd69075e | ||
|
|
b33c0d4bcf | ||
|
|
5450583be1 | ||
|
|
1cfb915d12 | ||
|
|
fb9d1e579c | ||
|
|
9092aa233b |
5
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
5
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Feature request? Questions regarding some extension?
|
||||
url: https://github.com/AbdBarho/stable-diffusion-webui-docker/discussions
|
||||
about: Please use the discussions tab
|
||||
4
.github/workflows/stale.yml
vendored
4
.github/workflows/stale.yml
vendored
@@ -1,13 +1,13 @@
|
||||
name: 'Close stale issues and PRs'
|
||||
on:
|
||||
schedule:
|
||||
- cron: '30 1 * * *'
|
||||
- cron: '0 0 * * *'
|
||||
|
||||
jobs:
|
||||
stale:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/stale@v5
|
||||
- uses: actions/stale@v6
|
||||
with:
|
||||
only-labels: awaiting-response
|
||||
stale-issue-message: This issue is stale because it has been open 14 days with no activity. Remove stale label or comment or this will be closed in 7 days.
|
||||
|
||||
20
README.md
20
README.md
@@ -2,10 +2,19 @@
|
||||
|
||||
Run Stable Diffusion on your machine with a nice UI without any hassle!
|
||||
|
||||
This repository provides multiple UIs for you to play around with stable diffusion:
|
||||
|
||||
## Setup & Usage
|
||||
|
||||
Visit the wiki for [Setup](https://github.com/AbdBarho/stable-diffusion-webui-docker/wiki/Setup) and [Usage](https://github.com/AbdBarho/stable-diffusion-webui-docker/wiki/Usage) instructions, checkout the [FAQ](https://github.com/AbdBarho/stable-diffusion-webui-docker/wiki/FAQ) page if you face any problems, or create a new issue!
|
||||
|
||||
|
||||
## Contributing
|
||||
|
||||
Contributions are welcome! **Create a discussion first of what the problem is and what you want to contribute (before you implement anything)**
|
||||
## Features
|
||||
|
||||
This repository provides multiple UIs for you to play around with stable diffusion:
|
||||
|
||||
### AUTOMATIC1111
|
||||
|
||||
[AUTOMATIC1111's fork](https://github.com/AUTOMATIC1111/stable-diffusion-webui) is imho the most feature rich yet elegant UI:
|
||||
@@ -55,15 +64,6 @@ Screenshots:
|
||||
| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
|
||||
|  |  |  |
|
||||
|
||||
## Setup & Usage
|
||||
|
||||
Visit the wiki for [Setup](https://github.com/AbdBarho/stable-diffusion-webui-docker/wiki/Setup) and [Usage](https://github.com/AbdBarho/stable-diffusion-webui-docker/wiki/Usage) instructions, checkout the [FAQ](https://github.com/AbdBarho/stable-diffusion-webui-docker/wiki/FAQ) page if you face any problems, or create a new issue!
|
||||
|
||||
## Contributing
|
||||
|
||||
Contributions are welcome!
|
||||
|
||||
### **Create an issue first of what you want to contribute (before you implement anything)**
|
||||
|
||||
## Disclaimer
|
||||
|
||||
|
||||
2
data/.gitignore
vendored
2
data/.gitignore
vendored
@@ -13,5 +13,7 @@
|
||||
/SwinIR
|
||||
/ScuNET
|
||||
/LDSR
|
||||
/Deepdanbooru
|
||||
/Hypernetworks
|
||||
/VAE
|
||||
/embeddings
|
||||
|
||||
@@ -23,20 +23,11 @@ services:
|
||||
volumes:
|
||||
- *v1
|
||||
|
||||
hlky:
|
||||
<<: *base_service
|
||||
profiles: ["hlky"]
|
||||
build: ./services/hlky/
|
||||
image: sd-hlky:4
|
||||
environment:
|
||||
- CLI_ARGS=--optimized-turbo
|
||||
- USE_STREAMLIT=0
|
||||
|
||||
auto: &automatic
|
||||
<<: *base_service
|
||||
profiles: ["auto"]
|
||||
build: ./services/AUTOMATIC1111
|
||||
image: sd-auto:7
|
||||
image: sd-auto:18
|
||||
environment:
|
||||
- CLI_ARGS=--allow-code --medvram --xformers
|
||||
|
||||
@@ -47,11 +38,20 @@ services:
|
||||
environment:
|
||||
- CLI_ARGS=--no-half --precision full
|
||||
|
||||
hlky:
|
||||
<<: *base_service
|
||||
profiles: ["hlky"]
|
||||
build: ./services/hlky/
|
||||
image: sd-hlky:9
|
||||
environment:
|
||||
- CLI_ARGS=--optimized-turbo
|
||||
- USE_STREAMLIT=0
|
||||
|
||||
lstein:
|
||||
<<: *base_service
|
||||
profiles: ["lstein"]
|
||||
build: ./services/lstein/
|
||||
image: sd-lstein:4
|
||||
image: sd-lstein:7
|
||||
environment:
|
||||
- PRELOAD=true
|
||||
- CLI_ARGS=
|
||||
- CLI_ARGS=--max_loaded_models=1
|
||||
|
||||
@@ -20,13 +20,13 @@ 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 f4e99857772fc3a126ba886aadf795a332774878
|
||||
RUN . /clone.sh k-diffusion https://github.com/crowsonkb/k-diffusion.git 60e5042ca0da89c14d1dd59d73883280f8fce991
|
||||
RUN . /clone.sh clip-interrogator https://github.com/pharmapsychotic/clip-interrogator 2486589f24165c8e3b303f84e9dbbea318df83e8
|
||||
|
||||
|
||||
FROM alpine:3 as xformers
|
||||
RUN apk add aria2
|
||||
RUN aria2c --dir / --out wheel.whl 'https://github.com/AbdBarho/stable-diffusion-webui-docker/releases/download/2.1.0/xformers-0.0.14.dev0-cp310-cp310-linux_x86_64.whl'
|
||||
RUN aria2c -x 10 --dir / --out wheel.whl 'https://github.com/AbdBarho/stable-diffusion-webui-docker/releases/download/3.1.0/xformers-0.0.15.dev0+4e3631d.d20221125-cp310-cp310-linux_x86_64.whl'
|
||||
|
||||
FROM python:3.10-slim
|
||||
|
||||
@@ -34,7 +34,7 @@ SHELL ["/bin/bash", "-ceuxo", "pipefail"]
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive PIP_PREFER_BINARY=1 PIP_NO_CACHE_DIR=1
|
||||
|
||||
RUN pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 --extra-index-url https://download.pytorch.org/whl/cu113
|
||||
RUN pip install torch==1.12.1+cu116 torchvision==0.13.1+cu116 --extra-index-url https://download.pytorch.org/whl/cu116
|
||||
|
||||
RUN apt-get update && apt install fonts-dejavu-core rsync git jq moreutils -y && apt-get clean
|
||||
|
||||
@@ -42,13 +42,13 @@ RUN apt-get update && apt install fonts-dejavu-core rsync git jq moreutils -y &&
|
||||
RUN <<EOF
|
||||
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
|
||||
cd stable-diffusion-webui
|
||||
git reset --hard d885a4a57b72152745ca76192ef1bdda29e6461d
|
||||
git reset --hard 98947d173e3f1667eba29c904f681047dea9de90
|
||||
pip install -r requirements_versions.txt
|
||||
EOF
|
||||
|
||||
|
||||
COPY --from=xformers /wheel.whl xformers-0.0.14.dev0-cp310-cp310-linux_x86_64.whl
|
||||
RUN pip install xformers-0.0.14.dev0-cp310-cp310-linux_x86_64.whl && rm xformers-0.0.14.dev0-cp310-cp310-linux_x86_64.whl
|
||||
COPY --from=xformers /wheel.whl xformers-0.0.15-cp310-cp310-linux_x86_64.whl
|
||||
RUN pip install xformers-0.0.15-cp310-cp310-linux_x86_64.whl && rm xformers-0.0.15-cp310-cp310-linux_x86_64.whl
|
||||
|
||||
|
||||
ENV ROOT=/stable-diffusion-webui
|
||||
@@ -56,13 +56,21 @@ ENV ROOT=/stable-diffusion-webui
|
||||
|
||||
COPY --from=download /git/ ${ROOT}
|
||||
RUN mkdir ${ROOT}/interrogate && cp ${ROOT}/repositories/clip-interrogator/data/* ${ROOT}/interrogate
|
||||
RUN pip install --prefer-binary --no-cache-dir -r ${ROOT}/repositories/CodeFormer/requirements.txt
|
||||
RUN pip install -r ${ROOT}/repositories/CodeFormer/requirements.txt
|
||||
|
||||
|
||||
ARG DEEPDANBOORU="0"
|
||||
RUN [[ "${DEEPDANBOORU:-0}" == "0" ]] && : || pip install tensorflow-cpu==2.10 tensorflow-io==0.27.0 git+https://github.com/KichangKim/DeepDanbooru.git@edf73df4cdaeea2cf00e9ac08bd8a9026b7a7b26#egg=deepdanbooru
|
||||
|
||||
RUN pip install opencv-python-headless \
|
||||
git+https://github.com/TencentARC/GFPGAN.git@8d2447a2d918f8eba5a4a01463fd48e45126a379 \
|
||||
git+https://github.com/openai/CLIP.git@d50d76daa670286dd6cacf3bcd80b5e4823fc8e1 \
|
||||
pyngrok
|
||||
|
||||
# Note: don't update the sha of previous versions because the install will take forever
|
||||
# instead, update the repo state in a later step
|
||||
|
||||
ARG SHA=35c45df28b303a05d56a13cb56d4046f08cf8c25
|
||||
ARG SHA=47a44c7e421b98ca07e92dbf88769b04c9e28f86
|
||||
RUN <<EOF
|
||||
cd stable-diffusion-webui
|
||||
git fetch
|
||||
@@ -70,21 +78,19 @@ git reset --hard ${SHA}
|
||||
pip install -r requirements_versions.txt
|
||||
EOF
|
||||
|
||||
RUN pip install opencv-python-headless \
|
||||
git+https://github.com/TencentARC/GFPGAN.git@8d2447a2d918f8eba5a4a01463fd48e45126a379 \
|
||||
git+https://github.com/openai/CLIP.git@d50d76daa670286dd6cacf3bcd80b5e4823fc8e1 \
|
||||
pyngrok \
|
||||
gradio==3.4.1
|
||||
# gradio because #173 & https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/2858
|
||||
|
||||
RUN pip install opencv-python-headless
|
||||
|
||||
COPY . /docker
|
||||
|
||||
RUN chmod +x /docker/entrypoint.sh && python3 /docker/info.py ${ROOT}/modules/ui.py
|
||||
RUN <<EOF
|
||||
python3 /docker/info.py ${ROOT}/modules/ui.py
|
||||
mv ${ROOT}/style.css ${ROOT}/user.css
|
||||
sed -i 's/os.rename(tmpdir, target_dir)/shutil.move(tmpdir,target_dir)/' ${ROOT}/modules/ui_extensions.py
|
||||
EOF
|
||||
|
||||
WORKDIR ${ROOT}/repositories/stable-diffusion
|
||||
WORKDIR ${ROOT}
|
||||
ENV CLI_ARGS=""
|
||||
EXPOSE 7860
|
||||
ENTRYPOINT ["/docker/entrypoint.sh"]
|
||||
# run, -u to not buffer stdout / stderr
|
||||
CMD python3 -u ../../webui.py --listen --port 7860 --ckpt-dir ${ROOT}/models/Stable-diffusion --theme dark ${CLI_ARGS}
|
||||
CMD python3 -u webui.py --listen --port 7860 ${CLI_ARGS}
|
||||
|
||||
@@ -20,6 +20,7 @@ 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"
|
||||
@@ -29,6 +30,7 @@ MOUNTS["${ROOT}/models/SwinIR"]="/data/SwinIR"
|
||||
MOUNTS["${ROOT}/models/ScuNET"]="/data/ScuNET"
|
||||
MOUNTS["${ROOT}/models/LDSR"]="/data/LDSR"
|
||||
MOUNTS["${ROOT}/models/hypernetworks"]="/data/Hypernetworks"
|
||||
MOUNTS["${ROOT}/models/deepbooru"]="/data/Deepdanbooru"
|
||||
|
||||
MOUNTS["${ROOT}/embeddings"]="/data/embeddings"
|
||||
MOUNTS["${ROOT}/config.json"]="/data/config/auto/config.json"
|
||||
@@ -58,5 +60,4 @@ if [ -f "/data/config/auto/startup.sh" ]; then
|
||||
popd
|
||||
fi
|
||||
|
||||
|
||||
exec "$@"
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
fe4efff1e174c627256e44ec2991ba279b3816e364b49f9be2abc0b3ff3f8556 /data/StableDiffusion/model.ckpt
|
||||
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
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
|
||||
set -Eeuo pipefail
|
||||
|
||||
mkdir -p /data/.cache /data/StableDiffusion /data/Codeformer /data/GFPGAN /data/ESRGAN /data/BSRGAN /data/RealESRGAN /data/SwinIR /data/LDSR /data/ScuNET /data/embeddings
|
||||
# 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
|
||||
|
||||
echo "Downloading, this might take a while..."
|
||||
|
||||
@@ -12,8 +13,6 @@ echo "Checking SHAs..."
|
||||
|
||||
parallel --will-cite -a /docker/checksums.sha256 "echo -n {} | sha256sum -c"
|
||||
|
||||
# aria2c already does hash check
|
||||
# cc6cb27103417325ff94f52b7a5d2dde45a7515b25c255d8e396c90014281516 /data/StableDiffusion/v1-5-pruned-emaonly.ckpt
|
||||
cat <<EOF
|
||||
By using this software, you agree to the following licenses:
|
||||
https://github.com/CompVis/stable-diffusion/blob/main/LICENSE
|
||||
|
||||
@@ -1,13 +1,9 @@
|
||||
# 'check-integrity=true' is the only way aria2c won't fail if the file already exists
|
||||
magnet:?xt=urn:btih:2daef5b5f63a16a9af9169a529b1a773fc452637&dn=v1-5-pruned-emaonly.ckpt&tr=udp%3a%2f%2ftracker.opentrackr.org%3a1337%2fannounce&tr=udp%3a%2f%2f9.rarbg.com%3a2810%2fannounce&tr=udp%3a%2f%2ftracker.openbittorrent.com%3a6969%2fannounce&tr=udp%3a%2f%2fopentracker.i2p.rocks%3a6969%2fannounce&tr=https%3a%2f%2fopentracker.i2p.rocks%3a443%2fannounce&tr=http%3a%2f%2ftracker.openbittorrent.com%3a80%2fannounce&tr=udp%3a%2f%2ftracker.torrent.eu.org%3a451%2fannounce&tr=udp%3a%2f%2fopen.stealth.si%3a80%2fannounce&tr=udp%3a%2f%2fvibe.sleepyinternetfun.xyz%3a1738%2fannounce&tr=udp%3a%2f%2ftracker2.dler.org%3a80%2fannounce&tr=udp%3a%2f%2ftracker1.bt.moack.co.kr%3a80%2fannounce&tr=udp%3a%2f%2ftracker.zemoj.com%3a6969%2fannounce&tr=udp%3a%2f%2ftracker.tiny-vps.com%3a6969%2fannounce&tr=udp%3a%2f%2ftracker.theoks.net%3a6969%2fannounce&tr=udp%3a%2f%2ftracker.publictracker.xyz%3a6969%2fannounce&tr=udp%3a%2f%2ftracker.monitorit4.me%3a6969%2fannounce&tr=udp%3a%2f%2ftracker.moeking.me%3a6969%2fannounce&tr=udp%3a%2f%2ftracker.lelux.fi%3a6969%2fannounce&tr=udp%3a%2f%2ftracker.dler.org%3a6969%2fannounce&tr=udp%3a%2f%2ftracker.army%3a6969%2fannounce
|
||||
select-file=1
|
||||
index-out=1=StableDiffusion/v1-5-pruned-emaonly.ckpt
|
||||
follow-torrent=mem
|
||||
follow-metalink=mem
|
||||
seed-time=0
|
||||
check-integrity=true
|
||||
https://drive.yerf.org/wl/?id=EBfTrmcCCUAGaQBXVIj5lJmEhjoP1tgl&mode=grid&download=1
|
||||
out=StableDiffusion/model.ckpt
|
||||
https://huggingface.co/ZeroCool94/stable-diffusion-v1-5/resolve/main/Stable%20Diffusion%20v1-5-Pruned-ema%20only.ckpt
|
||||
out=StableDiffusion/v1-5-pruned-emaonly.ckpt
|
||||
https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.ckpt
|
||||
out=VAE/vae-ft-mse-840000-ema-pruned.ckpt
|
||||
https://huggingface.co/ZeroCool94/stable-diffusion-v1-5/resolve/main/Stable%20Diffusion-v1-5-Inpainting.ckpt
|
||||
out=StableDiffusion/sd-v1-5-inpainting.ckpt
|
||||
https://github.com/TencentARC/GFPGAN/releases/download/v1.3.4/GFPGANv1.4.pth
|
||||
out=GFPGAN/GFPGANv1.4.pth
|
||||
https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth
|
||||
|
||||
@@ -25,7 +25,7 @@ EOF
|
||||
|
||||
RUN apt-get update && apt install libsndfile1 ffmpeg -y && apt-get clean
|
||||
|
||||
ARG BRANCH=master SHA=091520bed06f913c9f432f9f47ccbe22b46068d7
|
||||
ARG BRANCH=dev SHA=269107a104fc9fee3201eb2c56cf7adb3d063e4b
|
||||
RUN <<EOF
|
||||
cd stable-diffusion
|
||||
git fetch
|
||||
|
||||
@@ -6,4 +6,5 @@ general:
|
||||
outdir_txt2img: /output/txt2img-samples
|
||||
outdir_img2img: /output/img2img-samples
|
||||
outdir_img2txt: /output/img2txt
|
||||
optimized: True
|
||||
optimized_turbo: True
|
||||
|
||||
@@ -1,50 +1,48 @@
|
||||
# syntax=docker/dockerfile:1
|
||||
|
||||
FROM continuumio/miniconda3:4.12.0
|
||||
FROM python:3.10-slim
|
||||
|
||||
SHELL ["/bin/bash", "-ceuxo", "pipefail"]
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive PIP_EXISTS_ACTION=w PIP_PREFER_BINARY=1 PIP_NO_CACHE_DIR=1
|
||||
|
||||
# now it requires python3.9
|
||||
RUN conda install python=3.9 && conda clean -a -y
|
||||
RUN conda install pytorch==1.11.0 torchvision==0.12.0 cudatoolkit=11.3 -c pytorch && conda clean -a -y
|
||||
|
||||
RUN apt-get update && apt install fonts-dejavu-core -y && apt-get clean
|
||||
RUN pip install torch==1.13.0 torchvision --extra-index-url https://download.pytorch.org/whl/cu117
|
||||
|
||||
RUN apt-get update && apt-get install git -y && apt-get clean
|
||||
|
||||
RUN git clone https://github.com/invoke-ai/InvokeAI.git /stable-diffusion
|
||||
|
||||
WORKDIR /stable-diffusion
|
||||
|
||||
RUN <<EOF
|
||||
git clone https://github.com/invoke-ai/InvokeAI.git stable-diffusion
|
||||
cd stable-diffusion
|
||||
git reset --hard 986cc49d7a8441a70c709c04a55016a1c783f2ed
|
||||
git reset --hard 2b7e3abe57963d199f1d825ddef87ae154c81045
|
||||
git config --global http.postBuffer 1048576000
|
||||
# conda env update --file environment.yml -n base
|
||||
conda clean -a -y
|
||||
ln -sf environments-and-requirements/requirements-lin-cuda.txt requirements.txt
|
||||
pip install -r requirements.txt
|
||||
EOF
|
||||
|
||||
|
||||
ARG BRANCH=development SHA=fdf9b1c40c243d6806e787877e42ae4c115790ee
|
||||
ARG BRANCH=development SHA=2b7e3abe57963d199f1d825ddef87ae154c81045
|
||||
RUN <<EOF
|
||||
cd stable-diffusion
|
||||
git fetch
|
||||
git reset --hard
|
||||
git checkout ${BRANCH}
|
||||
git reset --hard ${SHA}
|
||||
conda env update --file environment.yml -n base
|
||||
conda clean -a -y
|
||||
pip install -r requirements.txt
|
||||
EOF
|
||||
|
||||
RUN pip uninstall opencv-python -y && pip install --prefer-binary --force-reinstall --no-cache-dir opencv-python-headless
|
||||
RUN pip uninstall opencv-python -y && pip install --force-reinstall opencv-python-headless==4.5.5.64
|
||||
|
||||
COPY . /docker/
|
||||
RUN <<EOF
|
||||
python3 /docker/info.py /stable-diffusion/frontend/dist/index.html
|
||||
chmod +x /docker/mount.sh
|
||||
EOF
|
||||
|
||||
|
||||
ENV PRELOAD=false CLI_ARGS=""
|
||||
WORKDIR /stable-diffusion
|
||||
ENV ROOT=/stable-diffusion PRELOAD=false CLI_ARGS=""
|
||||
EXPOSE 7860
|
||||
|
||||
CMD /docker/mount.sh && \
|
||||
python3 -u scripts/invoke.py --outdir /output --web --host 0.0.0.0 --port 7860 ${CLI_ARGS}
|
||||
|
||||
ENTRYPOINT ["/docker/entrypoint.sh"]
|
||||
CMD python3 -u scripts/invoke.py --outdir /output --web --host 0.0.0.0 --port 7860 ${CLI_ARGS}
|
||||
|
||||
47
services/lstein/entrypoint.sh
Executable file
47
services/lstein/entrypoint.sh
Executable file
@@ -0,0 +1,47 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -Eeuo pipefail
|
||||
|
||||
declare -A MOUNTS
|
||||
|
||||
# cache
|
||||
MOUNTS["/root/.cache"]=/data/.cache
|
||||
|
||||
# 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/.cache/
|
||||
|
||||
MOUNTS["${ROOT}/models/realesrgan"]=/data/RealESRGAN/
|
||||
|
||||
MOUNTS["${ROOT}/models/bert-base-uncased"]=/data/.cache/huggingface/transformers
|
||||
MOUNTS["${ROOT}/models/openai/clip-vit-large-patch14"]=/data/.cache/huggingface/transformers
|
||||
MOUNTS["${ROOT}/models/CompVis/stable-diffusion-safety-checker"]=/data/.cache/huggingface/transformers
|
||||
|
||||
MOUNTS["${ROOT}/configs/models.yaml"]=/docker/models.yaml
|
||||
# hacks
|
||||
MOUNTS["/opt/conda/lib/python3.10/site-packages/facexlib/weights"]=/data/.cache/
|
||||
MOUNTS["${ROOT}/models/clipseg"]=/data/.cache/invoke/clipseg/
|
||||
|
||||
# MOUNTS["/opt/conda/lib/python3.9/site-packages/realesrgan/weights"]=/data/RealESRGAN
|
||||
|
||||
for to_path in "${!MOUNTS[@]}"; do
|
||||
set -Eeuo pipefail
|
||||
from_path="${MOUNTS[${to_path}]}"
|
||||
rm -rf "${to_path}"
|
||||
mkdir -p "$(dirname "${to_path}")"
|
||||
# ends with slash, make it!
|
||||
if [[ "$from_path" == */ ]]; then
|
||||
mkdir -vp "$from_path"
|
||||
fi
|
||||
|
||||
ln -sT "${from_path}" "${to_path}"
|
||||
echo Mounted $(basename "${from_path}")
|
||||
done
|
||||
|
||||
if "${PRELOAD}" == "true"; then
|
||||
python3 -u scripts/preload_models.py --no-interactive
|
||||
fi
|
||||
|
||||
exec "$@"
|
||||
23
services/lstein/models.yaml
Normal file
23
services/lstein/models.yaml
Normal file
@@ -0,0 +1,23 @@
|
||||
# This file describes the alternative machine learning models
|
||||
# available to InvokeAI script.
|
||||
#
|
||||
# To add a new model, follow the examples below. Each
|
||||
# model requires a model config file, a weights file,
|
||||
# and the width and height of the images it
|
||||
# was trained on.
|
||||
stable-diffusion-1.5:
|
||||
description: Stable Diffusion version 1.5
|
||||
weights: /data/StableDiffusion/v1-5-pruned-emaonly.ckpt
|
||||
vae: /data/VAE/vae-ft-mse-840000-ema-pruned.ckpt
|
||||
config: ./configs/stable-diffusion/v1-inference.yaml
|
||||
width: 512
|
||||
height: 512
|
||||
default: true
|
||||
inpainting-1.5:
|
||||
description: RunwayML SD 1.5 model optimized for inpainting
|
||||
weights: /data/StableDiffusion/sd-v1-5-inpainting.ckpt
|
||||
vae: /data/VAE/vae-ft-mse-840000-ema-pruned.ckpt
|
||||
config: ./configs/stable-diffusion/v1-inpainting-inference.yaml
|
||||
width: 512
|
||||
height: 512
|
||||
default: false
|
||||
@@ -1,29 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -Eeuo pipefail
|
||||
|
||||
declare -A MOUNTS
|
||||
|
||||
# cache
|
||||
MOUNTS["/root/.cache"]=/data/.cache
|
||||
# ui specific
|
||||
MOUNTS["${PWD}/models/ldm/stable-diffusion-v1/model.ckpt"]=/data/StableDiffusion/model.ckpt
|
||||
MOUNTS["${PWD}/src/gfpgan/experiments/pretrained_models/GFPGANv1.4.pth"]=/data/GFPGAN/GFPGANv1.4.pth
|
||||
MOUNTS["${PWD}/ldm/invoke/restoration/codeformer/weights"]=/data/Codeformer
|
||||
# hacks
|
||||
MOUNTS["/opt/conda/lib/python3.9/site-packages/facexlib/weights"]=/data/.cache
|
||||
MOUNTS["/opt/conda/lib/python3.9/site-packages/realesrgan/weights"]=/data/RealESRGAN
|
||||
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
|
||||
|
||||
if "${PRELOAD}" == "true"; then
|
||||
python3 -u scripts/preload_models.py
|
||||
fi
|
||||
Reference in New Issue
Block a user