LTX-2.5 22B — quantised for a 16 GB card
LTX-2.5 generates picture and sound in one pass. It is also 42 GB of bf16 weights, and the text encoder beside it is another 26 GB. This repo is the set of weights that make it run on a card that does not have that.
Two families, because ComfyUI has two loaders and people are split across them:
.gguf— for ComfyUI-GGUF (city96). The familiar Q-ladder.comfy-*.safetensors— for stock ComfyUI 0.32+, no custom nodes. These use ComfyUI's own quantisation system (comfy_quant+ the comfy-kitchen kernels), the same machinery Lightricks' officialint8-convrotbuild uses. The 4-bit ones are the smallest way to run this model without a custom node in the graph.
What fits
Sizes are measured, not estimated. "Fits 16 GB" assumes the text encoder is not resident at the same time — ComfyUI frees it before sampling — and tiled VAE decode. File sizes are decimal GB (bytes / 10^9); card capacities are the usual binary GiB, so a 15.9 GB file occupies 14.8 GiB of a 16 GiB card. The gap is real and it is where your activation pool lives.
| file | GB | 12 GB | 16 GB | 24 GB |
|---|---|---|---|---|
LTX25-distilled-DiT-comfy-w4a4.safetensors |
11.2 | tight | yes | yes |
LTX25-distilled-DiT-comfy-w4a8.safetensors |
12.5 | — | yes | yes |
LTX25-distilled-DiT-Q2_K.gguf |
7.9 | yes | yes | yes |
LTX25-distilled-DiT-Q3_K_M.gguf |
10.6 | tight | yes | yes |
LTX25-distilled-DiT-Q4_K_S.gguf |
12.9 | — | yes | yes |
LTX25-distilled-DiT-Q4_K_M.gguf |
14.2 | — | tight | yes |
LTX25-distilled-DiT-Q5_K_M.gguf |
15.9 | — | — | yes |
LTX25-distilled-DiT-Q6_K.gguf |
17.8 | — | — | yes |
LTX25-distilled-DiT-comfy-nvfp4.safetensors |
12.5 | — | yes | yes |
LTX25-distilled-DiT-comfy-mix4x8-13.8GB.safetensors |
13.8 | — | yes | yes |
LTX25-distilled-DiT-comfy-mix4x8-17GB.safetensors |
17.0 | — | — | yes |
LTX25-distilled-DiT-Q8_0.gguf |
22.7 | — | — | tight |
LTX25-distilled-DiT-comfy-int8.safetensors |
21.5 | — | — | tight |
gemma4-12b-ltx25-comfy-w4a8.safetensors |
10.6 | tight | yes | yes |
On the text encoder: at bf16 it is 26.3 GB and at Lightricks' int8 15.4 GB,
which on a 16 GB card means the encoder alone owns the machine for the one step
that just makes an embedding. No GGUF of the LTX-2.5 encoder exists —
ComfyUI-GGUF gates text encoders on TXT_ARCH_LIST, which carries gemma3 but
not gemma4, so LTX-2.3's gemma3 encoder does have GGUFs and this one cannot.
The open request (#450,
2026-05-28) has not been picked up — but comfy-native quantisations of it do exist and landed the
same day as ours (Winnougan's w4a8-convrot at 10.6 GB, DmitryDB's nvfp4 at 11.2,
vonkaiser's nvfp4-torchao at 8.9). Ours is w4a8 at 10.60 GB, within 2 MB of
Winnougan's — the same format at the same size, published independently. Treat it
as a mirror, not a first.
The 16 GB recipe
LTX25-distilled-DiT-Q3_K_M.ggufat 10.6 GB (orcomfy-w4a4at 11.2 GB if you would rather not install a custom node)gemma4-12b-ltx25-comfy-w4a8.safetensorsfor the text encoder- the stock bf16 VAEs —
ltx-2.5-video-vae-bf16andltx-2.5-audio-vae-bf16(1.5 GB and 0.4 GB; quantising them is not worth what it costs, see below) - tiled VAE decode:
tile_size512,temporal_size32 - the distilled schedule: 9 steps then 4,
video_cfgandaudio_cfgat 1.0
How these were made
Every quant is cut from Lightricks' bf16 originals, never from another quant.
GGUF. An F16 master with general.architecture = "ltxv" and the
model.diffusion_model. prefix stripped, then llama-quantize. Two findings
worth writing down:
- K-quants are legal on essentially the whole model. 4041 of 4349 tensors
have a last dimension divisible by 256. Of the 308 that do not, 306 are bias
vectors that stay F16 like every other bias — 304 gate-logit biases of length
32, plus
proj_out.biasandaudio_proj_out.biasat length 128 — and two are real weight matrices:patchify_proj.weightandaudio_patchify_proj.weight, whose 128-wide axis cannot take a K-quant. Those two fall back to F16, which is what you want anyway since they are the input projections. (MiniMax-H3, for comparison, cannot K-quant at all: its 2688-wide tensors rule it out everywhere.) - IQ-quants are not.
llama-quantizerefuses them for this class of file:failed to quantize: Invalid quantization type for image model (Not supported). So no IQ2/IQ3/IQ4 ladder exists for LTX-2.5, and any repo offering one is doing something else.
comfy-native. ComfyUI 0.32 has its own quantisation system, and Lightricks'
comfy-int8-convrot release is a working example of the file format. The set of
layers to quantise is mirrored from that file rather than guessed: the same
1440 Linears, with adaLN, the timestep embedders, every norm and bias and the
scale-shift tables left in bf16. Those steering layers are about 6% of the file
and rounding them is how a quantised DiT dies. What changes here is the format —
4-bit instead of 8.
Two formats in one file
Two builds here carry two quantisation formats at once — some layers 4-bit,
some 8-bit, in one file. ComfyUI reads comfy_quant per layer prefix
(ops.py:1136) and sets module.quant_format from that layer's own blob, so
this needs nothing new on the loading side. Verified rather than assumed: both
formats load out of one file and forward finite output.
Which layers earn the extra four bits was measured. All 1440 quantised layers were reconstructed at both precisions against the bf16 original, then promoted by error-removed-per-byte until the budget ran out — the greedy solution to minimising total squared reconstruction error under a size cap.
| build | GB | layers at int8 | bytes spent | squared error recovered |
|---|---|---|---|---|
comfy-w4a8 (floor) |
12.5 | 0 / 1440 | — | 0% |
comfy-mix4x8-13.8GB |
13.8 | 386 / 1440 | 1.29 of 8.98 GB | 39.5% |
comfy-mix4x8-17GB |
17.0 | 831 / 1440 | 4.49 of 8.98 GB | 82.1% |
comfy-int8 (ceiling) |
21.5 | 1440 / 1440 | 8.98 GB | 100% |
Ranking by relative error does not work, and this is the part worth stealing. Across all 1440 layers the 4-bit relative error lies between 0.0721 and 0.0737 — a two percent spread — so by that measure every layer is equally worth promoting and the ordering is noise. Weighting each layer by ‖W‖² is what separates them, and once you do, 363 of the first 386 promotions land in the audio tower, only 23 in the video tower.
Why there is no FP8 build here
There was, and it was cut. Measured across 24 identical real layers:
| format | GB | relative error | vs int8 |
|---|---|---|---|
int8_tensorwise |
21.5 | 0.00942 | 1.00x |
mxfp8 |
22.1 | 0.02656 | 2.82x |
float8_e4m3fn |
21.5 | 0.02682 | 2.85x |
float8_e5m2 |
21.5 | 0.05289 | 5.62x |
int8 is nearly three times more accurate at the same size, and INT8 tensor cores go back to Turing where hardware FP8 needs Ada. The reason is configuration rather than the number format: int8 here carries per-channel scales and the convrot rotation that spreads outliers, the way Lightricks configure theirs, while the FP8 builds carry one scale for the whole tensor. There is no card for which those three are the better choice, so they are not published. The one thing not measured is raw matmul speed on Ada and Blackwell.
Smaller than the alternatives, and why
Against realrebelai these come out a flat ~0.9 GB smaller at every level — 0.90 to 0.93 GB, Q2_K through Q8_0 — and the reason is boring and checkable: the 2605 tensors that are never quantised — norms, biases, the scale-shift tables, the two patchify projections — are written F16 here and F32 there. Same weights, half the bytes, no quality argument involved.
Against vantagewithai / Abiray the gap is that same ~0.9 GB at Q6_K and Q8_0 but much wider below it — 2.3 to 4.2 GB from Q2_K through Q4_K_S — which the F32 argument alone does not explain. Their Q2_K and Q3_K_M differ from each other by only 0.8 GB, so much of their low-bit ladder is not actually being quantised.
| level | here | realrebelai | vantagewithai / Abiray |
|---|---|---|---|
| Q2_K | 7.91 | 8.83 | 12.13 |
| Q3_K_S | 9.71 | — | 12.65 |
| Q3_K_M | 10.60 | 11.53 | 12.92 |
| Q4_K_S | 12.93 | 13.85 | 15.33 |
| Q4_K_M | 14.17 | 15.09 | 15.69 |
| Q6_K | 17.75 | 18.66 | 18.62 |
| Q8_0 | 22.73 | 23.63 | 23.60 |
What they actually look like
Every quant below was rendered from the same scene, same seed, same size (544x960 pass 1, x2 to 1088x1920, 385 frames) - so the only variable is the weights. Frames compared side by side at 1:1, plus two independent audio-capable reviewers on the extremes.
- Q2_K - visibly degraded. A haze sits over the whole frame, contrast is flat, and small light sources smear. It exists because a 12 GB card has nothing else, not because it is good.
- Q3_K_S - do not use. Soft everywhere, and it fails structurally: in a three-shot render a man turned into a dog-like animal mid-sentence while his voice continued. Two independent reviewers caught it unprompted, at the same timestamp. This is the only file here that is not merely worse but broken.
- Q3_K_M and up - usable, and genuinely hard to separate at this size. Hair holds strand detail, faces keep their structure, background foliage and fence mesh survive.
- The three comfy-native 4-bit builds (w4a4, w4a8, nvfp4) hold up against the mid GGUFs at equal or smaller size, and need no custom node.
A caution about how these were compared. Encoded bitrate at a fixed quality target looks like a tempting stand-in for detail retained, and it is not one. Measured across the ladder it put Q2_K (7.9 GB) above Q5_K_M (15.9 GB), which the frames flatly contradict - it is measuring high-frequency content, and noise counts as content. It separates the broken file from the rest and nothing more. Any ranking of the middle of this ladder has to come from looking.
Between arms the model also reinterprets the scene - a lamp is orange in one and violet in another, the framing sits higher or lower. That is seed-level variance amplified by quantisation, not a quality difference, and it is worth knowing before you A/B two of these and conclude one is "better".
Honest limits
- The dev (non-distilled) transformer is present at fewer sizes than the distilled one. Distilled is what most people run.
- The VAEs are not quantised and should not be. They are 1.5 GB and 0.4 GB; the saving is inside the noise of a 16 GB budget and the decode is where artefacts are most visible.
- Q2_K is included because a 12 GB card has nothing else, not because it is good.
- These are quantisations, not fine-tunes. Anything the base model does badly, these do badly and smaller.
comfy-w4a4andcomfy-nvfp4were built and tested on a Blackwell card. The w4a4 kernel path declares SM 7.5+ and w4a8 SM 8.0+, but neither has been run here on an Ada or Ampere 16 GB card — which is most of the audience this repo is aimed at. If you are on a 4080 / 4070 Ti Super and one of them falls back to something slow, that is a real possibility and worth reporting; the GGUF ladder has no such question over it. NVFP4 is Blackwell-only by construction.
License
LTX-2.x Community License Agreement, inherited from
Lightricks/LTX-2.5. The license text
travels inside every .safetensors file's metadata.
- Downloads last month
- 332
2-bit
3-bit
4-bit
5-bit
6-bit
8-bit
Model tree for joeygambino/LTX-2.5-Quantized
Base model
Lightricks/LTX-2.5