π¬ LTX Reference Sequence
The multi-frame version
- model
- vae
- images
- target_latent
- model
LTX Reference Sequence is the multi-frame sibling of LTX Reference Conditioning. Same idea - encode a reference, prepend its tokens to the video sequence inside the transformer - but instead of one still image, it takes a frame sequence and uses a window of N frames as the reference. A single image can tell the model who someone is; a sequence can tell it how they move, how light plays across a scene over time, the rhythm of a performance. That's temporal style, and a still can't carry it.
It slots into the same architecture as its single-image sibling: requires LTX Reference Enable upstream to patch the model, and the reference tokens get the same 3D RoPE treatment so self-attention attends to them across all generated frames. If you've ever matched a moving subject to a reference clip and watched the identity hold but the motion feel wrong, this is the node that pulls the motion into the conditioning.
The inputs that matter
model,vae,images- required.imagesis a multi-frame IMAGE (batch) - from a Load Video node, a frame sequence, or any upstream frame producer.start_frame(0β240, default 0) - where the reference window begins in the input sequence. Frames before it are discarded.num_frames(1β25, default 9) - how many frames fromstart_framebecome the reference. The default 9 isn't arbitrary: LTX2's temporal compression is 8, and 1 + 8k gives you ~2 latent temporal positions. 17 and 25 are valid too - more temporal context, higher VAE cost.target_latent- same trick as the single-image node: wire in the LATENT going to your sampler and the frames are resized in pixel space to match before encoding.strength(0β2, default 1) - scales the reference latent; 0 bypasses and clears state.position_mode-reference(default) overlaps the target's first frames;prefix_continuousplaces memory before the target temporally.
Output is a MODEL for your sampler.
How it works
The window of frames is VAE-encoded as a batch and attached the same way the still-image node attaches its single latent - via model_options.transformer_options plus the diffusion-model attribute side-channel - and the Enable patches extend the per-frame compressed modulation tensors to match the prepended token count. The practical note from the tooltip: the default window is tuned to LTX2's temporal compression, so if you deviate from 1+8k frame counts you get whatever latent F dimension the VAE yields, which is fine but worth knowing before you assume 9 is "more is always better."
Installing it
Same TenStrip pack:
cd ComfyUI/custom_nodes
git clone https://github.com/TenStrip/10S-Comfy-nodes.git 10S_Nodes
or ComfyUI Manager β "10S". Restart, no extra dependencies.
Gotchas
Cost scales with window size - 25 reference frames is a lot of extra tokens in the attention sequence every step. And this is still LTX2-specific, so the same "wrong model β RuntimeError from Enable" rule applies. If your use case is pure identity with no motion context, the single-image node is cheaper and simpler; reach for Sequence when the reference clip's movement is part of what you want to preserve.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | β | |
| vae | VAE | β | |
| images | IMAGE | Multi-frame IMAGE input (a video frame sequence). Use a Load Video, image batch, or upstream frame producer. | |
| target_latentopt | LATENT | Optional. Wire the same LATENT going to your sampler. Frames will be resized in pixel space to match this latent's spatial dims before VAE encoding. | |
| start_frameopt | INT | 00β240 | Which frame in the input sequence to start the reference window at. Frames before this are discarded. |
| num_framesopt | INT | 91β25 | How many frames from start_frame to use as reference. Default 9 (1 + 8k matches LTX2 temporal compression β gives ~2 latent frames). 17, 25 also valid for more temporal context at higher cost. |
| strengthopt | FLOAT | 1.000β2 | Scales the reference latent magnitude. 0.0 bypasses and clears state. |
| position_modeopt | COMBO | reference | 'reference': memory positions overlap target's first frames. 'prefix_continuous': memory positions precede target temporally. |
| verboseopt | BOOLEAN | false | Print detailed per-call info to the console. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model | MODEL | β |