MiniMax H3 Audio Policy
The simple select-and-gain between H3's audio and your driven source
- h3_audio
- driven_audio
- audio
- report
Some audio nodes are routers with five modes and a JSON report. This one is the uncomplicated cousin: IAMCCS_MiniMaxH3AudioPolicy is a two-way select-with-gain between the audio H3 generated and an external driven source, and it does one thing well. You give it h3_audio (what the model produced for the chunk), a mode, and - when the mode needs it - a driven_audio input. You get back a single audio plus a report saying which mode won.
The three modes map cleanly onto how you think about a shot:
h3_native_generated(default) - trust H3's own generation. Output ish3_audiotimesh3_gain, clamped to [-1, 1].h3_ref2va_audio- same shape of behavior as native: H3's decoded audio, gained and clamped. The distinction matters upstream (whether the chunk was conditioned on reference audio), but at this node both modes just keep the model's audio.external_audio_post- drop H3's audio entirely and usedriven_audiotimesdriven_gaininstead. This is the "I'm laying the real soundtrack in post" mode, and it hard-errors ifdriven_audioisn't connected (the message is in Italian: "richiede driven_audio" - requires driven audio), which is the right failure mode: better to fail at this node than to discover the master has no audio at the end of a render.
The two gain knobs are straightforward: h3_gain (default 1, range 0–2) applies to the H3-generated path, driven_gain (default 1, same range) to the external path. Output is always clamped to [-1, 1] so you can't accidentally blow out the master. The report STRING confirms which mode and which gain were applied.
Honest placement advice: in the full atomic H3 graph, this is the simple policy - the R21 variants (IAMCCS_MiniMaxH3AtomicAudioDrive + IAMCCS_MiniMaxH3AudioOutputPolicyR21) give you the four-mode routing with locked slices and external-post baskets. Use those when a timeline mixes generated audio with source-locked audio. Use this node when you just need "H3's audio, but I might duck it with a driven source" - it's lighter, easier to read, and its two-way logic is exactly right for a single-chunk graph or a quick test.
Installation is pack-standard: search IAMCCS in ComfyUI Manager, or clone https://github.com/IAMCCS/IAMCCS-nodes.git into custom_nodes, restart. No models, no pip deps - it's gain math on tensors.
Where people stumble: h3_ref2va_audio and h3_native_generated produce identical output at this node, and that confuses people who expect the reference mode to behave differently here. The difference between those two lives upstream - in whether H3 was conditioned on reference audio at sampling - not in this select node. If you were expecting the reference audio to be returned, you want the reference_audio output of the audio drive node, not this one. And the external_audio_post hard-error is intentional; if you hit it, either connect driven_audio or switch modes - don't leave the node in a state where it can't resolve.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| h3_audio | AUDIO | — | |
| mode | COMBO | h3_native_generated | 3 options: h3_native_generated, h3_ref2va_audio, external_audio_post |
| h3_gain | FLOAT | 1.000–2 | — |
| driven_gain | FLOAT | 1.000–2 | — |
| driven_audioopt | AUDIO | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |
| report | STRING | — |