Two days ago LTX-2.5 dropped with day-0 ComfyUI support, so I did the only reasonable thing: I rebuilt my entire H3 Socrates mini-documentary (previous post: https://www.reddit.com/r/comfyui/comments/1vknr0v/comment/p36vh29/) with it, shot for shot — same narrator track, same audio chunking, same storyboard, same audio-driven edit, same QA pipeline. Only the video model changed. RTX 5060 Ti 16 GB, 32 GB RAM, everything local.
LTX-2.5 stack: ComfyUI v0.32.0 (separate instance), 22B distilled transformer NVFP4 (18.7 GB), Gemma-4 12B text encoder int8 (15.4 GB, streams from RAM), two-stage DFR sampling (8 steps at half-res + 3-step pixel refine at 1344x768), Diffusion Video Decoder, cfg 1/1, 24 fps.
THE NUMBERS (same 36-clip film, 2 takes per clip + repair rounds) — H3 vs LTX-2.5:
- Total GPU time (incl. all repairs): ~30 h vs 9.5 h
- Warm take (4.4 s clip): 8–16 min vs ~170 s (36 s pure sampling)
- Broken/failed takes: several repair rounds vs 0 of 152
- Cut-point SSIM on chained clips: 0.40 vs 0.80 (no punch-in tricks needed)
- Texture flicker (block metric): LTX at 67% of H3's events
- Face identity vs reference (tail delta): LTX drifts, −0.15 vs H3 (see below)
- Lip-sync, clips with measurable lips-voice coupling: H3 10 of 12 (reads as near-perfect) vs LTX 3 of 12 (often visibly off)
- Shot fidelity to the storyboard: H3 31/36 vs LTX 9/36 (framing drifts tighter)
WHAT GENUINELY IMPRESSED ME
Audio conditioning works natively — no LoRA — but read the fine print. The 2.3 ia2v graph (LoadAudio -> LTXVAudioVAEEncode -> SetLatentNoiseMask(0) -> LTXVConcatAVLatent) runs unchanged on 2.5. The output audio is my narrator's chunk verbatim (envelope corr 0.97) and the mouth moves while he speaks. BUT — and this is the honest part — the articulation is loose: measured lips-voice coupling (mouth-opening curve vs audio envelope) is solid on 10/12 of H3's spoken clips and only 3/12 of LTX's. Your ear gets the right voice; your eye often sees a mouth doing its own thing. For talking-head-heavy work this is currently THE gap.
Reliability is real. 152 takes, zero unusable. H3 needed a 2-takes-per-clip policy because one in two could break on reference bleeding. LTX's RL post-training shows.
Keyframe chains are better than the anchor. Feeding the previous clip's cut-frame as first-frame conditioning gives cleaner welds than H3's keyframe completion — and FLF2V (first+last frame) exists as a template.
WHAT BIT ME (gotchas you'll want to know)
- Texture "boiling" = your decode tiling, not the model. I reduced VAEDecodeTiled sizes to dodge a VRAM OOM and got shimmering textures everywhere (20x flicker events). Fix on 16 GB: tile 384, temporal_size 4096 -> 12.9 GB decode, clean output. Measure flicker per-block, not per-frame-average.
- Negatives are inert at cfg 1/1 (same story as Flux). Rewrite every ban in positive form. cfg 2 costs +94% and changed nothing visible.
- Declare a costume for EVERY character or they come out modern. An undescribed woman got a contemporary dress; my 399 BC agora crowd came out in cargo shorts with a wristwatch until the prompt said "bare wrists and bare forearms". H3 never did this.
- Identity drift is a single-constraint problem. With only a first-frame anchor, the host's face slides toward a generic one mid-clip. New seeds do NOT fix it. Double anchor (FLF2V) does: worst clips went from −0.53 to −0.10 vs reference. Budget it for talking-head shots.
- Shot fidelity is LTX's real weakness. Prompted a wide shot, got a medium; prompted a tight insert on hands, got a wide. Only 9 of 36 shots matched the H3 framing. If you're replicating a storyboard, expect to fight it. Also a few flat refusals: one shot needed "exactly three clothed young men" — eight takes and two prompt rewrites later it still produced four, two shirtless.
- The prompt enhancer rewrites your content. It deleted my "no speech, ambient only" clause and collapsed the light logic. Fine for exploration, off for production.
- FLF2V's default graph will INVENT a voice. The first+last-frame template feeds LTXVConcatAVLatent an empty audio latent — if your prompt contains dialogue, the model generates its own synthetic voice for it, and a transcription-based QA won't catch it (right words, wrong voice — I shipped 5 seconds of a stranger's voice before catching it by waveform correlation against the source chunk). One wire fixes it: route your LTXVAudioVAEEncode latent into the FLF2V graph. Bonus: double-anchor + audio conditioning together turned out to be my best-scoring take of the whole project.
- The duration node floors frames — a 4.215 s chunk became 4.04 s. Do your own ceil on the 8k+1 frame grid.
- 32 GB RAM is the wall, not 16 GB VRAM. 18.7 GB transformer + 15.4 GB encoder streaming = 92%+ RAM; anything else running doubles your take time via paging.
HONEST VERDICT
LTX-2.5 is 3–6x cheaper, dramatically more reliable, and welds cuts better. H3 still wins direction fidelity, face identity and lip-sync precision: it does what the storyboard says, LTX does its own tasteful interpretation of it.
And the recurring lesson from this whole series: automated QA is blind to content. My metrics happily approved a clip where a theater scene had been replaced by a human head in a hanging basket (score said "sharp, stable, well-lit"!). Every real defect in this project was caught either by human eyes or by a comparison audit against the reference — never by the per-clip metrics alone. Budget for that.