H3 Native · Bind Explicit Stage (T8 EXP)
The cheap way to give a graph you already trust a stage identity
- model
- sampler
- sigmas
- av_latent
- model
- sampler
- sigmas
- stage_context
- report_json
What it is
You already have a native H3 graph that works - a base-flow 4+4 layout, an LBH 4+3/4+4/4+5 setup, or a complete 8/20-step first pass - and it has a MODEL, a SAMPLER, a SIGMAS tensor and an AV latent sitting in it. What it doesn't have is any notion that this particular stretch of sampling is a named stage.
This node adds exactly that. stage is either native_low or native_high; everything else is pass-through. It takes your model, sampler, sigmas and av_latent, returns them unchanged alongside a stage_context and a report_json, and that's the whole API.
Why you'd want it: stage effects (the pack's Stage EAV Apply/Audit, Relay stage application), stage results and stage save/resume all need something to hang off. Binding makes your existing graph addressable by those tools without rebuilding the graph inside one of the pack's recipe-shaped setup nodes.
And it keeps its hands off your patches. The binding clones the MODEL and attaches only inert descriptors - it doesn't clear your LoRAs, attention delegates, masks or callbacks, and it doesn't rewrite your schedule.
What it validates
Despite doing nothing, it's picky, and the checks are informative:
- The MODEL must come from a setup that actually carries a model sampling patch - otherwise it raises and tells you to connect a configured native H3 sampler setup.
sigmasmust be a strictly descending one-dimensional float tensor, within[0, 1], with at least two entries. A sigma tensor that isn't monotonic isn't a schedule.- The AV latent is decomposed and its video/audio shapes recorded in the context, so a later stage can prove it's sampling the same layout.
Then it classifies your sampler, and this is the part worth knowing:
dual_clock_eulerand plaineuler- recognised, and the pack's usual completion/resume adapters apply.- Core's unmodified
er_sdeandlcm- recognised by source hash. If core's implementation changes, the recognition is withdrawn and the report says so rather than assuming. - Anything else - reported as
unadapted. Your graph still runs. You just don't get completion identity or portable stage reuse, and multi-evaluation samplers won't be given a fake one-forward-per-interval certification.
That last behaviour is the pack's signature move, and honestly it's the reason to use the node rather than roll your own. You get told which samplers you can trust with a resumed stage, instead of finding out after a four-hour render.
Inputs and outputs
Inputs: model, sampler, sigmas, av_latent, stage (native_low / native_high).
Outputs: model, sampler, sigmas, stage_context, report_json.
One boundary to keep straight: this binds the stage you connected, and says nothing about where the schedule came from. It is not a PDD, VDN or FastH3 V2 qualification - those recipes have their own state and their own adapters, and the report says as much so nobody reads a stage_context as a provenance claim.
Typical use:
your native MODEL / SAMPLER / SIGMAS + AV latent
→ Native Stage Bind → optional Stage EAV Apply → BasicGuider → your sampler (or Stage Sampler)
Use the Stage Sampler when you want a typed result for audits or saves.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8.git minimax-h3-audio-T8
Manager: search MiniMax H3 Audio T8, install, then fully quit and restart ComfyUI and refresh the page. Red or missing nodes - update ComfyUI core, the frontend and Manager together and restart; the pack's own guide says a partial update is the usual cause.
Models: transformer in models/diffusion_models, Qwen3-VL text encoder in models/text_encoders, video and audio VAEs in models/vae. The repo contains no weights, and it deliberately installs no Python packages (requirements.txt says so explicitly) so installation can't overwrite ComfyUI's torch/CUDA build.
The pack ships candidate graphs for these native combinations rather than leaving you to assemble them; look under the split workflow folders in examples/workflows.
Common issues
"Connect the configured MODEL from an explicit native H3 sampler setup." You handed it a raw loader MODEL with no sampling configuration. Route it through your setup node first.
"Native explicit SIGMAS must descend strictly within [0,1]." A schedule was built at the wrong dtype, or reversed, or contains a duplicate. Fix the schedule, don't clamp it.
Save/resume refuses, or the report says unadapted. Your sampler isn't one the pack certifies for this stage. Switch to euler/dual_clock_euler, or accept that you can run it but not freeze and resume it across processes.
Effects bound here seem to do nothing. The binding only describes the stage; the effect needs its own Apply node wired into the model path, and an Audit reading the actual calls. Config with no Apply is just a config.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| sampler | SAMPLER | — | |
| sigmas | SIGMAS | — | |
| av_latent | LATENT | — | |
| stage | COMBO | native_low | 2 options: native_low, native_high |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| sampler | SAMPLER | — |
| sigmas | SIGMAS | — |
| stage_context | T8_STAGE_CONTEXT | — |
| report_json | STRING | — |