Merge pull request #3 from ductiletoaster/upgrade-comfy

Upgraded ComfyUI support including cuda runtime.
Run Container as user compatible resolving permissions issues
Update baked in dependencies for better plugin support
Improved data pathing
This commit is contained in:
Brian Gebel 2025-05-13 21:24:53 -07:00 committed by GitHub
commit 541965b37c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 65 additions and 14 deletions

28
TASK.md
View file

@ -1,3 +1,6 @@
- [] Fix Mappings for models `/data/models` and `data/config/comfy/models` the later is created by ComfyManager
- [] Add out of the box support for onnx but make it configurable (optional) not backed into the image
- [] Run everything in an venv
- [] Update docker-compose to be a more readable
- [] Add support for swarm
- [] Pin / configurable versions
@ -6,4 +9,27 @@
- [] generally better workflow vol mappings
- [] Update download to use a manifest / mapping.
- [] Create a APP for managing manifests, output, etc
- [] Drop docker support for A111 build alternative using ComfyUI wtih preset workflows in rep
- [] Drop docker support for A111 build alternative using ComfyUI wtih preset workflows in rep
```
WAS Node Suite: Image file saved to: /data/output/2025-04-29/1745898150_character_refined_0001.png
comfy-1 | Failed to find /data/config/comfy/custom_nodes/comfyui_controlnet_aux/ckpts/lllyasviel/Annotators/body_pose_model.pth.
comfy-1 | Downloading from huggingface.co
comfy-1 | cacher folder is /tmp, you can change it by custom_tmp_path in config.yaml
comfy-1 | /home/comfy/.local/lib/python3.11/site-packages/huggingface_hub/file_download.py:896: FutureWarning: `resume_download` is deprecated and will be removed in version 1.0.0. Downloads always resume when possible. If you want to force a new download, use `force_download=True`.
comfy-1 | warnings.warn(
comfy-1 | /home/comfy/.local/lib/python3.11/site-packages/huggingface_hub/file_download.py:933: UserWarning: `local_dir_use_symlinks` parameter is deprecated and will be ignored. The process to download files to a local folder has been updated and do not rely on symlinks anymore. You only need to pass a destination folder as`local_dir`.
comfy-1 | For more details, check out https://huggingface.co/docs/huggingface_hub/main/en/guides/download#download-files-to-local-folder.
comfy-1 | warnings.warn(
comfy-1 | [Errno 2] No such file or directory: '/tmp/ckpts'
comfy-1 | model_path is /data/config/comfy/custom_nodes/comfyui_controlnet_aux/ckpts/lllyasviel/Annotators/body_pose_model.pth
comfy-1 | Failed to find /data/config/comfy/custom_nodes/comfyui_controlnet_aux/ckpts/lllyasviel/Annotators/hand_pose_model.pth.
comfy-1 | Downloading from huggingface.co
comfy-1 | cacher folder is /tmp, you can change it by custom_tmp_path in config.yaml
comfy-1 | [Errno 2] No such file or directory: '/tmp/ckpts'
comfy-1 | model_path is /data/config/comfy/custom_nodes/comfyui_controlnet_aux/ckpts/lllyasviel/Annotators/hand_pose_model.pth
comfy-1 | Failed to find /data/config/comfy/custom_nodes/comfyui_controlnet_aux/ckpts/lllyasviel/Annotators/facenet.pth.
comfy-1 | Downloading from huggingface.co
comfy-1 | cacher folder is /tmp, you can change it by custom_tmp_path in config.yaml
comfy-1 | [Errno 2] No such file or directory: '/tmp/ckpts'
comfy-1 | model_path is /data/config/comfy/custom_nodes/comfyui_controlnet_aux/ckpts/lllyasviel/Annotators/facenet.pth

View file

@ -1,27 +1,47 @@
FROM pytorch/pytorch:2.3.0-cuda12.1-cudnn8-runtime
FROM pytorch/pytorch:2.7.0-cuda12.8-cudnn9-runtime AS base
ENV DEBIAN_FRONTEND=noninteractive
ENV PIP_PREFER_BINARY=1
ENV APPLICATION_ROOT=/stable-diffusion
ENV NVIDIA_VISIBLE_DEVICES=all
ENV PYTHONPATH="${PYTHONPATH}:${PWD}"
ENV CLI_ARGS=""
WORKDIR ${APPLICATION_ROOT}
RUN --mount=type=cache,target=/var/cache/apt \
apt-get update && \
apt-get install -y git wget curl jq ffmpeg libgl1-mesa-glx libglib2.0-0 && \
apt-get clean
# Explore how we can use the CLI to do this instead
# https://docs.comfy.org/installation/system_requirements
# https://docs.comfy.org/comfy-cli/getting-started
RUN apt-get update && \
apt-get install -y git && \
apt-get clean && \
git clone --branch v0.3.19 --depth 1 https://github.com/comfyanonymous/ComfyUI.git ${APPLICATION_ROOT}
FROM base AS application
COPY . .
RUN useradd -m -s /bin/bash comfy
RUN --mount=type=cache,target=/root/.cache/pip \
USER comfy
WORKDIR /home/comfy/app
# Using CLI (with conda venv -can do venv without all this too)
# python -m pip install -U pip && \
# pip install comfy-cli && \
# conda init bash && \
# conda create -n comfy-env python=3.11 && \
# conda activate comfy-env && \
# comfy install
RUN --mount=type=cache,target=/comfy/.cache/pip \
git clone --branch v0.3.30 --depth 1 https://github.com/comfyanonymous/ComfyUI.git . && \
mkdir -p .local/bin && \
pip install -r requirements.txt && \
chmod u+x ./entrypoint.sh
pip install onnxruntime-gpu
# Should make ONNX optional by moving this into a configuration file that can be alterated at run time
COPY --chown=comfy:comfy . .
RUN chmod u+x ./entrypoint.sh
ENV PATH="/home/comfy/.local/bin:${PATH}"
ENV PYTHONPATH="${PYTHONPATH}:${PWD}"
ENV NVIDIA_VISIBLE_DEVICES=all
ENV CLI_ARGS=""
EXPOSE 7860

View file

@ -28,3 +28,8 @@ comfyui:
# clip_vision: data/config/comfy/clip_vision
# diffusers: data/config/comfy/diffusers
# download_model_base: data/models
# Need this file to be loaded dynamically maybe as a vol?
# - `ultralytics_bbox` - Specifies the paths for bbox YOLO models.
# - `ultralytics_segm` - Specifies the paths for segm YOLO models.
# - `ultralytics` - Allows the presence of `bbox/` and `segm/` subdirectories.