2022-08-27 11:38:12 +00:00
|
|
|
# syntax=docker/dockerfile:1
|
|
|
|
|
|
|
|
FROM continuumio/miniconda3:4.12.0
|
|
|
|
|
|
|
|
|
|
|
|
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 git clone https://github.com/hlky/stable-diffusion.git && cd stable-diffusion && git reset --hard 554bd068e6f2f6bc55449a67fe017ddd77090f28
|
|
|
|
RUN conda env update --file stable-diffusion/environment.yaml --name base && conda clean -a -y
|
|
|
|
|
2022-08-28 11:35:40 +00:00
|
|
|
# fonts for generating the grid
|
2022-08-27 17:40:42 +00:00
|
|
|
RUN apt-get update && apt install fonts-dejavu-core && apt-get clean
|
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-08-29 04:06:58 +00:00
|
|
|
RUN cd stable-diffusion && git pull && git reset --hard f3ab556a0c25389cf76f82e63073054e32313829 && \
|
2022-08-28 11:35:40 +00:00
|
|
|
conda env update --file environment.yaml --name base && conda clean -a -y
|
|
|
|
|
2022-08-28 16:41:54 +00:00
|
|
|
# download dev UI version, update the sha below in case you want some other version
|
2022-08-27 15:25:50 +00:00
|
|
|
RUN git clone https://github.com/hlky/stable-diffusion-webui.git && cd stable-diffusion-webui && \
|
2022-08-29 04:06:58 +00:00
|
|
|
git reset --hard 083ffd9ad83d196100fd4b8edfa82c9378546327 && \
|
|
|
|
cp -t /stable-diffusion/scripts/ txt2img.yaml webui.py webui.yaml webui_playground.py relauncher.py && \
|
|
|
|
cd frontend && \
|
|
|
|
cp -t /stable-diffusion/frontend/ __init__.py css_and_js.py frontend.py ui_functions.py && \
|
2022-08-27 15:25:50 +00:00
|
|
|
cd / && rm -rf stable-diffusion-webui
|
|
|
|
|
2022-08-27 11:38:12 +00:00
|
|
|
|
2022-08-28 11:35:40 +00:00
|
|
|
# For testing different versions:
|
|
|
|
# RUN git clone https://github.com/AbdBarho/stable-diffusion-webui.git && cd stable-diffusion-webui && \
|
|
|
|
# git checkout respect-cli-params &&\
|
|
|
|
# cp -t /stable-diffusion/scripts/ txt2img.yaml webui.py webui.yaml webui_playground.py && \
|
|
|
|
# cd / && rm -rf stable-diffusion-webui
|
|
|
|
|
|
|
|
|
2022-08-28 17:09:15 +00:00
|
|
|
# add info
|
|
|
|
COPY info.py /info.py
|
2022-08-29 04:06:58 +00:00
|
|
|
RUN python /info.py /stable-diffusion/frontend/frontend.py
|
2022-08-28 17:09:15 +00:00
|
|
|
|
2022-08-27 11:38:12 +00:00
|
|
|
WORKDIR /stable-diffusion
|
2022-08-29 03:50:35 +00:00
|
|
|
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
|
2022-08-27 11:38:12 +00:00
|
|
|
EXPOSE 7860
|
2022-08-28 11:35:40 +00:00
|
|
|
CMD \
|
2022-08-29 03:50:35 +00:00
|
|
|
(test -f /models/GFPGANv1.3.pth && ln -sf /models/GFPGANv1.3.pth "${GFPGAN_PATH}" && echo "Mounted GFPGAN"); \
|
|
|
|
(test -f /models/RealESRGAN_x4plus.pth && ln -sf /models/RealESRGAN_x4plus.pth "${RealESRGAN_PATH}" && echo "Mounted RealESRGAN");\
|
|
|
|
(test -f /models/RealESRGAN_x4plus_anime_6B.pth && ln -sf /models/RealESRGAN_x4plus_anime_6B.pth "${RealESRGAN_ANIME_PATH}" && echo "Mounted RealESRGAN_ANIME"); \
|
2022-08-27 11:38:12 +00:00
|
|
|
# force facexlib cache
|
|
|
|
mkdir -p /cache/weights/ && rm -rf /opt/conda/lib/python3.8/site-packages/facexlib/weights && \
|
|
|
|
ln -sf /cache/weights/ /opt/conda/lib/python3.8/site-packages/facexlib/ && \
|
|
|
|
# run, -u to not buffer stdout / stderr
|
2022-08-29 03:50:35 +00:00
|
|
|
python3 -u scripts/webui.py --outdir /output --ckpt /models/model.ckpt --save-metadata ${CLI_ARGS}
|