MiniMax H3 Long Video Conditioning / 长视频续写条件 (EXP/T8)
The conditioning that turns 'one more segment' into 'a continuation' — context overlap done right
- model
- clip
- video_vae
- audio_vae
- context
- drive_audio
- final_audio
- first_frame
- last_frame
- ref_images
- ref_videos
- ref_video_audios
- ref_audios
- persistent_identity_image
- model
- positive
- av_latent
- mux_audio
- conditioned_prompt
- media_map_json
- report_json
The difference between "a long video" and "a bunch of clips edited together" is continuity: each new segment has to know what came before it. This node is where that knowledge gets loaded and turned into actual sampling conditions. It takes the context from Accepted Context Load, the model, the CLIP, both VAEs, and your prompt, and produces a cloned MODEL with a local H3 payload/layout patch plus the conditioning and the initial joint AV latent for the next segment. The input MODEL and every stable T8 node stay unchanged - it's additive, like everything in this pack's Advanced line.
It's in T8/MiniMax H3/Long Video/Experimental and it's the biggest node in the long-video family, because continuity is where every real decision lives.
How it works
The core mechanism is context overlap. H3's continuation uses the previous segment's trailing frames as the seed for the next - the pack's own README tracks 5/22/39-frame real contexts depending on the profile. context_frames (0–39) sets how much of the previous segment's video tail is carried over; context_audio picks video_and_audio (continues the generated AV latent, the default) or video_only (keeps motion context but leaves audio to the selected native/source mode). Feed in model, clip (the native Qwen3-VL CLIP), both VAEs, and the context object, and the node returns a patched model clone plus positive conditioning and an av_latent seeded from the accepted predecessor.
The rest of the inputs are familiar H3 territory but with continuation semantics: length (default 124 frames), width/height (32-step multiples, 1344×768 defaults), task_type, audio_mode (default native), audio_denoise_strength (0.35), add_source_as_reference (true), prompt_primary_audio_ordinal, strict_prompt_tags (true), ref_image_size, and reference_video_policy (default official_2_to_15s). The mux_audio output carries the audio to preserve - the README is explicit: final save must connect mux_audio, not the decode node's generated audio, if you want the input track kept.
There's also an identity suite for continuation: first_frame_reuse (segment0_only default vs persistent_identity_reference), persistent_identity_image (a clean face/upper-body crop for continuation segments), persistent_identity_strategy, and persistent_identity_interval (injection every N segments). The tooltips are honest - this is an experimental identity-vs-motion control, not an identity lock, and it costs extra reference rows and VRAM.
The inputs that matter
context+segment_index+context_frames- the continuation core. Without context, you're generating segment 0.context_audio-video_and_audiofor true continuation;video_onlyif you want to re-do the audio.length/width/height- the segment geometry; keep on the 32-grid and the H3 frame grid.prompt- your segment prompt, with<Picture N>/<Video N>/<Audio N>tags if you reference media.
Outputs
model, positive, av_latent, mux_audio, conditioned_prompt, media_map_json, and report_json - the mux_audio and conditioned_prompt are the two to read when audio or tags misbehave.
Installing it
Pack install: ComfyUI Manager → "MiniMax H3 Audio T8", or git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8 into ComfyUI/custom_nodes, restart. No extra pip deps; you supply the H3 model, Qwen3-VL CLIP and both VAEs.
Common issues
Audio disappears or gets regenerated on continuation segments. Check context_audio (video_and_audio vs video_only) and confirm the save path uses mux_audio. On H3's joint transformer, native/remix/reference_only audio modes can still change the sound - the README's guidance is lock_source with add_source_as_reference=true if you want the input track kept.
"Media tag validation failed." You referenced an <Audio N> or <Video N> that doesn't match a connected input. The pack refuses to guess - check conditioned_prompt and media_map_json against what you actually wired.
First frame no longer anchors later segments. That's first_frame_reuse defaulting to segment0_only. If you want continuity identity back on later segments, that's the persistent_identity_reference path - and be ready for the extra VRAM it costs.
Inputs (32)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| clip | CLIP | Native MiniMax H3 Qwen3-VL CLIP. | |
| video_vae | VAE | MiniMax H3 video VAE. | |
| audio_vae | VAE | MiniMax H3 audio VAE. | |
| context | H3_T8_CONTEXT | — | |
| segment_index | INT | 00–99999 | — |
| context_frames | INT | 00–39 | — |
| context_audio | COMBO | video_and_audio | video_and_audio continues the generated AV latent. video_only keeps motion context but leaves audio to the selected native/source mode. |
| prompt | STRING | — | |
| width | INT | 134432–16384 | — |
| height | INT | 76832–16384 | — |
| length | INT | 1245–3600 | — |
| task_type | COMBO | auto | 7 options: auto, T2VA, I2VA, FL2VA, L2VA, Ref2VA, +1 |
| audio_mode | COMBO | native | 4 options: lock_source, remix_source, reference_only, native |
| audio_denoise_strength | FLOAT | 0.350–1 | — |
| add_source_as_reference | BOOLEAN | true | — |
| prompt_primary_audio_ordinal | INT | 00–9 | — |
| strict_prompt_tags | BOOLEAN | true | — |
| ref_image_size | COMBO | match | 2 options: match, max |
| reference_video_policy | COMBO | official_2_to_15s | 2 options: official_2_to_15s, model_minimum |
| drive_audioopt | AUDIO | — | |
| final_audioopt | AUDIO | — | |
| first_frameopt | IMAGE | Exact frame 0 for the first segment. Later segments normally ignore it; persistent_identity_reference may reuse it as a compatibility fallback. | |
| last_frameopt | IMAGE | — | |
| ref_imagesopt | COMFY_AUTOGROW_V3 | — | |
| ref_videosopt | COMFY_AUTOGROW_V3 | — | |
| ref_video_audiosopt | COMFY_AUTOGROW_V3 | — | |
| ref_audiosopt | COMFY_AUTOGROW_V3 | — | |
| first_frame_reuseopt | COMBO | segment0_only | segment0_only preserves legacy behavior. persistent_identity_reference adds one non-timeline image reference on continuation segments. A connected persistent_identity_image is preferred; otherwise first_frame is reused. This remains experimental, adds reference rows/VRAM, and is not identity lock. |
| persistent_identity_imageopt | IMAGE | Optional continuation-only identity crop. Prefer one clear face or upper-body image. It is ignored on segment 0 and unless first_frame_reuse is set to persistent_identity_reference; first_frame still owns exact frame 0. | |
| persistent_identity_strategyopt | COMBO | single_reference | single_reference uses persistent_identity_image when connected, otherwise first_frame. scene_plus_identity supplies both images as separate references; it costs more reference rows/VRAM and remains a gated experiment. |
| persistent_identity_intervalopt | INT | 11–32 | Continuation injection interval. 1 preserves the existing every-segment behavior; 2 injects on continuation segments 1, 3, 5, ... and lets the intermediate segments use motion context only. This is an Experimental identity-versus-motion control, not an adaptive drift detector. |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| positive | CONDITIONING | — |
| av_latent | LATENT | — |
| mux_audio | AUDIO | — |
| conditioned_prompt | STRING | — |
| media_map_json | STRING | — |
| report_json | STRING | — |