This commit is contained in:
2025-11-16 15:23:19 -05:00
parent ad831317d6
commit e155910dda
8 changed files with 308 additions and 1 deletions

View File

@@ -1,2 +1,57 @@
# comfyui-docker # ComfyUI Docker Setup
Hey there! This repository sets up ComfyUI, a powerful node-based interface for Stable Diffusion, using Docker. I've created separate configurations for AMD, Intel, and Nvidia GPUs to hopefully get everyone up and running smoothly.
## Summary
This `docker-compose.yml` file defines three ComfyUI services:
* **comfyui-amd:** Optimized for AMD GPUs.
* **comfyui-intel:** Optimized for Intel GPUs.
* **comfyui-nvidia:** Configured for Nvidia GPUs.
You'll be able to access ComfyUI through your browser at `http://localhost:8188` (assuming you're running this locally) or `http://<ip>:8188`.
## Dependencies
Before you start, make sure you have the following installed:
* **Docker:** You'll need Docker installed and running on your system. [https://docs.docker.com/get-docker/](https://docs.docker.com/get-docker/)
* **Docker Compose:** Docker Compose is used to define and run multi-container Docker applications. It's usually bundled with Docker Desktop, but if not, you can install it separately: [https://docs.docker.com/compose/install/](https://docs.docker.com/compose/install/)
* **GPU Drivers:** Make sure you have the latest drivers installed for your GPU (AMD, Intel, or Nvidia).
* **Models:** You'll need to download the Stable Diffusion models and place them in the `./models` directory. (This directory will be mounted into the container).
## Getting Started
Here's how to get everything up and running:
1. **Clone the repository:** Clone this repository to your local machine.
2. **Download Models:** Download your preferred Stable Diffusion models (e.g., checkpoints, VAEs, LoRAs) and place them in the `./models` directory.
3. **Choose your profile:** Pick the profile corresponding to your GPU: `comfyui-amd`, `comfyui-intel`, or `comfyui-nvidia`.
4. **Run Docker Compose:** Open your terminal, navigate to the directory where you cloned the repository, and run the following command, specifying the profile:
```bash
docker-compose --profile comfyui-amd up -d # For AMD
docker-compose --profile comfyui-intel up -d # For Intel
docker-compose --profile comfyui-nvidia up -d # For Nvidia
```
The `-d` flag runs the containers in detached mode (in the background).
5. **Access ComfyUI:** Once the containers are running, open your web browser and go to `http://localhost:8188`. You should see the ComfyUI interface.
**To stop the containers:**
```bash
docker-compose down
```
**Important Notes:**
* The `CLI_ARGS` environment variables in each service are specific optimizations for each GPU type. You can customize these if you want to experiment with different settings.
* The `./output` and `./user` directories are used for saving generated images and custom workflows, respectively.
Let me know if you run into any issues or have suggestions for improvements!

68
docker-compose.yml Normal file
View File

@@ -0,0 +1,68 @@
version: '3.8'
services:
comfyui-amd:
container_name: comfyui-amd
build:
context: ./services/amd
profiles: ["comfyui-amd"]
ports:
- "8188:8188"
volumes:
- "./models:/ComfyUI/models"
- "./output:/ComfyUI/output"
- "./user:/ComfyUI/user"
environment:
- CLI_ARGS=--disable-cuda-malloc --disable-smart-memory
- HSA_OVERRIDE_GFX_VERSION=10.3.0 # For AMD Radeon RX 6650 XT
- MIOPEN_FIND_MODE=FAST
devices:
- /dev/dri/renderD128:/dev/dri/renderD128
- /dev/dri/card0:/dev/dri/card0
- /dev/kfd:/dev/kfd
restart: unless-stopped
comfyui-intel:
container_name: comfyui-intel
build:
context: ./services/intel
profiles: ["comfyui-intel"]
ports:
- "8188:8188"
volumes:
- "./models:/ComfyUI/models"
- "./output:/ComfyUI/output"
- "./user:/ComfyUI/user"
environment:
- CLI_ARGS=--disable-ipex-optimize --use-pytorch-cross-attention --reserve-vram 9.5
- MIOPEN_FIND_MODE=2
- MIGRAPHX_MLIR_USE_SPECIFIC_OPS="attention"
devices:
- /dev/dri/renderD128:/dev/dri/renderD128
- /dev/dri/card0:/dev/dri/card0
restart: unless-stopped
comfyui-nvidia:
container_name: comfyui-nvidia
build:
context: ./services/nvidia
profiles: ["comfyui-nvidia"]
ports:
- "8188:8188"
volumes:
- "./models:/ComfyUI/models"
- "./output:/ComfyUI/output"
- "./user:/ComfyUI/user"
environment:
- CLI_ARGS=""
restart: unless-stopped
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities:
- gpu
- compute
- utility

56
services/amd/Dockerfile Normal file
View File

@@ -0,0 +1,56 @@
FROM rocm/dev-ubuntu-24.04:latest
# Install system dependencies
RUN apt-get update && \
apt-get install -y --no-install-recommends \
ca-certificates \
git \
libgl1 \
libglib2.0-0 \
libglx-mesa0 \
&& rm -rf /var/lib/apt/lists/*
# Create User Permissions
ARG DOCKER_USER=default_user
RUN useradd -m "$DOCKER_USER"
# Clone vladmandic's stable diffusion
RUN \
git clone --depth 1 --depth 1 https://github.com/comfyanonymous/ComfyUI
WORKDIR /ComfyUI/custom_nodes/
RUN git clone --depth 1 https://github.com/ltdrdata/ComfyUI-Manager /ComfyUI/custom_nodes/comfyui-manager && \
git clone --depth 1 https://github.com/SeanScripts/ComfyUI-Unload-Model.git /ComfyUI/custom_nodes/ComfyUI-Unload-Model && \
git clone --depth 1 https://github.com/ssitu/ComfyUI_UltimateSDUpscale --recursive /ComfyUI/custom_nodes/ComfyUI_UltimateSDUpscale && \
git clone --depth 1 https://github.com/ltdrdata/ComfyUI-Impact-Pack /ComfyUI/custom_nodes/ComfyUI-Impact-Pack && \
git clone --depth 1 https://github.com/ltdrdata/ComfyUI-Impact-Subpack /ComfyUI/custom_nodes/ComfyUI-Impact-Subpack && \
git clone --depth 1 https://github.com/talesofai/comfyui-browser /ComfyUI/custom_nodes/comfyui-browser && \
git clone --depth 1 https://github.com/SEkINVR/ComfyUI-SaveAs.git /ComfyUI/custom_nodes/ComfyUI-SaveAs
WORKDIR /ComfyUI
RUN pip install --no-cache-dir --break-system-packages --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/rocm6.4
#RUN pip install --no-cache-dir --break-system-packages torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm6.3
# Install Python dependencies
RUN pip install --no-cache-dir --break-system-packages -r requirements.txt && \
pip install --no-cache-dir --break-system-packages -r /ComfyUI/custom_nodes/comfyui-manager/requirements.txt && \
pip install --no-cache-dir --break-system-packages -r /ComfyUI/custom_nodes/ComfyUI-Impact-Pack/requirements.txt && \
pip install --no-cache-dir --break-system-packages -r /ComfyUI/custom_nodes/ComfyUI-Impact-Subpack/requirements.txt && \
pip install --no-cache-dir --break-system-packages -r /ComfyUI/custom_nodes/comfyui-browser/requirements.txt && \
pip install --no-cache-dir --break-system-packages -r /ComfyUI/custom_nodes/ComfyUI-SaveAs/requirements.txt && \
pip install --no-cache-dir --break-system-packages gitpython psutil
# Set ownership and move models directory
RUN chown -R $DOCKER_USER:$DOCKER_USER /ComfyUI && \
mv /ComfyUI/models /ComfyUI/models.orig
# Copy start script
COPY ./start.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/start.sh
# Switch to non-root user
USER $DOCKER_USER
WORKDIR /ComfyUI
CMD ["/usr/local/bin/start.sh"]

5
services/amd/start.sh Normal file
View File

@@ -0,0 +1,5 @@
#!/bin/bash
echo "COPYING"
cp -rf /ComfyUI/models.orig/* /ComfyUI/models/
echo "START"
python3 main.py --listen --lowvram "${CLI_ARGS}"

58
services/intel/Dockerfile Normal file
View File

@@ -0,0 +1,58 @@
FROM intel/oneapi-runtime:latest
ENV PIP_BREAK_SYSTEM_PACKAGES=1
ENV DEBIAN_FRONTEND=noninteractive
# Install system dependencies
RUN apt-get update && apt-get install -y \
ca-certificates \
git \
python3 \
python3-pip \
libgl1 \
libglx-mesa0 \
&& rm -rf /var/lib/apt/lists/*
# Create User Permissions
ARG DOCKER_USER=default_user
RUN useradd -m "$DOCKER_USER"
# Clone vladmandic's stable diffusion
RUN \
git clone --depth 1 https://github.com/comfyanonymous/ComfyUI
WORKDIR /ComfyUI
WORKDIR /ComfyUI/custom_nodes/
RUN git clone --depth 1 https://github.com/ltdrdata/ComfyUI-Manager /ComfyUI/custom_nodes/comfyui-manager && \
git clone --depth 1 https://github.com/SeanScripts/ComfyUI-Unload-Model.git /ComfyUI/custom_nodes/ComfyUI-Unload-Model && \
git clone --depth 1 https://github.com/ssitu/ComfyUI_UltimateSDUpscale --recursive /ComfyUI/custom_nodes/ComfyUI_UltimateSDUpscale && \
git clone --depth 1 https://github.com/ltdrdata/ComfyUI-Impact-Pack /ComfyUI/custom_nodes/ComfyUI-Impact-Pack && \
git clone --depth 1 https://github.com/ltdrdata/ComfyUI-Impact-Subpack /ComfyUI/custom_nodes/ComfyUI-Impact-Subpack && \
git clone --depth 1 https://github.com/talesofai/comfyui-browser /ComfyUI/custom_nodes/comfyui-browser && \
git clone --depth 1 https://github.com/SEkINVR/ComfyUI-SaveAs.git /ComfyUI/custom_nodes/ComfyUI-SaveAs
WORKDIR /ComfyUI
RUN pip install --no-cache-dir --break-system-packages torch==2.10.0.dev20250911+xpu torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/xpu
# Install Python dependencies
RUN pip install --no-cache-dir --break-system-packages -r requirements.txt && \
pip install --no-cache-dir --break-system-packages -r /ComfyUI/custom_nodes/comfyui-manager/requirements.txt && \
pip install --no-cache-dir --break-system-packages -r /ComfyUI/custom_nodes/ComfyUI-Impact-Pack/requirements.txt && \
pip install --no-cache-dir --break-system-packages -r /ComfyUI/custom_nodes/ComfyUI-Impact-Subpack/requirements.txt && \
pip install --no-cache-dir --break-system-packages -r /ComfyUI/custom_nodes/comfyui-browser/requirements.txt && \
pip install --no-cache-dir --break-system-packages -r /ComfyUI/custom_nodes/ComfyUI-SaveAs/requirements.txt && \
pip install --no-cache-dir --break-system-packages gitpython psutil
# Set ownership and move models directory
RUN chown -R $DOCKER_USER:$DOCKER_USER /ComfyUI && \
mv /ComfyUI/models /ComfyUI/models.orig
# Copy start script
COPY ./start.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/start.sh
# Switch to non-root user
USER $DOCKER_USER
WORKDIR /ComfyUI
CMD ["/usr/local/bin/start.sh"]

5
services/intel/start.sh Normal file
View File

@@ -0,0 +1,5 @@
#!/bin/bash
echo "COPYING"
cp -rf /ComfyUI/models.orig/* /ComfyUI/models/
echo "START"
python3 main.py --listen "${CLI_ARGS}"

View File

@@ -0,0 +1,55 @@
FROM nvidia/cuda:13.0.2-cudnn-devel-ubuntu24.04
ENV PIP_BREAK_SYSTEM_PACKAGES=1
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y \
ca-certificates \
git \
python3 \
python3-pip \
libgl1 \
libglx-mesa0 \
libglib2.0-0 \
&& rm -rf /var/lib/apt/lists/*
# Create User Permissions
ARG DOCKER_USER=default_user
RUN useradd -m "$DOCKER_USER"
# Clone vladmandic's stable diffusion
RUN git clone --depth 1 https://github.com/comfyanonymous/ComfyUI
WORKDIR /ComfyUI/custom_nodes/
RUN \
git clone --depth 1 https://github.com/ltdrdata/ComfyUI-Manager \
&& git clone --depth 1 https://github.com/SeanScripts/ComfyUI-Unload-Model.git \
&& git clone --depth 1 https://github.com/ssitu/ComfyUI_UltimateSDUpscale --recursive \
&& git clone --depth 1 https://github.com/ltdrdata/ComfyUI-Impact-Pack \
&& git clone --depth 1 https://github.com/ltdrdata/ComfyUI-Impact-Subpack \
&& git clone --depth 1 https://github.com/talesofai/comfyui-browser \
&& git clone --depth 1 https://github.com/SEkINVR/ComfyUI-SaveAs.git
WORKDIR /ComfyUI
RUN pip install --break-system-packages -r requirements.txt \
&& pip install --break-system-packages -r /ComfyUI/custom_nodes/comfyui-manager/requirements.txt \
&& pip install --break-system-packages -r /ComfyUI/custom_nodes/ComfyUI-Impact-Pack/requirements.txt \
&& pip install --break-system-packages -r /ComfyUI/custom_nodes/ComfyUI-Impact-Subpack/requirements.txt \
&& pip install --break-system-packages -r /ComfyUI/custom_nodes/comfyui-browser/requirements.txt \
&& pip install --break-system-packages -r /ComfyUI/custom_nodes/ComfyUI-SaveAs/requirements.txt
&& pip install --break-system-packages gitpython psutil
# Set ownership and move models directory
RUN chown -R $DOCKER_USER:$DOCKER_USER /ComfyUI && \
mv /ComfyUI/models /ComfyUI/models.orig
# Copy start script
COPY ./start.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/start.sh
# Switch to non-root user
USER $DOCKER_USER
WORKDIR /ComfyUI
CMD ["/usr/local/bin/start.sh"]

5
services/nvidia/start.sh Normal file
View File

@@ -0,0 +1,5 @@
#!/bin/bash
echo "COPYING"
cp -rf /ComfyUI/models.orig/* /ComfyUI/models/
echo "START"
python3 main.py --listen "${CLI_ARGS}"