mirror of
https://github.com/AbdBarho/stable-diffusion-webui-docker.git
synced 2026-02-08 08:34:21 +01:00
Add Latent Diffusion & Image Lab
This commit is contained in:
parent
0d8b7d4ac8
commit
31bef143f6
2
.github/ISSUE_TEMPLATE/bug.md
vendored
2
.github/ISSUE_TEMPLATE/bug.md
vendored
|
|
@ -7,7 +7,7 @@ assignees: ''
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
**Has this issue been opened before? Check issues [here](https://github.com/AbdBarho/stable-diffusion-webui-docker/issues?q=is%3Aissue) and in [this one as well](https://github.com/hlky/stable-diffusion-webui)**
|
**Has this issue been opened before? Check the [FAQ](https://github.com/AbdBarho/stable-diffusion-webui-docker/wiki/Main), the [issues](https://github.com/AbdBarho/stable-diffusion-webui-docker/issues?q=is%3Aissue) and in [the issues in the WebUI repo](https://github.com/hlky/stable-diffusion-webui)**
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
18
README.md
18
README.md
|
|
@ -4,7 +4,7 @@ Run Stable Diffusion on your machine with a nice UI without any hassle!
|
||||||
|
|
||||||
This repository provides the [WebUI](https://github.com/hlky/stable-diffusion-webui) as docker for easy setup and deployment. Please note that this repo delivers all cutting-edge unstable changes from the WebUI, so expect some bugs.
|
This repository provides the [WebUI](https://github.com/hlky/stable-diffusion-webui) as docker for easy setup and deployment. Please note that this repo delivers all cutting-edge unstable changes from the WebUI, so expect some bugs.
|
||||||
|
|
||||||
### Features
|
## Features
|
||||||
|
|
||||||
- Interactive UI with many features, and more on the way!
|
- Interactive UI with many features, and more on the way!
|
||||||
- Support for 6GB GPU cards.
|
- Support for 6GB GPU cards.
|
||||||
|
|
@ -14,7 +14,7 @@ This repository provides the [WebUI](https://github.com/hlky/stable-diffusion-we
|
||||||
|
|
||||||
## Setup
|
## Setup
|
||||||
|
|
||||||
make sure you have docker installed and up to date. Download this repo and run:
|
make sure you have an **up to date** version of docker installed. Download this repo and run:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker compose build
|
docker compose build
|
||||||
|
|
@ -25,15 +25,20 @@ you can let it build in the background while you download the different models
|
||||||
- [Stable Diffusion v1.4 (4GB)](https://www.googleapis.com/storage/v1/b/aai-blog-files/o/sd-v1-4.ckpt?alt=media), rename to `model.ckpt`
|
- [Stable Diffusion v1.4 (4GB)](https://www.googleapis.com/storage/v1/b/aai-blog-files/o/sd-v1-4.ckpt?alt=media), rename to `model.ckpt`
|
||||||
- (Optional) [GFPGANv1.3.pth (333MB)](https://github.com/TencentARC/GFPGAN/releases/download/v1.3.0/GFPGANv1.3.pth).
|
- (Optional) [GFPGANv1.3.pth (333MB)](https://github.com/TencentARC/GFPGAN/releases/download/v1.3.0/GFPGANv1.3.pth).
|
||||||
- (Optional) [RealESRGAN_x4plus.pth (64MB)](https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth) and [RealESRGAN_x4plus_anime_6B.pth (18MB)](https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.2.4/RealESRGAN_x4plus_anime_6B.pth).
|
- (Optional) [RealESRGAN_x4plus.pth (64MB)](https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth) and [RealESRGAN_x4plus_anime_6B.pth (18MB)](https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.2.4/RealESRGAN_x4plus_anime_6B.pth).
|
||||||
|
- (Optional) [LDSR](https://heibox.uni-heidelberg.de/f/578df07c8fc04ffbadf3/?dl=1) and [its configuration file](https://heibox.uni-heidelberg.de/f/31a76b13ea27482981b4/?dl=1), rename to `LDSR.ckpt` and `LDSR.yaml` respectively.
|
||||||
|
<!-- - (Optional) [RealESRGAN_x2plus.pth (64MB)](https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.1/RealESRGAN_x2plus.pth)
|
||||||
|
- TODO: (I still need to find the RealESRGAN_x2plus_6b.pth) -->
|
||||||
|
|
||||||
Put all of the downloaded files in the `models` folder, it should look something like this:
|
Put all of the downloaded files in the `models` folder, it should look something like this:
|
||||||
|
|
||||||
```
|
```
|
||||||
models/
|
models/
|
||||||
|
├── model.ckpt
|
||||||
├── GFPGANv1.3.pth
|
├── GFPGANv1.3.pth
|
||||||
├── RealESRGAN_x4plus.pth
|
├── RealESRGAN_x4plus.pth
|
||||||
├── RealESRGAN_x4plus_anime_6B.pth
|
├── RealESRGAN_x4plus_anime_6B.pth
|
||||||
└── model.ckpt
|
├── LDSR.ckpt
|
||||||
|
└── LDSR.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
## Run
|
## Run
|
||||||
|
|
@ -52,12 +57,9 @@ Note: the first start will take sometime as some other models will be downloaded
|
||||||
|
|
||||||
in the `docker-compose.yml` you can change the `CLI_ARGS` variable, which contains the arguments that will be passed to the WebUI. By default: `--extra-models-cpu --optimized-turbo` are given, which allow you to use this model on a 6GB GPU. However, some features might not be available in the mode.
|
in the `docker-compose.yml` you can change the `CLI_ARGS` variable, which contains the arguments that will be passed to the WebUI. By default: `--extra-models-cpu --optimized-turbo` are given, which allow you to use this model on a 6GB GPU. However, some features might not be available in the mode.
|
||||||
|
|
||||||
[You can find the full list of arguments here](https://github.com/hlky/stable-diffusion/blob/c5b2c86f1479dec75b0e92dd37f9357a68594bda/scripts/webui.py)
|
[You can find the full list of arguments here.](https://github.com/hlky/stable-diffusion/blob/c5b2c86f1479dec75b0e92dd37f9357a68594bda/scripts/webui.py)
|
||||||
|
|
||||||
## FAQ
|
You can find fixes to common issues [in the wiki page.](https://github.com/AbdBarho/stable-diffusion-webui-docker/wiki/Main)
|
||||||
|
|
||||||
- To enable [Textual Inversion](https://github.com/hlky/sd-enable-textual-inversion) remove `--optimize` and `--optimize-turbo` flags and add `--no-half`, [more info here](https://github.com/AbdBarho/stable-diffusion-webui-docker/issues/6).
|
|
||||||
- If [output is a always green imagee](https://github.com/AbdBarho/stable-diffusion-webui-docker/issues/9), use `--precision full --no-half`.
|
|
||||||
|
|
||||||
# Disclaimer
|
# Disclaimer
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
FROM continuumio/miniconda3:4.12.0
|
FROM continuumio/miniconda3:4.12.0
|
||||||
|
|
||||||
|
|
||||||
RUN conda install python=3.8.5 && conda clean -a -y
|
RUN conda install python=3.8.5 && conda clean -a -y
|
||||||
RUN conda install pytorch==1.11.0 torchvision==0.12.0 cudatoolkit=11.3 -c pytorch && conda clean -a -y
|
RUN conda install pytorch==1.11.0 torchvision==0.12.0 cudatoolkit=11.3 -c pytorch && conda clean -a -y
|
||||||
RUN git clone https://github.com/hlky/stable-diffusion.git && cd stable-diffusion && git reset --hard ff8c2d0b709f1e4180fb19fa5c27ec28c414cedd
|
RUN git clone https://github.com/hlky/stable-diffusion.git && cd stable-diffusion && git reset --hard ff8c2d0b709f1e4180fb19fa5c27ec28c414cedd
|
||||||
|
|
@ -13,7 +12,7 @@ RUN apt-get update && apt install fonts-dejavu-core rsync -y && apt-get clean
|
||||||
|
|
||||||
# Note: don't update the sha of previous versions because the install will take forever
|
# Note: don't update the sha of previous versions because the install will take forever
|
||||||
# instead, update the repo state in a later step
|
# instead, update the repo state in a later step
|
||||||
RUN cd stable-diffusion && git pull && git reset --hard c5b2c86f1479dec75b0e92dd37f9357a68594bda && \
|
RUN cd stable-diffusion && git pull && git reset --hard ba12cc71f5170654f6047eb1d2b7993dcddf785c && \
|
||||||
conda env update --file environment.yaml --name base && conda clean -a -y
|
conda env update --file environment.yaml --name base && conda clean -a -y
|
||||||
|
|
||||||
# download dev UI version, update the sha below in case you want some other version
|
# download dev UI version, update the sha below in case you want some other version
|
||||||
|
|
@ -28,31 +27,27 @@ RUN cd stable-diffusion && git pull && git reset --hard c5b2c86f1479dec75b0e92dd
|
||||||
# cd / && rm -rf stable-diffusion-webui
|
# cd / && rm -rf stable-diffusion-webui
|
||||||
# EOF
|
# EOF
|
||||||
|
|
||||||
# Textual-inversion:
|
# Textual inversion
|
||||||
RUN <<EOF
|
RUN <<EOF
|
||||||
git clone https://github.com/hlky/sd-enable-textual-inversion.git &&
|
git clone https://github.com/hlky/sd-enable-textual-inversion.git &&
|
||||||
cd /sd-enable-textual-inversion && git reset --hard 08f9b5046552d17cf7327b30a98410222741b070 &&
|
cd /sd-enable-textual-inversion && git reset --hard 08f9b5046552d17cf7327b30a98410222741b070 &&
|
||||||
rsync -a /sd-enable-textual-inversion/ /stable-diffusion/
|
rsync -a /sd-enable-textual-inversion/ /stable-diffusion/ &&
|
||||||
|
rm -rf /sd-enable-textual-inversion
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Latent diffusion
|
||||||
|
RUN <<EOF
|
||||||
|
git clone https://github.com/devilismyfriend/latent-diffusion &&
|
||||||
|
cd /latent-diffusion &&
|
||||||
|
git reset --hard b3896adb4784e9fc4ec600d91aa2cdaa6fe48285
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# add info
|
# add info
|
||||||
COPY info.py /info.py
|
COPY . /docker/
|
||||||
RUN python /info.py /stable-diffusion/frontend/frontend.py
|
RUN python /docker/info.py /stable-diffusion/frontend/frontend.py
|
||||||
|
|
||||||
WORKDIR /stable-diffusion
|
WORKDIR /stable-diffusion
|
||||||
ENV TRANSFORMERS_CACHE=/cache/transformers TORCH_HOME=/cache/torch CLI_ARGS="" \
|
ENV TRANSFORMERS_CACHE=/cache/transformers TORCH_HOME=/cache/torch CLI_ARGS=""
|
||||||
GFPGAN_PATH=/stable-diffusion/src/gfpgan/experiments/pretrained_models/GFPGANv1.3.pth \
|
|
||||||
RealESRGAN_PATH=/stable-diffusion/src/realesrgan/experiments/pretrained_models/RealESRGAN_x4plus.pth \
|
|
||||||
RealESRGAN_ANIME_PATH=/stable-diffusion/src/realesrgan/experiments/pretrained_models/RealESRGAN_x4plus_anime_6B.pth
|
|
||||||
EXPOSE 7860
|
EXPOSE 7860
|
||||||
CMD \
|
# run, -u to not buffer stdout / stderr
|
||||||
for path in "${GFPGAN_PATH}" "${RealESRGAN_PATH}" "${RealESRGAN_ANIME_PATH}"; do \
|
CMD /bin/bash -c /docker/mount.sh && python3 -u scripts/webui.py --outdir /output --ckpt /models/model.ckpt --ldsr-dir /latent-diffusion --save-metadata ${CLI_ARGS}
|
||||||
name=$(basename "${path}"); \
|
|
||||||
base=$(dirname "${path}"); \
|
|
||||||
test -f "/models/${name}" && mkdir -p "${base}" && ln -sf "/models/${name}" "${path}" && echo "Mounted ${name}";\
|
|
||||||
done;\
|
|
||||||
# force facexlib cache
|
|
||||||
mkdir -p /cache/weights/ && rm -rf /stable-diffusion/src/facexlib/facexlib/weights && \
|
|
||||||
ln -sf /cache/weights/ /stable-diffusion/src/facexlib/facexlib/ && \
|
|
||||||
# run, -u to not buffer stdout / stderr
|
|
||||||
python3 -u scripts/webui.py --outdir /output --ckpt /models/model.ckpt --save-metadata ${CLI_ARGS}
|
|
||||||
|
|
|
||||||
21
build/mount.sh
Normal file
21
build/mount.sh
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
declare -A MODELS
|
||||||
|
MODELS["/stable-diffusion/src/gfpgan/experiments/pretrained_models/GFPGANv1.3.pth"]=GFPGANv1.3.pth
|
||||||
|
MODELS["/stable-diffusion/src/realesrgan/experiments/pretrained_models/RealESRGAN_x4plus.pth"]=RealESRGAN_x4plus.pth
|
||||||
|
MODELS["/stable-diffusion/src/realesrgan/experiments/pretrained_models/RealESRGAN_x4plus_anime_6B.pth"]=RealESRGAN_x4plus_anime_6B.pth
|
||||||
|
MODELS["/latent-diffusion/experiments/pretrained_models/model.ckpt"]=LDSR.ckpt
|
||||||
|
MODELS["/latent-diffusion/experiments/pretrained_models/project.yaml"]=LDSR.yaml
|
||||||
|
|
||||||
|
for path in "${!MODELS[@]}"; do
|
||||||
|
name=${MODELS[$path]}
|
||||||
|
base=$(dirname "${path}")
|
||||||
|
test -f "/models/${name}" && mkdir -p "${base}" && ln -sf "/models/${name}" "${path}" && echo "Mounted ${name}"
|
||||||
|
done
|
||||||
|
|
||||||
|
# force facexlib cache
|
||||||
|
mkdir -p /cache/weights/
|
||||||
|
rm -rf /stable-diffusion/src/facexlib/facexlib/weights
|
||||||
|
ln -sf /cache/weights/ /stable-diffusion/src/facexlib/facexlib/
|
||||||
|
|
@ -11,7 +11,7 @@ services:
|
||||||
- ./output:/output
|
- ./output:/output
|
||||||
- ./models:/models
|
- ./models:/models
|
||||||
environment:
|
environment:
|
||||||
- CLI_ARGS=--extra-models-cpu --optimized-turbo
|
- CLI_ARGS=--optimized
|
||||||
deploy:
|
deploy:
|
||||||
resources:
|
resources:
|
||||||
reservations:
|
reservations:
|
||||||
|
|
|
||||||
2
models/.gitignore
vendored
2
models/.gitignore
vendored
|
|
@ -2,3 +2,5 @@
|
||||||
/GFPGANv1.3.pth
|
/GFPGANv1.3.pth
|
||||||
/RealESRGAN_x4plus.pth
|
/RealESRGAN_x4plus.pth
|
||||||
/RealESRGAN_x4plus_anime_6B.pth
|
/RealESRGAN_x4plus_anime_6B.pth
|
||||||
|
/LDSR.ckpt
|
||||||
|
/LDSR.yaml
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue