#!/usr/bin/env bash # minimax-h3-image-gb10 entrypoint. Runs inside the container; takes no arguments. # Runs minimax_h3_image_server.py (written for this capsule, from tools/image/servers/) on pinned weights # mounted read-only at /weights/minimax-h3-image. set -eu export HF_HUB_OFFLINE=1 TRANSFORMERS_OFFLINE=1 export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True export PORT="$M64_PORT" echo '{"phase":"loading","detail":"loading MiniMax-H3-Image 33B"}' >> "$M64_STATUS" # The server loads its model before it listens (or answers /health with "loading"): # report ready once /health says "ok". python3 - <<'PY' & import json, os, time, urllib.request t0 = time.time() url = "http://127.0.0.1:%s/health" % os.environ["M64_PORT"] opener = urllib.request.build_opener(urllib.request.ProxyHandler({})) while True: try: r = opener.open(url, timeout=3) if r.status == 200 and json.loads(r.read() or b"{}").get("status", "ok") == "ok": break except Exception: pass time.sleep(5) with open(os.environ["M64_STATUS"], "a") as f: f.write(json.dumps({"phase": "ready", "detail": "loaded in %d s" % (time.time() - t0)}) + "\n") PY exec python3 -u /capsule/minimax_h3_image_server.py