Nodes/ComfyUI-GGUF-Loader/LTX-2.3 KSampler (distilled) ⚡
ComfyUI Node

LTX-2.3 KSampler (distilled) ⚡

The only sampler that knows LTX-2.3's distilled schedules

By ChrisColeTech·Created about a month ago·Updated 4 days ago· 10
LTX-2.3 KSampler (distilled) ⚡
  • model
  • positive
  • negative
  • latent_image
  • LATENT
seed0
steps8
cfg1.0
sampler_nameeuler
scheduledmd (8 steps)
denoise1.00

Distilled models are picky. They're trained to denoise along one specific schedule, and a distilled LTX-2.3 model sampled with a generic simple or karras curve looks broken - not slightly off, broken - because the whole "fewer, larger jumps" design assumes the exact sigma path it was trained on. LTX-2.3 KSampler exists to pass those exact sigmas through: it samples a joint audio-video latent on the official LTX-2 schedules, with CFG pinned at 1.0 and euler as the default. Use the right schedule and an 8-step clip comes out fast and coherent; use the wrong one and you'll be convinced the model is broken.

The inputs that matter

  • model, positive, negative, latent_image - straight from LTXV23ImgToVideo (and the loader's model).
  • schedule - the dropdown that is the whole point: dmd (8 steps), dmd card (9 steps), dmd upscale (4 steps), distilled (8 steps), refine (3 steps). Pick the one matching your checkpoint's training. The 10Eros v1.4 distilled kit this pack is built around is distilled (8 steps) for the main pass.
  • steps - 8 for dmd/distilled, 4 for dmd upscale, 3 for refine. Other counts resample the same curve, but the trained counts are the trained counts.
  • cfg - pinned at 1.0: both the DMD and distilled bakes were trained without CFG. Crank it and you're inventing a behaviour the model never had.
  • sampler_name - default euler, the trained sampler. Others technically work; euler is the reference.
  • seed, denoise - the usual.

One output, LATENT - into LTXV23AVDecode.

Why it's not just stock KSampler with a schedule

The stock schedulers don't reproduce the trained distilled curve, and there's no way to hand them the exact sigma set. This node hardcodes the official sigmas and threads them through comfy's sampler, so "correct LTX-2.3 sampling" becomes picking a dropdown instead of reconstructing a sigma table. The mechanism detail that matters: it stamps the frame_rate into the conditioning for RoPE, and it respects noise_mask from the prep node (that's how image-to-video holds the first frames while denoising the rest). CFG 1.0 and euler are the defaults precisely because that's the trained configuration - the node is opinionated in the good way.

Installing it

Same pack as the whole LTX-2.3 line:

cd ComfyUI/custom_nodes
git clone https://github.com/ChrisColeTech/ComfyUI-GGUF-Loader
cd ComfyUI-GGUF-Loader
pip install --upgrade gguf

Restart; under 🤖 CCTech/LTX-2.3.

Gotchas

Match the schedule dropdown to the checkpoint, not to what sounds fast - running a refine (3 steps) schedule on a distilled model produces garbage that looks like a VRAM problem. And resist raising CFG: 1.0 isn't a suggestion, it's the trained state. If a clip looks washed out, fix the prompt, not the CFG. For the official two-stage quality path (base pass → spatial ×2 latent upscale → 3-step refine), use LTXV23RefineSampler instead - this node is the single-pass distilled path, and the two-stage one does both passes for you.

Category🤖 CCTech/LTX-2.3

Inputs (10)

NameTypeDefaultDescription
modelMODEL
positiveCONDITIONING
negativeCONDITIONING
latent_imageLATENT
seedINT00–18446744073709550000
stepsINT81–100008 for dmd/distilled, 4 for dmd upscale, 3 for refine.
cfgFLOAT1.00–1001.0 - both the DMD and distilled bakes are trained without CFG.
sampler_nameCOMBOeuler44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
scheduleCOMBOdmd (8 steps)5 options: dmd (8 steps), dmd card (9 steps), dmd upscale (4 steps), distilled (8 steps), refine (3 steps)
denoiseFLOAT1.000–1

Outputs (1)

NameTypeDescription
LATENTLATENT