Files
hao-ai-lab-FastVideo/tests/local_tests/ltx2_5

LTX-2.5 Local Tests

Local parity, conversion, and smoke tests for the native LTX-2.5 FastVideo port. The launch scope is BF16 dev and distilled text/image-conditioned joint video-audio inference. Training, QAD/NVFP4, DiffVAE, DFR, HDR, temporal upsampling, and automatic duration prediction are follow-up work.

Port progress and unresolved questions live in tests/local_tests/ltx2_5/PORT_STATUS.md.

Reference Assets

Field Value
Model family ltx2_5 (config-gated extension of native ltx2)
Workload types T2AV and I2AV through the existing T2V/I2V compatibility surface; output is joint video and audio
Official reference https://github.com/Lightricks/LTX-2
Local reference dir LTX-2-Reference/ (gitignored)
Official commit/version v1.2.0, d151147788a9284cca791edc6ce898007e727fe6
HF weights Lightricks/LTX-2.5
HF revision ce298b1259d61ce6c87e05154b9ad339b16f32a0
Local weights dir Modal-backed Hugging Face cache; no local weight download
Source layout Separate component safetensors with checkpoint metadata; no root model_index.json
Needs conversion Yes

Never place token values in this file. GPU validation resolves HF_TOKEN from an approved secret in the HAO AI Lab Modal workspace.

Shared Environment Setup

The source clone is reproducible from the repository root:

git clone --branch v1.2.0 https://github.com/Lightricks/LTX-2.git LTX-2-Reference
git -C LTX-2-Reference checkout d151147788a9284cca791edc6ce898007e727fe6

The local FastVideo .venv does not currently contain PyTorch. Do not change FastVideo's core pins on this Mac solely for parity. Numeric checks reuse one warm HAO AI Lab Modal L40S shell with FastVideo and the pinned official source installed together.

dependency_changes: transformers>=5.15.0 for Gemma 4
official_env_status: source parity passing in one shared Modal environment
private_dep_stubs: none planned
gated_access_status: approved and verified at the pinned revision

Weight Layout

The published gated repository exposes these inference components:

diffusion_models/ltx-2.5-22b-dev-transformer-bf16.safetensors
diffusion_models/ltx-2.5-22b-distilled-transformer-bf16.safetensors
text_encoders/gemma4-12b-with-proj-ltx-2.5-bf16.safetensors
vae/ltx-2.5-video-vae-conv-bf16.safetensors
vae/ltx-2.5-audio-vae-bf16.safetensors

The first PR deliberately uses the official convolutional video VAE. The diffusion VAE is a separate iterative neighborhood-attention decoder and is not required for authentic LTX-2.5 launch inference.

Prototype And Conversion Artifacts

official_key_dumps:
  transformer: converted_weights/ltx2_5/_mapping/transformer_official_keys.json
  text_encoder: converted_weights/ltx2_5/_mapping/text_encoder_official_keys.json
  video_vae: converted_weights/ltx2_5/_mapping/video_vae_official_keys.json
  audio_vae: converted_weights/ltx2_5/_mapping/audio_vae_official_keys.json
fastvideo_key_dumps:
  transformer: converted_weights/ltx2_5/_mapping/transformer_fastvideo_keys.json
  text_encoder: converted_weights/ltx2_5/_mapping/text_encoder_fastvideo_keys.json
  video_vae: converted_weights/ltx2_5/_mapping/video_vae_fastvideo_keys.json
  audio_vae: converted_weights/ltx2_5/_mapping/audio_vae_fastvideo_keys.json
conversion_script: scripts/checkpoint_conversion/convert_ltx2_weights.py
conversion_source_layout: separate_components
converted_weights_dir: converted_weights/ltx2_5
strict_load_status: dev_and_distilled_pass

Expected Parity Tests

Component Official files / args Test Concerns Status
Transformer ltx_core.model.transformer.model_configurator.LTXModelConfigurator; checkpoint metadata tests/local_tests/transformers/test_ltx2_5_transformer_parity.py Official random FFN/keyframe/prompt-AdaLN parity plus strict dev/distilled production loading real strict-load pass
Gemma 4 encoder and connector ltx_core.text_encoders.gemma; unified Gemma 4 checkpoint tests/local_tests/ltx2_5/test_ltx2_5_gemma.py BOS behavior, connector bias surface, packed conversion focused pass
Convolutional video VAE ltx_core.model.video_vae configurator; conv checkpoint tests/local_tests/ltx2_5/test_ltx2_5_vae.py checkpoint-derived decoder width config pass
Audio VAE/vocoder ltx_core.model.audio_vae; audio VAE checkpoint tests/local_tests/ltx2_5/test_ltx2_5_conversion.py split routing and BWE topology reuse real pipeline pass
Ancestral sampler ltx_core.components.diffusion_steps and distilled pipeline selection tests/local_tests/ltx2_5/test_ltx2_5_sampler.py terminal x0, eta=0, reproducibility, seed offset, video-before-audio RNG unit pass
T2AV/I2AV pipeline official one-stage and distilled pipeline call paths tests/local_tests/ltx2_5/test_ltx2_5_registry.py dev/distilled presets, guidance, conditioning CRF, workloads structural and real T2AV pass

Planned verification order:

pytest -q tests/local_tests/ltx2_5 \
  tests/local_tests/transformers/test_ltx2_5_transformer_parity.py \
  -k 'not real_weights'

pytest -q -rs \
  tests/local_tests/transformers/test_ltx2_5_transformer_parity.py \
  -k 'not real_weights'

The transformer prototype extends the existing native LTX-2 graph rather than forking it. It adds the exact upstream v1.2.0 gates use_prompt_adaln_single=True, ff_bias=True, audio_ff_bias=True, and use_keyframes_abs_pos_embedding=False; these defaults preserve LTX-2/2.3. Both published 2.5 BF16 variants disable video FFN bias and enable keyframe absolute embeddings while retaining the prompt-AdaLN and audio-FFN-bias defaults. The keyframe marker mask is sharded with video tokens on FastVideo's SP path.

The same warm Modal L40S shell ran the complete lightweight launch suite plus legacy LTX preset preflight after the official source clone: 24 passed with the two real-weight cases deselected. It then strict-loaded both 42 GB BF16 transformers through the official builder and FastVideo's production loader: development passed in 28.76s and distilled passed in 27.06s.

Real pipeline validation then passed both distilled execution modes. The one-stage smoke ran on 2xH100 and produced a joint H.264/AAC MP4 with 9 video frames and 17 audio frames in 11.77s after load. The full two-stage smoke ran on 2xB200: base ancestral denoising, spatial upsampling, the published 1,632-layer refinement LoRA, all three refinement steps, and joint decode/save completed in 76.17s. The verified output contains 9 H.264 frames and 17 AAC frames. W&B records the launch run at https://wandb.ai/aryan5v-san-jose-state-university/fastvideo-ltx2-5/runs/o9ixwewk.

CPU/reference parity coverage includes random-weight FFN output parity, exact keyframe-marker functional parity, and official-versus-FastVideo parameter surface checks for both legacy defaults and the 2.5 gates. The real-weight test strict-loads dev and distilled checkpoints through the official builder and FastVideo's production TransformerLoader when the gated assets are present.

Review Notes

  • Existing LTX-2 and LTX-2.3 checkpoints must remain behavior-identical when all 2.5 configuration flags retain their backward-compatible defaults.
  • Native FastVideo loading, compilation, offload, and sequence-parallel paths are production requirements, not follow-up wrappers.
  • A scaffold skip is not a parity pass. Real-weight claims require non-skipped Modal results with exact commands and hardware recorded here.
  • Before every push after the first PR publication, inspect new CodeRabbit feedback and address actionable findings before updating the branch.