Intro
Day 15!
Today's experiment: turn one photo of my family's cat into a video that moves — and meows.
An image-to-video AI takes a single photo and imagines how the scene continues. I ran two of them and compared the results.
What I used: DGX Spark (my home AI machine) / two local video AIs (LTX-2.3 and Wan 2.2) / one photo of my family's cat.
Today's experiment
What I wanted to find out
Give both AIs the same cat photo and the same request — "look at the camera and meow once, about 4–5 seconds" — and compare them.
The two models
- Wan 2.2: a well-established favorite for local video. Video only, no audio
- LTX-2.3: a newer model (March 2026) that generates video and audio together in one pass
- Same photo, same kind of prompt. Measured: generation time / memory / quality / sound
The goal
Decide which one to use when — with actual numbers from my own machine, not vibes.
The result first: 30 seconds vs 475 seconds
For a ~4–5 second video, LTX-2.3 took 30 seconds. Wan 2.2 took 475 seconds. Roughly a 16x gap.
What's a "step"? The number of refinement passes the AI makes while drawing the video. More steps = more careful but slower.
Time wasn't the only difference, though. Here is each result in turn.
Wan 2.2 — nearly photoreal, but 8 minutes per video
Wan 2.2's output (475s, silent).
The fur, markings, and face are almost indistinguishable from the real photo, and it meows exactly as asked. But one video takes 475 seconds (~8 minutes), with no sound (by design).
A speed-up add-on cut it to 70 seconds, at the cost of tamer motion — more of a tongue flick than a proper meow.
LTX-2.3 — 30 seconds, and it came with a meow
Here is LTX-2.3's output, sound included (volume on 🔊):
Done in 30 seconds — and along with the video, it generated an audio track with actual meows. I asked for one meow; it enthusiastically gave two, short cat-like "myah" sounds roughly in sync with the mouth. (And it sounds startlingly like my family cat's real meow.)
Image quality looks about the same as Wan's on screen. The difference is in the motion: Wan moved more, and more realistically; LTX was a bit more subdued.
Bonus: give it the first and last frame, and you can design the camera work
LTX-2.3 can take a first frame and a last frame, and fill in everything between.
I gave it the wide shot as the first frame, and a face close-up (a crop of the same photo) as the last.
Generated in 35 seconds.
The video starts wide, meows while zooming in, and ends on the close-up I specified.
The numbers
| Time | Peak memory | Audio | Quality impression | |
|---|---|---|---|---|
| Wan 2.2 (standard) | 475s | ~49GB | none | near-photoreal, faithful motion |
| Wan 2.2 + speed LoRA | 70s | ~46GB | none | clean but tamer motion |
| LTX-2.3 | 30s | ~57GB | yes | on par with Wan; tamer motion |
| LTX-2.3 (designed zoom) | 35s | — | yes | same as above |
Resolutions and frame counts follow each model's recommended settings, so this isn't a strictly identical-conditions benchmark (details below).
Today's takeaways
- Distinct characters: Wan for faithful motion, LTX for speed and sound. Not "which is better" but "which for what"
- Specifying the first and last frame let me design the camera work
- The time gap is really a retry-count gap: at 30 seconds, "one more try" is easy
The details
Environment and models
- Machine: DGX Spark (128GB unified memory)
- ComfyUI v0.24.0 (native LTX-2.3 support) + Lightricks' official custom nodes
- Both models in their fp8 (weight-reduced) versions; ~91GB of downloads total
- Wan 2.2 I2V-A14B (high-noise/low-noise pair, 14GB each) + its text encoder
- LTX-2.3 22B distilled (28GB) + Gemma 3 12B as its text encoder (13GB)
- The speed add-on for Wan is the lightx2v 4-step LoRA
- Attention backend unified on PyTorch SDPA for both models
- Runs were headless ComfyUI (API calls) driven by a small runner script that logs time and memory for every run
Comparison-condition fine print
- Wan 2.2: 480×640, 81 frames, 16fps (~5.1s), 20 steps
- LTX-2.3: 512×768, 97 frames, 24fps (~4.0s), 8 steps
- Each model ran its official template's representative settings, so resolution/frames/steps differ — it's a comparison of each model's everyday settings
- Per-step time: ~23s for Wan, ~2.6s for LTX
The one gotcha I hit (LTX)
My hand-built workflow crashed inside an LTX helper node (LTXVCropGuides).
- Cause: with audio+video generation, the latent is a special combined tensor (a NestedTensor), and this node calls an operation it doesn't support
- Fix #1: for plain image-to-video, the node isn't needed at all — removing it solved the crash
- Fix #2: for the first/last-frame trick the node is required, so I moved it to run after the audio/video split, where the tensor is ordinary again
- The known audio-VAE NaN bug I had braced for never appeared
License notes
- Wan 2.2: Apache 2.0. Commercial use OK, generated content is yours
- LTX-2.3: LTX-2 Community License. Free commercial use under $10M annual revenue. Disclosing that content is AI-generated is mandatory. Also has an unusual remote-access restriction clause
- Gemma 3 (LTX's text encoder): Gemma Terms of Use. Commercial use OK, outputs belong to the user, subject to the prohibited-use policy
Sources
Outro
One photo, and 30 seconds later my family's cat was meowing on screen. See you next time!
Thanks for reading!





Top comments (0)