FROM docker.io/library/python:3.13-slim RUN apt-get update && apt-get install -y --no-install-recommends \ git libgl1 libglib2.0-0 libsm6 libxext6 libgomp1 \ && rm -rf /var/lib/apt/lists/* ENV GIT_TERMINAL_PROMPT=0 WORKDIR /app RUN git clone --depth 1 https://github.com/comfyanonymous/ComfyUI . \ && pip install --no-cache-dir torch torchvision torchaudio \ --index-url https://download.pytorch.org/whl/cpu \ && pip install --no-cache-dir -r requirements.txt RUN cd /app/custom_nodes \ && git clone --depth 1 https://github.com/city96/ComfyUI-GGUF \ && pip install --no-cache-dir -r ComfyUI-GGUF/requirements.txt RUN cd /app/custom_nodes \ && git clone --depth 1 https://github.com/XLabs-AI/x-flux-comfyui \ && pip install --no-cache-dir -r x-flux-comfyui/requirements.txt # Fix: xflux DoubleStreamBlock.forward must accept attn_mask kwarg passed by ComfyUI RUN python3 -c " path = '/app/custom_nodes/x-flux-comfyui/xflux/src/flux/modules/layers.py' with open(path) as f: c = f.read() old = ' def forward(self, img: Tensor, txt: Tensor, vec: Tensor, pe: Tensor) -> tuple[Tensor, Tensor]:\n return self.processor(self, img, txt, vec, pe)' new = ' def forward(self, img: Tensor, txt: Tensor, vec: Tensor, pe: Tensor, attn_mask=None, transformer_options={}, **kwargs):\n return self.processor(self, img, txt, vec, pe)' assert old in c, 'Pattern not found!' with open(path, 'w') as f: f.write(c.replace(old, new)) print('Patch applied') " RUN useradd -u 1000 -m comfyui && chown -R 1000:1000 /app USER 1000 EXPOSE 8188 CMD ["python", "main.py", "--listen", "0.0.0.0", "--port", "8188", "--cpu"]