LTX-2.5, MLX 8-bit for mlx-serve

8-bit MLX conversion of mlx-community/ltx-2.5-mlx (itself a conversion of Lightricks/LTX-2.5), built for mlx-serve β€” the native Zig MLX server for Apple Silicon (mlxserve.com).

Joint audio+video: one model generates the frames and their soundtrack together. Text-to-video, image-to-video (first-frame conditioning) and audio-to-video, plus the two-stage pipelines, all served natively β€” no Python.

60 GB on disk, down from 110 GB. The upstream conversion ships bf16 only; this is the same pack at the 8-bit width mlx-serve's LTX engine reads, and it is self-contained β€” the text encoder is inside it, so nothing else downloads.

Why 8-bit

The 4-bit pack is the one to use on a Mac that cannot hold this one. On a Mac that can, this is the pack to reach for: measured off the two files, affine 4-bit group-64 injects about 9.9% relative error into each of the 1632 quantized linears (quantizer step over per-group weight std), against about 0.6% at 8 bits β€” compounded over 48 blocks and 8 denoising steps. Same prompt and seed, the difference is visible in faces, fur and fine texture.

It is close to free: the DiT is compute-bound at these token counts, so the wider weights cost a few percent of generation time, not a multiple (see Measured).

⚠️ License β€” read before use

These weights are Derivatives of LTX-2.5 under the LTX-2.x Community License Agreement. A complete copy ships here as LICENSE.md, and the Acceptable Use Policy it incorporates by reference is snapshotted as ltx-acceptable-use-policy-snapshot-2026-08-12.pdf (the version in effect at your time of use governs β€” check Lightricks' current AUP).

Transfer notice (Agreement Β§3.5). Your use of these weights is subject to the LTX-2.x Community License Agreement. If you (aggregated across entities under common control) have annual revenues of US $10,000,000 or more, you are a "Commercial Entity" under the Agreement and must obtain a paid license from Lightricks before any use other than the Agreement's non-commercial-purpose carve-outs (testing, evaluation, non-commercial R&D in non-production environments). Sub-threshold commercial and production use is royalty-free under the Agreement's terms.

Further obligations that travel with these weights include (not exhaustive β€” read the license): machine-generated content disclosure (Attachment A Β§5), no removal or circumvention of any transparency/provenance features (Β§6), EU AI Act / CA AI Transparency Act responsibilities for providers/deployers (Β§6), and the Attachment A acceptable-use terms.

Modification notice (Agreement Β§3.3)

Modified from mlx-community/ltx-2.5-mlx. The change is quantization only β€” no training, no fine-tuning, no architectural change:

  • Both DiT variants: affine 8-bit, group size 64, applied to the 34 linear projections in each of the 48 transformer blocks (1632 weights per variant) β€” the six attention modules' to_q/to_k/to_v/to_out/to_gate_logits and the two feed-forwards' proj_in/proj_out. 38.0 GB β†’ 20.6 GB each.
  • Text encoder (gemma4-12b-ltx-v1/): affine 8-bit, group size 64, on every 2-D projection plus the embedding table (329 weights). 23.8 GB β†’ 12.7 GB.
  • Kept at their shipped dtype: every adaLN table, patchify_proj/proj_out, the q/k norms, keyframes_abs_pos_embedding, and all of the connector, both video VAEs, the audio VAE, the vocoder and both latent upscalers β€” copied byte-for-byte.

That split is the same recipe the established 2.3 MLX packs use (only_transformer_blocks), which is what mlx-serve's loader expects: it treats a tensor as quantized iff a sibling <name>.scales exists.

Conversion script: scripts/quantize_ltx25.py. The embedded LTX-2.x license text in upstream file metadata is preserved.

Contents

File Contents
transformer-distilled.safetensors distilled joint-AV DiT, 8-bit β€” fixed 8-step, CFG 1 (the one-stage default)
transformer-dev.safetensors dev (full) joint-AV DiT, 8-bit β€” two-stage stage 1, takes CFG
gemma4-12b-ltx-v1/ Lightricks-tuned Gemma-4-12B text encoder, 8-bit
connector.safetensors text-embedding connectors + aggregate projections (bf16)
vae_encoder / vae_decoder conv video VAE
audio_vae / vocoder audio VAE + BigVGAN v2
spatial_upscaler_x2_v1_1 / temporal_upscaler_x2_v1_0 Γ—2 latent upscalers
vae_diffusion_decoder.safetensors DiffVAE 1-step x0 decoder (bf16) β€” shipped, not yet served

What the engine reads, plus the diffusion decoder: mlx-serve does not implement that one yet, and it rides along so the pack does not have to be re-published when it does. The upstream repo's duration_head is not included.

Usage

mlx-serve --model <path>/LTX-2.5-MLX-Serve-8bit --serve
curl -X POST http://127.0.0.1:11434/v1/video/generations \
  -H 'Content-Type: application/json' \
  -d '{"prompt":"a red fox trots across fresh snow in a pine forest at golden hour",
       "num_frames":97,"height":512,"width":768,"steps":8,"seed":42}'

Or pick LTX-Video 2.5 (8-bit) in the mlx-serve app's Video window.

Measured

M4 Max (128 GB): 768Γ—512, 97 frames @ 24 fps, 8 steps, one-stage β€” 2m55s end to end, including the text encode and the VAE decode, with the generated soundtrack. The 4-bit pack on the same machine, same settings and same seed takes 2m49s (one run each, same session).

LTX's own pipeline defaults denoise a 1920Γ—1088 canvas; 768Γ—512 is a fast preset, not the model's ceiling. Bigger canvases cost roughly with the pixel count and then some β€” the DiT attends over one packed sequence.

Credits

All credit for the model to Lightricks β€” see the LTX-2 reference implementation. The MLX layout and the bf16 conversion this quantizes are mlx-community/ltx-2.5-mlx's.

Downloads last month
67
MLX
Hardware compatibility
Log In to add your hardware

Quantized

Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for ddalcu/LTX-2.5-MLX-Serve-8bit

Quantized
(2)
this model