L2.5

LTX-2.5 · MULTISHOT STUDIO

Scene planner + run builder for Lightricks/LTX-2.5

One prompt. Several shots. Sound included.

LTX-2.5 generates connected cuts inside a single pass — identity, light, voice and score carry across the edit. Write the scene here, get a prompt that follows Lightricks' prose format (no shot lists, no sluglines) and the exact command to render it.

22Bdistilled DiT
24fps
8k+1frames
15 smax auto length

Scene

Full sentences. Reused verbatim at the top of the prompt. 0

No leading article — it gets read as “the same soundscape continues”.

Shots 3

Two to four shots is the sweet spot. Every cut needs a named transition and a re-identified subject — that is what holds the scene together.

Official sample

What LTX-2.5 actually renders.

The hero reel from the model card: faces, texture, cuts and synchronised audio from the model Lightricks shipped. Generated by Lightricks, not by this page — use it to judge the look before you queue a run. Then take the prompt above to the working demo.

Official LTX-2.5 hero reel · videos.ltx.io / model card · 18.96 s

What LTX-2.5 is

An open-weights world model that generates synchronised video and audio from text, image or video. 22B diffusion transformer, a custom Gemma 4 12B text encoder, a diffusion video decoder and an audio VAE with vocoder — one stack, one pass.

What is new in 2.5

  • Native multishot. Several connected scenes in a single generation; identity, environment, lighting, voice and style hold across cuts.
  • Diffusion fidelity rendering. Compute is allocated by scene complexity instead of one fixed compression rate.
  • Diffusion video decoder. Replaces the VAE reconstruction stage — sharper faces, textures and on-screen text, fewer artifacts.
  • Gemma 4 12B encoder. Holds multi-character prompts, camera moves and lighting together over longer sequences.
  • Prompt enhancer + duration head. Optional rewrite pass, and opt-in length prediction from the prompt.

Two rules that decide whether a run works

Frames must satisfy n % 8 == 1 — 49, 73, 97, 121, 193. At 24 fps that is 2.04 s, 3.04 s, 4.04 s, 5.04 s, 8.04 s. A round 3.00 s is not representable.

Width and height must divide by 32 (the two-stage Diffusers path wants 64, because stage 1 runs at half resolution). The canvas presets here are all divisible by 64.

The checkpoints

FileWhat it is
22b-distilled-transformer-bf16Fast path: fixed 8-step schedule, CFG 1. This is what the commands here use.
22b-dev-transformer-bf16Full / trainable DiT. Slower, guided, the base for fine-tunes.
gemma4-12b-with-projText encoder plus projection, bf16. ~24 GB on its own.
video-vae-bf16 / conv-bf16DiffVAE (sharper, heavier) or conv VAE (faster, lighter).
audio-vae-bf16Audio VAE plus vocoder.
duration-head-bf16Predicts clip length from the prompt when frames are omitted.
latent-spatial-upscaler-x2Required for the two-stage recipe.

ComfyUI-only int8/convrot and NVFP4 files are in the same repo — they are not loadable by ltx-pipelines or PyTorch.

Memory, honestly

PlacementPeakNotes
Distilled DiT bf16~44 GB22B × 2 bytes
+ Gemma 4 12B~68 GBencoder resident
+ VAEs, decoder, upsampler~76 GBwhat the official Space loads
--offload cpu~30 GB peakweights streamed per block; slower
--quantization fp8-cast−22 GBDiT cast to FP8, upcast at use

96 GB (xlarge on ZeroGPU) is the comfortable configuration. 48 GB needs both the FP8 cast and full CPU offload; 24 GB is possible on paper and painful in practice.

Output

Frame rate24 fps
Lengthup to 15 s auto
Languages9
Audionative, synced
Multishot2–4 cuts
Prompt styleprose, no shot list

Duration is a predictor, not a promise: it sizes the clip to the action you write. Pace the beats into the prompt instead of expecting the model to stretch a moment.

Licence

LTX-2.x Community License. Free for commercial and production use under $10M annual revenue; above that a paid agreement is required. The weights are gated (auto-approve) — you must accept the licence on the model page before any download or from_pretrained call works.

Not affiliated with Lightricks. Facts from the model card, the LTX-2 repository and the published Diffusers snippet.

Three ways to run it

1 · Official pipelines — recommended

Python 3.12+, CUDA 12.7, PyTorch ~2.7. The repo ships ltx-pipelines and the distilled entry point used by the command this page builds.

git clone https://github.com/Lightricks/LTX-2.git
cd LTX-2 && uv sync
source .venv/bin/activate

hf auth login
hf download Lightricks/LTX-2.5 \
  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-bf16.safetensors \
  vae/ltx-2.5-audio-vae-bf16.safetensors \
  model_patches/ltx-2.5-duration-head-bf16.safetensors \
  latent_upscale_models/ltx-2.5-latent-spatial-upscaler-x2-bf16-1.0.safetensors \
  --local-dir models/ltx-2.5

2 · ComfyUI

Official LTX-2.5 templates ship with ComfyUI and use the int8/convrot checkpoints. Easiest path if you already live in Comfy; not scriptable from here.

3 · Diffusers

LTX-2.5 landed in the 0.41.0 release — no git pin. Use Lightricks/LTX-2.5-Diffusers, not the split pack. The two-stage recipe (half-res stage 1 → ×2 latent upsample → stage 2 refine) is what the official Space runs, and what the Python artifact here builds.

pip install "diffusers>=0.41.0" "transformers==5.15.0"

Why there is no Generate button here

Three independent walls, all verified against this account:

  • Gradio hosting on free cpu-basic — “requires a PRO subscription”
  • ZeroGPU hosting — “account must be at least 30 days old”
  • The model itself — ~76 GB of gated weights, so a free 48 GB slice cannot hold it

So this Space is the planning half: it produces a prompt that matches LTX's prose format and a command that is correct for the published CLI. gradio_app.py in this repo is a working ZeroGPU app for the day the hardware exists — see INFERENCE.md.

Quota maths

Free ZeroGPU is ~5 minutes of GPU a day; PRO is 40. The official app reserves roughly 78 s for a 2 s 1472×832 clip, and xlarge bills double quota — about 156 s of a free day for two seconds of video. The 8 s scene this page builds by default reserves about 196 s, i.e. 392 s billed. That is the whole free day, twice over, for one clip.

Prompting rules that actually change output

  • Prose, not a shot list. Numbered beats and sluglines underperform. Describe cuts in sentences: “A hard cut transitions to…”.
  • Name the transition at every cut. Hard cut, match cut, dissolve.
  • Re-identify the subject after a cut. “The boxer in the frayed vest, now…”
  • Say what audio does across the cut. Continue the score, drop to wind, bring dialogue in.
  • Physical emotion cues. A tight jaw, a held breath — not “he is sad”.
  • Don't paste a prompt written for another video model. Tag syntax does not carry over.
  • Don't mix light sources inside one shot. One coherent light logic.

Length and pacing

The duration head reads the action you wrote. If you want a pause, write the pause. If you want a cut at 2.5 s, describe enough action to fill 2.5 s — the model will not invent filler.

For a fixed length, pass --num-frames and omit auto duration. The number must be 8k+1.

Image-to-video

Add one or more --image PATH FRAME_IDX STRENGTH flags. Frame 0 is first-frame conditioning; strength 1.0 pins it. For a first frame, prefer a single continuous take — cutting away from the conditioning image fights the model.

Links

Community workbench built from the published model card. LTX-2.5 is released under the LTX-2.x Community License; outputs are yours under that licence.