H3 HyperFlow P7 · Original HIGH Audio Reconcile (T8 EXP)
Where the upscaled picture meets the HIGH audio policy
- learned_lift
- high_phase
- positive
- negative
- high_handoff
- high_source_av
- positive
- negative
- report_json
P7's second half is an upscale job with an audio problem attached. The LOW phase already generated a coarse version of the segment, audio included. The learned 3D lift resized the latents to HIGH dimensions. Now HIGH has to run four more diffusion steps over that enlarged picture - and decide what to do about sound that was generated at a different scale.
This node is that decision. It joins the verified learned lift with the independently prepared HIGH conditions and applies the original recipe's audio policy: the LOW phase's generated audio stays the coarse region, and HIGH works against the locked template region. Translation for anyone who isn't reading the source: you are not letting HIGH freely rewrite the whole audio track, you're letting it refine within the region the original P7 recipe defined.
Inputs
learned_lift is the typed output of Original Learned 3D Lift. It must be that type - a raw LATENT fails, and it should, because the handoff needs the lift's own receipt to know that what it's reconciling actually came from authenticated LOW.
high_phase is the HIGH instance of the conditioning node. This is where the "one phase, one prompt" design pays off: the HIGH prompt can differ from the LOW one.
positive and negative are the conditions you want HIGH to actually run with. Wire the paired output of Pair Relay to ONE Phase here if you're using Prompt Relay - the node passes your conditions through untouched, so the Relay pairing survives, and its own protected motion guides are not something you can casually replace with your own conditioning.
Outputs
high_handoff is the typed object the HIGH setup node consumes; it carries the reconciled audio policy and the identity of everything that went into it. high_source_av is the LATENT for the sampler's latent input, if you're wiring by hand. positive / negative come back out so you can chain the HIGH setup without re-deriving them. report_json is the reconcile receipt - worth reading once so you know what the policy actually did to your track.
Where it sits
LOW 0:4 → Bind Completed LOW Result → Original Learned 3D Lift
→ Original HIGH Audio Reconcile (this node)
HIGH conditions → ┘
→ HIGH 4:8 Setup → optional Stage EAV → ONE Stage Sampler
Note the asymmetry: LOW has no handoff node, HIGH does. The reason is that LOW's job is to produce a clean-ish coarse segment, and HIGH's job is to finish a segment that already has committed audio in it. That's the "original audio policy" the description refers to.
Install
Manager → MiniMax H3 Audio T8, or:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8.git minimax-h3-audio-T8
Then a full ComfyUI restart and a browser refresh. requirements.txt brings in no packages - the pack intentionally keeps its dependency list empty so an install can't swap out ComfyUI's Torch/CUDA build. Everything this node needs comes from the pack plus the H3 weights, VAEs, the HyperFlow adapter (models/hyperflow/loras/) and the learned 3D latent upscaler (models/latent_upscale_models).
Troubleshooting
The classic one isn't a crash, it's a silent mismatch: this node type-checks its inputs hard, but your graph is what decides which LOW result produced the learned lift. If you rebuilt LOW with a different seed or model and re-used an old lift, the handoff will happily reconcile a picture that no longer matches your phase - the node's receipts will tell you if you look, but nothing stops you. That's the same failure mode a context bus has in any ComfyUI graph: the wire is present, the contents are stale.
Also expect this node to be the place where a 24 GB card starts sweating. The HIGH phase runs at full target resolution, so whatever you set for low_width/low_height in the segment selector is not a preview of the memory cost - the lift and handoff are what make the HIGH pass expensive.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| learned_lift | T8_HYPERFLOW_P7_LEARNED_LIFT | — | |
| high_phase | T8_HYPERFLOW_P7_PREPARED_PHASE | — | |
| positive | CONDITIONING | — | |
| negative | CONDITIONING | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| high_handoff | T8_HYPERFLOW_P7_HIGH_INPUT | — |
| high_source_av | LATENT | — |
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |
| report_json | STRING | — |