File size: 3,568 Bytes
ad32c0c
 
 
01864b9
ad32c0c
 
d02116d
ad32c0c
01864b9
ad32c0c
 
 
 
 
01864b9
ece2dd3
 
5f6a4fa
ece2dd3
ad32c0c
 
 
 
 
 
 
78ef80b
ad32c0c
01864b9
ad32c0c
d02116d
 
ad32c0c
 
 
 
 
 
01864b9
ad32c0c
 
7126efe
ad32c0c
 
0f0ba30
ad32c0c
 
 
 
 
 
 
 
 
 
 
01864b9
ad32c0c
 
 
01864b9
7c9dec7
 
 
 
01864b9
ad32c0c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# Use a smaller base image if possible, but maintain CUDA compatibility
FROM nvidia/cuda:11.7.1-base-ubuntu22.04 AS base
ENV DEBIAN_FRONTEND=noninteractive

# Create user and directories early to leverage caching
RUN adduser --disabled-password --gecos '' user && \
    mkdir -p /content && \
    chown -R user:user /content

# Install system dependencies efficiently
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
    libgl1 libglib2.0-0 wget git git-lfs python3-pip python-is-python3 && \
    rm -rf /var/lib/apt/lists/*

# Switch to user after system setup
WORKDIR /content
USER user

# Combine pip installations into a single layer
RUN pip3 install --upgrade pip==23.3.1 && \
    pip install --no-cache-dir \
    torchmetrics==0.11.4 \
    numexpr \
    httpx==0.24.1 \
    pytorch_lightning==1.7.6 \
    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 \
    --pre triton

# Clone repository and apply patches in a single step
RUN rm -rf stable-diffusion-webui && \
    git clone -b v1.6 https://github.com/camenduru/stable-diffusion-webui && \
    cd stable-diffusion-webui && \
    sed -i 's/dict()))/dict())).cuda()/g' repositories/stable-diffusion-stability-ai/ldm/util.py && \
    sed -i '/prepare_environment()/a os.system("sed -i -e '\''s/dict()))/dict())).cuda()/g'\'' repositories/stable-diffusion-stability-ai/ldm/util.py")' launch.py && \
    sed -i 's/start()/#start()/g' launch.py && \
    echo "fastapi==0.90.0" >> requirements_versions.txt && \
    python launch.py --skip-torch-cuda-test

# Apply configuration patches
ADD --chown=user https://github.com/camenduru/webui-docker/raw/main/env_patch.py /content/
ADD --chown=user https://raw.githubusercontent.com/darkstorm2150/webui/refs/heads/main/OpenGen_header_patch.py /content/
RUN sed -i '/import image_from_url_text/r /content/env_patch.py' stable-diffusion-webui/modules/ui.py && \
    sed -i '/demo:/r /content/header_patch.py' stable-diffusion-webui/modules/ui.py

# Cleanup and optimizations
RUN rm -rf stable-diffusion-webui/scripts && \
    sed -i -e '/(modelmerger_interface, "Checkpoint Merger", "modelmerger"),/d' \
          -e '/(train_interface, "Train", "ti"),/d' \
          -e '/extensions_interface, "Extensions", "extensions"/d' \
          -e '/settings_interface, "Settings", "settings"/d' \
          -e 's/document.getElementsByTagName.*shadowRoot/!!& ? & : document/g' stable-diffusion-webui/script.js && \
    sed -i 's/show_progress=False/show_progress=True/g' stable-diffusion-webui/modules/ui.py && \
    sed -i 's/default_enabled=False/default_enabled=True/g' stable-diffusion-webui/webui.py && \
    sed -i 's/ outputs=\[/queue=False, &/g' stable-diffusion-webui/modules/ui.py && \
    sed -i 's/queue=False,  //g' stable-diffusion-webui/modules/ui.py

# Add configuration files
ADD --chown=user https://github.com/camenduru/webui-docker/raw/main/shared-config.json /content/
ADD --chown=user https://github.com/camenduru/webui-docker/raw/main/shared-ui-config.json /content/

# Add Model
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 ["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"]