LTX-2.3 KSampler (distilled) ⚡
The only sampler that knows LTX-2.3's distilled schedules
- model
- positive
- negative
- latent_image
- LATENT
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 fromLTXV23ImgToVideo(and the loader'smodel).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. The10Eros v1.4distilled kit this pack is built around isdistilled (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- defaulteuler, 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.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| positive | CONDITIONING | — | |
| negative | CONDITIONING | — | |
| latent_image | LATENT | — | |
| seed | INT | 00–18446744073709550000 | — |
| steps | INT | 81–10000 | 8 for dmd/distilled, 4 for dmd upscale, 3 for refine. |
| cfg | FLOAT | 1.00–100 | 1.0 - both the DMD and distilled bakes are trained without CFG. |
| sampler_name | COMBO | euler | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 |
| schedule | COMBO | dmd (8 steps) | 5 options: dmd (8 steps), dmd card (9 steps), dmd upscale (4 steps), distilled (8 steps), refine (3 steps) |
| denoise | FLOAT | 1.000–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| LATENT | LATENT | — |