diffusers
596bfe72 - [LTX-2.5] move the diffusion decode tile schedule back onto the model

Commit
46 days ago
[LTX-2.5] move the diffusion decode tile schedule back onto the model The review comment was about where the denoising logic lives. The loop had to move because a scheduler drives it, and the tile loop had to follow because it wraps the loop — but the arithmetic that loop consumes did not. Cell-to-pixel scales, the smallest tile the remaining attention kernels tolerate, the ghost frames the NATTEN border shift leaves on the end, the causal frame mapping: all of that is a fact about the decoder's grid, not about sampling, and it reads better next to the stages whose geometry decides it. So `LTX2VideoDiffusionDecoderModel.get_tile_schedule` returns a `LTX2VideoDiffusionDecoderTileSchedule` — the cuts on each axis plus the accessors for the awkward parts (`pixel_origin`, `pixel_frames`, `feature_end`) — and `_tiled_decode` becomes a plain walk over it. The pipeline keeps what it has to: a tile loop wrapped around a scheduler-driven denoising loop. Two things this buys beyond placement. The modular block copies 216 lines rather than 265, since the geometry is now imported rather than duplicated. And the schedule is testable on its own, which it needed to be: relocating it, I inverted the causal offset so every non-origin tile sampled the noise canvas one frame late. That produced a correctly shaped video and was caught only by a decode-level test. It now has five of its own, mutation-checked against the inverted offset, ghost frames left in the cut, the kernel floor dropped, and tile sizes not converted from pixels to cells. Bit-exact against the pre-move decode on all six cases. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Author
Parents
Loading