[modular] LTX-2.5: two-stage generation as one pipeline
Add `LTX25TwoStageBlocks` / `LTX25TwoStageModularPipeline`: the distilled two-stage recipe (first pass,
2x latent upsample, second pass, diffusion decode) as a single modular pipeline for every workflow
`LTX25AutoBlocks` supports. The stages are ordinary blocks that can be popped and run on their own.
- split the shared LTX-2 leaves into first-pass / second-pass blocks (`LTX2Stage2PrepareLatentsStep`,
`LTX2Stage2PrepareAudioLatentsStep`, `LTX2ConditionStage2PrepareLatentsStep`) with `sigmas_name` /
`sigmas_default` init arguments instead of branching on `latents` inside one block
- every core-denoise group takes and leaves latents in the VAE form: `LTX2UnpackLatentsStep` closes each group,
encoders normalize and decoders denormalize, `LTX2LatentUpsampleStep` bridges the passes
- `modular_blocks_ltx25.py` is self-contained (no imports from the LTX-2 preset), with the distilled schedules
as defaults and no `num_inference_steps`; `LTX25ModularPipeline` carries the LTX-2.5 latent statistics as
the fallback for stages run without an autoencoder
- geometry and statistics come from pipeline properties instead of declaring `vae` / `audio_vae` in
denoise-side blocks; `use_cross_timestep` is a pipeline property; `batch_size` / `dtype` come from the
text input step; the in-context attention mask is built inside the prepare-latents block
- agent guide: gotcha on latent form across block boundaries
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>