Muse Collective LTX Timeline V1
The LTX 2.3 Director That Turned Long-Form Video Into One Node
- model
- clip
- audio_vae
- vae
- spatial_upscaler
- bg_audio
- base_model
- last_chunk_frames
- audio
- stage1_frames
The problem with LTX 2.3 is the exact opposite of the problem with Wan: it's fast enough that you want ninety seconds of it, and then you discover the hard way that a single generation only goes so long. MuseDirectorSamplerV1 is Muse Collective's answer - a full "director" node that wraps LTX 2.3's entire pipeline - timeline, chunking, per-segment prompts, lipsync, and layered audio - into one widget with a built-in visual editor. It's the node everything else in this pack forks from.
The lineage matters here. This is a from-scratch, standalone reimplementation of the LTX Director approach that WhatDreamsCost made famous (that node's 2.0 release was one of the bigger r/StableDiffusion hits of mid-2026). Muse's version drops the WhatDreamsCost dependency entirely. Same idea, own code, MIT-licensed.
How it works
Think of it as a mini non-linear editor feeding a chunked sampler. You get a visual timeline with four tracks: MAIN (image/video segments that act as reference frames), AUDIO (speech or music for custom audio), BG AUDIO (background ambience mixed under everything), and MOTION (reference video segments for IC-LoRA motion guidance). You drag assets in, set a global prompt plus per-segment prompts, and the node handles the rest.
Under the hood it's the same reference-frame latent extension as the V7 sampler: each chunk carries the last carry_frames frames (73 ≈ 3s at 24fps) of the previous chunk into the next as locked reference, generates the new region in a single pass, then runs the two-stage LTX flow - Stage 1 drafts at half resolution, the spatial upscaler refines. Per-segment prompts use LTX's temporal attention masking (PromptRelay), and there's automatic color matching between chunks.
Prompts use the pack's uppercase tag convention:
A woman sits at a podcast desk, talking confidently to camera.
[SPEECH] Right, I'm going to tell you something most people in this space won't admit.
[SOUNDS] Quiet studio, soft air conditioning hum, distant city traffic
[SPEECH] drives lipsync, [SOUNDS] drives generated ambient audio. The tags must be uppercase - lowercase gets ignored.
Inputs that matter
The widget list is enormous, but here's the short version:
- Audio toggles -
generate_audio(ambience from[SOUNDS]),custom_audio_on(play a file from the AUDIO track),lipsync(requires Custom Audio ON and the talking-head LoRA on the model input). base_model(optional) - wire a LoRA-free UNETLoader output here so the ambient pass generates sound instead of speech-influenced mush.chunk_duration_seconds(10),carry_frames(73),carry_strength(1.0) - chunking and continuity.stage1_steps/stage2_steps/stage2_denoise- 8 / 4 / 0.42 is the recommended baseline.cfgstays at 1 (distilled flow-matching; CFG 7 is an SDXL habit to unlearn).
Outputs: last_chunk_frames, audio, and stage1_frames (the pre-upscale draft for debugging).
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/muse-collective-26/muse-ltx-timeline
Restart, then install the pack's Python deps and VideoHelperSuite:
pip install av torchaudio soundfile
This is an LTX 2.3 node, so it wants the whole 2.3 stack: the 22B distilled transformer (mxfp8 block32), audio + video VAEs, the Gemma 3 12B fp4 text encoder, the spatial upscaler in models/latent_upscale_models/, and - if you want lipsync - the talking-head LoRA in models/loras/LTX2.3/. That's a lot of downloads, and none of it is optional.
Gotchas
- It's a big node on big hardware. 22B transformer plus Gemma 3 means you want serious VRAM and 64GB of system RAM realistically. Community reports put 2.3 at ~8-16GB workable with quants, but don't expect a 12GB card to fly.
- The timeline is managed by the node's JS - if the timeline UI doesn't show, check the browser console; it's a known class of issue with these director nodes.
- V1 has no Seed Hunt. If you want the seed-scouting workflow, that's V2 in the same pack.
The verdict: if you're serious about LTX long-form - talking-head content, podcasts, music videos - this family of nodes is the most capable route that doesn't involve wiring a hundred nodes by hand. Start with V1, and know that V2's Seed Hunt is the one upgrade most people actually use.
Inputs (54)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| clip | CLIP | — | |
| audio_vae | VAE | — | |
| vae | VAE | — | |
| spatial_upscaler | LATENT_UPSCALE_MODEL | — | |
| start_second | FLOAT | 0.000–3600 | — |
| end_second | FLOAT | 10.000–3600 | — |
| duration_seconds | FLOAT | 10.000–3600 | — |
| start_frame | INT | 00–86400 | — |
| end_frame | INT | 2400–86400 | — |
| duration_frames | INT | 2401–86400 | — |
| timeline_data | STRING | {} | — |
| local_prompts | STRING | — | |
| segment_lengths | STRING | — | |
| global_prompt | STRING | — | |
| guide_strength | STRING | — | |
| epsilon | FLOAT | 0.00100–1 | — |
| frame_rate | FLOAT | 24.001–120 | — |
| display_mode | COMBO | seconds | 2 options: seconds, frames |
| custom_width | INT | 96064–4096 | — |
| custom_height | INT | 54464–4096 | — |
| resize_method | COMBO | maintain aspect ratio | 4 options: maintain aspect ratio, stretch to fit, crop, pad |
| divisible_by | INT | 321–256 | — |
| img_compression | INT | 180–51 | — |
| generate_audio | BOOLEAN | true | LTX generates ambient/sfx audio from [SOUNDS] prompts. |
| custom_audio_on | BOOLEAN | false | Use audio file(s) from the AUDIO timeline track. |
| lipsync | BOOLEAN | true | Sync mouth movements to custom audio. Requires Custom Audio ON and talking head LoRA. |
| motion_guide_on | BOOLEAN | true | Use motion guide segments from the timeline. |
| chunk_duration_seconds | FLOAT | 10.02–120 | — |
| auto_chunk_threshold | FLOAT | 10.00–3600 | — |
| carry_frames | INT | 731–240 | Reference frames from previous chunk locked at chunk start. 73 ≈ 3s at 24fps. |
| carry_strength | FLOAT | 1.000–1 | — |
| crossfade_frames | INT | 00–120 | — |
| ic_lora_name | COMBO | None | 1 options: None |
| ic_lora_strength | FLOAT | 1.00-10–10 | — |
| stage1_steps | INT | 81–50 | — |
| stage2_steps | INT | 41–50 | — |
| stage2_denoise | FLOAT | 0.420–1 | — |
| cfg | FLOAT | 1.00–20 | — |
| seed | INT | 420–18446744073709550000 | — |
| filename_prefix | STRING | muse | — |
| bg_volume | FLOAT | 1.000–2 | — |
| guide_scale_by | FLOAT | 0.500.01–8 | — |
| guide_scale_by_s2 | FLOAT | 1.000.01–8 | — |
| guide_upscale_method | COMBO | bicubic | 5 options: bicubic, bilinear, nearest-exact, area, bislerp |
| guide_image_attn_strength | FLOAT | 1.000–1 | — |
| guide_crop | COMBO | center | 2 options: center, disabled |
| guide_auto_snap_ic_grid | BOOLEAN | true | — |
| guide_use_tiled_encode | BOOLEAN | false | — |
| guide_tile_size | INT | 25664–512 | — |
| guide_tile_overlap | INT | 6416–256 | — |
| timeline_ui | STRING | — | |
| bg_audioopt | AUDIO | — | |
| base_modelopt | MODEL | Base model without talking-head LoRA. Connect the UNETLoader output directly here so the ambient audio pass generates sounds without speech. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| last_chunk_frames | IMAGE | — |
| audio | AUDIO | — |
| stage1_frames | IMAGE | — |