Nodes/Muse Collective LTX Timeline/Muse Collective LTX Timeline V2.5
ComfyUI Node

Muse Collective LTX Timeline V2.5

When Your LLM Should Write the Segment Prompts

By muse-collective-26·Created 3 months ago·Updated about a month ago· 8
Muse Collective LTX Timeline V2.5
  • model
  • clip
  • audio_vae
  • vae
  • spatial_upscaler
  • bg_audio
  • base_model
  • last_chunk_frames
  • audio
  • stage1_frames
  • seed_hunt_preview_1
  • seed_hunt_preview_2
  • seed_hunt_preview_3
  • seed_hunt_preview_4
  • seed_hunt_audio_1
  • seed_hunt_audio_2
  • seed_hunt_audio_3
  • seed_hunt_audio_4
  • reference_image
start_second0.00
end_second10.00
duration_seconds10.00
start_frame0
end_frame240
duration_frames240
timeline_data{}
local_prompts
segment_lengths
global_prompt
guide_strength
epsilon0.0010
frame_rate24.00
display_modeseconds
custom_width960
custom_height544
resize_methodmaintain aspect ratio
divisible_by32
img_compression18
generate_audiotrue
custom_audio_onfalse
lipsynctrue
motion_guide_ontrue
chunk_duration_seconds10.0
auto_chunk_threshold10.0
carry_frames73
carry_strength1.00
crossfade_frames0
ic_lora_nameNone
ic_lora_strength1.00
stage1_steps8
stage2_steps4
stage2_denoise0.42
cfg1.0
seed42
filename_prefixmuse
bg_volume1.00
guide_scale_by0.50
guide_scale_by_s21.00
guide_upscale_methodbicubic
guide_image_attn_strength1.00
guide_cropcenter
guide_auto_snap_ic_gridtrue
guide_use_tiled_encodefalse
guide_tile_size256
guide_tile_overlap64
timeline_ui
seed_huntfalse
seed_hunt_steps6
seed_hunt_scale0.25
seed_hunt_11
seed_hunt_22
seed_hunt_33
seed_hunt_44
use_seed_hunt_1false
use_seed_hunt_2false
use_seed_hunt_3false
use_seed_hunt_4false
segment_override_1
segment_override_2
segment_override_3
segment_override_4

V2.5 is V2 with one addition, and that addition is aimed at a very specific workflow: letting a local LLM write your segment prompts. If you've been hand-typing eight different prompts into an LTX timeline for a long-form video, you've probably wished for exactly this - a way to pipe text from an LLM node straight into the director's segments without copy-pasting.

Muse Collective is upfront that V2.5 is a fork of V2 with V2 left unmodified. Everything V2 gives you - the full timeline director, Seed Hunt, chunking, lipsync, layered audio - is still there. What V2.5 adds is segment_override_1..4, four optional text inputs that override the timeline's segment prompt text when connected and non-empty.

How it works

The mechanism is boring in the best way. Each segment_override_N input maps to a timeline segment (segment 0 through 3, despite the 1-based input names). Wire a string into it and, if it's non-empty, that text wins over whatever's typed in the segment's prompt box. Leave it unwired or empty and the timeline prompt is used as normal. There's no magic - it's a prioritization layer on top of the existing per-segment prompt system.

The natural setup is an LLM node (Ollama, LM Studio, QwenVL - anything that outputs text) whose job is to expand a scene description into LTX-flavored segment prompts, then wire its outputs into the override inputs. LTX likes long, detailed prompts, and a decent LLM is genuinely better at writing those than most humans typing quickly. The pack's own roadmap goes further down this path - V10 pairs with a dedicated MusePromptSplitter node that parses up to eight labeled prompts out of one LLM text block.

Inputs and outputs

The four overrides are the story: segment_override_1 through segment_override_4, all STRING with multiline. Everything else is V2's familiar panel - seed_hunt and the use_seed_hunt_N toggles, stage1_steps/stage2_steps/stage2_denoise, carry_frames, the audio toggles, and the rest.

Outputs match V2: last_chunk_frames, audio, stage1_frames, plus the four seed_hunt_preview_N / seed_hunt_audio_N pairs and reference_image.

Installing it

Identical to the rest of the pack:

cd ComfyUI/custom_nodes
git clone https://github.com/muse-collective-26/muse-ltx-timeline

Restart, pip install av torchaudio soundfile, and the full LTX 2.3 model stack. No extra dependencies for the overrides themselves.

Gotchas

  • Four segments, not five. Despite the 1..4 naming, these map to timeline segments 0-3. For more segments you're into V10 territory (eight overrides).
  • The override only takes effect when connected and non-empty - an empty override is silently ignored, which is actually the right behavior for a defaults system, but it can confuse you the first time you wire something in and see nothing change. Check the connection, not the string.
  • This is one of the WIP modules the pack loads with a try/except. If the node doesn't appear in your node list at all, the pack silently skipped it - update the pack, and check the console log.

The honest verdict: if you're already running a local LLM and generating multi-segment LTX timelines, this is a small but real quality-of-life win. If you're not, it's nothing to rush for - V2 will treat you fine. But V2.5 is where the "let the LLM direct" pipeline starts to look genuinely good.

CategoryMuse Collective

Inputs (69)

NameTypeDefaultDescription
modelMODEL
clipCLIP
audio_vaeVAE
vaeVAE
spatial_upscalerLATENT_UPSCALE_MODEL
start_secondFLOAT0.000–3600
end_secondFLOAT10.000–3600
duration_secondsFLOAT10.000–3600
start_frameINT00–86400
end_frameINT2400–86400
duration_framesINT2401–86400
timeline_dataSTRING{}
local_promptsSTRING
segment_lengthsSTRING
global_promptSTRING
guide_strengthSTRING
epsilonFLOAT0.00100–1
frame_rateFLOAT24.001–120
display_modeCOMBOseconds2 options: seconds, frames
custom_widthINT96064–4096
custom_heightINT54464–4096
resize_methodCOMBOmaintain aspect ratio4 options: maintain aspect ratio, stretch to fit, crop, pad
divisible_byINT321–256
img_compressionINT180–51
generate_audioBOOLEANtrueLTX generates ambient/sfx audio from [SOUNDS] prompts.
custom_audio_onBOOLEANfalseUse audio file(s) from the AUDIO timeline track.
lipsyncBOOLEANtrueSync mouth movements to custom audio. Requires Custom Audio ON and talking head LoRA.
motion_guide_onBOOLEANtrueUse motion guide segments from the timeline.
chunk_duration_secondsFLOAT10.02–120
auto_chunk_thresholdFLOAT10.00–3600
carry_framesINT731–240Reference frames from previous chunk locked at chunk start. 73 ≈ 3s at 24fps.
carry_strengthFLOAT1.000–1
crossfade_framesINT00–120
ic_lora_nameCOMBONone1 options: None
ic_lora_strengthFLOAT1.00-10–10
stage1_stepsINT81–50
stage2_stepsINT41–50
stage2_denoiseFLOAT0.420–1
cfgFLOAT1.00–20
seedINT420–18446744073709550000
filename_prefixSTRINGmuse
bg_volumeFLOAT1.000–2
guide_scale_byFLOAT0.500.01–8
guide_scale_by_s2FLOAT1.000.01–8
guide_upscale_methodCOMBObicubic5 options: bicubic, bilinear, nearest-exact, area, bislerp
guide_image_attn_strengthFLOAT1.000–1
guide_cropCOMBOcenter2 options: center, disabled
guide_auto_snap_ic_gridBOOLEANtrue
guide_use_tiled_encodeBOOLEANfalse
guide_tile_sizeINT25664–512
guide_tile_overlapINT6416–256
timeline_uiSTRING
seed_huntBOOLEANfalseON + no candidate chosen: run a 4-seed Stage-1-resolution preview instead of the full pipeline. ON + one use_seed_hunt_N chosen: commit to that candidate — Stage 2 refines its actual cached latent instead of regenerating Stage 1 from scratch.
seed_hunt_stepsINT61–50
seed_hunt_scaleFLOAT0.250.05–1Unused as of 1.0.4 — Seed Hunt now scouts at Stage 1's real resolution automatically (so the picked candidate's actual latent can carry forward into Stage 2). Kept as a widget only so older saved workflows still load correctly.
seed_hunt_1INT10–18446744073709550000Unused as of 1.0.4 — scouting now draws a fresh random seed for each candidate every run instead of reusing these fixed values (the actual latent carries forward on commit, so the seed number no longer needs to be fixed or reproducible).
seed_hunt_2INT20–18446744073709550000
seed_hunt_3INT30–18446744073709550000
seed_hunt_4INT40–18446744073709550000
use_seed_hunt_1BOOLEANfalse
use_seed_hunt_2BOOLEANfalse
use_seed_hunt_3BOOLEANfalse
use_seed_hunt_4BOOLEANfalse
bg_audiooptAUDIO
base_modeloptMODELBase model without talking-head LoRA. Connect the UNETLoader output directly here so the ambient audio pass generates sounds without speech.
segment_override_1optSTRINGOverrides segment 0's prompt text if connected and non-empty.
segment_override_2optSTRINGOverrides segment 1's prompt text if connected and non-empty.
segment_override_3optSTRINGOverrides segment 2's prompt text if connected and non-empty.
segment_override_4optSTRINGOverrides segment 3's prompt text if connected and non-empty.

Outputs (12)

NameTypeDescription
last_chunk_framesIMAGE
audioAUDIO
stage1_framesIMAGE
seed_hunt_preview_1IMAGE
seed_hunt_preview_2IMAGE
seed_hunt_preview_3IMAGE
seed_hunt_preview_4IMAGE
seed_hunt_audio_1AUDIO
seed_hunt_audio_2AUDIO
seed_hunt_audio_3AUDIO
seed_hunt_audio_4AUDIO
reference_imageIMAGE