IAMCCS Project Timeline Planner
Plan a 3-minute LTX-2 project in segments 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
LTX-2 can't generate a three-minute clip, but it can generate a project if someone does the math first. That's the job of IAMCCS_ProjectTimelinePlanner: it takes your target duration (or audio), breaks it into LTX-sized segments with overlap, applies LTX-2's 8n+1 frame constraint to every segment, and hands you the full plan - segment ranges, total frames, and a payload downstream nodes consume. Plan once, render segment by segment, stitch.
It's from the IAMCCS/Ltx2 Helper Modules section of IAMCCS-nodes, part of the author's audio+img2vid goal-1 pipeline (the pack's LTX-2.3 low-VRAM workflows that made the rounds on r/comfyui are built on exactly this planning-then-segmenting approach, so this node is squarely in that tradition).
How it works
You give it a goal and it derives the numbers. goal1_preset picks a profile - lowram_safe_videoclip, lowram_fast_videoclip, normal_quality_videoclip, lowram_monologue, or custom - which seeds sensible segment sizes and backends for the kind of project you're planning. duration_source decides what anchors the plan: target_duration_seconds, or audio (uses a connected AUDIO input's length), or max_audio_target (the longer of the two).
planning_mode is where the thinking happens: auto_profile picks segment sizing from the content profile, or manual_segment_seconds lets you set segment_seconds yourself. overlap_frames (default 9) is the crossover between segments - the frames that get generated twice so the stitch isn't a hard cut. ltx_round_mode (up/nearest/down) decides how each segment's frame count snaps to 8n+1 - and given the VAE constraint, up is almost always the right call. content_profile (videoclip/monologue) and surface_profile tune how the plan is laid out. backend_binding selects the render backend (ltx_audio_guided_lowram / ltx_audio_guided_normal / custom).
Inputs and outputs
Required: goal1_preset, fps (24), segment_seconds (10), target_duration_seconds (30), duration_source, planning_mode, content_profile, overlap_frames, ltx_round_mode, surface_profile, backend_binding. Optional: audio, upstream_contract, linx.
Outputs: project_timeline_payload (STRING), contract, linx, plus the derived numbers - total_frames, segment_count, total_seconds, segment_seconds_out, unique_segment_frames, segment_ranges_json, and report.
How to install
Part of IAMCCS-nodes. ComfyUI Manager search "IAMCCS", or:
cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git
Restart. No model downloads here - LTX-2 checkpoint, VAE, and audio models are separate. Pack floors: ComfyUI ≥ 0.3.0, Python ≥ 3.12, Torch ≥ 2.8.
Gotchas
Presets are starting points, not promises - lowram_safe_videoclip won't make LTX-2 run on 4GB, it just picks conservative segment and backend settings. Check the derived outputs (total_frames, segment_count) before rendering a long project; if segment_count is 1, you mis-set something and you're about to plan one giant segment. The overlap_frames default of 9 is the author's tested crossover for LTX-2 stitching - raise it if your seams flicker, but each extra overlap frame is extra render cost on both sides. And remember LTX-2's broader quirks still apply downstream: the model punishes short prompts, renders internally at half resolution (so request higher), and its audio output is decent but tinny - the plan gets you the structure, not a free pass on the model's personality.
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 | — |