From 25d8d0c0088c2de0a99cb45c368bc10896c58ea5 Mon Sep 17 00:00:00 2001 From: Self Denial Date: Mon, 28 Oct 2024 22:40:37 -0600 Subject: [PATCH] Update, more ComfyUI Dockerfile features & bugfix - Update base image to pytorch 2.3.1 - Fix missing comment line escape - Support [krita-ai-diffusion](https://github.com/Acly/krita-ai-diffusion/wiki/ComfyUI-Setup) (`USE_KRITA=true`) This enables the following custom nodes (including comfyui_controlnet_aux): * **ComfyUI_IPAdapter_plus** (`USE_IPAPLUS=true`) * **comfyui-inpaint-nodes** (`USE_INPAINT=true`) * **comfyui-tooling-nodes** (`USE_TOOLING=true`) --- services/comfy/Dockerfile | 48 +++++++++++++++++++++++++++------------ 1 file changed, 33 insertions(+), 15 deletions(-) diff --git a/services/comfy/Dockerfile b/services/comfy/Dockerfile index a34c01f..be55849 100644 --- a/services/comfy/Dockerfile +++ b/services/comfy/Dockerfile @@ -1,29 +1,30 @@ +FROM pytorch/pytorch:2.3.1-cuda12.1-cudnn8-runtime + # Limited system user UID ARG USE_UID=991 # Limited system user GID ARG USE_GID=991 # Latest tag or bleeding edge commit ARG USE_EDGE=false -# ComfyUI-GGUF support +# ComfyUI-GGUF ARG USE_GGUF=false -# x-flux-comfyui support +# x-flux-comfyui ARG USE_XFLUX=false -# comfyui_controlnet_aux support +# comfyui_controlnet_aux ARG USE_CNAUX=false - -FROM pytorch/pytorch:2.3.0-cuda12.1-cudnn8-runtime - -# Use args -ARG USE_UID -ARG USE_GID -ARG USE_EDGE -ARG USE_GGUF -ARG USE_XFLUX -ARG USE_CNAUX +# krita-ai-diffusion +ARG USE_KRITA=false +# ComfyUI_IPAdapter_plus +ARG USE_IPAPLUS=false +# comfyui-inpaint-nodes +ARG USE_INPAINT=false +# comfyui-tooling-nodes +ARG USE_TOOLING=false ENV DEBIAN_FRONTEND=noninteractive PIP_PREFER_BINARY=1 USE_EDGE=$USE_EDGE ENV USE_GGUF=$USE_GGUF USE_XFLUX=$USE_XFLUX ROOT=/stable-diffusion -ENV CACHE=/home/app/.cache USE_CNAUX=$USE_CNAUX +ENV CACHE=/home/app/.cache USE_CNAUX=$USE_CNAUX USE_KRITA=$USE_KRITA +ENV USE_IPAPLUS=$USE_IPAPLUS USE_INPAINT=$USE_INPAINT USE_TOOLING=$USE_TOOLING # User/Group RUN groupadd -r app -g ${USE_GID} && useradd --no-log-init -m -r -g app app -u ${USE_UID} && \ @@ -45,6 +46,10 @@ RUN --mount=type=cache,uid=${USE_UID},gid=${USE_GID},target=${CACHE} \ if [ "${USE_EDGE}" = "true" ]; then VERSION=$(git describe --abbrev=7); fi && \ git reset --hard ${VERSION}' && \ pip --cache-dir=${CACHE}/pip install -r requirements.txt && \ + if [ "${USE_KRITA}" = "true" ]; then \ + USE_CNAUX="true"; USE_IPAPLUS="true"; \ + USE_INPAINT="true"; USE_TOOLING="true"; \ + fi; \ if [ "${USE_GGUF}" = "true" ]; then \ git clone https://github.com/city96/ComfyUI-GGUF.git && \ cd ComfyUI-GGUF && git checkout main && \ @@ -59,8 +64,21 @@ RUN --mount=type=cache,uid=${USE_UID},gid=${USE_GID},target=${CACHE} \ git clone https://github.com/Fannovel16/comfyui_controlnet_aux.git && \ cd comfyui_controlnet_aux && git checkout main && \ pip --cache-dir=${CACHE}/pip install -r requirements.txt && \ - # This extra step to separate onnxruntime installation is required to restore onnx cuda support + # This extra step to separate onnxruntime installation is required to restore onnx cuda support \ pip --cache-dir=${CACHE}/pip install onnxruntime && pip --cache-dir=${CACHE}/pip install onnxruntime-gpu && cd ..; \ + fi; \ + if [ "${USE_IPAPLUS}" = "true" ]; then \ + git clone https://github.com/cubiq/ComfyUI_IPAdapter_plus.git && \ + cd ComfyUI_IPAdapter_plus && git checkout main && cd ..; \ + fi; \ + if [ "${USE_INPAINT}" = "true" ]; then \ + git clone https://github.com/Acly/comfyui-inpaint-nodes.git && \ + cd comfyui-inpaint-nodes && git checkout main && \ + pip install opencv-python && cd ..; \ + fi; \ + if [ "${USE_TOOLING}" = "true" ]; then \ + git clone https://github.com/Acly/comfyui-tooling-nodes.git && \ + cd comfyui-tooling-nodes && git checkout main && cd ..; \ fi WORKDIR ${ROOT}