InvokeAI/docker-build/Dockerfile
2022-09-11 15:36:09 -05:00

69 lines
1.9 KiB
Docker

FROM debian
ARG gsd
ENV GITHUB_STABLE_DIFFUSION $gsd
ARG sdreq="requirements-linux-arm64.txt"
ENV SD_REQ $sdreq
ARG condaarch
ENV ARCH $condaarch
WORKDIR /
# TODO: Optimize image size
COPY entrypoint.sh anaconda.sh .
SHELL ["/bin/bash", "-c"]
# Update and apt 446 MB
RUN apt update && apt upgrade -y \
&& apt install -y \
git \
pip \
python3 \
wget
# install Anaconda or Miniconda 610 MB
RUN bash anaconda.sh -b -u -p /anaconda && /anaconda/bin/conda init bash
# SD repo 105 MB
RUN git clone $GITHUB_STABLE_DIFFUSION
WORKDIR /stable-diffusion
# SD env 2.3 GB !!!
RUN PIP_EXISTS_ACTION="w" \
&& CONDA_SUBDIR=$ARCH \
&& source ~/.bashrc && conda create -y --name ldm && conda activate ldm \
&& conda config --env --set subdir $ARCH \
&& pip3 install -r $SD_REQ \
&& mkdir models/ldm/stable-diffusion-v1
# Face restoration prerequisites 200 MB
RUN apt install -y libgl1-mesa-glx libglib2.0-0
WORKDIR /
# Face restoreation repo 12 MB
# by default expected in a sibling directory to stable-diffusion
RUN git clone https://github.com/TencentARC/GFPGAN.git
WORKDIR /GFPGAN
# Face restoration env 608 MB
RUN pip3 install basicsr facexlib \
&& pip3 install -r requirements.txt \
&& python3 setup.py develop \
# to enhance the background (non-face) regions and do upscaling
&& pip3 install realesrgan \
# pre-trained model needed for face restoration
&& wget https://github.com/TencentARC/GFPGAN/releases/download/v1.3.0/GFPGANv1.3.pth -P experiments/pretrained_models
WORKDIR /stable-diffusion
# Preload models 2 GB
RUN python3 scripts/preload_models.py
ENTRYPOINT ["/entrypoint.sh"]