tool/endpoint: templates/ltx2/two-stage (and the rest of the family) — video decode path
repro: get_workflow(name="templates/ltx2/two-stage") builds on LTX2Pipeline and
LTX2LatentUpsamplePipeline. Grepping the family turns up no reference anywhere to
LTX2VideoDiffusionDecodePipeline.
expected/actual: not a bug — an untested option. The Lightricks/LTX-2.5-Diffusers card
lists LTX2VideoDiffusionDecodePipeline as an alternative decoder alongside the convolutional
one, and upstream's own docs treat the diffusion VAE decode as the production path rather than a
niche alternative.
why it is attractive here specifically: it changes only the decode. No sigma schedule, no
resolution, no LoRA, no prompt — which makes it the cheapest thing in this family to A/B, and the
result is directly comparable on the same latents.
Relevant upstream detail for this box: the DiffVAE neighborhood-attention backend ladder puts
NATTEN as "the fastest production path on non-B200 GPUs (Hopper/Ampere/Ada)", and lem is an
RTX 3090 (Ampere, confirmed via get_memory). Their warm-runtime figures show the backend choice
is not a detail: chunked_eager runs roughly 2-2.5x slower than combined_compile.
the honest caveat. Those backend names are ltx_pipelines flags, and dw runs diffusers.
So the upstream numbers do not transfer directly; what transfers is the question — is diffusion
decode worth its cost over conv decode on our clips? This is an experiment to run, not a
settled win, and it should be recorded as a timing comparison either way.
adjacent, unverified: LTX-2 1.3.0 (2026-08-25) added keyframe-aware diffusion-VAE decoding —
"sharpens detail at the frames a generator anchored on", via VideoDecoder.decode_video(..., keyframes=)". That would bear directly on templates/ltx2/keyframes. It is an ltx_pipelines`
API and whether diffusers exposes an equivalent is unconfirmed — worth checking while in
this code.
related: #151, #152. Full LTX-2.5 write-up on #151, including what was ruled out (NVFP4 and
FP8 are both unusable on a 3090; SDNQ uint4 already goes further).
tool/endpoint:
templates/ltx2/two-stage(and the rest of the family) — video decode pathrepro:
get_workflow(name="templates/ltx2/two-stage")builds onLTX2PipelineandLTX2LatentUpsamplePipeline. Grepping the family turns up no reference anywhere toLTX2VideoDiffusionDecodePipeline.expected/actual: not a bug — an untested option. The
Lightricks/LTX-2.5-Diffuserscardlists
LTX2VideoDiffusionDecodePipelineas an alternative decoder alongside the convolutionalone, and upstream's own docs treat the diffusion VAE decode as the production path rather than a
niche alternative.
why it is attractive here specifically: it changes only the decode. No sigma schedule, no
resolution, no LoRA, no prompt — which makes it the cheapest thing in this family to A/B, and the
result is directly comparable on the same latents.
Relevant upstream detail for this box: the DiffVAE neighborhood-attention backend ladder puts
NATTEN as "the fastest production path on non-B200 GPUs (Hopper/Ampere/Ada)", and
lemis anRTX 3090 (Ampere, confirmed via
get_memory). Their warm-runtime figures show the backend choiceis not a detail:
chunked_eagerruns roughly 2-2.5x slower thancombined_compile.the honest caveat. Those backend names are
ltx_pipelinesflags, and dw runs diffusers.So the upstream numbers do not transfer directly; what transfers is the question — is diffusion
decode worth its cost over conv decode on our clips? This is an experiment to run, not a
settled win, and it should be recorded as a timing comparison either way.
adjacent, unverified: LTX-2 1.3.0 (2026-08-25) added keyframe-aware diffusion-VAE decoding —
"sharpens detail at the frames a generator anchored on", via
VideoDecoder.decode_video(..., keyframes=)". That would bear directly ontemplates/ltx2/keyframes. It is anltx_pipelines`API and whether diffusers exposes an equivalent is unconfirmed — worth checking while in
this code.
related: #151, #152. Full LTX-2.5 write-up on #151, including what was ruled out (NVFP4 and
FP8 are both unusable on a 3090; SDNQ uint4 already goes further).