Segment Planner Linked (total generation frames)
Segment Planner, but the total length is frames you already know
- total_frames
- unique_segment_frames
- first_segment_raw_frames
- continuation_raw_frames
- estimated_segments
- continuation_loops
- last_segment_unique_frames
- report
- segment_index_out
- current_segment_raw_frames
- current_segment_unique_frames
- current_segment_start_frames
- current_segment_end_frames
- current_remaining_frames_after
- current_segment_start_s
- current_segment_end_s
- current_segment_report
- fps_out
- recommended_overlap_frames
- recommended_audio_left_context_s
- recommended_extension_preset
- effective_planning_mode
- planning_profile_report
LTX-2 long-form video is chunked: you render segments, carry a bridge between them, and the quality of the result lives or dies on whether your segment math is right. The generic IAMCCS_SegmentPlanner works in seconds and duration; IAMCCS_SegmentPlannerFramesLinked is the variant for the case where the authoritative total is a frame count - because your source video or your contract is N frames, and everything downstream (chunk scheduling, bridge caches, the extension module) thinks in frames.
What it computes
It's a pure-math node - no model loads, no sampling, instant. You give it a few numbers and it returns the full segment plan:
total_generation_frames- your master length in frames (default 720).fps- to convert frames ↔ seconds.segment_duration_s- the nominal length of one generation segment (default 10s).overlap_frames_in- frames shared between adjacent segments for continuity (LTX default 9).ltx_round_mode-up/nearest/down, for how segment lengths round to LTX's 8n+1 frame constraint.segment_index- which segment you're planning right now.
Outputs are the whole plan spelled out as INTs you can wire straight into the sampling chain: total_frames, unique_segment_frames, first_segment_raw_frames, continuation_raw_frames, estimated_segments, continuation_loops, last_segment_unique_frames, plus a report string.
The "Linked" in the name is the key difference from the base planner: several inputs (total_generation_frames, segment_duration_s, the planning mode, preset, overlap, and round mode) are forceInput, so they come from upstream nodes instead of being hand-edited widgets. Build one plan source, fan it out to every segment, and you can't get the numbers out of sync. It also accepts an override ltx_round_mode_in STRING input, so a controller can change rounding at runtime.
Why the LTX rounding matters
LTX latents don't map 1:1 to frames - the VAE compresses time, so a generated clip comes back at 8n+1 (or similar) frames rather than the exact count you asked for. This planner rounds segment lengths up or down and reports what each segment will actually produce, so your overlap and continuation math is done against real numbers. If your segments have been coming back a few frames short, this is the node that names the discrepancy instead of hiding it.
Where it fits
It's the LTX-2 side of the IAMCCS extension toolset - the category is IAMCCS/LTX-2, and it pairs with the LTX-2 extension module and the segment queue loop. It also inherits from the base IAMCCS_SegmentPlanner, so it shares the planner math and the audio-mode options for audio-enabled LTX workflows (there's an IAMCCS_AudioSegmentAutoPlanner sibling for audio-driven segments).
Ships in IAMCCS-nodes: ComfyUI Manager → search "IAMCCS", or git clone https://github.com/IAMCCS/IAMCCS-nodes.git into custom_nodes, restart. No dependencies beyond the pack and a current ComfyUI with LTX-2 support.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| total_generation_frames | INT | 7201–10000000 | — |
| fps | FLOAT | 24.000.001–240 | — |
| segment_duration_s | FLOAT | 10.000.01–3600 | — |
| planning_mode_in | STRING | manual_segment_seconds | — |
| segment_preset_in | STRING | 10sec | — |
| overlap_frames_in | INT | 90–4096 | — |
| ltx_round_mode | COMBO | up | 3 options: up, nearest, down |
| segment_index | INT | 00–100000 | — |
| ltx_round_mode_inopt | STRING | — |
Outputs (23)
| Name | Type | Description |
|---|---|---|
| total_frames | INT | — |
| unique_segment_frames | INT | — |
| first_segment_raw_frames | INT | — |
| continuation_raw_frames | INT | — |
| estimated_segments | INT | — |
| continuation_loops | INT | — |
| last_segment_unique_frames | INT | — |
| report | STRING | — |
| segment_index_out | INT | — |
| current_segment_raw_frames | INT | — |
| current_segment_unique_frames | INT | — |
| current_segment_start_frames | INT | — |
| current_segment_end_frames | INT | — |
| current_remaining_frames_after | INT | — |
| current_segment_start_s | FLOAT | — |
| current_segment_end_s | FLOAT | — |
| current_segment_report | STRING | — |
| fps_out | FLOAT | — |
| recommended_overlap_frames | INT | — |
| recommended_audio_left_context_s | FLOAT | — |
| recommended_extension_preset | STRING | — |
| effective_planning_mode | STRING | — |
| planning_profile_report | STRING | — |