MiniMax H3 Native Latent Timeline Concat / 原生时格拼接 (Advanced EXP/T8)
Joining two H3 clips in latent space so you don't decode doubled frames
- first_segment
- second_segment
- additional_segments
- av_latent
- total_frame_count
- segment_count
- audio_latent_steps
- report_json
If you've ever stitched two H3 clips together by decoding both and concatenating the videos, you know the problem: H3 doesn't start a continuation from a clean frame. Every later segment re-renders a short prefix of the previous one so the model has something to latch onto. Concatenate naively and you get duplicated frames, a visible stutter at the seam, and audio that no longer lines up with the picture.
That's the exact mess this node exists to clean up. MiniMaxH3NativeLatentTimelineConcatT8Advanced joins independently sampled H3 AV latents in latent space, before any decode. It's part of T8mars's MiniMax H3 Audio T8 pack, a sprawling (200-node) Chinese-authored suite for the open-weights MiniMax H3 video model - the 33B omni-modal thing that generates stereo audio jointly with the picture, not bolted on afterwards.
How it works
H3's video latent lives on a native temporal grid - the author's code calls it the 5n+2 grid, which is why sensible frame counts are 22, 124, 362 and friends. When a segment is generated as a continuation, its first two latent steps (exactly 5 frames at 24fps) duplicate the previous segment's tail. This node trims that 5-frame/2-latent prefix off every later segment before concatenating.
Audio is the twist. H3 runs audio on its own 40Hz clock, separate from the 24fps video clock - the "dual clock" that half the pack is built around. So on top of the 5-frame video trim, the node also drops a cumulative phase amount on the audio latent to keep the two clocks aligned at the seam.
Nothing samples, nothing decodes. It's a pure tensor operation, and by default it runs on CPU (output_device: cpu) so the combined latent doesn't chew up VRAM. Note the honest caveat in the tooltip: CPU keeps the output off GPU, but ComfyUI still has your input latents cached - this is not an unload node.
The inputs that matter
first_segment/second_segment- two complete H3 AV latents. Batch size 1, same canvas, or it errors.output_device-cpu(default) orpreserve_first.require_identical_metadata- off by default, which means the first segment's metadata wins and differences are just reported. Flip it on if you need a hard equality check.additional_segments- the autogrow input that lets you chain up to 30 segments in one go.
Outputs: av_latent (wire into your H3 AV Decode), plus total_frame_count, segment_count, audio_latent_steps, and a report_json that tells you exactly what was trimmed and why.
When to reach for it
This is the "I already have complete, independently-sampled latents and I want one timeline" tool. The pack's sibling node, MiniMaxH3NativeLatentContinuationConcatT8Advanced, handles the Long Video motion-context pipeline where the overlap is 5/22/39 frames - don't mix the two. The author's own verification is typically honest: a real 22+22→39 frame decode passed, with lossless audio and a clean hash, but two old-32B runs missed the 512MiB VRAM margin and one fixed 8B ClipProj chain squeaked through. Independent segments will still change scene at the seam; this fixes the duplication, not the continuity.
Install and gotchas
This is part of the MiniMax H3 Audio T8 pack, so you get it via ComfyUI Manager (search "MiniMax H3 Audio T8") or:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8
Restart ComfyUI. No forced pip dependencies - requirements.txt is literally "torch and torchaudio are supplied by ComfyUI" - and the pack will not download H3 weights for you; you supply the model, CLIP, video/audio VAEs and LoRAs yourself. Start from examples/workflows/04-long-video/2026-08-22_H3_Native_Latent_Timeline_Concat_Advanced_EXP.json.
The errors you'll actually hit: "not a complete native H3 5n+2 grid" means your segment's frame count isn't on the grid, and mismatched canvas sizes blow up on the tensor shapes. Both are checked before any work, so the node fails loudly rather than producing a corrupt latent.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| first_segment | LATENT | — | |
| second_segment | LATENT | — | |
| output_device | COMBO | cpu | cpu avoids allocating the combined output on GPU. Input tensors can still remain cached by ComfyUI, so this is not a global unload operation. |
| require_identical_metadata | BOOLEAN | false | When enabled, non-sample metadata must match exactly. Otherwise the first segment's metadata is preserved and differences are reported. |
| additional_segmentsopt | COMFY_AUTOGROW_V3 | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| av_latent | LATENT | — |
| total_frame_count | INT | — |
| segment_count | INT | — |
| audio_latent_steps | INT | — |
| report_json | STRING | — |