LTX 2.3 VAE, Vocoder and Text Projection Explained
Jul 31, 2026

LTX 2.3 VAE, Vocoder and Text Projection Explained

LTX 2.3 has two VAEs — video and audio — plus a 24 kHz vocoder and a Gemma text encoder. Here is what each does and why the official repo ships no separate VAE file.

You went looking for ltx-2.3-vae.safetensors, and it is not there. The official Hugging Face repository lists three checkpoints, some LoRAs, four upscalers — and no VAE.

You are not missing a page. LTX 2.3 does not distribute its VAEs as separate downloads the way image-model ecosystems trained everyone to expect. Meanwhile ComfyUI users pass around files named text_projection and vae that come from somewhere else entirely.

This article explains what the components actually are, why the official repo ships no standalone VAE, and where the community files fit. Sourced from the ltx-core documentation, the LTX-2.3 model card, and the official ComfyUI tutorial, checked July 2026.

The components, per the official architecture docs

ltx-core — the foundational package — lists the model implementations it contains: the transformer, Video VAE, Audio VAE, vocoder, and upscaler, plus the Gemma text encoder implementation with tokenizers and feature extractors.

Two VAEs, because LTX-2 uses decoupled latent representations: modality-specific VAEs enabling 3D RoPE for video versus 1D RoPE for audio, independent compression optimization, and native video-to-audio and audio-to-video editing workflows.

Video VAE

  • Encoder: [B, 3, F, H, W] pixels → [B, 128, F', H/32, W/32] latents
  • Decoder: latents → pixels, expanding by the same factors

That is a 32× spatial compression into a 128-channel latent space, plus temporal compression.

This single line explains the rule everyone runs into: width and height must be divisible by 32. It is not validation pedantry — 32 is the VAE's spatial compression factor, and a dimension that does not divide cleanly has no well-formed latent. The 8k+1 frame rule comes from the temporal side of the same compression.

Audio VAE

  • Encoder: [B, mel_bins, T][B, 8, T/4, 16] latents
  • 4× temporal downsampling, 8 channels, 16 mel bins in latent space
  • Roughly 1/25 s per token, with a 128-dimensional feature vector
  • Frequency is variable on input, fixed at 16 in latent space

The ~1/25 s per token figure is the useful one: audio is tokenized at a fixed temporal rate, so audio sequence length scales with clip duration independently of resolution. Longer clips cost audio tokens whether or not you change the picture size.

Vocoder

  • HiFi-GAN based, modified for stereo synthesis and upsampling
  • 16 kHz mel → 24 kHz waveform
  • Doubled generator capacity for stereo

So the output is genuinely synthesized 24 kHz stereo audio. Decode order: audio latents → Audio VAE → mel spectrogram → vocoder → waveform.

Text encoder

Gemma 3 12B, downloaded separately, described as a multilingual encoder with multi-layer feature extraction and thinking tokens that produces separate embeddings for video and audio conditioning.

That last detail is why prompting audio works: one prompt becomes two conditioning signals.

Curious what all this produces? Architecture is more convincing when you have heard the output. ltx23.app runs LTX 2.3 in the browser — generate a talking shot and listen to the 24 kHz stereo result the vocoder produces.

So why is there no VAE file?

Because in this stack, the VAEs are components of the model implementation in ltx-core, with weights carried by the checkpoints — not separately versioned artifacts you mix and match.

Compare with the image world, where swapping a VAE is routine and a "better VAE" is a real upgrade path. LTX 2.3 does not work that way:

  • The Video and Audio VAEs are architecturally coupled to the transformer's latent format — 128 channels, specific compression factors, RoPE dimensionality
  • Swapping one is not a cosmetic change; it invalidates the latent space the transformer was trained on
  • The pieces Lightricks does version separately are the ones designed to be swapped: spatial upscalers (x2-1.1, x2-1.0, x1.5-1.0), the temporal upscaler, and LoRAs

Which is the real answer to "where is the VAE": you are not supposed to choose one.

Then what are those community VAE and text projection files?

They are real, and they are ComfyUI plumbing rather than official releases.

ComfyUI loads models as discrete files in specific folders. Getting a 46.1 GB monolithic checkpoint to work inside that structure sometimes means splitting components into separate files — a transformer-only checkpoint here, a VAE file there, a text projection file for the piece that maps encoder output into the model's conditioning space.

For example, the community repository Kijai/LTX2.3_comfy hosts ComfyUI-oriented files including a VAE build, a text_projection bf16 file, and an INT8 transformer-only checkpoint. That is where search terms like ltx 2.3 vae and ltx 2.3 text projection bf16 come from — they are filenames in community repositories, not products in the official one.

Meanwhile, ComfyUI's official LTX-2.3 templates need only:

ComfyUI/models/text_encoders/
└── gemma_3_12B_it_fp4_mixed.safetensors

No separate VAE entry. The native workflows do not ask for one, which is the cleanest confirmation that it is not a required piece.

Treat community component files as what they are: useful for specific quantized or custom node setups, unofficial, and liable to lag Lightricks' point releases.

What this means in practice

If you are…Then…
Following the official quickstartYou need checkpoint + spatial upscaler + Gemma. No VAE file.
Using ComfyUI native templatesYou need the FP8 checkpoints + gemma_3_12B_it_fp4_mixed. No VAE file.
Using community GGUF/INT8 nodesYou may need split component files, including a VAE and text projection, from the community repo that published them.
Hunting a "better VAE" for qualityThere is not one. Quality levers are the checkpoint, the upscaler version, steps, and guidance.

That last row saves the most time. If output looks soft or plasticky, the productive knobs are stage-1 resolution, the x2 vs x1.5 upscaler, step count, and rescale_scale — not a VAE swap.

Where the components show up as knobs

You cannot swap the VAEs, but they surface in ways you can control:

  • --spatial-tile on the HDR pipeline controls tiled VAE decode tile size; the docs suggest reducing it on lower-VRAM GPUs. VAE decode is a real memory spike at high resolution.
  • The spatial upscaler operates on latents before VAE decoding — which is why it can still change content.
  • The audio VAE's fixed token rate means duration drives audio cost; a longer clip is more audio tokens regardless of frame size.
  • Text encoding can be offloaded. LTX Desktop offers free cloud text encoding precisely because running Gemma 3 12B locally costs memory during generation.

FAQ

Where do I download the LTX 2.3 VAE? There is no separate official VAE download. The VAEs are part of the model implementation in ltx-core, with weights carried by the checkpoints.

What is ltx-2.3_text_projection_bf16.safetensors? A component file published in community ComfyUI repositories, not an official Lightricks release.

Can I swap in a better VAE like in Stable Diffusion? No. The VAEs are coupled to the transformer's latent format. The swappable pieces are upscalers and LoRAs.

What audio quality does LTX 2.3 output? The vocoder is HiFi-GAN based, modified for stereo, producing a 24 kHz waveform from a 16 kHz mel spectrogram.

Why must resolution be divisible by 32? Because the Video VAE compresses spatially by 32× (H/32, W/32).

Do I need a separate audio VAE download? No — same answer as the video VAE. It ships as part of the model.

Bottom line

LTX 2.3's component story is two coupled VAEs, a stereo vocoder, and an external multilingual text encoder — none of which you are meant to swap. The pieces Lightricks versions separately are the upscalers and LoRAs, and those are where real tuning happens.

If a search sent you looking for a VAE file, the honest answer is that you already have it, inside the checkpoint. And if you would rather skip component archaeology entirely, ltx23.app runs the whole stack for you.

Sources

Verified July 2026 against primary documentation:

  1. ltx-core package documentation — Video VAE and Audio VAE tensor shapes, compression factors, vocoder specs, Gemma encoder behavior
  2. Lightricks/LTX-2 — official GitHub repository — package layout and required components
  3. Lightricks/LTX-2.3 — Hugging Face repository — full official file list (no standalone VAE), ÷32 and 8k+1 rules
  4. ComfyUI official LTX-2.3 tutorial — required text encoder file and folder layout
  5. LTX-2 installation & CLI flags — required components for pipelines
  6. LTX-2 available pipelines documentation--spatial-tile tiled VAE decode
  7. LTX-2 optimization documentation — memory behavior around decode and quantization
  8. google/gemma-3-12b-it-qat-q4_0-unquantized — the text encoder
  9. Lightricks/LTX-Desktop — cloud vs local text encoding trade-off
  10. Lightricks/ComfyUI-LTXVideo — official ComfyUI integration
  11. LTX-2 technical paper (arXiv 2601.03233) — architecture reference

Community component files are described for orientation only; they are not published or maintained by Lightricks.

Begin met genereren met LTX 2.3 — gratis AI-video online

Maak je eerste AI-video gratis — voer een tekstprompt in en laat het LTX 2.3-model de rest doen.