LTXV Semantic Segment Planner
Segment planning for PromptRelay, without the Director
- video_latent
- segment_lengths_out
- segment_data
- schedule_info
LTXV Semantic Segment Planner is the compact standalone cousin of Schedule Sync - for the times you don't want the whole Temporal Director rig, you just want clean segment lengths to feed Kijai's PromptRelay. It reads your video latent, works out the rendered frame count, and turns "how many prompts I have" plus "where the boundaries go" into exact per-segment frame counts. If Schedule Sync is the Director's master clock, this is the pocket watch: it does the same timing math and hands it straight to PromptRelay's native segment_lengths input.
Where it beats Schedule Sync for PromptRelay users: it goes up to six segments (five boundary handles), while the Director caps at four. So when a prompt sequence genuinely needs more than four acts, this is the node to reach for.
How it works
Frame math first - it resolves the visible-frame count from video_latent the same way the rest of the pack does (LTX 2.3 compresses temporally by 8, so a 37-frame latent renders to 289 frames). Then it counts segments two ways:
semantic_source = local_prompts(default) - count pipe-separated prompts inlocal_prompts. PromptRelay-style text, sosegment 1 | segment 2 | segment 3means three segments.semantic_source = manual_count- use thesegment_countslider directly, ignoring prompts.
Once it knows the count, it applies the active boundary_1 through boundary_5 handles (normalized 0..1, rounded to whole frames) and clamps every segment to at least min_segment_frames. For a 3-segment schedule, 0.25/0.75 gives you a 1/4–1/2–1/4 split - the tooltip even spells that example out, which is a nice touch.
Inputs and outputs that matter
You'll mostly set: local_prompts (or segment_count), the boundary handles for the segments you actually have - the rest stay dormant - and video_latent. The fps input is display-only for the schedule_info timing string, so it won't change your output if you get it slightly off.
Outputs:
segment_lengths_out- a comma-separated string of frame counts, ready to plug into Kijai'sPromptRelayEncodesegment_lengthsinput. This is the whole reason the node exists.segment_data- the Director-format dict, for when you later graduate to the Temporal Director and want the same boundaries to flow through Schedule-Sync-style nodes.schedule_info- a human-readable summary for debugging.
Installing and notes
Standard pack install - ComfyUI Manager (search "ComfyUI-LTXV-TimeGated-LoRA") or:
cd ComfyUI/custom_nodes
git clone https://github.com/Jinx138/ComfyUI-LTXV-TimeGated-LoRA.git
Restart ComfyUI and hard-refresh the browser. No pip deps, no model downloads; it lives under "LTXV/Timing".
One honest caveat: this node is upstream plumbing, not a magic prompt router. It only computes segment lengths - the actual per-segment prompt encoding still happens in PromptRelay (or the pack's Scheduled Prompt Relay node). If you want the full shared-timeline experience with visual LoRA envelopes on top, that's the Temporal Director's job; this planner is for leaner PromptRelay workflows or the occasions when six segments beat four.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| video_latent | LATENT | Video-only LTX LATENT used to resolve the rendered frame count. The planner emits PromptRelay-compatible segment_lengths in visible-frame units. | |
| fps | FLOAT | 24.001–240 | Only used for schedule_info timing display. |
| semantic_source | COMBO | local_prompts | local_prompts counts PromptRelay-style pipe-separated prompts. manual_count uses segment_count directly. |
| local_prompts | STRING | segment 1 | segment 2 | segment 3 | PromptRelay-compatible local prompt text. Pipe-separated entries define the number of semantic segments. |
| segment_count | INT | 31–6 | Used only when semantic_source=manual_count. Maximum 6 segments = 5 active boundary handles. |
| boundary_1 | FLOAT | 0.3330–1 | Boundary handle 1, normalized 0..1. Rounded to a whole frame. |
| boundary_2 | FLOAT | 0.6670–1 | Boundary handle 2, normalized 0..1. For 3 segments, 0.25/0.75 gives 1/4-1/2-1/4. |
| boundary_3 | FLOAT | 0.7500–1 | Boundary handle 3, active for 4+ segments. |
| boundary_4 | FLOAT | 0.8750–1 | Boundary handle 4, active for 5+ segments. |
| boundary_5 | FLOAT | 0.9380–1 | Boundary handle 5, active for 6 segments. |
| min_segment_frames | INT | 10–256 | Minimum length for each segment after rounding and clamping. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| segment_lengths_out | STRING | — |
| segment_data | LTXV_SEGMENT_DATA | — |
| schedule_info | STRING | — |