Nodes/MiniMax H3 Audio T8/MiniMax H3 Segment Planner / 长视频分段规划 (EXP/T8)
ComfyUI Node

MiniMax H3 Segment Planner / 长视频分段规划 (EXP/T8)

MiniMax H3 doesn't do 60-second clips, so it plans them in pieces

By T8mars·Created 20 days ago·Updated a day ago· 807
MiniMax H3 Segment Planner / 长视频分段规划 (EXP/T8)
    • chain_id
    • segment_index
    • length
    • context_frames
    • trim_start_seconds
    • final_duration_seconds
    • timeline_start_seconds
    • timeline_end_seconds
    • save_context
    • report_json
    chain_idmy_h3_long_video
    segment_index0
    new_duration_seconds4.25
    context_frames22
    minimum_render_frames124
    timeline_start_seconds-1.00
    is_final_segmentfalse

    A 60-second MiniMax H3 video is not one generation. H3 produces fixed grid lengths - roughly 22, 124, 362 frames at 24 fps - and it trains cleanly on those specific counts, not whatever "about 5 seconds" works out to. So a long clip gets built as a chain of segments, each one feeding its tail into the next for continuity. The MiniMaxH3LongVideoPlannerT8 node is the part of that chain that does the math: it takes a target duration and turns it into exactly one segment's worth of frames, with the overlap and trim metadata H3 actually needs.

    Call it the thinking node of the Long Video cluster. The planner is retry-safe by design - it computes a plan, it doesn't render anything. You wire its outputs into the Long Video conditioning and context nodes, run the segment, save the AV tail, and move to the next segment index.

    What it actually computes

    The inputs that matter for a beginner:

    • new_duration_seconds - how long you want this segment to be (default 4.25s). The node snaps it onto H3's 17n+5 frame grid, so don't expect your exact number back; length reports what you actually got.
    • context_frames - 5, 22 or 39. This is the head context taken from the previous segment. Segment 0 gets no overlap; every later segment renders a head context so the scene carries over instead of restarting.
    • is_final_segment - only the final segment may trim a hidden tail to hit an exact requested duration, and it automatically disables its continuation checkpoint. Flip this on for the last piece of the chain.
    • minimum_render_frames - keep the default 124 unless you've separately validated a bigger window; 124 is the current approximate H3 trained minimum.

    The interesting outputs aren't the obvious ones. trim_start_seconds and final_duration_seconds tell you exactly how much of the rendered head to cut so the segment lines up on the world clock. timeline_start_seconds / timeline_end_seconds are the segment's position in the overall timeline, and save_context tells the save node whether this segment should write a tail for the next one. report_json is the author's own diagnostic dump - worth reading when a chain drifts out of sync.

    How to use it

    Install the pack once: in ComfyUI Manager search MiniMax H3 Audio T8, or cd ComfyUI/custom_nodes && git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8 and restart. No extra pip dependencies - the pack ships none, and it won't auto-download H3 weights, so have the DiT, Qwen3-VL CLIP, video and audio VAE ready. Long Video final stitching wants ffmpeg on your PATH; most ComfyUI installs already have it.

    Then you typically set the planner's segment_index to the same value as your ContextLoad and ContextSave nodes, all sharing one chain_id. The planner outputs feed the conditioning chain; the context_frames value must match what the ContextLoad node saved for the previous segment.

    Where people get burned

    The classic mistake is guessing the timeline by seconds instead of letting the node quantize. Set new_duration_seconds, read back length, and trust the grid - 4.25s in does not mean 4.25s out. Second gotcha: timeline_start_seconds defaulting to -1 means "derive the timeline from the quantized segment durations," which only works if earlier segments used the same settings. If you changed the window mid-chain, set it explicitly. And remember this whole Long Video system is marked Experimental - the pack is aggressively conservative by design (fail-closed defaults, ABSTAIN instead of guessing), which is exactly what you want from a node that's stitching latent timelines together.

    CategoryT8/MiniMax H3/Long Video/Experimental

    Inputs (7)

    NameTypeDefaultDescription
    chain_idSTRINGmy_h3_long_video
    segment_indexINT00–99999
    new_duration_secondsFLOAT4.250.04–900
    context_framesCOMBO223 options: 5, 22, 39
    minimum_render_framesINT1245–3600Keep 124 for the current approximate H3 trained minimum.
    timeline_start_secondsFLOAT-1.00-1–86400-1 derives the fixed-settings timeline from the quantized first and continuation segment durations; set it explicitly if earlier settings differ.
    is_final_segmentBOOLEANfalseOnly the final segment may trim a hidden tail for an exact requested duration. Its continuation checkpoint is disabled automatically.

    Outputs (10)

    NameTypeDescription
    chain_idSTRING
    segment_indexINT
    lengthINT
    context_framesINT
    trim_start_secondsFLOAT
    final_duration_secondsFLOAT
    timeline_start_secondsFLOAT
    timeline_end_secondsFLOAT
    save_contextBOOLEAN
    report_jsonSTRING