Nodes/ComfyUI-LTXV-TimeGated-LoRA/LTXV Semantic Segment Planner
ComfyUI Node

LTXV Semantic Segment Planner

Segment planning for PromptRelay, without the Director

By Jinx138·Created 3 months ago·Updated about a month ago· 21
LTXV Semantic Segment Planner
  • video_latent
  • segment_lengths_out
  • segment_data
  • schedule_info
fps24.00
semantic_sourcelocal_prompts
local_promptssegment 1 | segment 2 | segment 3
segment_count3
boundary_10.333
boundary_20.667
boundary_30.750
boundary_40.875
boundary_50.938
min_segment_frames1

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 in local_prompts. PromptRelay-style text, so segment 1 | segment 2 | segment 3 means three segments.
  • semantic_source = manual_count - use the segment_count slider 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's PromptRelayEncode segment_lengths input. 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.

CategoryLTXV/Timing

Inputs (11)

NameTypeDefaultDescription
video_latentLATENTVideo-only LTX LATENT used to resolve the rendered frame count. The planner emits PromptRelay-compatible segment_lengths in visible-frame units.
fpsFLOAT24.001–240Only used for schedule_info timing display.
semantic_sourceCOMBOlocal_promptslocal_prompts counts PromptRelay-style pipe-separated prompts. manual_count uses segment_count directly.
local_promptsSTRINGsegment 1 | segment 2 | segment 3PromptRelay-compatible local prompt text. Pipe-separated entries define the number of semantic segments.
segment_countINT31–6Used only when semantic_source=manual_count. Maximum 6 segments = 5 active boundary handles.
boundary_1FLOAT0.3330–1Boundary handle 1, normalized 0..1. Rounded to a whole frame.
boundary_2FLOAT0.6670–1Boundary handle 2, normalized 0..1. For 3 segments, 0.25/0.75 gives 1/4-1/2-1/4.
boundary_3FLOAT0.7500–1Boundary handle 3, active for 4+ segments.
boundary_4FLOAT0.8750–1Boundary handle 4, active for 5+ segments.
boundary_5FLOAT0.9380–1Boundary handle 5, active for 6 segments.
min_segment_framesINT10–256Minimum length for each segment after rounding and clamping.

Outputs (3)

NameTypeDescription
segment_lengths_outSTRING
segment_dataLTXV_SEGMENT_DATA
schedule_infoSTRING