Grok Imagine vs Veo 3.1 Fast
Same start frame, same prompt, blind votes.
1 votes · 0 ties · 0 both bad
| Fact | Grok Imagine | Veo 3.1 Fast |
|---|---|---|
| Arena score | 869 | 1131 |
| 5 second clip | $0.25 | $0.50 |
| Price source | Official | Official |
| Max length | 10s | 8s |
| Max resolution | 720p | 4K |
| Native audio | Yes | Yes |
| Generation time | 119s | 76s |
Side by side
Anime rooftop at dusk
She turns toward the camera as the wind lifts her red scarf. The camera slowly pushes in while the city lights flicker on behind her.
Latte art pour
The milk pours in a steady stream and draws a rosetta on the coffee. Steam rises. The camera holds still with a gentle focus breathing.
Skateboard bowl trick
The skater lands the trick, rolls across the bowl and carves up the far wall. The camera tracks alongside at speed.
Neon sign in the rain
Rain falls in front of the sign. The letters flicker once, then stay lit and sharp, still reading "OPEN LATE". A person with an umbrella walks past.
Fisherman portrait
He looks out to sea, then turns to the camera and smiles warmly, eyes crinkling. The boat sways gently.
Sneaker splash
The camera slowly orbits the shoes while water splashes around them in slow motion. Lighting stays crisp on the product.
Make this video in Korpi
Script, scenes, voice and captions in one place.
Run Grok Imagine via the API
Pay per clip on api.korpi.ai
async function readResponse(response) {
const result = await response.json();
if (!response.ok || result.error || result.status === "failed") {
throw new Error(JSON.stringify(result));
}
return result;
}
const res = await fetch("https://backend.korpi.ai/v1/videos/generations", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.KORPI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"model": "grok-imagine",
"prompt": "A girl with a red scarf turns toward the camera on a neon rooftop at dusk",
"aspect_ratio": "9:16",
"duration": 6
}),
});
let result = await readResponse(res);
const deadline = Date.now() + 30 * 60_000;
while (true) {
let next = result.result_url;
if (!next && ["queued", "in_progress", "pending"].includes(result.status)) {
next = `https://backend.korpi.ai/v1/videos/generations/${result.id}`;
}
if (!next) break;
if (Date.now() >= deadline) throw new Error("Polling timed out");
await new Promise((resolve) => setTimeout(resolve, 3000));
const poll = await fetch(new URL(next, "https://backend.korpi.ai"), {
headers: { Authorization: `Bearer ${process.env.KORPI_API_KEY}` },
});
result = await readResponse(poll);
}
console.log(result);