Nodes/comfyui-minimax-h3-audio-T8/H3 HyperFlow · Continuous HEAD Only (T8 EXP)
ComfyUI Node

H3 HyperFlow · Continuous HEAD Only (T8 EXP)

The HyperFlow HEAD stage

By T8mars·Created 2 months ago·Updated about 7 hours ago· 1,158
H3 HyperFlow · Continuous HEAD Only (T8 EXP)
  • model
  • av_latent
  • noise
  • positive
  • negative
  • continuous_boundary
  • report_json
◄split_interval4►
◄cfg1.0►
◄reserve_vram_mib1024►

Most "two-pass" video workflows are two samplers with an arithmetic step between them: finish, clean up, resize, re-noise, start again. The continuous HyperFlow route in this pack is not that. It runs one trajectory in absolute model time and cuts it in half - and this node is the first half.

You give it a HyperFlow-patched model, an AV latent, noise and conditions, and it executes only absolute 0:split. What it returns is not a latent you can decode. It's a continuous_boundary: the exact raw model-space x_sigma state at the split point, captured directly.

Why the capture matters

Because the naive version of this idea doesn't work. The docs describe an earlier implementation that handed the intermediate latent through ComfyUI's generic clean-latent restart. Real-model comparison against the single-pass reference showed genuine divergence: max absolute difference 0.45708 on video, 0.02118 on audio. Handing over a cleaned state is not the same as handing over the state.

The fix was to capture the LOW sampler's exact model-space x_sigma and inject that into the HIGH sampler. After the correction, comparisons - same owner and two distinct model owners - came back with zero difference on both video and audio latents. Zero. That's the kind of claim that makes a weird-looking node worth wiring, and it's also why the boundary object exists rather than just a LATENT socket.

Inputs and outputs

model - must come from the dedicated HyperFlow loader. Not a generic LoRA loader, not the legacy HyperFlow loader path.

av_latent, noise, positive, negative, split_interval (1-7, default 4), cfg (default 1), reserve_vram_mib (default 1024, minimum 512).

split_interval is the cut point in absolute steps: 4 gives you a 4+4, 1 gives 1+7, 7 gives 7+1. The pack has probed all three shapes and reports exact parity to single-pass at the tested sizes. reserve_vram_mib is a headroom knob, not a target - it reserves VRAM so the second owner can be loaded without a fight.

Out: continuous_boundary and report_json.

Since it's not an output node, you'll typically wire the boundary to a Save node (for a real freeze), an Audit node (to see what ran), or straight into a continuous TAIL stage. There is no TAIL here, no upscale, no resize, and no denoise mask in this contract - the docs are explicit that continuous mode keeps the original same-resolution, no-mask constraint.

One stale sentence to ignore

The node description still says identity is process-local and that disk resume and stage EAV/Relay adapters are pending. That text is historical: the author kept old node descriptions frozen to avoid changing schemas, and the modular sampling notes state that the dedicated save/load entries and the HEAD/TAIL effect bindings now exist. If you're reading descriptions to decide what's possible, read the docs page instead - it supersedes them, and it says so.

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, recent ComfyUI core, plus the H3 base, Qwen3-VL encoder, both VAEs, and the original non-pruned HyperFlow adapter in models/hyperflow/loras/. There's no automatic download for the adapter and no pruned fallback - a pruned base gets rejected rather than quietly approximated. The pack installs no pip packages.

One environment gotcha the docs flag: on Windows, a two-loader HyperFlow configuration has hit a native crash inside the comfy-aimdo compiler path. The probes that succeeded ran an isolated ComfyUI started with --disable-comfy-compiler. If you get a memory-compile error rather than a Python traceback, that's the flag to try.

Where people get burned

Treating the boundary as a picture. It's not clean x0, it's not a progressive clean latent, and it can't go into a normal upscaler. Feed it to the continuous TAIL stage (or save it for later), and decode a finished latent, not this one.

Running HEAD twice by accident when you meant to resume. If you only want the tail, load a saved HEAD instead of re-running the head - that's precisely what the save/load pair is for, and it's cheaper by half the total evaluations. And keep CFG at 1 unless you've supplied a genuine negative; the 8-step HyperFlow grid was trained for guidance-free sampling, and CFG above 1 on this route is not the supported configuration.

CategoryT8/MiniMax H3/Modular Sampling/HyperFlow Experimental

Inputs (8)

NameTypeDefaultDescription
modelMODEL—
av_latentLATENT—
noiseNOISE—
positiveCONDITIONING—
negativeCONDITIONING—
split_intervalINT41–7—
cfgFLOAT1.00–100—
reserve_vram_mibINT1024512–65536—

Outputs (2)

NameTypeDescription
continuous_boundaryT8_HYPERFLOW_CONTINUOUS_BOUNDARY—
report_jsonSTRING—