mirror of
https://github.com/kodxana/madiator-docker-runpod.git
synced 2024-11-27 21:10:11 +01:00
Added Better ComfyUI Teamplate
This commit is contained in:
parent
6e2650cb54
commit
98ed2b08da
4 changed files with 123 additions and 0 deletions
59
official-templates/better-comfyui/Dockerfile
Normal file
59
official-templates/better-comfyui/Dockerfile
Normal file
|
@ -0,0 +1,59 @@
|
|||
# Stage 1: Base Image
|
||||
FROM madiator2011/better-pytorch:cuda12.1 as base
|
||||
|
||||
ARG PYTHON_VERSION1
|
||||
ARG TORCH
|
||||
|
||||
# Install PyTorch if specified
|
||||
RUN if [ -n "${TORCH}" ]; then \
|
||||
pip install --upgrade --no-cache-dir ${TORCH}; \
|
||||
fi
|
||||
|
||||
# Stage 2: ComfyUI Installation
|
||||
FROM base as comfyui-install
|
||||
|
||||
# Create and activate virtual environment for ComfyUI installation
|
||||
RUN python -m venv /venv
|
||||
ENV PATH="/venv/bin:$PATH"
|
||||
|
||||
RUN git clone https://github.com/comfyanonymous/ComfyUI.git && \
|
||||
cd /ComfyUI && \
|
||||
pip install -r requirements.txt && \
|
||||
git clone https://github.com/ltdrdata/ComfyUI-Manager.git custom_nodes/ComfyUI-Manager && \
|
||||
cd custom_nodes/ComfyUI-Manager && \
|
||||
pip install -r requirements.txt
|
||||
|
||||
# Stage 3: Model Setup and Final Image
|
||||
FROM comfyui-install as final
|
||||
|
||||
# Create model and cache directories
|
||||
RUN mkdir -p /root/.cache/huggingface && mkdir -p /comfy-models
|
||||
|
||||
# Download models directly
|
||||
RUN wget -q --show-progress https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors -O /comfy-models/v1-5-pruned-emaonly.safetensors && \
|
||||
wget -q --show-progress https://huggingface.co/stabilityai/stable-diffusion-2-1/resolve/main/v2-1_768-ema-pruned.safetensors -O /comfy-models/v2-1_768-ema-pruned.safetensors && \
|
||||
wget -q --show-progress https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors -O /comfy-models/sd_xl_base_1.0.safetensors && \
|
||||
wget -q --show-progress https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/resolve/main/sd_xl_refiner_1.0.safetensors -O /comfy-models/sd_xl_refiner_1.0.safetensors
|
||||
|
||||
# Verify models were downloaded
|
||||
RUN ls -lh /comfy-models
|
||||
|
||||
# NGINX Proxy
|
||||
COPY --from=proxy nginx.conf /etc/nginx/nginx.conf
|
||||
COPY --from=proxy readme.html /usr/share/nginx/html/readme.html
|
||||
|
||||
# Copy the README.md
|
||||
COPY README.md /usr/share/nginx/html/README.md
|
||||
|
||||
# Set environment variables for runtime
|
||||
ENV PATH="/workspace/venv/bin:$PATH"
|
||||
ENV VIRTUAL_ENV="/workspace/venv"
|
||||
|
||||
# Start Scripts
|
||||
COPY pre_start.sh /pre_start.sh
|
||||
|
||||
# Start Scripts
|
||||
COPY --from=scripts start.sh /
|
||||
RUN chmod +x /start.sh
|
||||
|
||||
CMD [ "/start.sh" ]
|
7
official-templates/better-comfyui/README.md
Normal file
7
official-templates/better-comfyui/README.md
Normal file
|
@ -0,0 +1,7 @@
|
|||
## Build Options
|
||||
|
||||
To build with default options, run `docker buildx bake`, to build a specific target, run `docker buildx bake <target>`.
|
||||
|
||||
## Ports
|
||||
|
||||
- 22/tcp (SSH)
|
18
official-templates/better-comfyui/docker-bake.hcl
Normal file
18
official-templates/better-comfyui/docker-bake.hcl
Normal file
|
@ -0,0 +1,18 @@
|
|||
group "default" {
|
||||
targets = ["py310-cuda121"]
|
||||
}
|
||||
|
||||
target "py310-cuda121" {
|
||||
contexts = {
|
||||
scripts = "../../container-template"
|
||||
proxy = "../../container-template/proxy"
|
||||
logo = "../../container-template"
|
||||
}
|
||||
dockerfile = "Dockerfile"
|
||||
args = {
|
||||
BASE_IMAGE = "nvidia/cuda:12.1.0-cudnn8-devel-ubuntu22.04",
|
||||
TORCH = "torch==2.3.1+cu121 -f https://download.pytorch.org/whl/torch_stable.html",
|
||||
PYTHON_VERSION = "3.10"
|
||||
}
|
||||
tags = ["madiator2011/better-comfyui:cuda12.1"]
|
||||
}
|
39
official-templates/better-comfyui/pre_start.sh
Normal file
39
official-templates/better-comfyui/pre_start.sh
Normal file
|
@ -0,0 +1,39 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Exit immediately if a command exits with a non-zero status
|
||||
set -e
|
||||
|
||||
# Function to print colorized feedback
|
||||
print_feedback() {
|
||||
GREEN='\033[0;32m'
|
||||
NC='\033[0m' # No Color
|
||||
echo -e "${GREEN}[ComfyUI Startup]:${NC} $1"
|
||||
}
|
||||
|
||||
# Function to run rsync with progress bar
|
||||
rsync_with_progress() {
|
||||
stdbuf -i0 -o0 -e0 rsync -au --info=progress2 "$@" | stdbuf -i0 -o0 -e0 tr '\r' '\n' | stdbuf -i0 -o0 -e0 grep -oP '\d+%|\d+.\d+[mMgG]' | tqdm --bar-format='{l_bar}{bar}' --total=100 --unit='%' > /dev/null
|
||||
}
|
||||
|
||||
print_feedback "Starting ComfyUI setup..."
|
||||
|
||||
print_feedback "Syncing virtual environment..."
|
||||
rsync_with_progress /venv/ /workspace/venv/
|
||||
|
||||
print_feedback "Activating virtual environment..."
|
||||
source /workspace/venv/bin/activate
|
||||
|
||||
export PYTHONUNBUFFERED=1
|
||||
|
||||
print_feedback "Syncing ComfyUI files..."
|
||||
rsync_with_progress --remove-source-files /ComfyUI/ /workspace/ComfyUI/
|
||||
|
||||
print_feedback "Creating symbolic links for model checkpoints..."
|
||||
ln -sf /comfy-models/* /workspace/ComfyUI/models/checkpoints/
|
||||
|
||||
print_feedback "Changing to ComfyUI directory..."
|
||||
cd /workspace/ComfyUI
|
||||
|
||||
print_feedback "Starting ComfyUI server..."
|
||||
print_feedback "ComfyUI will be available at http://0.0.0.0:3000"
|
||||
exec /workspace/venv/bin/python main.py --listen --port 3000
|
Loading…
Reference in a new issue