Nodes/comfyui-minimax-h3-audio-T8/H3 HyperFlow P7 · One Phase Native Conditions (T8 EXP)
ComfyUI Node

H3 HyperFlow P7 · One Phase Native Conditions (T8 EXP)

The P7 node you instantiate twice per segment

By T8mars·Created 2 months ago·Updated about 7 hours ago· 1,158
H3 HyperFlow P7 · One Phase Native Conditions (T8 EXP)
  • contexts
  • clip
  • video_vae
  • audio_vae
  • prepared_phase
  • positive
  • negative
  • source_av
  • mux_audio
  • conditioned_prompt
  • media_map_json
  • report_json
◄phaselow►
◄prompt►
◄length124►

MiniMax H3 generates picture and stereo audio in one pass - that's the entire pitch of the model, and it's why the audio is welded to the video latent instead of bolted on afterwards. P7's separated long-video route keeps that joint contract but splits a segment into a LOW 0:4 phase and a HIGH 4:8 phase, two different sizes, two different noise regimes. Which means the conditions can't be shared. This node prepares exactly one phase's conditions, and you drop two of them into a segment graph.

What it does

You feed it the typed contexts object (from either Select Empty Segment 0 or Prepare LOW/HIGH Continuation Contexts), pick phase = low or high, and it encodes your prompt against the phase's actual target geometry while rebuilding H3's original motion and audio reference conditions. The HIGH instantiation gets the accepted motion reference without a fresh prefix lock - that's the difference between "continue from this picture" and "re-anchor on this picture", and getting it wrong is how you end up with a visible jump at the seam.

It does not sample, patch the model, apply Relay, or apply EAV. Those are separate nodes downstream, on purpose - the pack wants each of those to be independently auditable.

Inputs that matter

contexts is the only hard-wired one; wrong phase, wrong geometry, and it fails loudly rather than guessing.

phase - one node instance per phase. low for the 0:4 pass, high for the 4:8 pass.

prompt is a multiline box, and this is where the P7 design gets nice: LOW and HIGH each have their own prompt, so you can describe the same shot at two levels of detail. It's also the socket where you paste the compiled_prompt output if you're driving the segment from an external Prompt Relay plan instead of typing it.

clip, video_vae, audio_vae - the usual three. Note the audio VAE is not optional here; the phase conditions carry audio.

length defaults to 124. That's the P7 segment length in frames (24 fps), and 124 + 68 lands the two-segment delivery at 192 frames of finished video. Step is 17, so the neighbouring values are not arbitrary - don't freestyle this unless you're deliberately running a different segment grid.

Outputs

positive and negative go to the phase setup node. One thing to know: the negative socket literally mirrors positive in this implementation, which is the pack's CFG1 assumption made explicit. If a workflow ever asks you for a real negative here, that's a bigger change than it looks.

source_av is the LATENT the phase's sampler conditions on; mux_audio is the AUDIO track for the eventual mux; conditioned_prompt is what the phase actually ended up conditioning on (check it when a prompt seems to be ignored); media_map_json and report_json are receipts.

Install

ComfyUI 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 of ComfyUI, then refresh the browser - the pack adds a lot of nodes and a half-restart is the usual reason people "can't find" one. requirements.txt installs no extra packages by design; the base nodes run on the Torch, numpy, Pillow and safetensors ComfyUI already ships. You do need the H3 base weights, the Qwen text encoder, both VAEs, and - for this route - the HyperFlow adapter in models/hyperflow/loras/ plus a learned 3D latent upscaler in models/latent_upscale_models.

One licensing note since you're downloading H3 weights anyway: the MiniMax H3 Community License excludes the EU, UK, Republic of Korea and the US, and the exclusion covers outputs, not just the weights. The hosted Hailuo API is a different thing entirely.

Troubleshooting

If the phase node greys out or refuses, check that contexts came from the same chain_id the rest of your graph uses - the P7 nodes are paranoid about chain identity, and a contexts object from a stale chain is one of the standard ways a graph goes red.

If your prompt into the HIGH phase appears to do nothing, look at conditioned_prompt first. And if you're coming from the Fresh (HyperFlowFresh*) or continuous HEAD/TAIL routes, stop - the typed objects don't cross between them, and those node names look similar enough to wire by mistake.

CategoryT8/MiniMax H3/Modular Sampling/HyperFlow P7 Experimental

Inputs (7)

NameTypeDefaultDescription
contextsT8_HYPERFLOW_P7_CONTEXTS—
phaseCOMBOlow2 options: low, high
clipCLIP—
video_vaeVAE—
audio_vaeVAE—
promptSTRING—
lengthINT124—

Outputs (8)

NameTypeDescription
prepared_phaseT8_HYPERFLOW_P7_PREPARED_PHASE—
positiveCONDITIONING—
negativeCONDITIONING—
source_avLATENT—
mux_audioAUDIO—
conditioned_promptSTRING—
media_map_jsonSTRING—
report_jsonSTRING—