Grok Imagine 1.0 Video is the pick when a clip has to run longer than the usual few seconds and resolution matters less. xAI released it in February 2026. It makes videos from 6 to 30 seconds, from a text prompt or from one to seven images, and chooses the mode by itself depending on how many images you send.
Prompts can be up to 4,000 characters. Without changes you get 6 seconds at 480p.
What you can make
- 20-30 second clips for concepts and social posts
- One continuous sequence built from several reference images
- Cheap 480p drafts to check an idea
- Vertical 9:16 videos straight from text
Settings that matter
duration: 6 to 30 seconds, sent as a number such as12, not as text.resolution:480p(default) for drafts,720pfor anything you publish.aspect_ratio: 16:9, 9:16, 1:1, 3:2 or 2:3 for text-to-video. With images, the output follows the reference shape.image_urls: 1 to 7. Put the image with your preferred framing first.- For long clips, write the action as a series of beats so the motion keeps moving forward.
Starter prompt
Beat 1: a paper boat drifts down a rain gutter. Beat 2:
it slides into a puddle and spins. Beat 3: a child's
hand lifts it out. Low camera at street level, overcastKeep the beat structure and change the subject; add more beats for longer durations.
Questions
What does a Grok Imagine 1.0 clip cost?
from $0.0299 per second. The estimate appears before the job starts, and a failed clip costs $0.
Does it make sound?
Kadraris offers no audio option for this version. For image-to-video with native sound, use Grok Imagine Video 1.5.
Can I go beyond 30 seconds?
Not in one request. Render several clips and join them in an editor.
Grok Imagine 1.0 Video in your code
curl https://kadraris.com/v1/generate?wait=60 \
-H "Authorization: Bearer $KADRARIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-imagine-1.0-video",
"input": {
"prompt": "Tracking shot of a cyclist riding through an empty city street at dawn, long shadows, light fog, film look",
"aspect_ratio": "16:9",
"resolution": "480p",
"duration": 6
}
}'import os, time, requests
API = "https://kadraris.com/v1"
H = {"Authorization": f"Bearer {os.environ['KADRARIS_API_KEY']}"}
task = requests.post(f"{API}/generate", headers=H, json={
"model": "grok-imagine-1.0-video",
"input": {
"prompt": "Tracking shot of a cyclist riding through an empty city street at dawn, long shadows, light fog, film look",
"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://kadraris.com/v1";
const headers = { Authorization: `Bearer ${process.env.KADRARIS_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": "Tracking shot of a cyclist riding through an empty city street at dawn, long shadows, light fog, film look",
"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));
Input fields
| 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 |
Fetch this list as JSON with GET /v1/models/grok-imagine-1.0-video.























