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

Muse Collective LTX Timeline V2

The One Feature Every LTX User Eventually Wants

By muse-collective-26·Created 3 months ago·Updated 2 months ago· 9
Muse Collective LTX Timeline V2
  • 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►

Here's a fact about LTX 2.3 that changes how you work: it's more sensitive to seed than to prompt wording. The community discovered this fast - the highest-leverage workflow isn't endlessly rephrasing your prompt, it's generating a handful of cheap candidates on different seeds and picking the winner. That workflow even has a name in the wild ("ltx23SeedHunter," built around WhatDreamsCost's Director). MuseDirectorSamplerV2 bakes it directly into the director node, and it's the feature that makes V2 the version most people should install.

V2 is V1 - the full LTX 2.3 timeline director with chunking, per-segment prompts, lipsync, and layered audio - plus a scouting pass. Everything about V1 applies here; read that article for the base. This one is about what V2 adds.

How Seed Hunt works

The old way: flip a seed, run the whole pipeline, decide you don't like it, repeat. That's brutal when each full run is minutes long. Seed Hunt splits the loop in two:

  1. Scout. Flip seed_hunt ON and leave all four use_seed_hunt_1..4 toggles OFF. The node runs four candidates at Stage 1's real resolution - the actual timeline data, audio and all - each on a fresh random seed. You get previews on the seed_hunt_preview_1..4 outputs, and each candidate's real Stage 1 latent is cached in memory.
  2. Commit. Look at the previews, flip exactly one use_seed_hunt_N ON, run again. The node skips regenerating Stage 1 and carries that candidate's actual cached latent into Stage 2 (upscale + refine). What you saw in the preview is what carries through.

That last bit is the subtle part, and it's the whole point. This isn't "re-run with the same seed number and hope it matches" - the candidate's real latent is carried forward, so the seed number doesn't need to magically match across resolutions. Stage 2 is refining content you've already seen, not re-rolling a noise field.

If the cache is empty - say, the server restarted between scouting and committing - it falls back to overriding seed with the candidate's seed_hunt_N widget value and running Stage 1 fresh. Slightly worse, but it works.

The settings

  • seed_hunt - master toggle. OFF means this node is identical to V1.
  • use_seed_hunt_1..4 - flip exactly one to commit to a candidate.
  • seed_hunt_steps - sampler steps for the scouting pass, independent of stage1_steps. Hidden behind the Settings toggle by default, and honestly you rarely need it.
  • seed_hunt_1..4 - fallback seeds, only used on a cache miss. Advanced; leave them.
  • seed_hunt_scale - unused as of 1.0.4; scouting always renders at Stage 1's real resolution now. Kept purely so old workflows load.

One deliberate V2 change worth knowing: V1 uses seed - 1 for Stage 2's noise seed; V2 uses the same seed for both stages. The faithfulness of a picked candidate doesn't come from that - it comes from the carried latent - but if you A/B against V1 outputs, seeds won't line up 1:1.

The extra outputs are seed_hunt_preview_1..4 (images), seed_hunt_audio_1..4 (audio), and reference_image.

Installing it

Same pack, same install:

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

Restart, pip install av torchaudio soundfile, plus the full LTX 2.3 model stack (22B transformer, audio/video VAEs, Gemma 3 encoder, spatial upscaler, talking-head LoRA for lipsync). The repo ships an example workflow, Muse-Director-V2 - seed scout.json, that wires all four previews into Video Combine nodes - load it and swap in your own image and audio.

The honest take

Seed Hunt is the single most useful addition in this whole pack, and it's aimed at a real quirk of the model rather than a checkbox feature. The one thing to know: scouting four candidates at Stage 1 resolution isn't free, but it's dramatically cheaper than four full runs, and it purges VRAM after the scouting pass so you're not juggling latents. If you're deciding between V1 and V2, this is the answer.

CategoryMuse Collective

Inputs (65)

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.

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—