Nodes/ComfyUI/LTXVScheduler
ComfyUI Node Runs on cloud

LTXVScheduler

The LTX-specific sigmas the official workflows use

By Comfy-Org·Created 4 years ago·Updated 32 minutes ago· 129,926
LTXVScheduler
  • latent
  • SIGMAS
steps20
max_shift2.05
base_shift0.95
stretchtrue
terminal0.10

LTXVScheduler is the noise schedule that LTX Video's own workflows use instead of a generic BasicScheduler. It generates SIGMAS from the LTX model's trained sampling setup - a sigma schedule shaped by a "shift" that depends on your resolution. If you've loaded an official LTX workflow, this is the node sitting where you'd expect a plain scheduler, and it's why the workflow works.

It ships with ComfyUI core (comfy_extras/nodes_lt.py, alongside the other LTX video nodes). Nothing to install.

How it works

The core idea is the same as ComfyUI's other model-specific schedulers: instead of a generic curve, compute the schedule the way the model's authors tuned it. The twist is that LTX's schedule is resolution-aware. The node estimates how many latent tokens your latent has - from the optional latent input, or a default of 4096 if you leave it unplugged - and interpolates a sigma_shift between the two anchor values:

  • base_shift (default 0.95) - the shift at the low end (roughly 1024 tokens).
  • max_shift (default 2.05) - the shift at the high end (roughly 4096 tokens).

More tokens (bigger resolution / longer video) → a larger shift → more sampling effort spent on the early, composition-setting steps. That matches how LTX behaves in practice: it does a lot of work early to nail composition and camera, then refines.

The schedule then lands in the [0,1] sigma range with an optional stretch:

  • stretch (default on) - remaps the sigmas so the final value lands at terminal.
  • terminal (default 0.1) - the sigma value the schedule ends at after stretching. The tooltip calls it "the terminal value of the sigmas after stretching."

How to use it

Feed it the LTX latent (the optional latent input makes the shift resolution-correct), set steps - 8 for distilled LTX models, 20+ for the full model - and wire the SIGMAS output into SamplerCustomAdvanced. The recommended sampler pair for LTX is Euler-family (or DDIM) - the KB's distilled-model notes are euler with 8 steps at CFG 1, and "DDIM uniform, with DDIM or Euler A at 8–12 steps" as the community magic point.

Where people get burned

  • Leaving latent unplugged. The shift then assumes 4096 tokens. On small or unusual resolutions that can be visibly wrong. Plug the latent in and the schedule adapts.
  • Stretch/terminal confusion. With stretch on, the sigmas are remapped so they end at terminal (0.1), not at zero. That's the model's design - don't read it as "the image won't fully denoise." A trailing sigma of 0.1 is the intended operating point.
  • "I can just use BasicScheduler." You can - the LTX community literally does for non-distilled models ("replace it with a BasicScheduler and change the steps to whatever you want," thread 1k1o4x8). But if you're fighting artifacts on the distilled models, the official LTX scheduler is the schedule the checkpoint was trained against; swap it in before you blame the sampler.
  • CFG at the default. LTX distilled wants CFG 1 (and the Basic Guider path). Pushing CFG up "because it's a video" overcooks - the community's litmus is: if lights blow out, tune CFG 1.1–2.0, not higher.

If you're not on LTX at all, this node won't help - it's tuned for that model family, and a generic scheduler is the right call elsewhere.

Categorymodel/sampling/schedulers

Inputs (6)

NameTypeDefaultDescription
stepsINT201–10000
max_shiftFLOAT2.050–100
base_shiftFLOAT0.950–100
stretchBOOLEANtrueStretch the sigmas to be in the range [terminal, 1].
terminalFLOAT0.100–0.99The terminal value of the sigmas after stretching.
latentoptLATENT

Outputs (1)

NameTypeDescription
SIGMASSIGMAS