Timeline Segment Output
The per-shot extractor that turns your timeline into a generation loop
- timeline_info
- images
- audio
- PROMPT
- TYPE
- NO_IMAGES
- IMAGE_INDEXES
- LENGTH
- IMAGES
- AUDIO
A timeline is a storyboard, but ComfyUI generates one clip at a time. Timeline Segment Output is the node that bridges the two: give it the timeline and a segment index, and it hands you that one shot's prompt, length, image indexes, and media - ready to feed a video model. Loop over the segment count with the index incrementing and you've turned a whole timeline into a batch of individual generations.
The inputs
timeline_info- from Timeline Editor. Non-negotiable.segment_index- which segment to pull (zero-based). The value your loop increments.prompt_format-default, orpromptRelayfor frame-range-annotated prompts that pair with a Prompt Relay encoder.- optional
images/audio- overrides for the segment's media, if you're driving the timeline from external inputs.
The outputs
PROMPT- this segment's prompt string. Straight into a text encoder or conditioning node.TYPE- segment type as an INT (different segment kinds encode differently).NO_IMAGES- a boolean telling you whether this segment has any images. Genuinely useful for branching logic: an i2v segment expects an image, a pure t2v segment doesn't, and this flag lets your graph decide which path to take without inspecting the media yourself.IMAGE_INDEXES- which images in the timeline's image list belong to this segment, as a string.LENGTH- segment duration in frames.IMAGESandAUDIO- the segment's actual media.
That combination is why it beats a generic "get item from list" node: it's not just the data, it's the semantics - type, image presence, and indexes - all unpacked for you.
The loop pattern
The idiomatic use: Timeline Info Output for dimensions/fps, Timeline Segment Count for the bound, and this node inside a repeat loop with segment_index as the counter. Each pass pulls one shot, conditions a generation, and saves. When a shot comes out wrong, bump the loop to just that index and regenerate only that segment - which is exactly how the community uses these timeline workflows to fix one clip without redoing the whole video.
Install
It's part of ComfyUI-Easy-Media:
cd ComfyUI/custom_nodes
git clone https://github.com/yolain/ComfyUI-Easy-Media.git
restart ComfyUI (ComfyUI Manager → "Easy-Media"). No extra models; FFmpeg system-wide is the pack-level requirement.
Where people get burned
segment_index out of range returns empty data - wire it to Segment Count so the bound and the index can't disagree. And the prompt_format choice matters more than it looks: pick promptRelay without a relay encoder downstream and you'll see the raw [start-end] frame annotations in your prompt string. Match the format to your conditioning stack. Otherwise, this is one of the most reliable nodes in the pack - feed it a valid index and it gives you a clean, ready-to-generate segment.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| timeline_info | TIMELINE_INFO | — | |
| prompt_format | COMBO | default | Choose prompt format. promptRelay formats prompts with frame ranges. |
| segment_index | INT | 0 | — |
| imagesopt | IMAGE | — | |
| audioopt | AUDIO | — |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| PROMPT | STRING | — |
| TYPE | INT | — |
| NO_IMAGES | BOOLEAN | — |
| IMAGE_INDEXES | STRING | — |
| LENGTH | INT | — |
| IMAGES | IMAGE | — |
| AUDIO | AUDIO | — |