Skip to content

comfyui: pin the application version and bump to v0.33.1 for MiniMax Music3 - #179

Merged
AlienWalker1995 merged 1 commit into
mainfrom
feat/comfyui-0.33.1-minimax-music3
Aug 17, 2026
Merged

comfyui: pin the application version and bump to v0.33.1 for MiniMax Music3#179
AlienWalker1995 merged 1 commit into
mainfrom
feat/comfyui-0.33.1-minimax-music3

Conversation

@AlienWalker1995

Copy link
Copy Markdown
Owner

Why

Installing MiniMax Music3 requires ComfyUI >= v0.33.1 (the nodes landed upstream in efd4e951a0); the stack was on v0.30.2. But the bump surfaced a bigger problem worth fixing first.

The pinned COMFYUI_IMAGE digest only ever pinned the runtime — torch, CUDA, the boot entrypoint. ComfyUI itself lives on the comfyui-app named volume (moved there in #156 to escape the 9p pathology), so the image says nothing about which ComfyUI is actually running. The answer was "whatever was last checked out by hand on the volume": unpinned, undeclared, unreproducible. Hand-checking-out a second version would have repeated the workaround instead of fixing it.

What changed

The application version is now declared and enforced

  • COMFYUI_APP_REF in services/comfyui/plugin.yaml declares it as a full commit SHA — 72865f4f (v0.33.1). Never a tag or branch; tags are movable refs.
  • scripts/comfyui/boot.sh replaces the 20-line inline compose command: blob and runs as the container command (same pattern as scripts/llamacpp/run-llama-server.sh). On every start it reconciles the checkout to the declared ref. If the volume has drifted it fetches and checks out; if it cannot, it refuses to boot rather than serve a version nobody declared. Steady-state boots touch the network zero times.
  • The Comfy-Org runtime pins (comfyui-frontend-package, comfy-kitchen, comfy-aimdo, comfyui-workflow-templates, comfyui-embedded-docs) are read out of the pinned ref's own requirements.txt rather than restated in our config — one source of truth, so the app and its runtime deps cannot drift apart. Bumping COMFYUI_APP_REF automatically carries the right deps.
  • Those installs now target the user site (/root/.local), which outranks both /usr/local/lib and /usr/local/lib64 on sys.path. That ends the shadowing class that silently broke every fp8/nvfp4 load on 2026-08-07, instead of playing whack-a-mole with rm -rf on whichever copy won. Versions are verified after install, not assumed.

Music3

  • scripts/comfyui/models.json gains a minimax-music3 pack with URLs pinned to the Comfy-Org repack revision 6444666e (not /resolve/main/, which is a moving ref). This replaces an untracked throwaway dl_music3.sh that lived on the volume.
  • scripts/comfyui/workflows/minimax-music3.json is the committed workflow (API format, so it is both the UI starting point and what automation submits). boot.sh seeds it into a repo-owned user/default/workflows/ordo/ namespace — operator-authored graphs in sibling dirs are never touched.
  • services/song-gen/plugin.yaml declares both backends as data, each with the ComfyUI version it needs. Its VRAM floor rises 20 → 24 GB (Music3 is the larger backend).

Vocabulary

tests/test_dashboard_comfyui_packs.py gains audio to the pack-capability set. That set is the vocabulary — the dashboard passes the field through verbatim — and a song-generation pack would otherwise have to lie about itself as other.

Validation (live, on the deployed stack)

Check Result
Declared == running image digest sha256:4172d960…, COMFYUI_APP_REF, and git rev-parse HEAD all agree on 72865f4f
Version endpoint /system_statscomfyui_version: 0.33.1, torch 2.11.0+cu128, device RTX 5090
Existing pipeline fp8 Flux-schnell render through the gate → PNG, 37.6s (exercises the comfy-kitchen 0.2.31 quant runtime — the highest-risk dep in the bump)
Music3 30s track through the gate → mp3, 55.3s. Decoded: 29.99s stereo @ 44.1kHz, RMS 0.123, 97% non-silent, natural spectral rolloff
GPU arbitration gate GRANTED (31.8GB) → llamacpp evicted → failover to llamacpp-cpu → RELEASED after 60s drain → llamacpp + llamacpp-embed restored to the 5090, /health ok
Steady-state boot restart logs ComfyUI already at declared ref + runtime deps already reconciled — a clean no-op
Post-recreate 7 tailnet sidecars healthy, caddy :443 and :8443-8449 bound, edge returns 302 (SSO)
Tests 625 passed; the 5 failures are pre-existing on main and unrelated (3 from an uncommitted local catalog/models.yaml, 2 hermes-socket)

Validation renders went through comfyui-gate rather than holding an own lease and posting to :8188, which avoids the known bypass-alarm seam entirely.

Rollback

Set COMFYUI_APP_REF back to dec5d9450a5290bcf63430409ea41018e67f41c3 (v0.30.2), re-render, recreate. The reconciler downgrades the checkout and re-pins the runtime deps from the older ref's requirements.txt. No manual cleanup.

Cleanup

Orphaned music3-app / music3-out volumes from the throwaway container are removed. music3-out held 52 real generated songs — checksum-verified into data/comfyui-output/music3-2026-08-14/ before deletion.

🤖 Generated with Claude Code

…Music3

The pinned COMFYUI_IMAGE digest only ever pinned the *runtime* (torch, CUDA,
the boot entrypoint). ComfyUI itself lives on the `comfyui-app` volume, so the
running application version was whatever was last checked out by hand — unpinned,
undeclared, and unreproducible. Installing MiniMax Music3 needs a version bump
(the nodes landed upstream in efd4e951a0), so fix the declaration gap first
rather than hand-checkout a second time.

* `COMFYUI_APP_REF` in services/comfyui/plugin.yaml declares the application
  version as a full commit SHA (v0.33.1 = 72865f4f), never a tag or branch.
* scripts/comfyui/boot.sh replaces the inline compose command blob and reconciles
  the checkout to that ref on every start. If the volume has drifted it fetches
  and checks out; if it cannot, it refuses to boot rather than serve a version
  nobody declared. Steady-state boots are offline no-ops.
* The Comfy-Org runtime pins (frontend, kitchen, aimdo, workflow-templates,
  embedded-docs) are read out of the pinned ref's own requirements.txt instead of
  being restated here, so app and deps cannot drift apart. They install to the
  user site, which outranks both /usr/local/lib and /usr/local/lib64 — ending the
  shadowing class that silently broke every fp8 load on 2026-08-07 — and are
  verified after install rather than assumed.

Music3 itself:

* scripts/comfyui/models.json gains a `minimax-music3` pack, URLs pinned to the
  Comfy-Org repack revision (not /resolve/main/). This replaces an untracked
  throwaway download script that lived on the volume.
* scripts/comfyui/workflows/minimax-music3.json is the committed workflow, seeded
  by boot.sh into a repo-owned `user/default/workflows/ordo/` namespace.
* services/song-gen/plugin.yaml declares both backends as data, with the ComfyUI
  version each needs; its VRAM floor rises to 24GB (Music3 is the larger one).

The pack-capability vocabulary grows an `audio` member — it lives only in
tests/test_dashboard_comfyui_packs.py, and a song model would otherwise have to
lie about itself as "other".

Validated live on the deployed stack: declared == running (image digest, app ref
and `git rev-parse HEAD` all agree), /system_stats reports 0.33.1, an fp8 Flux
render and a 30s Music3 track both completed through the gpu-gate, and the
arbitration cycle held throughout (llamacpp evicted to llamacpp-cpu on grant,
restored to the 5090 after the drain).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@AlienWalker1995
AlienWalker1995 merged commit 26f0801 into main Aug 17, 2026
3 checks passed
@AlienWalker1995
AlienWalker1995 deleted the feat/comfyui-0.33.1-minimax-music3 branch August 17, 2026 12:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant