Grok Imagine 1.0 Video is xAI's February 2026 video model. It generates clips from 6 to 30 seconds at 480p or 720p, either from a text prompt or from 1 to 7 reference images. The mode is picked automatically by the number of images you send. Text-to-video supports five aspect ratios (16:9, 9:16, 1:1, 3:2, 2:3); with images, the output ratio follows the reference. Prompts can be up to 4,000 characters, and the default is a 6-second clip at 480p.
Best for
- Longer 20-30 second clips at modest resolution
- Turning a set of reference images into one sequence
- Quick 480p concept videos
- Vertical 9:16 clips from text
Prompting tips
- Send
durationas a number (for example 12), not as a string. - Put the image with the framing you want first, because the output ratio follows the reference.
- For long clips, describe a sequence of beats so the motion keeps developing.
- Raise
resolutionto 720p for anything you publish.
FAQ
How much does Grok Imagine 1.0 Video cost?
The rate is from $0.0299 per second. The estimate is shown before the job starts, and failed generations are not charged.
How long can Grok Imagine 1.0 Video clips be?
Between 6 and 30 seconds.
Does Grok Imagine 1.0 Video support image-to-video?
Yes. Send 1-7 images in image_urls and it switches to image-to-video automatically. For image-to-video with native audio, see Grok Imagine Video 1.5.
How to call Grok Imagine 1.0 Video via API
curl https://jantaris.com/v1/generate?wait=60 \
-H "Authorization: Bearer $JANTARIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-imagine-1.0-video",
"input": {
"prompt": "A slow dolly shot through a neon-lit night market in the rain, reflections on wet asphalt, cinematic",
"aspect_ratio": "16:9",
"resolution": "480p",
"duration": 6
}
}'import os, time, requests
API = "https://jantaris.com/v1"
H = {"Authorization": f"Bearer {os.environ['JANTARIS_API_KEY']}"}
task = requests.post(f"{API}/generate", headers=H, json={
"model": "grok-imagine-1.0-video",
"input": {
"prompt": "A slow dolly shot through a neon-lit night market in the rain, reflections on wet asphalt, cinematic",
"aspect_ratio": "16:9",
"resolution": "480p",
"duration": 6
}
}).json()
while task["status"] in ("queued", "running"):
time.sleep(3)
task = requests.get(f"{API}/tasks/{task['id']}", headers=H).json()
print(task["status"], task["cost"], [o["url"] for o in task["output"]])const API = "https://jantaris.com/v1";
const headers = { Authorization: `Bearer ${process.env.JANTARIS_API_KEY}`, "Content-Type": "application/json" };
let task = await (await fetch(`${API}/generate`, {
method: "POST",
headers,
body: JSON.stringify({
"model": "grok-imagine-1.0-video",
"input": {
"prompt": "A slow dolly shot through a neon-lit night market in the rain, reflections on wet asphalt, cinematic",
"aspect_ratio": "16:9",
"resolution": "480p",
"duration": 6
}
}),
})).json();
while (task.status === "queued" || task.status === "running") {
await new Promise((r) => setTimeout(r, 3000));
task = await (await fetch(`${API}/tasks/${task.id}`, { headers })).json();
}
console.log(task.status, task.cost, task.output.map((o) => o.url));
Parameters
| Parameter | Type | Allowed | Default |
|---|---|---|---|
prompt * | string | ≤ 4000 chars | |
aspect_ratio | string | 16:9 9:16 1:1 3:2 2:3 | 16:9 |
resolution | string | 480p 720p | 480p |
duration | integer | 6-30 | 6 |
image_url | string | ||
image_urls | array | max 7 |
The same schema is available from GET /v1/models/grok-imagine-1.0-video.









