Skip to main content

Video generation model

Self-hosting LTX-Video: how much VRAM the 22B LTX-2 really takes

Lightricks has moved the development line from LTX-Video to LTX-2 — a joint audio-video DiT with a 14B video stream and a 5B audio stream. Here are the real weight sizes for every release, the cards that can actually run them, and what they cost per second.

Most people searching for LTX-Video self-hosting are still on the 0.9.x line. The LTX-Video repo now opens with one sentence: LTX-2 is now the primary home for LTX development. The old line's last major update was the 0.9.8 distilled models on 16 July 2025, which stretched a single clip to 60 seconds at a default 1216×704 @30fps, with no audio, under an OpenRAIL-M licence. LTX-2 landed on 23 October 2025 with native 4K, up to 50 fps, and audio generated jointly with video in one pass. They are different animals — do not size your GPU from old-line numbers.

LTX-2 is an asymmetric dual-stream transformer: a 14B video stream and a 5B audio stream, coupled by bidirectional audio-video cross-attention with temporal positional embeddings, plus cross-modality AdaLN for shared timestep conditioning — deliberately allocating more capacity to video than to audio. By LTX-2.3 and the currently recommended LTX-2.5 the model grew to 22B, and the text encoder moved from Gemma 3 12B to a Gemma 4 12B fine-tuned alongside the model. LTX-2.5 also splits the weights into one file per component, so you download only what your pipeline needs — the official Quick Start set is five files, roughly 66GiB.

There is no wiggle room on VRAM. ComfyUI-LTXVideo states its prerequisites plainly: a CUDA GPU with 32GB+ VRAM and 100GB+ free disk. The low_vram_loaders.py in that repo exists for exactly one reason — to order model loading and offloading so generation fits in 32GB. The bf16 22B transformer alone is 39.13GiB and the Gemma 4 encoder is 24.46GiB, so you either put them resident on an 80GB card or squeeze them in with --quantization fp8-cast / nvfp4-cast plus --offload cpu|disk. On NexGPU the RTX 5090 32GB, A100 SXM4 80GB, H100 SXM 80GB and H200 141GB all start on demand, with no quota request.

01 —

Every LTX release and what it weighs

File sizes taken from the official Hugging Face repositories — this is what you actually download and load.

VersionParametersVRAMContextNotes
LTX-2.5 22B distilled (recommended)22Bbf16 39.13GiB / NVFP4 17.44GiB / ComfyUI int8 20.03GiBDefault 121 frames @24fps ≈ 5s; two-stage resolutions must be divisible by 64What DistilledPipeline runs: 8 predefined sigmas (8 steps in stage 1, 4 in stage 2). It is the official Quick Start default, and ICLoraPipeline and DubItPipeline expect this checkpoint too.
LTX-2.5 22B dev22Bbf16 39.13GiB / ComfyUI int8 20.03GiBOne-stage output defaults to 512×768; two-stage adds 2× spatial upsamplingThe full model behind the guided two-stage pipelines (TI2VidTwoStages, TI2VidTwoStagesHQ, DFR). Stage-2 refinement additionally needs ltx-2.5-22b-distilled-lora-450-bf16 (8.29GiB).
Gemma 4 12B text encoder (LTX-2.5 build)12Bbf16 24.46GiB / ComfyUI int8 14.32GiBVersion tag gemma4-12b-ltx-v1, checked at load timeRequired by every pipeline, fine-tuned for LTX with the text projection bundled in. Google's stock Gemma 4 is not a substitute — loading validates the encoder version against the checkpoint and fails.
LTX-2.3 22B dev / distilled-1.122BSingle file, 42.98GiB (transformer + video/audio VAEs + text projection)Pairs with Gemma 3 12B (gemma-3-12b-it-qat-q4_0-unquantized), downloaded separatelyThe previous monolithic layout, and the release with the most ready-made ComfyUI workflows and the richest IC-LoRA set — Union Control, HDR, Dub-It, colorization, deblur. Weights and LoRAs are not interchangeable with 2.5.
LTX-2 19B dev / distilled19B (14B video stream + 5B audio stream)bf16 40.31GiB / FP8 25.22GiB / NVFP4 18.62GiBNative 4K, up to 50 fps, synchronized audio up to ~10 secondsThe release the technical report describes, and the only generation with a complete set of published fp8 and fp4 pre-quantized weights. Starting from 19b-dev-fp4 is the easiest way to try joint audio-video on a 24–32GB card.
LTX-Video 0.9.8 (13B / 2B, legacy line)13B / 2B13B bf16 26.62GiB, fp8 14.62GiB; 2B distilled 5.91GiB, fp8 4.16GiBDefault 1216×704 @30fps, ≤257 frames per pass (8k+1), up to 60 secondsOpenRAIL-M licensed, no audio, T5-XXL text encoder. The only generation that is genuinely comfortable on a 24GB card — good for proving out t2v/i2v before committing to LTX-2.

02 —

Matching a card on NexGPU to the release you are running

We only recommend a GPU when the VRAM actually fits — and we say so when it doesn't.

  • Prove out t2v / i2v on the legacy LTX-Video 0.9.8 line

    RTX 4090 24GB$0.540/GPU-hr

    Ada has native FP8, so the 14.62GiB 13B-fp8 checkpoint plus a sequentially loaded T5-XXL fits inside 24GB — and the 5.91GiB 2B distilled model leaves room to spare.

  • Self-host LTX-2.5 on one card with NVFP4

    RTX 5090 32GB$0.723/GPU-hr

    --quantization nvfp4-cast / nvfp4-prequant requires Blackwell (SM ≥ 10). The 17.44GiB NVFP4 transformer plus the int8 encoder lands right on ComfyUI's stated 32GB floor.

  • Run LTX-2.5 in bf16 with no quantization and no offload

    A100 SXM4 80GB$1.088/GPU-hr

    The 39.13GiB transformer and 24.46GiB Gemma 4 can sit resident together, so you skip the --offload cpu shuffling. Ampere has no native FP8, so you run bf16 on PyTorch SDPA — slower, but far cheaper per hour.

  • Batch production, 4K DFR detail rendering with temporal upsampling

    H100 SXM 80GB$3.582/GPU-hr

    Only Hopper unlocks --quantization fp8-scaled-mm and the FlashAttention 3 wheel. To swallow a 4K two-stage run plus two temporal refine rounds in one go, step up to the H200 141GB at $6.660/GPU-hr.

03 —

Four steps to a running LTX-2.5

From a bare instance to your first mp4 with synchronized audio.

  1. 01

    Start the instance and install dependencies

    Pick a PyTorch or ComfyUI image from the 2,000+ prebuilt images, clone the repo and sync with uv. The natten extra is the fastest backend for the diffusion video VAE decoder and is Linux + CUDA only — on Windows and macOS it is skipped automatically and decoding falls back to a Triton or eager implementation.

    git clone https://github.com/Lightricks/LTX-2.git && cd LTX-2 && uv sync --extra natten
  2. 02

    Authenticate and pull the weights (the repo is gated)

    LTX-2.5 is a gated Hugging Face repository: accept the model terms on the web first, then log in with a Read token — fine-grained tokens also need the 'read gated repos' scope enabled, or hf download returns 401/403. The five files below total roughly 66GiB.

    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 latent_upscale_models/ltx-2.5-latent-spatial-upscaler-x2-bf16-1.0.safetensors --local-dir models/ltx-2.5
  3. 03

    Run DistilledPipeline for your first clip

    Defaults are 121 frames @24fps — about 5 seconds, with video and audio generated together. If VRAM is tight, add --quantization fp8-cast and --offload cpu (or disk when RAM is short too, which is noticeably slower), and set PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True whenever you quantize. Write prompts like a shot list, and keep them under 200 words.

    PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True uv run python -m ltx_pipelines.distilled --transformer-path models/ltx-2.5/diffusion_models/ltx-2.5-22b-distilled-transformer-bf16.safetensors --text-encoder-path models/ltx-2.5/text_encoders/gemma4-12b-with-proj-ltx-2.5-bf16.safetensors --video-vae-path models/ltx-2.5/vae/ltx-2.5-video-vae-bf16.safetensors --audio-vae-path models/ltx-2.5/vae/ltx-2.5-audio-vae-bf16.safetensors --num-frames 121 --seed 42 --quantization fp8-cast --offload cpu --output-path output.mp4 --prompt 'A medium close-up shot of a man looking directly at the camera, speaking in a calm voice, static camera, shallow depth of field, soft window light'
  4. 04

    Move to ComfyUI, or to a higher-quality pipeline

    LTX-2 is built into ComfyUI core, with extra nodes and example workflows in ComfyUI-LTXVideo. On a tight card use the repo's low_vram_loaders.py, which orders execution and offloading so generation fits in 32GB, and reserve headroom with --reserve-vram. For more detail switch to DFRPipeline: it generates keyframes at half resolution, re-renders at full resolution with a spatial detailing LoRA, and optionally runs up to two 2× temporal refine rounds so fast motion holds together.

    python -m main --reserve-vram 5

What a 5-second clip with audio actually costs to rent for

Take LTX-2.5 distilled. Budget half an hour to pull the 66GiB of weights, then two hours iterating on prompts, resolution and step counts — 2.5 hours total. On an A100 SXM4 80GB that is $1.088 × 2.5 = $2.72. On an RTX 5090 32GB running NVFP4 it is $0.723 × 2.5 = $1.81. If you want Hopper's fp8-scaled-mm and FlashAttention 3, an H100 SXM 80GB is $3.582 × 2.5 = $8.96. The line item that actually bites is storage: 66GB of weights at the $0.414/GB-month median is 66 × 0.414 = $27.32 per month, more than many people's compute bill — so destroy the volume when you are done, or keep only the 17.44GB NVFP4 copy (17.44 × 0.414 ≈ $7.22/month). Exporting finished clips runs on egress at $0.0081/GB, so 100 short 1080p pieces at roughly 20GB comes to 20 × 0.0081 ≈ $0.16. Compute is metered per second and priced per hour, and it stops the moment the instance stops; storage keeps billing until the volume is destroyed — worth remembering on a 66GiB video model.

04 —

FAQ

How do LTX-Video and LTX-2 relate, and should I still deploy 0.9.8?

The LTX-Video repo now says outright that LTX-2 is the primary home for LTX development. The old line stops at 0.9.8 from 16 July 2025: 13B / 2B, no audio, OpenRAIL-M, up to 60 seconds, default 1216×704 @30fps. It is still useful — it runs on a 24GB card and iterates fast, which is great for blocking out shots and motion. But if you need synchronized audio, 4K, or production output, go straight to LTX-2.5. On NexGPU the two lines map to an RTX 4090 24GB at $0.540/GPU-hr and an RTX 5090 32GB and up at $0.723/GPU-hr — start small to validate, then move up, with no new quota request in between.

What is the minimum VRAM for running LTX-2.5 locally?

The stated floor is 32GB+ VRAM plus 100GB+ free disk — that is exactly what ComfyUI-LTXVideo lists as its prerequisites, and the low_vram_loaders.py in that repo exists to make generation fit in 32GB. The arithmetic explains why: 39.13GiB for the bf16 transformer and 24.46GiB for the Gemma 4 encoder, so a 32GB card only gets there via NVFP4 or int8 quantization plus --offload. If you would rather not fight it, start at 80GB. NexGPU has the RTX 5090 32GB at $0.723/GPU-hr, the A100 PCIE 80GB at $0.824/GPU-hr and the A100 SXM4 80GB at $1.088/GPU-hr, so you can price the tiers by the hour before committing.

Can a 24GB RTX 4090 run LTX-2?

You can force it — fp8-cast with --offload disk, plus tiled VAE decoding to avoid OOM — but you will be paging constantly and every parameter change costs a long wait. 24GB is a much better fit for the legacy 0.9.8 line: 13B-fp8 is only 14.62GiB and 2B distilled is 5.91GiB. If you genuinely want LTX-2, the least painful entry is 19b-dev-fp4 (18.62GiB) on a 32GB card. NexGPU prices the RTX 4090 24GB at $0.540/GPU-hr and the RTX 5090 32GB at $0.723/GPU-hr — a small enough gap that fighting 24GB is not worth it.

Why does hf download return 401/403, or loading fail after I swap checkpoints?

Three traps. First, LTX-2.5 is a gated repo: accept the terms on the web, then log in with a Read token that has the 'read gated repos' scope. Second, LTX-2.3 and LTX-2.5 checkpoints are not interchangeable, and a LoRA only works with the model version it was trained on. Third, the text encoder must be the gemma4-12b-with-proj-ltx-2.5 file shipped with the model — loading validates the gemma4-12b-ltx-v1 version tag, and stock Gemma 4 will not pass. On a NexGPU instance you authenticate once over SSH, Jupyter or the web terminal; the weights land on the volume and remount on next boot, so you never re-download 66GiB.

Can I use LTX-2 commercially, and where is the licence threshold?

It ships under the LTX-2.x Community License Agreement. The key clause: any Entity with annual revenue of at least $10,000,000 — counted across subsidiaries, affiliates and companies under common control — must obtain a paid Commercial Use Agreement from Lightricks for any commercial use. Only personal research, learning and recreation, plus testing and evaluation by a company in a non-production environment, count as a Non-Commercial Purpose. The legacy 0.9.x line is OpenRAIL-M and far more permissive. We supply compute only; the licence is between you and Lightricks — but spending a few dollars on NexGPU to run your evaluation falls squarely inside the non-production testing the licence permits, so you can see the quality before you decide.

Generation is slow — what actually speeds it up?

The official order of operations: use DistilledPipeline first (8 predefined sigmas, 8 steps in stage 1 and 4 in stage 2); enable quantization — fp8-scaled-mm on Hopper+, nvfp4 on Blackwell; install the right attention backend — the FlashAttention 3 wheel on Hopper, a manual flash-attn-4==4.0.0b9 on datacenter Blackwell (B200), PyTorch SDPA automatically everywhere else; use gradient estimation to cut inference steps from 40 down to 20–30; and skip the automatic memory cleanup between stages if you have VRAM to spare. Almost every one of those is tied to a GPU architecture, which makes card selection part of the tuning. NexGPU carries 75 GPU models and 2,498 GPUs across 1,175 verified nodes in 51 countries and regions, up to 14 GPUs per node and 2,152GB max node VRAM — so comparing Ada, Hopper and Blackwell on the same pipeline is three instances and one afternoon.

Start building on NexGPU

Enterprise R&D team or solo developer — either way, your first job can be running in minutes.

Sign up to browse live network pricing. No payment method required.