Intro
Day 20!
I lined up 10 AIs that turn a single photo into a few seconds of video. Half ran locally on my DGX Spark, half in the cloud π±
What I used: DGX Spark (LTX-2.3 / Wan 2.2) / 8 cloud models via fal.ai / ComfyUI / ffmpeg
The setup
Item Value Input One identical photo (my cat on a desk) Length 6 seconds Settings Identical The only variable The promptEasy prompt
The cat looks at the camera and meows once. It opens its mouth, meows, then closes it. Its tail flicks and its ears twitch.
Hard prompt
The cat stands upright on its hind legs in a kitchen, wearing a small apron, holding a knife in its front paws and chopping vegetables on a cutting board. Steam rises from a pot behind it.
Please, just watch it
Some of the cats came out with very long legs. Anyway.
First half is the easy prompt, second half the hard one.
On the easy prompt, local and cloud were a fair match. On the hard one… cloud, I think…!
Three rankings below.
Ranking 1: Time
Time per 6-second clip on the hard prompt.
Rank Model Where Time π₯ LTX-2.3 Cloud 41s π₯ Wan 2.7 Cloud 92s π₯ Happy Horse 1.1 Cloud 97s 4 Veo 3.1 Cloud 128s 5 Kling 3 Pro Cloud 205s 6 Seedance 2.0 Cloud 210s 7 LTX-2.3 Local 315s 8 Wan 2.2 Local 651s 9 daVinci-MagiHuman Cloud 710s 10 HunyuanVideo 1.5 Cloud 796sA 19x spread.
Look at 1st and 7th. Same model, LTX-2.3, nearly the same resolution. The only difference is where it ran β 7.6x.
Local setup
DGX Spark (GB10, 128GB unified memory, ~273GB/s). ComfyUI headless, workflows over its API.
LTX-2.3 is distilled fp8 at 8 steps. At 1088Γ1920 peak memory hit 77.8GB, about 60% of 128GB. That was the ceiling. Dropping to 512Γ768 finishes in 70s, but with one-fifth the pixels.
Wan 2.2 is I2V-A14B fp8, 20 steps, 480Γ640. Higher resolution does not finish in reasonable time.
Ranking 2: Cost
Rank Model Per 6 seconds π₯ Local Electricity only π₯ LTX-2.3 (cloud) $0.36 π₯ Wan 2.7 $0.90 4 Kling 3 Pro $1.01 5 Happy Horse 1.1 $1.08 6 Veo 3.1 $2.40 7 Seedance 2.0 $4.09 β HunyuanVideo / MagiHuman Unknown until you run itAn 11x spread.
I did not measure the local electricity, so I am not quoting a number.
Ranking 3: Does it follow instructions
How much of “apron, hind legs, knife, chopping” each one delivered.
β All of it (5 models, all cloud)
Wan 2.7 / Happy Horse 1.1 / Veo 3.1 / Kling 3 Pro / Seedance 2.0
Apron on, standing, knife in the paws, vegetables chopped. Veo and Happy Horse added steam off the pot.
β³ Partway (3 models)
Model Where What happened LTX-2.3 Local Kitchen appeared, cat stood. But a second cat appeared LTX-2.3 Cloud Kitchen appeared, cat never stood daVinci-MagiHuman Cloud Portrait photo in, landscape video outβ Nothing happened (2 models)
Model Where What happened Wan 2.2 Local 11 minutes, cat sat on the desk HunyuanVideo 1.5 Cloud 13 minutes, same deskWhat I learned
On the easy prompt there is no difference. For nudging a photo into motion, quality has saturated.
On the hard prompt there is β but “local = worse” is not the lesson.
- 1 of my 3 local runs made it to the kitchen
- 1 of the 8 cloud runs burned 13 minutes doing nothing
Right tool for the right job.
When you want to Pick Make lots of simple clips Local (volume costs only power) Get a hard instruction through Cloud (better roster) Handle material you cannot upload Local (nothing leaves) Get high resolution Cloud (local capped at 1088Γ1920)Things that broke
One model would not let me pick a resolution
HunyuanVideo 1.5 rejected 720p with a 422. Its schema pins resolution to 480p as a constant.
Line up ten models and some conditions simply cannot be equalized. I measured as-is and footnoted it.
Japanese text turned to tofu in the video
ffmpeg’s drawtext rendered some CJK glyphs as β‘ β “γγΌγ«γ«” fine, “ζ¨ζΊ” dropped.
Fix: draw the text with Pillow and overlay it as an image. For CJK, start there.
Next
Day 21 wraps up Act 1 (Days 1β21).
Thanks for reading πΎ
λ΅κΈ λ¨κΈ°κΈ°