MiniMax H3 Two-Pass Audio Audit / H3二采音频硬校验 (Advanced)
A Guardrail That Stops Pass 2 From Silently Rewriting Your Audio
- second_pass_input
- second_pass_output
- verified_av_latent
- report_json
Here's a failure mode you might not have imagined until it happened to you: your two-pass H3 workflow ran, the video looked great, but the audio came out different - because pass 2 was supposed to lock the audio and quietly regenerated it instead. MiniMaxH3TwoPassAudioAuditT8Advanced exists to make that impossible to miss. It compares the audio latent immediately before pass 2 with the one after, and in the explicit strength-0 lock route it allows only bounded floating-point roundoff - then restores the exact input audio before decode. Anything bigger fails closed, so a mechanically valid but sonically rewritten result never reaches your save node.
The mechanism
You connect two latents: second_pass_input (the Reconcile AV latent entering pass 2) and second_pass_output (what pass 2's SamplerCustomAdvanced produced). The node diffs their audio components against locked_atol (default 1e-05 - a tight tolerance that says "roundoff only"). If the diff is within tolerance, it swaps the pass-2 audio back for the exact input latent, so the locked track is bit-preserved, then passes the verified AV latent onward. If it's outside tolerance and fail_on_locked_mismatch is on (default), the workflow stops with a report. The expected_audio_strength input must match the Reconcile node's second_pass_audio_strength - that's how the audit knows what "locked" is supposed to mean.
Why the description warns you where not to use it
"Do not insert this node into the native author-parity route: native pass 2 must complete audio as well as video." If you're running the native route where pass 2 legitimately finishes the joint audio trajectory, the audio is supposed to change - an audit that demands zero change would either fail or strip out the native pass-2 audio work. This node is for the explicit lock route only.
Outputs:
verified_av_latent (what you wire into decode) and report_json.
Installing:
part of MiniMax H3 Audio T8. Manager → "MiniMax H3 Audio T8", or:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8
Restart. No mandatory pip deps.
The one thing to get right:
keep expected_audio_strength in sync with the Reconcile node, or the audit compares against the wrong expectation and either false-fails or - worse - false-passes. The node can't read the Reconcile setting for you; it trusts the number you type. That's the price of a guardrail that never assumes.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| second_pass_input | LATENT | Connect the Reconcile AV latent that enters pass 2. | |
| second_pass_output | LATENT | Connect pass-2 SamplerCustomAdvanced output. | |
| expected_audio_strength | FLOAT | 0.000–1 | Must match Reconcile second_pass_audio_strength. |
| fail_on_locked_mismatch | BOOLEAN | true | At strength 0, stop the workflow if audio differs after pass 2. |
| locked_atol | FLOAT | 00–1 | Maximum sampler roundoff allowed before failure. After the check, locked audio is replaced by the exact pass-2 input latent. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| verified_av_latent | LATENT | — |
| report_json | STRING | — |