We ran four image to video models against each other on the same three scenes, and to keep it fair every model animated the exact same starting image. HappyHorse 1.1, Seedance 2.0 Mini, Seedance 2.0 Pro (here at 4K), and Grok Imagine Video 1.5 all start from an identical frame, so any difference you see is the model, not a different starting picture. All four run on EmpirioLabs through one API.
Watch the four way comparison
Specs at a glance
| Model | Inputs | Max resolution | Max duration | Price per second at 720p |
|---|---|---|---|---|
| HappyHorse 1.1 | Text, image, reference to video | 1080p | 15 seconds | $0.14 |
| Seedance 2.0 Mini | Text, image, reference, edit, extend | 720p | 15 seconds | $0.150 |
| Seedance 2.0 Pro | Text, image, reference, edit, extend | 4K | 15 seconds | $0.300 |
| Grok Imagine Video 1.5 | Image to video | 720p | 15 seconds | $0.168 |
Seedance 2.0 Pro also generates at 1080p and 4K, with 4K at $1.555 per second, which is the tier we used for its panel in the video. Grok Imagine Video 1.5 adds $0.05 per input image on top of the per second rate. Every current rate for every tier lives on the pricing page.
How we ran it
For each scene we first generated one starting image with Seedream 5.0 Lite at 2848 by 1600, a 16:9 frame. Then every model animated that same image, one generation each, 5 seconds per clip, with default settings. Seedance 2.0 Pro ran at 4K, which is 3840 by 2160, and the other three ran at 720p. The three scenes were a peregrine falcon diving through a red rock canyon, a phoenix soaring over a volcanic ridge, and a pod of dolphins leaping across turquoise ocean. Each model got the same motion prompt per scene, asking for a single continuous shot with no cuts.
What to look for
Because every model starts from the same frame, this comparison is really about motion. Watch how natural the movement looks, how closely each clip follows the motion prompt, how stable the subject stays from frame to frame, and how each model handles fast action like the falcon dive or the dolphin leaps. Some models lean smooth and cinematic, others lean punchy and dynamic. We are not declaring a winner. Run the clip, see which look fits the kind of video you want to make, and pick from there.
Generate any of these on EmpirioLabs
All four models serve the same image to video endpoint, so you send a starting image plus a motion prompt and swap the model id to compare. Point at https://api.empiriolabs.ai/v1 and post to the videos endpoint.
curl https://api.empiriolabs.ai/v1/videos/generations \
-H "Authorization: Bearer $EMPIRIOLABS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-0-pro",
"image_url": "https://example.com/your-starting-frame.png",
"prompt": "The phoenix soars forward over the volcanic ridge, embers streaming behind it, single continuous shot, no cuts."
}'
Change "model" to happyhorse-1-1, seedance-2-0-mini, or grok-imagine-video-1-5 and send the same image and prompt again. That one line swap is how you compare every video model on your own footage. You can also try them in the playground.
Frequently asked questions
Which video models were tested?
HappyHorse 1.1, Seedance 2.0 Mini, Seedance 2.0 Pro at 4K, and Grok Imagine Video 1.5 from xAI. All run on EmpirioLabs through one API.
Did every model animate the same image?
Yes. We generated one starting frame per scene with Seedream 5.0 Lite, then fed that same frame to all four models. This isolates the motion model from the image, so the comparison is fair.
What is the difference between Seedance 2.0 Mini and Pro?
Mini is the low cost tier and tops out at 720p. Pro adds 1080p and 4K and a higher per second rate. In this test Pro ran at 4K and Mini ran at 720p, so you can see both tiers of the same family side by side.
What settings were used?
5 seconds per clip, default settings, one generation each, no retries. Seedance 2.0 Pro ran at 4K and the other three at 720p. Each model got the same motion prompt per scene.
Can I use my own starting image?
Yes. The image to video endpoint takes any starting image plus a motion prompt. Swap the model id to compare the same input across models.



