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`)
This commit is contained in:
Self Denial
2024-10-28 22:40:37 -06:00
parent 6a0366cf45
commit 25d8d0c008

View File

@@ -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}