# keys-2k MiniMax-H3 Parallel — Two DGX Sparks (GB10 / aarch64) # ComfyUI 0.31.1 + pinned Power Pack custom_nodes + quality launch flags. # Models are NOT baked in — mount models/ at runtime (see docker-compose / fetch_weights.sh). # # Build on a DGX Spark (arm64) that already has a working h3-cotenancy tree, or use # the published image: ghcr.io/drowzeys/keys-2k-minimax-h3-parallel-two-dgx-sparks FROM nvidia/cuda:12.8.1-runtime-ubuntu24.04 ENV DEBIAN_FRONTEND=noninteractive \ PYTHONUNBUFFERED=1 \ NVIDIA_VISIBLE_DEVICES=all \ NVIDIA_DRIVER_CAPABILITIES=compute,utility \ COMFY_DIR=/opt/powerpack-h3/ComfyUI \ H3_PORT=8188 RUN apt-get update && apt-get install -y --no-install-recommends \ python3 python3-venv python3-pip \ git curl ca-certificates ffmpeg \ libgl1 libglib2.0-0 libsm6 libxext6 libxrender1 \ build-essential \ && rm -rf /var/lib/apt/lists/* # Prebuilt ComfyUI tree (venv + custom_nodes, no model weights) COPY ComfyUI/ ${COMFY_DIR}/ COPY entrypoint.sh /usr/local/bin/entrypoint.sh COPY H3_STACK_MANIFEST.json /opt/powerpack-h3/H3_STACK_MANIFEST.json COPY workflows/ /opt/powerpack-h3/workflows/ COPY scripts/ /opt/powerpack-h3/scripts/ RUN chmod +x /opt/powerpack-h3/scripts/*.sh RUN chmod +x /usr/local/bin/entrypoint.sh \ && mkdir -p ${COMFY_DIR}/models ${COMFY_DIR}/output ${COMFY_DIR}/input ${COMFY_DIR}/temp \ && bash -c 'if [ -d "${COMFY_DIR}/.venv" ]; then \ find "${COMFY_DIR}/.venv" -type f \( -name "*.py" -o -name "activate*" -o -name "pip*" -o -name "python*" -o -name "torch*" \) \ 2>/dev/null | while read -r f; do \ grep -q /home/keyspark "$f" 2>/dev/null || continue; \ sed -i \ -e "s|/home/keyspark/h3-cotenancy/ComfyUI|/opt/powerpack-h3/ComfyUI|g" \ -e "s|/home/keyspark/comfy/ComfyUI|/opt/powerpack-h3/ComfyUI|g" "$f" || true; \ done; \ find "${COMFY_DIR}/.venv/bin" -type f -exec sed -i \ "1s|^#!.*python.*|#!/opt/powerpack-h3/ComfyUI/.venv/bin/python|" {} + 2>/dev/null || true; \ fi' WORKDIR ${COMFY_DIR} EXPOSE 8188 # Co-tenant friendly defaults (override via env) ENV H3_RESERVE_VRAM=48 \ H3_VRAM_HEADROOM=10 \ H3_LISTEN=0.0.0.0 LABEL org.opencontainers.image.title="keys-2k-minimax-h3-parallel-two-dgx-sparks" \ org.opencontainers.image.description="Power Pack MiniMax-H3 dual-Spark quality stack (2K upscale path, Spectrum audio fix, parallel master-K0)" \ org.opencontainers.image.version="0.31.1-pp20260811" \ org.opencontainers.image.source="https://huggingface.co/drowzeys/keys-2k-MiniMax-H3-Parallel-Two-DGX-Sparks" \ powerpack.stack="keys-2k" \ powerpack.comfyui="0.31.1" \ powerpack.spectrum="0.2.1" ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]