protoxx91/stable-diffusion-webui-controlnet-docker
1
1FROM nvidia/cuda:11.7.1-cudnn8-devel-ubuntu22.042 3ENV DEBIAN_FRONTEND noninteractive4ENV PYTHONUNBUFFERED=15ENV PIP_DISABLE_PIP_VERSION_CHECK=16ENV PIP_NO_CACHE_DIR=17 8# OS setup9RUN apt-get update -y \10 && apt-get upgrade -y \11 && apt-get install -y \12 libgl1 \13 libglib2.0-0 \14 curl \15 vim \16 wget \17 git \18 git-lfs \19 tzdata \20 bash \21 ca-certificates \22 libreadline8 \23 bzip2 \24 psmisc \25 procps \26 netbase \27 openssh-client \28 libsqlite3-dev \29 python3-pip \30 python3-venv \31 python-is-python3 \32 build-essential \33 libssl-dev \34 libffi-dev \35 aria2 \36 \37 && pip3 install --upgrade pip \38 \39 && git lfs install \40 \41 && apt-get clean autoclean \42 && apt-get autoremove --yes \43 && rm -rf /var/lib/apt/lists/*44 45# OS timezone setting (UTC)46RUN echo "UTC" > /etc/timezone47ENV TZ=UTC48 49# Poetry for Python packages50RUN curl -sSL https://install.python-poetry.org | POETRY_HOME=/usr/local/poetry python3 - --yes \51 && ln -s /usr/local/poetry/bin/poetry /usr/bin/poetry \52 \53 && poetry config virtualenvs.create false \54 && poetry config virtualenvs.in-project false55 56# Create non-root user57ENV ENV="/etc/profile"58RUN adduser --disabled-password --gecos '' user && \59 mkdir -p /app && \60 chown -R user:user /app && \61 printf "\n. /etc/profile\n" >> /home/user/.profile \62 printf "\n. /etc/profile\n" >> /home/user/.bashrc63 64# Sets up virtualenv for dependencies65ENV VIRTUAL_ENV="/opt/venv"66ENV VIRTUAL_ENV_DISABLE_PROMPT=167ENV POETRY_ACTIVE=168ENV PATH="$VIRTUAL_ENV/bin:$PATH"69RUN echo "export PATH=$PATH" >> /home/user/.bashrc \70 && python3 -m venv $VIRTUAL_ENV \71 && /opt/venv/bin/pip install --upgrade --no-cache-dir pip \72 && chown -R user:user /opt/venv73 74# Run as non-root user75USER user76WORKDIR /app77 78# Installation of basic Python dependencies specified in pyproject.toml79COPY --chown=user:user pyproject.toml poetry.lock /app/80RUN poetry install81 82# AUTOMATIC1111' WebUI83RUN git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui /app/stable-diffusion-webui \84 && (cd /app/stable-diffusion-webui && git checkout 0cc0ee1bcb4c24a8c9715f66cede06601bfc00c8)85 86# Deforum extension87RUN git clone https://github.com/deforum-art/deforum-for-automatic1111-webui /app/stable-diffusion-webui/extensions/deforum-for-automatic1111-webui \88 && (cd /app/stable-diffusion-webui/extensions/deforum-for-automatic1111-webui && git checkout b60d999202f0fd2b386150d0938c43e639db8643)89 90# Images Browser WebUI extension91RUN git clone https://github.com/yfszzx/stable-diffusion-webui-images-browser /app/stable-diffusion-webui/extensions/stable-diffusion-webui-images-browser \92 && (cd /app/stable-diffusion-webui/extensions/stable-diffusion-webui-images-browser && git checkout a42c7a30181636a05815e62426d5eff4d3340529)93 94# CiviTAI Browser WebUI extension95RUN git clone https://github.com/Vetchems/sd-civitai-browser /app/stable-diffusion-webui/extensions/sd-civitai-browser \96 && (cd /app/stable-diffusion-webui/extensions/sd-civitai-browser && git checkout b25a5daf7df3f6340d3e243d533228d8ade5288d)97 98# Additional Networks WebUI extension99RUN git clone https://github.com/kohya-ss/sd-webui-additional-networks /app/stable-diffusion-webui/extensions/sd-webui-additional-networks \100 && (cd /app/stable-diffusion-webui/extensions/sd-webui-additional-networks && git checkout 822f2136fa6d63b85663597b03ef3edafab01187) \101 && mkdir -p /app/stable-diffusion-webui/extensions/sd-webui-additional-networks/models/LoRA102 103# ControlNet WebUI extension104RUN git clone https://github.com/Mikubill/sd-webui-controlnet /app/stable-diffusion-webui/extensions/sd-webui-controlnet \105 && (cd /app/stable-diffusion-webui/extensions/sd-webui-controlnet && git checkout 5c74f300c3ac04323963af80dd2b971a7c2b2b29) \106 && mkdir -p /app/stable-diffusion-webui/models/ControlNet107 108# Prepare WebUI environment109WORKDIR /app/stable-diffusion-webui110RUN /opt/venv/bin/python launch.py --exit --skip-torch-cuda-test --xformers111 112# Patch WebUI113RUN sed -i -e 's/ show_progress=False,/ show_progress=True,/g' modules/ui.py114RUN sed -i -e 's/shared.demo.launch/shared.demo.queue().launch/g' webui.py115RUN sed -i -e 's/ outputs=\[/queue=False, &/g' modules/ui.py116RUN sed -i -e 's/ queue=False, / /g' modules/ui.py117 118# Copy startup scripts119COPY --chown=user:user run.py on_start.sh config.json ui-config.json shared-config.json shared-ui-config.json header_patch.py /app/stable-diffusion-webui/120RUN chmod +x on_start.sh121 122EXPOSE 7860123 124CMD ["/opt/venv/bin/python", "run.py", "--listen", "--enable-insecure-extension-access", "--ui-config-file", "ui-config.json", "--ui-settings-file", "config.json", "--disable-console-progressbars", "--cors-allow-origins", "huggingface.co,hf.space", "--no-progressbar-hiding", "--enable-console-prompts", "--no-download-sd-model", "--api", "--skip-version-check"]125 