π Echo DMD Sigma Remap
Stop feeding your DMD model sigmas it never saw
- sigmas
- sigmas
Here's a subtle problem with distilled models that only shows up once you start "helping" them with longer schedules: the JoyAI-Echo DMD checkpoints were trained with their timestep embedder seeing exactly nine sigma values. The moment you insert a midpoint like 0.817 into the schedule, the model is being asked to condition on a timestep it has never seen - and the output quietly degrades even though the euler math is fine.
EchoDMDSigmaRemap fixes that by decoupling the conditioning sigma from the step sigma. The euler step still uses your actual schedule, but the value handed to the model's timestep embedding gets re-expressed in terms of the DMD anchor points it knows. It takes a sigmas tensor in and returns a sigmas tensor out, with one method choice:
interpolate(default) - linear blend between the two bounding DMD anchors. Smooth, well-formed timestep embeddings, and the author's recommendation for all the extended presets.nearest- hard snap to the closest anchor. Guarantees a seen embedding but can introduce slight staircase artifacts.none- pure passthrough. Use it with theofficialschedule, which is already anchored.
Why it's a separate node
This is the part people get wrong the first time. The STG guider and the sampler both receive the same SIGMAS tensor. If remapping happened inside the sampler, the guider would be scheduling CFG against the raw schedule while the sampler conditions on interpolated anchors - a mismatch that misaligns CFG weighting with actual denoising conditioning. By remapping upstream, one node makes both the guider and the sampler operate on consistent effective timesteps.
Where it goes
Wire it between your sigma source and the rest of the sampling stack:
EchoDMDSigmas (or ManualSigmas, or BasicScheduler)
β EchoDMDSigmaRemap β (sigmas) β LTX2STGGuider and SamplerCustom
The typical use is exactly the workflow the pack ships: a 24fps LTX-2.3 generation, first pass on the official schedule, then an extended refinement schedule for the upscale pass - with the remap node inserted so the refinement schedule doesn't break conditioning. If you're only ever using the official preset, set none (or drop the node) and save yourself the fuss.
One honest caveat: the remap is only as good as the anchor list it interpolates between, which is hardcoded to Echo's nine official values. That's exactly what you want for the Echo-family checkpoints - this pack is unapologetically built for them - but it won't help with vanilla LTX-2.3 distilled, which has its own native schedule.
Install is the standard 10S one-liner - clone into custom_nodes as 10S_Nodes, restart, or grab it via ComfyUI Manager under "10S-Comfy-nodes". No model downloads, no pip deps. The whole pack targets LTX2-class models, so don't expect it to do anything for other DiT backbones.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| sigmas | SIGMAS | β | |
| method | COMBO | interpolate | interpolate: smooth linear blend between bounding DMD anchors. nearest: snap to closest anchor. none: pass through unchanged. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| sigmas | SIGMAS | β |