Nodes/comfyui-ltx2-efficient/LTX2 Experimental Keyframe Sampler ⚠️
ComfyUI Node

LTX2 Experimental Keyframe Sampler ⚠️

The keyframe sampler LTX-2's own author warns you not to use

By kakachiex2·Created 7 months ago·Updated 7 months ago· 10
LTX2 Experimental Keyframe Sampler ⚠️
  • model
  • latent_video
  • positive
  • negative
  • LATENT
seed0
steps20
cfg4.00
sampler_name
scheduler
denoise1.00
experimental_presetConservative (stride=2)
frame_stride2
attention_window4
freeze_ratio0.30
throttle_delay_ms50
interpolation_methodslerp

This is the rare node whose own documentation tells you not to expect much. LTX2ExperimentalKeyframeSampler is the "fine, you asked for it" version of the efficient sampler: it genuinely samples only keyframes (every Nth frame), interpolates the rest, and lets you crank the aggressiveness - while the node description and the module docstring both warn that frame striding breaks temporal coherence for LTX and "may produce distorted output." The pack's other sampler keeps frame_stride=1 in every preset for exactly this reason. So why does this node exist? Mostly for experiments, and for future models that don't use full temporal attention.

How it works

Mechanically it's a sampler with all the inputs of the main one - model, latent_video, positive, negative, seed, steps, cfg, sampler_name, denoise - plus a scheduler dropdown (simple, sgm_uniform, karras, exponential, ddim_uniform, beta, normal, linear_quadratic, kl_optimal) that the main sampler lacks. Then the experimental bits:

  • experimental_preset - Conservative (stride=2), Moderate (stride=4), Aggressive (stride=8), or Custom. Each preset tunes freeze_ratio downward and throttle_delay_ms upward as stride climbs, which is the author acknowledging things get uglier the more aggressive you get.
  • frame_stride - sample every Nth frame, then fill the gaps.
  • interpolation_method - linear, slerp, or motion (the pack's optical-flow-ish warping). No none here, unlike the main sampler.
  • attention_window, freeze_ratio, throttle_delay_ms - the familiar attention-freezing and pacing knobs, with throttle now a plain milliseconds value instead of temperature-driven.

Output is a LATENT. The interpolation code is the same interpolate() utility the main sampler uses - linear lerp, spherical slerp (better for latents since it preserves magnitude), and motion-compensated warping.

The honest verdict

The math is real - fewer diffused frames is a big attention win, which is why frame-stride tricks work in real-time video systems - but LTX-2 isn't built for it. Its temporal attention spans all frames, so skipping them produces warped, flickery, or just wrong motion. The experimental presets at stride 2 are borderline; at stride 8, per the source, you're "likely to break most models." If you're on a desperate VRAM budget, your realistic path is the main LTX2EfficientSampler with freeze ratio and thermal throttling, not this. Use this one if you're curious, prototyping, or testing a future model with local temporal attention.

Installation

Same pack as everything else here - kakachiex2/comfyui-ltx2-efficient. ComfyUI Manager (search "LTX2 Efficient") or:

cd ComfyUI/custom_nodes/
git clone https://github.com/kakachiex2/comfyui-ltx2-efficient
cd comfyui-ltx2-efficient
pip install -r requirements.txt

Restart ComfyUI. No model files, no heavy deps.

Troubleshooting

  • Distorted/noisy output - that's the documented behavior at frame_stride > 1. It's not a bug you can tune away; it's the fundamental limitation the node exists to explore.
  • "Motion" interpolation is slow - expected; it's the heavy option. Try slerp for a fast, smoother default.
  • Your real workflow needs reliability - switch to the non-experimental LTX2EfficientSampler. This is the node to play with when you have time to waste, not the one to build on.

It earns its ⚠️. Worth knowing about because it clarifies why the pack's main sampler is so conservative about frame striding - and it's a nice sandbox for people who want to see exactly what breaks.

Categoryvideo/ltx2/experimental

Inputs (16)

NameTypeDefaultDescription
modelMODEL
latent_videoLATENT
positiveCONDITIONING
negativeCONDITIONING
seedINT00–18446744073709550000
stepsINT201–10000
cfgFLOAT4.000–100
sampler_nameCOMBO44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
schedulerCOMBO9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
denoiseFLOAT1.000–1
experimental_presetCOMBOConservative (stride=2)4 options: Conservative (stride=2), Moderate (stride=4), Aggressive (stride=8), Custom
frame_strideINT21–32Sample every Nth frame. Higher = faster but lower quality
attention_windowINT41–32
freeze_ratioFLOAT0.300–1
throttle_delay_msINT500–500
interpolation_methodCOMBOslerp3 options: linear, slerp, motion

Outputs (1)

NameTypeDescription
LATENTLATENT