diff --git a/docker-compose.yml b/docker-compose.yml index 1cc0a40..3f83e86 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,6 +6,7 @@ x-base_service: &base_service - &v2 ./output:/output stop_signal: SIGKILL tty: true + env_file: .env deploy: resources: reservations: @@ -47,10 +48,6 @@ services: image: sd-comfy:7 environment: - CLI_ARGS= - - USE_UID=0 - - USE_GID=0 - - USE_USER=root - - USE_GROUP=root env_file: .env diff --git a/services/comfy/Dockerfile b/services/comfy/Dockerfile index 66c4310..7b3d953 100644 --- a/services/comfy/Dockerfile +++ b/services/comfy/Dockerfile @@ -1,13 +1,13 @@ FROM pytorch/pytorch:2.5.1-cuda12.4-cudnn9-runtime # Limited system user UID -ARG USE_UID=991 +ARG USE_UID=0 # Limited system user GID -ARG USE_GID=991 +ARG USE_GID=0 # System user name -ARG USE_USER=app +ARG USE_USER=root # System group name -ARG USE_GROUP=app +ARG USE_GROUP=root # Latest tag or bleeding edge commit ARG USE_EDGE=false # ComfyUI-GGUF @@ -26,15 +26,21 @@ ARG USE_INPAINT=false ARG USE_TOOLING=false # Support both root and non-root -RUN if [ ${USE_UID} -eq 0 ]; then SET_USER=root; else SET_USER=${USE_USER}; fi -RUN if [ ${USE_GID} -eq 0 ]; then SET_GROUP=root; else SET_GROUP=${USE_GROUP}; fi -ENV USE_USER=${SET_USER} -ENV USE_GROUP=${SET_GROUP} +ARG SET_USER=$USE_USER SET_GROUP=$USE_GROUP +RUN if [ ${USE_UID} -eq 0 ]; then SET_USER=root; fi; \ + if [ ${USE_GID} -eq 0 ]; then SET_GROUP=root; fi +# Enable required dependencies for Krita +ARG SET_CNAUX=$USE_CNAUX SET_IPAPLUS=$USE_IPAPLUS +ARG SET_INPAINT=$USE_INPAINT SET_TOOLING=$USE_TOOLING +RUN if [ ${USE_KRITA} = "true" ]; then SET_CNAUX="true"; SET_IPAPLUS="true"; \ + SET_INPAINT="true"; SET_TOOLING="true"; fi + +ENV USE_USER=$SET_USER USE_GROUP=$SET_GROUP USE_CNAUX=$SET_CNAUX +ENV USE_IPAPLUS=$SET_IPAPLUS USE_INPAINT=$SET_INPAINT USE_TOOLING=$SET_TOOLING 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/${USE_USER}/.cache USE_CNAUX=$USE_CNAUX USE_KRITA=$USE_KRITA -ENV USE_IPAPLUS=$USE_IPAPLUS USE_INPAINT=$USE_INPAINT USE_TOOLING=$USE_TOOLING +ENV CACHE=/home/$USE_USER/.cache USE_KRITA=$USE_KRITA # User/Group RUN if [ ${USE_GID} -ne 0 ]; then \ @@ -70,8 +76,6 @@ RUN --mount=type=cache,uid=${USE_UID},gid=${USE_GID},target=${CACHE} \ git clone https://github.com/Acly/krita-ai-diffusion.git && \ cd krita-ai-diffusion && git checkout main && \ git submodule update --init && cd ..; \ - export 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 && \ diff --git a/services/comfy/entrypoint.sh b/services/comfy/entrypoint.sh index 837f174..c825c14 100755 --- a/services/comfy/entrypoint.sh +++ b/services/comfy/entrypoint.sh @@ -23,6 +23,12 @@ for to_path in "${!MOUNTS[@]}"; do echo Mounted $(basename "${from_path}") done +if [ "${UPDATE_CUSTOM_NODES:-false}" = "true" ]; then + find /data/config/comfy/custom_nodes/ -mindepth 1 -maxdepth 1 -type d | while read NODE + do echo "---- ${NODE##*/} ----" + cd $NODE && git pull; cd .. + done +fi if [ "${USE_KRITA}" = "true" ]; then if [ "${KRITA_DOWNLOAD_MODELS:-false}" = "true" ]; then