Prompt gallery

Every model, the same start frame and prompt.

Anime rooftop at dusk

Anime

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

Realism

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

Motion

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

Text in video

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

Faces

He looks out to sea, then turns to the camera and smiles warmly, eyes crinkling. The boat sways gently.

Sneaker splash

Product

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

Get API key
JavaScript
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);