| # Samples β 4-bit against the BF16 original |
|
|
| Every clip here exists twice: once from the **BF16 original (26.264 GB)** and |
| once from this **4-bit build (8.46 GB)**. `compare-NN.mp4` puts the pair side by |
| side, BF16 on the left. |
|
|
| Everything downstream of the text encoder is held identical β same DiT |
| (`LTX25-distilled-DiT-Q3_K_M`), same seed, same 8-step distilled schedule, same |
| VAE tiling, one process, one GPU. The encoder is the only thing that differs. |
|
|
| 768x512, 24 fps, 2.0 s, video and audio generated together, rendered on a |
| **Tesla V100-SXM2-16GB** β the card this compression exists to fit. |
|
|
| ## Two sets, because they answer different questions |
|
|
| `compare-NN.mp4` uses **`euler_ancestral`**, the vendor default and what you |
| actually get. It injects fresh noise at every step, so a conditioning difference |
| of cosine 0.998 does not stay small β it steers the trajectory elsewhere and the |
| two builds return different **takes of the same scene**. Look at these to see |
| what the model produces. They cannot tell you what the compression cost, and |
| reading them that way will mislead you: in `compare-01` the BF16 side has a |
| second figure on the dune that the 4-bit side does not, and that is the sampler |
| re-rolling, not the encoder forgetting. |
| |
| `compare-det-NN.mp4` uses **`euler`**, which injects nothing. Same seed means |
| the same starting noise, so the only thing left that can move a pixel is the |
| conditioning. **This is the set that attributes a difference to the encoder.** |
| |
| It is worth saying what this did *not* do. Removing the ancestral noise did not |
| reliably bring the pairs closer β measured below, it helped enormously on one |
| clip and made three marginally worse. Fixing the starting noise does not fix |
| the path: eight distilled steps through a 22B transformer are nonlinear enough |
| that a cosine-0.998 conditioning difference can still land somewhere else. So |
| the deterministic set is the honest attribution, not a flattering one. |
| |
| ## Prompts |
| |
| Written to pull on what a text encoder has to keep apart: camera instruction, |
| shot scale, lighting direction, surface material, and a distinct audio scene. |
| |
| | # | seed | prompt | |
| |---|---:|---| |
| | 00 | 20260813 | A humanoid robot steps out of a freight elevator into a rain-slick loading bay, sodium lights flaring off its wet white shell. Locked-off low camera as the robot turns toward the lens. Audio: heavy rain on metal, one servo whine, distant thunder. | |
| | 01 | 20260814 | A lone astronaut in a scuffed white suit walks across a red dune at sunset, a long shadow stretching behind, dust curling off each bootfall. Low tracking camera moving with the walk. Audio: wind over sand, suit fan hum, muffled breathing. | |
| | 02 | 20260815 | A blacksmith hammers glowing orange steel on an anvil inside a dark forge, sparks bursting outward with every strike, warm rim light on soot-streaked arms. Medium shot, camera static. Audio: ringing hammer strikes, roaring bellows, a hiss as the blade is quenched. | |
| | 03 | 20260816 | A vintage sports car slides through a wet mountain hairpin at night, headlights sweeping across the guardrail, spray lit red by the tail lights. Camera pans to follow the car through the turn. Audio: engine roar, tyre squeal, rain on asphalt. | |
| | 04 | 20260817 | A battered rescue robot pushes through thick smoke in a collapsed corridor, headlamp cutting a cone through the dust, orange emergency light pulsing on the walls. Handheld camera following from behind. Audio: crackling fire, a muffled alarm, grinding treads. | |
| |
| ## Drift, measured before any of it reaches the DiT |
| |
| 4-bit conditioning against BF16 conditioning, same prompts, same tokenizer path: |
| |
| | # | video relL2 | audio relL2 | video cosine | audio cosine | |
| |---|---:|---:|---:|---:| |
| | 00 | 0.05820 | 0.05010 | 0.99831 | 0.99875 | |
| | 01 | 0.05614 | 0.04925 | 0.99843 | 0.99879 | |
| | 02 | 0.07002 | 0.06274 | 0.99755 | 0.99803 | |
| | 03 | 0.05959 | 0.05222 | 0.99823 | 0.99864 | |
| | 04 | 0.05203 | 0.04624 | 0.99865 | 0.99893 | |
| | **mean** | **0.05919** | **0.05211** | | | |
| |
| Prompt 02, the forge, is hardest on both branches. It also has the most |
| simultaneous physical events β sparks, glow, bellows, quench β which is where a |
| text encoder has the most to lose. |
| |
| ## Difference on screen |
| |
| Mean absolute error per channel over every decoded frame, 4-bit against BF16. |
| Not relative L2: these scenes run from a night forge to a sunlit dune, and |
| relative error divides by the frame's own norm, so a dark clip would score worse |
| than a bright one for the same visible difference. MAE has its own bias β it |
| flatters dark frames β so **only the ratio compares across rows**, because |
| within one scene the brightness cancels. |
| |
| | # | scene | `euler_ancestral` | `euler` | ratio | |
| |---|---|---:|---:|---:| |
| | 00 | robot, rain | 0.0172 | 0.0182 | 0.94x | |
| | 01 | dune | 0.0596 | 0.0580 | 1.03x | |
| | 02 | forge | 0.0098 | 0.0129 | 0.76x | |
| | 03 | night road | 0.0702 | 0.0252 | **2.79x** | |
| | 04 | smoke | 0.0128 | 0.0165 | 0.77x | |
| | | **mean** | **0.0339** | **0.0261** | 1.26x | |
|
|
| ## The one that actually diverged |
|
|
| Under deterministic sampling, four of the five pairs hold together: same |
| composition, same lighting, same timing, differing in surface detail. Clip 00 |
| gives the 4-bit side slightly more panel detail on the hull; clips 02, 03 and 04 |
| are close enough that finding the difference takes looking. |
|
|
| **Clip 01 is not.** Same terrain, same sun, same shadow, same walk β and BF16 |
| renders a soldier in helmet and fatigues while the 4-bit renders a man in a |
| business suit. The sampler is deterministic and the seed is identical, so that |
| belongs to the encoder. |
|
|
| It deserves one qualification rather than being either buried or oversold. |
| Neither build followed the prompt: it asked for an astronaut in a scuffed white |
| suit and got neither. The model has no confident answer here, so it lands on an |
| arbitrary human, and in that regime a small conditioning change flips which one. |
| The difference is real and attributable; its size reflects a prompt that was |
| already unstable on both sides. |
|
|
| ## What these prove, and what they do not |
|
|
| They show that at 8.46 GB the encoder drives the same DiT to a comparable result |
| on five prompts, at one resolution, one length and one seed each. |
|
|
| They are **not** a claim that the 4-bit encoder is indistinguishable from BF16. |
| No blind study, no listening test, no sweep over seeds or resolutions. |
|
|
| **Prompt adherence is partial, and mostly on both builds equally.** Clip 00 has |
| no freight elevator and frames far tighter than "locked-off low camera" implies; |
| clip 04 reads closer to a firefighter than a rescue robot; clip 01 produces no |
| astronaut on either side. The BF16 original does the same thing on the same |
| prompts, so that is a limit of LTX-2.5 distilled rather than compression damage. |
|
|
| The clips are published unedited β including clip 01, where the compression |
| does visibly cost something β rather than replaced with prompts that happen to |
| flatter the result. |
|
|
| ## Files |
|
|
| * `compare-NN.mp4` β BF16 left, 4-bit right, `euler_ancestral`. |
| * `compare-det-NN.mp4` β the same pairing under deterministic `euler`. |
| * `bf16-NN.mp4`, `4bit-NN.mp4` β the individual `euler_ancestral` renders. |
| * `bf16-det-NN.mp4`, `4bit-det-NN.mp4` β the individual `euler` renders, if you |
| want to step through them frame by frame rather than trust the stack. |
|
|
| Audio in the paired clips is taken from the 4-bit side rather than mixed: the |
| two tracks are different renders of the same prompt, and mixing them would |
| produce a phasing artefact belonging to neither build. |
|
|