File size: 2,175 Bytes
1b46b61
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
adf3f8f
 
 
 
 
 
 
1b46b61
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/usr/bin/env bash
set -euo pipefail
COMFY_DIR="${COMFY_DIR:-/opt/powerpack-h3/ComfyUI}"
PORT="${H3_PORT:-8188}"
RESERVE="${H3_RESERVE_VRAM:-48}"
HEADROOM="${H3_VRAM_HEADROOM:-10}"
LISTEN="${H3_LISTEN:-0.0.0.0}"

export PATH="/usr/local/cuda/bin:${COMFY_DIR}/.venv/bin:${PATH:-}"
export CUDA_HOME="${CUDA_HOME:-/usr/local/cuda}"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:${LD_LIBRARY_PATH:-}"

cd "$COMFY_DIR"

# Ensure model dir skeleton (weights mounted by user)
mkdir -p models/{diffusion_models,text_encoders/H3,vae,upscale_models,loras} output input temp

# SEALED CONFIG: STOCK int8-convrot TE is the default (heretic TE retired —
# Heretic's author does not recommend heretic models for H3).
if [[ -f models/text_encoders/qwen3vl_32b_minimax_h3_int8_convrot.safetensors ]]; then
  : # stock TE in place — nothing to do
elif [[ -f models/text_encoders/H3/qwen3vl_32b_heretic_minimax_h3_nvfp4.safetensors ]]; then
  echo "WARN: only the RETIRED heretic TE found — falling back, but fetch the stock" >&2
  echo "      int8-convrot TE (scripts/fetch_weights.sh) for the sealed config." >&2
  ln -sfn H3/qwen3vl_32b_heretic_minimax_h3_nvfp4.safetensors \
    models/text_encoders/qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors
fi

# Optional stack verify
if [[ "${H3_VERIFY:-1}" == "1" ]] && [[ -x /opt/powerpack-h3/scripts/verify_h3_stack.sh ]]; then
  /opt/powerpack-h3/scripts/verify_h3_stack.sh --offline || {
    echo "WARN: offline verify failed (continuing); set H3_VERIFY=0 to silence" >&2
  }
fi

echo "=== keys-2k MiniMax-H3 Parallel (Two DGX Sparks) ==="
echo "  ComfyUI: $COMFY_DIR"
echo "  listen:  ${LISTEN}:${PORT}"
echo "  flags:   --disable-pinned-memory --reserve-vram ${RESERVE} --vram-headroom ${HEADROOM}"
echo "  turbo:   OFF for quality (do not pass few-step turbo graphs for deliverables)"
echo "  2K path: native 704x1280 → RealESRGAN x2 → ~1408x2560"
echo

# Never --use-sage-attention CLI (noise on H3); Sage is in-graph via PathchSageAttentionKJ
exec "${COMFY_DIR}/.venv/bin/python" main.py \
  --listen "$LISTEN" \
  --port "$PORT" \
  --disable-pinned-memory \
  --reserve-vram "$RESERVE" \
  --vram-headroom "$HEADROOM" \
  "$@"