MiniMax H3 Audio Refine Model Route / 音频精修双模型路由 (T8 Advanced EXP)
When your audio-refine pass needs a different model, this router validates the pairing
- audit
- first_pass_model
- refine_model
- refine_model
- route
- decision
- report_json
The single-model Audio Refine chain is great when the same model that made the video can fix the audio. But a lot of real pipelines don't work that way - you generate with a Turbo LoRA, then want the refine pass to run on the base model without the LoRA, or you want a different Turbo stack for the tail. Mixing models across a refine is where things quietly go wrong, because two "same-looking" H3 models can be different under the hood in ways the sampler can't tell you about. This node is the router that binds the two models together - or refuses to.
It sits at the head of the dual-model branch: Audit → Model Route → Phase 2 Plan → Dual-Model Setup → SamplerCustomAdvanced → Quality Gate. It takes the audited first-pass model and the refine model you want to use, and checks that the pairing is real before anyone wastes a run: it compares runtime base and patch UUIDs, the weight-patch structure, and the LoRA metadata. The design word that matters is fail closed - if the stacks don't match what it knows how to pair, it rejects rather than guesses. A wrong model pairing in an audio refine doesn't usually error; it just sounds subtly broken, which is worse.
Inputs and outputs
- audit - from the
Audio Refine Auditnode - first_pass_model - the model the original pass ran on
- refine_model - the model you want for the refine tail
- route_strategy - combo, default
same_turbo_stack; the explicit strategy options describe which pairing you're declaring (same Turbo stack vs. base-without-Turbo) - declared_first_pass_nfe - fixed at 4, the number of NFE you're declaring for the first pass, which the route validates against
Outputs: refine_model (the model actually sanctioned for the tail), route (an H3_T8_AUDIO_REFINE_MODEL_ROUTE object for the Phase 2 Plan), a decision, and report_json explaining the binding or the rejection.
Installing it
Part of the T8mars/comfyui-minimax-h3-audio-T8 pack - search "MiniMax H3 Audio T8" in ComfyUI Manager, install, restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8.git minimax-h3-audio-T8
Update ComfyUI itself first (recent core: comfy_api.latest, comfy.weight_adapter, comfy.patcher_extension, comfy.ldm.minimax); requirements.txt is intentionally empty.
Where people get burned
Mostly, this node exists to protect you from the burn. The two failure shapes are: (1) declaring a strategy that doesn't match reality - say, picking same_turbo_stack when your refine model has no Turbo LoRA - and getting a rejection you have to read carefully to decode; and (2) assuming that because the README's rule says "don't mix FL2VA/Ref2VA/pruned/full bases," matching names means matching stacks. Base-variant mismatches are exactly what the UUID/patch check catches. If you get a rejection, treat report_json as the message: it's telling you why the two models aren't the pairing you claimed. The fix is almost always "use the matching base for both," not "force the route through."
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| audit | H3_T8_AUDIO_REFINE_AUDIT | — | |
| first_pass_model | MODEL | — | |
| refine_model | MODEL | — | |
| route_strategy | COMBO | same_turbo_stack | 2 options: same_turbo_stack, base_without_turbo |
| declared_first_pass_nfe | INT | 44–4 | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| refine_model | MODEL | — |
| route | H3_T8_AUDIO_REFINE_MODEL_ROUTE | — |
| decision | STRING | — |
| report_json | STRING | — |