H3 HyperFlow · Select LOW Learned-Lift Input (T8 EXP)
Which socket feeds the upscaler? This tiny node exists so you stop guessing
- stage_result
- av_latent
- report_json
There is a one-socket decision in every two-pass H3 graph that quietly decides whether your output is sharp or mush: when a stage finishes early, does the learned latent upscaler receive the terminal output, or the predicted clean x0?
It depends. Full 0:8 stage - terminal output is your picture, feed that. Partial 0:4 stage - the run didn't finish, so the terminal socket is a half-denoised latent and the predicted clean x0 on denoised_output is what you actually upscale.
This node makes that choice explicit instead of burying it in a wire you'll forget about. You feed it a typed LOW stage result, it picks the right socket for the stage, and it tells you in report_json which one it chose. It performs zero diffusion, noise, or upscale calls.
Why that matters more than it sounds
Because the wrong choice doesn't throw. If you hand a partial 4-step latent to the upscaler, you get a picture that is plausibly composed and softly wrong, and it is very easy to spend an hour blaming the upscaler, the sampler or your LoRAs. Same story in reverse: taking the predicted clean x0 from a completed full8 stage skips the last few steps' worth of refinement and gives you a slightly flatter result than you paid for.
Having a named node in the graph for it also means the choice is visible to whoever opens your workflow next, which in practice is you, six weeks from now, at 1am.
Inputs and outputs
One input: stage_result, the typed stage result from a Stage Sampler (or from the fresh stage load node, if you're resuming from a frozen LOW). That's it - no knobs, no widgets, nothing to misconfigure. The report is where the reasoning lives, including which socket it selected and which stage it thought it was looking at.
Output: av_latent - the AV latent to hand to the existing learned 3D upscaler and the external reconcile step, plus report_json.
Two things it deliberately does not do. It won't consume a continuous-route boundary (that's raw model-space x_sigma, not a stage result, and the continuous route's second half wants it directly - never route one into the other). And it won't accept a stage result from a stage it doesn't recognise; the pack fails closed on type and stage mismatches rather than picking something plausible.
Wiring, in practice
LOW HyperFlow loader → stage setup → sampler → stage result → this node → learned 3D latent upscaler → HIGH conditions at the upscaler's real output size → HIGH HyperFlow loader → HIGH stage setup (with its own fresh NOISE) → sampler → decode.
Note the geometry point that trips people: the HIGH stage's conditioning has to be built at the actual size the upscaler produced, not the size you typed into a text field somewhere. The pack notes the HIGH conditions connect to the upscaler's real output dimensions. If your HIGH stage looks soft and slightly misregistered, check that first.
Install
Standard pack 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
Full restart. Prerequisites for this route specifically: H3 base model, Qwen3-VL text encoder, video and audio VAEs, the original HyperFlow adapter in models/hyperflow/loras/, and the learned 3D upscaler - minimax_h3_latent_upscaler_3d_fp16.safetensors - in models/latent_upscale_models/. The pack installs no pip packages by design, so a normal update can't disturb your CUDA stack.
Where people get burned
Resuming. A frozen LOW loaded off disk is a perfectly good input here - that's a supported workflow, and it means you can re-run only the HIGH half after a crash. But a frozen FULL8 LOW and a frozen PARTIAL4 LOW look the same in a file listing, and the stage identity is what tells this node which socket to take; if you resumed the wrong artifact, the report will tell you what it thought it had, which is exactly why the report exists.
Expectations, again. The fresh route's learned upscale path is not the continuous HyperFlow handoff and not P7 long-video. It's a legitimate 12-evaluation (or 8-evaluation) recipe with qualified tiny-model CPU evidence and modest GPU probes - good enough to build on, not something the author promotes as a quality upgrade over your current 4+4.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| stage_result | T8_STAGE_RESULT | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| av_latent | LATENT | — |
| report_json | STRING | — |