LTX 2.5 · ComfyUI · Stubelius

LTX 2.5 sampler settings: euler_ancestral or res_2s, and when you need the distilled LoRA

Published Updated 10 min readby

On the official LTX 2.5 distilled checkpoint, the pick is euler_ancestral with the linear_quadratic scheduler, 8 steps, cfg 1, and no distilled LoRA. At 8 steps linear_quadratic outputs exactly Lightricks' distilled sigma schedule, and it is what my Stubelius Ultimate LTX 2.5 workflow ships as its default.

Short answer
  • The Stubelius Ultimate LTX 2.5 example workflow defaults to euler_ancestral + linear_quadratic, 8 steps, cfg 1.0, on the official LTX 2.5 distilled checkpoint.
  • ComfyUI's linear_quadratic scheduler at 8 steps gives the sigmas 1.0, 0.99375, 0.9875, 0.98125, 0.975, 0.909375, 0.725, 0.421875, 0.0, the same nine values as DISTILLED_SIGMA_VALUES in Lightricks' pipeline code.
  • The LTX 2.5 distilled LoRA is only needed on a non-distilled checkpoint. The distilled checkpoint runs at 8 steps and cfg 1 without it.
  • res_2s is not a built-in ComfyUI sampler. It comes from the RES4LYF pack, whose README counts two model calls per step for it, so 8 steps of res_2s are 16 model calls against 8 for euler.
  • On one seed at 1280×704 and 129 frames on an RTX 5090, 8 steps of res_2s took 28 s of sampling against 14 s for euler_ancestral, and gave a different shot, not a sharper version of the same one.
  • My original grid of euler, euler_ancestral and res_2s (four 1080p, 10-second LTX 2.5 clips, 437 seconds in total on an RTX 5090 with 32 GB) used a different seed for each setting and a non-distilled checkpoint, so it does not rank the samplers.

A distilled model has part of its sampling baked into its weights during training: the long sampling schedule, so it runs in a few steps, or the guidance, so it runs at cfg 1, or both. The official LTX 2.5 distilled checkpoint has both and runs at 8 steps and cfg 1 as it is. The dev checkpoint needs Lightricks' distilled LoRA to run that way in this workflow.

The original sampler grid

The first version of this post rested on one grid: one prompt rendered as four 1080p, 10-second clips, each slot with its own sampler setting.

Original grid: three samplers in four settings, one seed per setting. Model calls are steps times calls per step, using the RES4LYF README's count (1 for euler and euler_ancestral, 2 for res_2s).
SeedSamplerSchedulerStepsModel calls
42eulerlinear_quadratic1212
1000045euler_ancestrallinear_quadratic1212
2000048res_2slinear_quadratic816
3000051res_2slinear_quadratic1224

That is three samplers in four settings, not four samplers, and every setting ran on a different seed (the slot defaults, 42 plus 1000003 per slot). One seed per setting, so treat anything you see between the rows as an impression, not a result. The earlier version of this post had a notes column and sampler advice built on these four clips. Four clips on four seeds do not support either, so both are gone.

Timing has the same problem. All four clips together took 437 seconds, and I did not time them one by one, so the grid has no per-sampler timing. What can be counted is work: by RES4LYF's count the 8-step res_2s row made 16 model calls, more than either 12-step euler row.

One more caveat: the grid was not rendered on the official distilled checkpoint recommended below. It ran on a different, non-distilled LTX 2.5 checkpoint with Lightricks' distilled LoRA loaded, so it says nothing about the default setup.

Grid rendered on or before 2026-09-05 on an RTX 5090 (32 GB), 96 GB RAM, Windows 11. The ComfyUI version and the cfg of that run were not recorded. One seed per setting, a different seed each. Sigma values recomputed 2026-09-30 from the scheduler code in ComfyUI 0.37.0.

Which sampler and scheduler should you use with LTX 2.5 distilled?

Use euler_ancestral with the linear_quadratic scheduler at 8 steps and cfg 1, because at 8 steps that scheduler gives the schedule the model was distilled for. Lightricks' pipeline code defines it as nine sigma values, with a comment saying they were tuned to match the distillation process:

1.0, 0.99375, 0.9875, 0.98125, 0.975, 0.909375, 0.725, 0.421875, 0.0

ComfyUI's linear_quadratic scheduler at 8 steps produces the same nine numbers (I recomputed them from the formula in comfy/samplers.py). The LTX 2.5 blueprints that ship with ComfyUI type those values into a ManualSigmas node and pair them with Euler ancestral at cfg 1 on the distilled checkpoint. The Ultimate LTX 2.5 workflow uses the same first pass:

Defaults in the Stubelius Ultimate LTX 2.5 example workflow
SettingDefaultNode
Checkpointltx-2.5-22b-distilled-transformer-comfy-int8-convrot.safetensorsModels
Distill LoRAnoneModels
Steps8Setup
cfg1.0Setup
First pass scale1.0Setup
Sampler, every seedeuler_ancestralSeed Samplers
Scheduler, every seedlinear_quadraticSeed Samplers
Refine samplereuler, used only when first pass scale is below 1Output

At cfg 1 the negative prompt pass is skipped. euler_ancestral adds fresh noise between steps and euler does not. Lightricks' pipeline docs say the distilled pipeline samples with Euler ancestral on LTX 2.5 checkpoints and with plain Euler on older ones, and needs no guidance.

At 12 steps the same scheduler gives a different, 13-value schedule. Three of the four rows in my original grid ran 12 steps, so they were off the distilled schedule as well. I have no same-seed comparison of 8 against 12 steps, so I am not claiming either looks better. Eight is the setting with a reason behind it.

First pass scale is a separate question. Below 1 the seeds render quicker and softer, and the refine cannot add detail a half-size render never had. That is covered in the full-size first pass post.

Do you need the distilled LoRA on LTX 2.5?

Only on a non-distilled checkpoint. The official repo carries both kinds: the ltx-2.5-22b-distilled-transformer files, which run at 8 steps and cfg 1 as they are, and the ltx-2.5-22b-dev-transformer files, which need the LoRA to run that way in this workflow. The LoRA is loras/ltx-2.5-22b-distilled-lora-450-bf16.safetensors in the same repo. Pick it in the Models node's distill LoRA slot and keep 8 steps and cfg 1. With the distilled checkpoint, leave the slot at none.

The slot's strength defaults to 1.0. When I recorded the original grid I usually ran the LoRA at 0.6 to 0.8 and found 0.5 to 1.0 usable on the checkpoint that grid used. That range comes from that one checkpoint and is not a sweep on the dev file, so start at the default.

How do you compare samplers on the same seed?

Render one fixed seed and change one setting per run, not one slot per sampler. The Seed Samplers node gives each of up to four seeds its own sampler and scheduler. That is for variety in a seed hunt: seeds 2 to 4 add 1000003 each, so the slots differ in seed as well as sampler. My original grid was built the same way, on the older Seed Hunt node, which also had a step count per slot. That is why it is uncontrolled. For a fair comparison, change one thing at a time:

  1. On Setup, set seeds to 1 and keep the seed's control after generate on fixed.
  2. On Seed Samplers, choose the first sampler for seed 1 and queue.
  3. Change only seed 1's sampler, or only steps on Setup, and queue again. Anything changed on Setup or Seed Samplers re-renders the seed.
  4. Compare the two clips: same seed, same timeline, one setting apart.

res_2s comes from RES4LYF by ClownsharkBatwing, a pack of higher-order samplers. Its README explains that a sampler ending in 2s runs two stages per step and so costs two model calls per step, where Euler costs one. The pack adds its samplers to ComfyUI's sampler list, which is the list the Seed Samplers node reads.

Lightricks uses the sampler too. Its pipeline docs list an HQ variant of the two-stage pipeline that swaps Euler for res_2s and is described as typically needing fewer steps for comparable quality. The HQ preset in the code, named for LTX 2.3, is 15 steps at a video CFG of 3.0. That pipeline runs its first stage with CFG, so it is not the 8-step, cfg 1 case. A same-seed test is the way to ask whether res_2s helps on the 8-step distilled schedule at cfg 1. My first one is below. It shows how far apart the two samplers land, not which one is better.

The rest of the workflow, including the per-seed sampler box, is in the Ultimate LTX 2.5 guide.

Is res_2s better than euler_ancestral on LTX 2.5 distilled?

On the one seed I tested, res_2s did not polish the euler_ancestral clip. It made a different shot, and its sampling took twice as long. I followed the steps above: official distilled int8 checkpoint, 8 steps, linear_quadratic, cfg 1, seed 20261001, 1280×704, 129 frames, one prompt (a red fox walking through a snowy birch forest at dawn), and only the sampler changed.

LTX 2.5 distilled, same seed and prompt: euler_ancestral frames a red fox close and side-on against the low sun, res_2s frames it wider in brighter light, with the fox turning to the camera
Same seed, same prompt, same 8-step schedule. Changing only the sampler changed the framing, the light and what the fox does.
One seed per sampler on an RTX 5090. Sampling time is ComfyUI's progress bar for the 8 steps. Model calls use the RES4LYF README's count.
SamplerModel callsSampling, 8 stepsPer step
euler_ancestral814 s1.76 s
res_2s1628 s3.59 s

The time matches the call count: twice the model calls, about twice the sampling time. By my eye both clips are usable and neither is sharper. euler_ancestral framed the fox close and side-on against the low sun. res_2s framed it wider, in brighter light, and the fox turns to the camera at the end.

So with the seed fixed, a sampler swap is not a free polish pass on a clip you already like. It gives you a new shot, so keep the sampler of a seed you have picked. If you want to try res_2s, treat it as another round of seed hunting that costs twice the sampling time. One seed shows that the two samplers can land far apart. It does not rank them.

Same-seed test rendered 2026-10-01 on an RTX 5090 (32 GB), 96 GB RAM, Windows 11, ComfyUI 0.37.0, with the Stubelius Ultimate LTX 2.5 example workflow as shipped (one seed, full-size first pass), changed to seed 20261001, this prompt and native output with no upscale. One seed per sampler.

Sources and files

Common questions

Do I need the distilled LoRA with the LTX 2.5 distilled checkpoint?

No. The distilled checkpoint runs at 8 steps and cfg 1 as it is, so leave the distill LoRA slot at none. The LoRA, ltx-2.5-22b-distilled-lora-450-bf16.safetensors from the Lightricks/LTX-2.5 repo, is for a non-distilled checkpoint such as the dev transformer.

Is res_2s built into ComfyUI?

No. It is added by the RES4LYF custom node pack. According to that pack's README a 2s sampler costs two model calls per step, so 8 steps of res_2s are 16 model calls where euler needs 8.

Is res_2s better than euler_ancestral for LTX 2.5?

Not on the one seed I compared on the distilled checkpoint at 8 steps and cfg 1. With the seed, prompt and schedule fixed, res_2s gave a different shot, not a sharper version of the euler_ancestral one, and took 28 s of sampling against 14 s on an RTX 5090. One seed does not rank them. It shows that swapping the sampler changes the shot.

Can I run LTX 2.5 distilled at 12 steps instead of 8?

The steps field accepts it, but linear_quadratic at 12 steps is a different schedule from Lightricks' nine distilled sigmas. I have no same-seed comparison of 8 against 12 steps, so I keep 8 steps at cfg 1.

StuubzzzBuilds self-hosted AI video pipelines and the Stubelius nodes for ComfyUI, and teaches them in the ComfyUI From Zero course. My own tests run on one RTX 5090. About
Want the why, not just the workflow?

Learn it, fix it live, or have it made.

The ComfyUI From Zero course explains the machine from the first node to training your own LoRA, and Part 1 is free. If something is fighting you right now, bring it to a 60-minute 1-on-1.