# Dockerfile Public A10G # https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/11.7.1/ubuntu2204/devel/cudnn8/Dockerfile # FROM nvidia/cuda:11.7.1-cudnn8-devel-ubuntu22.04 # https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/11.7.1/ubuntu2204/base/Dockerfile FROM nvidia/cuda:11.7.1-base-ubuntu22.04 ENV DEBIAN_FRONTEND noninteractive RUN apt-get update -y && apt-get upgrade -y && apt-get install -y libgl1 libglib2.0-0 wget git git-lfs python3-pip python-is-python3 && rm -rf /var/lib/apt/lists/* RUN adduser --disabled-password --gecos '' user RUN mkdir /content && chown -R user:user /content WORKDIR /content USER user RUN pip install "fastapi[all]" RUN pip install Pillow # Add Hugging Face cache setup ENV HF_HOME=/content/huggingface ENV TRANSFORMERS_CACHE=$HF_HOME RUN mkdir -p $HF_HOME # Install transformers and download tokenizer RUN pip3 install --upgrade pip RUN pip install transformers==4.26.1 RUN python -c "from transformers import CLIPTokenizer; CLIPTokenizer.from_pretrained('openai/clip-vit-large-patch14')" RUN pip install torchmetrics==0.11.4 RUN pip install https://github.com/camenduru/stable-diffusion-webui-colab/releases/download/0.0.16/xformers-0.0.16+814314d.d20230119.A10G-cp310-cp310-linux_x86_64.whl RUN pip install --pre triton RUN pip install numexpr # Clone repository and update submodules in a single RUN command RUN git clone -b v1.6 https://github.com/camenduru/stable-diffusion-webui && \ cd stable-diffusion-webui && \ git submodule update --init --recursive && \ sed -i '$a fastapi==0.90.0' requirements_versions.txt && \ sed -i -e '/prepare_environment()/a\ os.system(f\"sed -i -e '\''s/dict()))/dict())).cuda()/g'\'' repositories/stable-diffusion-stability-ai/ldm/util.py\")' launch.py && \ sed -i -e 's/ start()/ #start()/g' launch.py ADD --chown=user https://github.com/camenduru/webui-docker/raw/main/env_patch.py /content/env_patch.py RUN sed -i -e '/import image_from_url_text/r /content/env_patch.py' /content/stable-diffusion-webui/modules/ui.py ADD --chown=user https://raw.githubusercontent.com/darkstorm2150/webui/main/OpenGen_header_patch.py /content/header_patch.py RUN sed -i -e '/demo:/r /content/header_patch.py' /content/stable-diffusion-webui/modules/ui.py RUN sed -i -e '/(modelmerger_interface, \"Checkpoint Merger\", \"modelmerger\"),/d' /content/stable-diffusion-webui/modules/ui.py RUN sed -i -e '/(train_interface, \"Train\", \"ti\"),/d' /content/stable-diffusion-webui/modules/ui.py RUN sed -i -e '/extensions_interface, \"Extensions\", \"extensions\"/d' /content/stable-diffusion-webui/modules/ui.py RUN sed -i -e '/settings_interface, \"Settings\", \"settings\"/d' /content/stable-diffusion-webui/modules/ui.py RUN sed -i -e "s/document.getElementsByTagName('gradio-app')\[0\].shadowRoot/!!document.getElementsByTagName('gradio-app')[0].shadowRoot ? document.getElementsByTagName('gradio-app')[0].shadowRoot : document/g" /content/stable-diffusion-webui/script.js RUN sed -i -e 's/ show_progress=False,/ show_progress=True,/g' /content/stable-diffusion-webui/modules/ui.py RUN sed -i -e 's/default_enabled=False/default_enabled=True/g' /content/stable-diffusion-webui/webui.py RUN sed -i -e 's/ outputs=\[/queue=False, &/g' /content/stable-diffusion-webui/modules/ui.py RUN sed -i -e 's/ queue=False, / /g' /content/stable-diffusion-webui/modules/ui.py RUN rm -rfv /content/stable-diffusion-webui/scripts/ ADD --chown=user https://github.com/camenduru/webui-docker/raw/main/shared-config.json /content/shared-config.json ADD --chown=user https://raw.githubusercontent.com/darkstorm2150/webui/main/shared-ui-config.json /content/shared-ui-config.json ADD --chown=user https://huggingface.co/darkstorm2150/OpenGen/resolve/main/OpenGen%20v1.0.safetensors /content/stable-diffusion-webui/models/Stable-diffusion/OpenGen%20v1.0.safetensors EXPOSE 7860 CMD cd /content/stable-diffusion-webui && python webui.py --xformers --listen --disable-console-progressbars --enable-console-prompts --no-progressbar-hiding --ui-config-file /content/shared-ui-config.json --ui-settings-file /content/shared-config.json