LTX-2.5 on a 3.1x compressed text encoder
The Gemma4-12B encoder that drives LTX-2.5, squeezed from 26.264 GB to 8.46 GB with no compute-capability floor — it runs on a Volta V100 as happily as on an H200.
Live prompts use the corrected gemma4-raw-intermediate-slots-v1
conditioning contract: explicit BOS, a 1024-token left-padded Gemma forward,
valid-token extraction, and raw intermediate hidden-state slots. This is an
end-to-end demo: output also depends on the third-party quantized DiT, custom AV
guide handling, scheduling and the optional refinement pass described below.
Video and audio are generated together; the clips have their own soundtrack.
EN — I'm a student researching ML quantization. Getting this one done burned through so much in server bills that from here on I'll only be able to afford niu lai movies. Thank you for using the model.
한국어 — 저는 ML 양자화를 연구하는 학생입니다. 양자화를 진행하면서 서버 비용을 너무 많이 써서, 앞으로 영화는 niu lai만 봐야 할 것 같습니다. 모델을 사용해 주셔서 감사합니다.
中文 — 我是一名研究机器学习量化的学生。做这次量化烧掉了太多服务器费用, 以后看电影大概只能看 niu lai 了。感谢您使用这个模型。
☕ Buy me a coffee · 커피 한 잔 사주기 · 请我喝杯咖啡
Legacy sample pairs — before the conditioning correction
Nothing below was generated on demand — these are the published clips from
samples/, rendered with everything downstream of the encoder held identical:
same DiT, same seed, same 8-step schedule, same VAE settings, one process, one
V100. Within each old pair, the encoder checkpoint is the only variable.
These clips used the same older hidden-state preprocessing on both sides and
predate the live gemma4-raw-intermediate-slots-v1 path. They are retained as
historical checkpoint comparisons, not as evidence for the corrected live
runtime or as a corrected BF16 oracle comparison.
The deterministic column is the one that attributes a difference to the
encoder. The vendor's default sampler, euler_ancestral, re-rolls noise at every
step, so the two builds wander into different takes of the same scene and the
pair stops being a controlled comparison. euler injects nothing, so the seed
fixes the starting noise and the conditioning is all that is left to move a pixel.
Four of the five legacy deterministic pairs hold together. The dune does not — BF16 renders a soldier in fatigues where the 4-bit renders a man in a business suit. Within that old controlled setup, the checkpoint change is the remaining variable. Neither build followed the requested astronaut, so this single pair should not be generalized into a current prompt-compliance claim.
Image- and video-to-video needed a fix ComfyUI does not ship. LTXVAddGuide
calls torch.cat on what is a NestedTensor for LTX-2.5, so it raises before
it can do anything. The model, sampler and mask plumbing all support AV guides
already — ltx_av_guide.py unwraps the pair, runs the stock node on the video
half and re-wraps, so the guide arithmetic stays the vendor's.
Measured on a 16 GB V100 at 512x320, 25 frames: t2v 98.8 s, i2v 62.7 s,
v2v 86.5 s, at 5.84-6.80 GiB of allocated VRAM. Size a card from what
nvidia-smi reports rather than that figure — it counts only live allocator
blocks, and for the encoder alone the gap between the two is close to 2 GiB
(8.48 GiB allocated against 9.70 GiB on the card). An i2v first frame lands
relL2 0.0766 from its guide image, against 0.7061 for the same seed without
the guide.
The DiT is a third-party Q3_K_M quantization, not the one the model card's
sample clips were rendered with — that exact file is no longer retrievable. Some
of what you see is its doing, not the encoder's.