Nodes/Muse Collective LTX Timeline/LTX Infinite Director Sampler V7 (Ref-Frame Lock)
ComfyUI Node

LTX Infinite Director Sampler V7 (Ref-Frame Lock)

The V7 Sampler That Turned LTX 2.3 Chunking Into a Single Pass

By muse-collective-26·Created 3 months ago·Updated about a month ago· 8
LTX Infinite Director Sampler V7 (Ref-Frame Lock)
  • model
  • clip
  • audio_vae
  • vae
  • spatial_upscaler
  • bg_audio
  • last_chunk_frames
  • audio
  • stage1_frames
start_second0.00
end_second85.00
duration_seconds85.00
start_frame0
end_frame2040
duration_frames2040
timeline_data{}
local_prompts
segment_lengths
global_prompt
guide_strength
epsilon0.0010
frame_rate24.00
display_modeseconds
custom_width720
custom_height1280
resize_methodmaintain aspect ratio
divisible_by32
img_compression0
generate_audiotrue
custom_audio_onfalse
motion_guide_ontrue
chunk_duration_seconds17.0
auto_chunk_threshold20.0
carry_frames73
carry_strength1.00
crossfade_frames0
ic_lora_nameNone
ic_lora_strength1.00
stage1_steps8
stage2_steps4
stage2_denoise0.42
cfg1.0
seed1000
filename_prefixmuse
bg_volume1.00

LTX 2.3 is fast - fast enough that the moment it got open weights in March 2026, people stopped waiting ten minutes per clip and started wanting long clips. That's the problem this node exists for. LTX caps a single generation at a fairly small number of frames, so anything past thirty seconds or so has to be stitched from overlapping chunks, and naive stitching looks like you stitched it. LTXInfiniteDirectorSamplerV7 is Muse Collective's answer: a chunked sampler that carries the tail of each chunk into the next one as locked reference frames, so the model extends its own real output instead of guessing a fresh scene each time.

The name is a bit of a mouthful and "Infinite" is doing some marketing work - it's not infinite, it's "however long your VRAM and patience survive." But the approach is sound and it's the same trick Kijai's NativeLooping and the standard LTX "extend" workflows use.

How it works

The mechanism is simpler than the settings panel suggests. Each chunk after the first takes the last carry_frames pixel frames from the previous chunk (73 frames ≈ 3 seconds at 24fps by default), VAE-encodes them, and writes them into the start of the next chunk's latent with noise_mask=0 - meaning "frozen, do not touch." The sampler then only generates the new region (noise_mask=1), anchored to content that actually exists instead of to a noise field that merely shares a seed number.

That's the key distinction from the older overlap-regen approach (V4-style, where the overlap gets re-generated and trimmed). V7 locks real pixels in and generates only the fresh frames in a single pass, then trims the overlap region off the output so you don't get duplicated motion. Continuity comes from the locked reference, not from hoping two seeds happen to line up.

The inputs that actually matter

The node is a director-style widget monster, but most of the inputs are hidden timeline state managed by the JS panel. The ones you'll touch:

  • carry_frames (default 73) - how many reference frames get locked into the next chunk. More = stronger continuity but a bigger latent and more VRAM. The tooltip's "73 ≈ 3s at 24fps" is a good rule of thumb.
  • chunk_duration_seconds (default 17) and auto_chunk_threshold (default 20) - chunk length, and the duration at which automatic chunking kicks in.
  • stage1_steps / stage2_steps / stage2_denoise (8 / 4 / 0.42) - the two-stage LTX flow: draft at half res, then the spatial upscaler refines. The 0.42 denoise is the community-tuned sweet spot.
  • cfg (default 1) - this is a distilled flow-matching model. CFG 7 is an SDXL habit; leave it at 1.

The three outputs are what you wire onward: last_chunk_frames (the tail frames, useful for feeding the next generation or preview), audio, and stage1_frames (the pre-upscale draft, handy for debugging).

Installing it

The pack is muse-collective-26/muse-ltx-timeline, installed like any ComfyUI custom node:

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

Then restart ComfyUI. The Python side needs av, torchaudio, and soundfile:

pip install av torchaudio soundfile

You'll also want VideoHelperSuite for video preview/save. And this is an LTX 2.3 node, so it needs the full 2.3 stack: the 22B distilled transformer (mxfp8 block32), the audio VAE, the video VAE, the Gemma 3 12B fp4 text encoder, and the spatial upscaler. The README has each file and its target folder. None of that is optional - this node is a thin sampler over a big model, and the big model is most of your disk budget.

Gotchas

  • Resolution rules are hard. LTX 2.3 requires width and height divisible by 32 and frame counts that are (multiple of 8) + 1. The node's divisible_by default of 32 handles it, but if you override dimensions, off-grid values fail rather than round.
  • The module docstring in older commits describes a "WAN-style overlap carry" - the shipped behavior is the reference-frame lock described here. If you see conflicting descriptions floating around, trust the tooltip on carry_frames.
  • This is the previous-generation sampler without the timeline UI. If you want the drag-and-drop timeline editor and Seed Hunt, that's the MuseDirectorSamplerV2 line, which ships in the same pack.

One honest caveat: chunked long-form generation still drifts. The reference lock keeps identity and layout from collapsing, but characters will subtly mutate over ninety seconds, and that's an LTX weakness, not a bug in this node.

CategoryLTXInfiniteDirector

Inputs (42)

NameTypeDefaultDescription
modelMODEL
clipCLIP
audio_vaeVAE
start_secondFLOAT0.000–3600
end_secondFLOAT85.000–3600Total video length in seconds.
duration_secondsFLOAT85.000–3600
start_frameINT00–86400
end_frameINT20400–86400
duration_framesINT20400–86400
timeline_dataSTRING{}
local_promptsSTRING
segment_lengthsSTRING
global_promptSTRING
guide_strengthSTRING
epsilonFLOAT0.00100–1
frame_rateFLOAT24.001–120
display_modeCOMBOseconds2 options: seconds, frames
custom_widthINT72064–4096
custom_heightINT128064–4096
resize_methodCOMBOmaintain aspect ratio4 options: maintain aspect ratio, stretch to fit, crop, pad
divisible_byINT321–256
img_compressionINT00–51
generate_audioBOOLEANtrueLTX generates audio from [SOUNDS] prompts. Can be combined with BG Audio.
custom_audio_onBOOLEANfalseUse audio file from the timeline AUDIO track. Can be combined with Generate Audio.
motion_guide_onBOOLEANtrueUse motion guide segments from the timeline.
vaeVAE
spatial_upscalerLATENT_UPSCALE_MODEL
chunk_duration_secondsFLOAT17.02–120
auto_chunk_thresholdFLOAT20.00–3600
carry_framesINT731–240Reference frames from previous chunk to lock at the start of each new chunk. More = stronger continuity, bigger latent. 73 ≈ 3s at 24fps.
carry_strengthFLOAT1.000–1Unused in V4 (kept for workflow compatibility).
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
seedINT10000–18446744073709550000
filename_prefixSTRINGmuse
bg_volumeFLOAT1.000–2
bg_audiooptAUDIO

Outputs (3)

NameTypeDescription
last_chunk_framesIMAGE
audioAUDIO
stage1_framesIMAGE