IAMCCS_Ltx2HelperModules Project Timeline Planner
See the whole LTX-2 project before you render a frame
- audio
- upstream_contract
- linx
- project_timeline_payload
- contract
- linx
- total_frames
- segment_count
- total_seconds
- segment_seconds_out
- unique_segment_frames
- segment_ranges_json
- report
The Ltx2HelperModules Planner answers "what does the current segment look like?" - useful mid-loop, but you can't see the forest. ProjectTimelinePlanner is the same family planning the whole project up front: total frames, every segment's range, duration math, and a ready-to-use segments list in JSON, before you generate a single frame. It's the planning pass you run once to sanity-check a piece before committing GPU-hours to it.
Technically this is the same class as the pack's IAMCCS_ProjectTimelinePlanner (both names resolve to the same node - the helper-module naming is a thin compatibility alias). So if you've seen one, you've seen the other; the point of the node is the whole-timeline view.
How it works
It wraps the same SegmentPlanner engine as the per-segment Planner, but instead of slicing out one segment_index, it builds the full segment array: for each segment it computes start_frame, end, and duration, then bundles it all into a project_timeline_payload JSON with the segment list and "meter marker" frame positions (the start of every segment plus the final frame - handy for overlaying progress markers on a timeline).
Shared behavior with the per-segment planner:
duration_source-target_duration_seconds,audio, ormax_audio_target. For audio-driven work, feeding theaudioinput and pickingaudioplans the video to exactly match your soundtrack.goal1_preset-lowram_safe_videoclip,lowram_fast_videoclip,normal_quality_videoclip,lowram_monologue, orcustom. Preset chooses planning mode, content profile, and backend binding.ltx_round_mode- keeps every segment's frame count LTX-legal (8n+1) as it plans.overlap_frames- how many frames each segment overlaps its predecessor (default 9), which is how a multi-segment video stays continuous.
The inputs and outputs that matter
You set: fps, target_duration_seconds, segment_seconds, duration_source, goal1_preset, and optionally overlap_frames. Everything else can ride defaults.
Outputs: project_timeline_payload (the full JSON plan) and segment_ranges_json (just the segments - easy to paste into anything), contract/linx plumbing, then the numbers you actually want to read: total_frames, segment_count, total_seconds, segment_seconds_out, unique_segment_frames, and report. segment_count is the honest answer to "how many 8-10s clips is this going to cost me."
Installing it
Ships in IAMCCS-nodes under IAMCCS/Ltx2 Helper Modules. Manager → search "IAMCCS" → install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git
Restart ComfyUI. No models; audio-duration mode needs MTB's Audio Duration node upstream.
Common issues
Two things trip people up. First, this is a planning node - it doesn't render, doesn't write files, and the payload is just a contract for the rest of the chain. People occasionally wire its output straight into a sampler and wonder why nothing happens; the actual sampling path is the per-segment Planner + Continuity/ExtendSampler chain, which you drive in a loop. Second, unlike the per-segment planner there's no segment_index - if you're looking for the current segment's numbers, this isn't the node; it's the whole-project view, and the running loop needs Ltx2HelperModules Planner instead. And if total_frames looks wrong, check duration_source: the audio option silently overrides your target when audio is connected, which is correct for audio-driven work and surprising otherwise.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| goal1_preset | COMBO | custom | 5 options: custom, lowram_safe_videoclip, lowram_fast_videoclip, normal_quality_videoclip, lowram_monologue |
| fps | FLOAT | 24.000.001–240 | — |
| segment_seconds | FLOAT | 10.000.01–3600 | — |
| target_duration_seconds | FLOAT | 30.000.01–36000 | — |
| duration_source | COMBO | target_duration_seconds | 3 options: target_duration_seconds, audio, max_audio_target |
| planning_mode | COMBO | auto_profile | 2 options: manual_segment_seconds, auto_profile |
| content_profile | COMBO | videoclip | 2 options: videoclip, monologue |
| overlap_frames | INT | 90–4096 | — |
| ltx_round_mode | COMBO | up | 3 options: up, nearest, down |
| surface_profile | COMBO | compact | 3 options: compact, progressive, debug_surface |
| backend_binding | COMBO | ltx_audio_guided_lowram | 3 options: ltx_audio_guided_lowram, ltx_audio_guided_normal, custom |
| audioopt | AUDIO | — | |
| upstream_contractopt | IAMCCS_SUPERNODE_CONTRACT | — | |
| linxopt | IAMCCS_SUPERNODE_LINX | — |
Outputs (10)
| Name | Type | Description |
|---|---|---|
| project_timeline_payload | STRING | — |
| contract | IAMCCS_SUPERNODE_CONTRACT | — |
| linx | IAMCCS_SUPERNODE_LINX | — |
| total_frames | INT | — |
| segment_count | INT | — |
| total_seconds | FLOAT | — |
| segment_seconds_out | FLOAT | — |
| unique_segment_frames | INT | — |
| segment_ranges_json | STRING | — |
| report | STRING | — |