2022-08-27 11:38:12 +00:00
|
|
|
# syntax=docker/dockerfile:1
|
|
|
|
|
|
|
|
FROM continuumio/miniconda3:4.12.0
|
|
|
|
|
2022-09-03 15:36:19 +00:00
|
|
|
SHELL ["/bin/bash", "-ceuxo", "pipefail"]
|
|
|
|
|
2022-08-27 11:38:12 +00:00
|
|
|
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
|
|
|
|
|
2022-09-03 15:36:19 +00:00
|
|
|
RUN apt-get update && apt install fonts-dejavu-core rsync -y && apt-get clean
|
2022-09-02 07:55:36 +00:00
|
|
|
|
|
|
|
|
2022-09-03 15:36:19 +00:00
|
|
|
RUN <<EOF
|
2022-09-07 17:45:03 +00:00
|
|
|
git clone https://github.com/sd-webui/stable-diffusion-webui.git stable-diffusion
|
2022-09-03 15:36:19 +00:00
|
|
|
cd stable-diffusion
|
2022-09-07 17:45:03 +00:00
|
|
|
git reset --hard 2b1ac8daf7ea82c6c56eabab7e80ec1c33106a98
|
2022-09-03 15:36:19 +00:00
|
|
|
conda env update --file environment.yaml -n base
|
|
|
|
conda clean -a -y
|
|
|
|
EOF
|
|
|
|
|
|
|
|
# new dependency, should be added to the environment.yaml
|
|
|
|
RUN pip install -U --no-cache-dir pyperclip
|
2022-08-27 11:38:12 +00:00
|
|
|
|
2022-08-28 11:35:40 +00:00
|
|
|
# Note: don't update the sha of previous versions because the install will take forever
|
|
|
|
# instead, update the repo state in a later step
|
2022-09-09 17:05:19 +00:00
|
|
|
ARG WEBUI_SHA=b9d97c9816251933d094f1dae43d2c631a07db7a
|
2022-09-04 07:12:07 +00:00
|
|
|
RUN cd stable-diffusion && git pull && git reset --hard ${WEBUI_SHA} && \
|
2022-09-04 06:46:14 +00:00
|
|
|
conda env update --file environment.yaml --name base && conda clean -a -y
|
2022-09-03 15:36:19 +00:00
|
|
|
|
2022-09-02 07:55:36 +00:00
|
|
|
# Textual inversion
|
2022-08-31 16:17:44 +00:00
|
|
|
RUN <<EOF
|
|
|
|
git clone https://github.com/hlky/sd-enable-textual-inversion.git &&
|
|
|
|
cd /sd-enable-textual-inversion && git reset --hard 08f9b5046552d17cf7327b30a98410222741b070 &&
|
2022-09-02 07:55:36 +00:00
|
|
|
rsync -a /sd-enable-textual-inversion/ /stable-diffusion/ &&
|
|
|
|
rm -rf /sd-enable-textual-inversion
|
2022-08-31 16:17:44 +00:00
|
|
|
EOF
|
2022-08-28 11:35:40 +00:00
|
|
|
|
2022-09-02 07:55:36 +00:00
|
|
|
# Latent diffusion
|
|
|
|
RUN <<EOF
|
|
|
|
git clone https://github.com/devilismyfriend/latent-diffusion &&
|
|
|
|
cd /latent-diffusion &&
|
2022-09-03 11:15:25 +00:00
|
|
|
git reset --hard 6d61fc03f15273a457950f2cdc10dddf53ba6809 &&
|
2022-09-02 07:55:36 +00:00
|
|
|
# hacks all the way down
|
|
|
|
mv ldm ldm_latent &&
|
|
|
|
sed -i -- 's/from ldm/from ldm_latent/g' *.py
|
|
|
|
# dont forget to update the yaml!!
|
|
|
|
EOF
|
|
|
|
|
|
|
|
|
2022-08-28 17:09:15 +00:00
|
|
|
# add info
|
2022-09-02 07:55:36 +00:00
|
|
|
COPY . /docker/
|
2022-09-07 17:45:03 +00:00
|
|
|
RUN python /docker/info.py /stable-diffusion/frontend/frontend.py && chmod +x /docker/mount.sh
|
2022-08-28 17:09:15 +00:00
|
|
|
|
2022-08-27 11:38:12 +00:00
|
|
|
WORKDIR /stable-diffusion
|
2022-09-02 07:55:36 +00:00
|
|
|
ENV TRANSFORMERS_CACHE=/cache/transformers TORCH_HOME=/cache/torch CLI_ARGS=""
|
2022-08-27 11:38:12 +00:00
|
|
|
EXPOSE 7860
|
2022-09-02 07:55:36 +00:00
|
|
|
# run, -u to not buffer stdout / stderr
|
2022-09-03 11:15:25 +00:00
|
|
|
CMD /docker/mount.sh && python3 -u scripts/webui.py --outdir /output --ckpt /models/model.ckpt --ldsr-dir /latent-diffusion ${CLI_ARGS}
|