Nodes/10S-Comfy-nodes/πŸ”— LTX Reference Enable
ComfyUI Node

πŸ”— LTX Reference Enable

The switch that lets LTX2 inject a reference image into every frame

By TenStripΒ·Created 4 months agoΒ·Updated 26 days agoΒ· 244
πŸ”— LTX Reference Enable
  • model
  • model
β—„zero_ref_timestepsfalseβ–Ί
β—„verbosefalseβ–Ί

LTX2's i2v is dramatically better than it was at launch, but it's still a "first frame" model - the reference image anchors frame 0 and the rest of the video is free to drift. LTX Reference Enable is the first half of a fix for that: it patches the LTX2.3-AV transformer so a reference latent can be prepended to the token sequence inside the DiT, where the model's self-attention attends to it on every single frame, not just the first.

By itself it does nothing visible - Enable only patches the model to accept a reference; the actual reference image is attached downstream by LTX Reference Conditioning. That's the two-node handoff. Enable gets the seatbelt on, Conditioning puts the passenger in it. If you wire Enable alone, the patches sit dormant and the model passes through untouched, so it's safe to leave in the graph.

How it works

The node applies class-level patches to LTXAVModel - wrapping _process_input, _prepare_timestep, and the patchifier's unpatchify - plus an instance patch on the diffusion model. When a reference latent arrives, it gets encoded through the same patchifier and given the same 3D RoPE positions as the target tokens, so it's just extra sequence positions the self-attention naturally reasons about. No retraining, no LoRA; the pack's whole approach is forward hooks and instance-level method patches.

One parameter matters here: zero_ref_timesteps (default off). This marks the reference tokens as sigma=0, i.e. a "clean" reference, instead of letting them share the target's noise schedule. The tooltip and the author's empirical testing agree: most LTX2.3 checkpoints (including Echo's released T2V) produce better output with the reference carrying the same noise sigma as the target. Flip it on only if you're using a checkpoint explicitly trained for clean-reference memory - otherwise leave it alone.

verbose turns on per-call logging; turn it on the first time you wire the pair up, then off to keep the console quiet.

Installing it

Part of the TenStrip 10S pack. Via ComfyUI Manager (search "10S") or:

cd ComfyUI/custom_nodes
git clone https://github.com/TenStrip/10S-Comfy-nodes.git 10S_Nodes

Restart. No pip dependencies beyond ComfyUI's own environment.

Wiring and gotchas

The canonical shape:

Load Model β†’ LTX Reference Enable β†’ LTX Reference Conditioning β†’ KSampler

Two things will bite you. First, this is LTX2-specific - the patch targets LTXAVModel and SymmetricPatchifier, and the node throws a clear RuntimeError if it can't find that class structure, which is its way of telling you "wrong model." Second, Enable alone changes nothing; if you patch but never attach a reference, downstream samplers run vanilla. And if you're running a two-pass workflow (generate, then upscale), you'll want LTX Reference Bypass on the refinement branch so the reference tokens don't distort the upscale pass - the pair composes like a valve you can close.

Category10S Nodes/LTX2

Inputs (3)

NameTypeDefaultDescription
modelMODELβ€”
zero_ref_timestepsoptBOOLEANfalseMark reference tokens as sigma=0 (clean reference). Default OFF based on empirical testing β€” most LTX2.3 checkpoints (including Echo's released T2V) produce better output when reference tokens share target's noise sigma. Enable only if a checkpoint was trained for clean-reference memory.
verboseoptBOOLEANfalseEnable detailed per-call logging. Useful for debugging the first time you wire up this node. Disable for normal use to keep the console clean.

Outputs (1)

NameTypeDescription
modelMODELβ€”