H3 HyperFlow P7 · Select Empty Segment 0 (T8 EXP)
Segment zero is the easy one, and this node keeps it that way
- contexts
- report_json
- width
- height
- low_width
- low_height
Every chained-generation scheme has an awkward first step: there's no previous segment to continue from, so the things that script continuation normally wants - context frames, motion guides, a completed audio region - don't exist yet. P7 handles it with a dedicated node rather than an "if segment == 0" branch you have to remember, which is the right call for something you'll be re-running for weeks.
H3 HyperFlow P7 · Select Empty Segment 0 produces the same typed contexts object the continuation path produces, but built from the original P7 empty first-segment context. Downstream doesn't need to know the difference.
The inputs you'll actually set
chain_id is the important one, and it's not a label - it's a directory. Every artifact this chain writes lives under output/minimax_h3_t8_long_video/<chain_id>/, so the id decides where your files go and which previous run's evidence gets consulted. The default ends in _new for a reason: start fresh chains with fresh ids. The pack refuses to silently reuse a chain whose manifest doesn't match.
context_frames (5 / 22 / 39) looks like it should describe this segment. It doesn't. Segment 0's actual conditions always use zero context frames; this widget selects the capacity that later segments in the chain will have, and it's baked into the chain contract at the start. 22 is the P7 default and the one the example workflows use. Change it and you've committed every later segment to that number.
width/height are the HIGH delivery geometry (896×448 turns up a lot in the pack's own tests) and low_width/low_height are the LOW phase's, typically half of that on the 32-pixel grid. Keep the relationship exact - the learned lift upscales LOW to HIGH dimensions, and there's no clever resampling in the pipeline that rescues a geometry mismatch.
Outputs
contexts goes to both phase conditioning nodes - two wires from one socket, one LOW and one HIGH. report_json is the binding record. The four integers (width, height, low_width, low_height) are pass-throughs so you can drive downstream width/height widgets from one source instead of typing the same numbers four times and getting one of them wrong.
Why bother with the ceremony
Because the alternative is guessing. P7 wants to be able to say "this segment continued from that exact accepted MP4, and here are the last 39 decoded frames of it, hashed." A first segment has nothing to point at, so the honest representation is an explicitly empty context with a recorded contract - and that's what this node writes. If you try to run it against a chain that already has an accepted segment, it refuses rather than quietly producing a segment 0 whose parent is a mystery.
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
Restart ComfyUI fully, refresh the browser. requirements.txt installs nothing on purpose - the pack refuses to risk your Torch/CUDA stack. Before a full P7 run you need H3's base weights (models/diffusion_models), the Qwen text encoder (models/text_encoders), video and audio VAEs (models/vae), the original non-pruned HyperFlow adapter in models/hyperflow/loras/, and the learned 3D latent upscaler in models/latent_upscale_models.
Bear in mind what this pack is: H3 is a 33B joint audio-video model, and when the weights landed the reaction from anyone not on a 4090-and-up was mostly "how slow are we talking" - the thread arguing over whether it needs a supercomputer is the launch-day mood. This isn't a toy-node scenario, and the author's own documentation is blunt that a passing sample doesn't certify your footage. Also check the licence before you build a workflow around H3 weights - the MiniMax H3 Community License carves out the EU, UK, South Korea and the US, outputs included.
Small stuff that wastes an evening
Reusing an old chain_id is the big one. The node is read-only and validates the manifest, so it'll complain - but the complaint shows up as a validation error on a node you thought was just plumbing, and people go looking at their model files instead. Second: that context_frames widget. Set it to 39 because you read somewhere that more context is better, and you've changed the chain contract for every subsequent segment, not improved this one.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| chain_id | STRING | h3_hyperflow_long_video_exp_new | — |
| context_frames | COMBO | 22 | 3 options: 5, 22, 39 |
| width | INT | 89664–16384 | — |
| height | INT | 44864–16384 | — |
| low_width | INT | 44832–16352 | — |
| low_height | INT | 22432–16352 | — |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| contexts | T8_HYPERFLOW_P7_CONTEXTS | — |
| report_json | STRING | — |
| width | INT | — |
| height | INT | — |
| low_width | INT | — |
| low_height | INT | — |