Grok Imagine 1.5 — put glass and light in motion
Video
Grok Imagine Video 1.5 · 5 s
by Henri Huotari · Oct 28, 2026
Animate the Qwen glass still life into a five-second material study with a subtle camera move and native audio. The prompt preserves the vessel and stage while asking for shifting reflections, refraction and restrained sound.
This file couldn't be loaded. The link may have expired.
This file couldn't be loaded. The link may have expired.
This file couldn't be loaded. The link may have expired.
Run it yourself
Set IMMERSIVE_API_KEY to an API key from your account. Create a free account to get one.
curl -X POST 'https://ai.im.inc/api/v1/video/generate' \
-H "Authorization: Bearer $IMMERSIVE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"image": "https://s3.eu-central-1.amazonaws.com/ai.im.inc/examples/inputs/0000414e-6bd9-4f21-9c5d-b0213fda27cc/input_image.png",
"model": "grok-imagine-video-1.5",
"prompt": "A single five-second photoreal product-material study from this image. Preserve exactly the one pink wavy glass vessel on charcoal blocks, the warm ivory table, dark wall, and direction of the white sunlight. The camera slides smoothly a few centimetres to the left, revealing real glass thickness and shifting the pink refracted caustic across the tabletop. The vessel stays firmly planted and geometrically constant, no liquid is added and no objects enter. Refined luxury still-life cinematography, tactile tiny surface imperfections, physically believable reflections and shadows, no cuts or text. Native sound is a quiet airy room tone with one very soft resonant glass tone, no speech, no vocals, no dramatic music.",
"duration": 5,
"resolution": "1080p",
"aspect_ratio": "16:9",
"generate_audio": true
}'
# Set JOB_ID to the response's "id", then poll every few seconds until the job has finished:
curl "https://ai.im.inc/api/v1/video/$JOB_ID" \
-H "Authorization: Bearer $IMMERSIVE_API_KEY"
# The finished response has the result at url.
const headers = { Authorization: `Bearer ${process.env.IMMERSIVE_API_KEY}` };
const response = await fetch("https://ai.im.inc/api/v1/video/generate", {
method: "POST",
headers: { ...headers, "Content-Type": "application/json" },
body: JSON.stringify({
"image": "https://s3.eu-central-1.amazonaws.com/ai.im.inc/examples/inputs/0000414e-6bd9-4f21-9c5d-b0213fda27cc/input_image.png",
"model": "grok-imagine-video-1.5",
"prompt": "A single five-second photoreal product-material study from this image. Preserve exactly the one pink wavy glass vessel on charcoal blocks, the warm ivory table, dark wall, and direction of the white sunlight. The camera slides smoothly a few centimetres to the left, revealing real glass thickness and shifting the pink refracted caustic across the tabletop. The vessel stays firmly planted and geometrically constant, no liquid is added and no objects enter. Refined luxury still-life cinematography, tactile tiny surface imperfections, physically believable reflections and shadows, no cuts or text. Native sound is a quiet airy room tone with one very soft resonant glass tone, no speech, no vocals, no dramatic music.",
"duration": 5,
"resolution": "1080p",
"aspect_ratio": "16:9",
"generate_audio": true
}),
});
const job = await response.json();
// Poll every few seconds while the job is still running.
const running = ["pending", "queued", "submitted", "starting", "processing", "running", "streaming", "in_queue", "in_progress"];
let result;
do {
await new Promise((resolve) => setTimeout(resolve, 5000));
result = await (await fetch(`https://ai.im.inc/api/v1/video/${job.id}`, { headers })).json();
} while (running.includes(String(result.status).toLowerCase()));
console.log(result.url);
import os
import time
import requests
headers = {"Authorization": f"Bearer {os.environ['IMMERSIVE_API_KEY']}"}
job = requests.post(
"https://ai.im.inc/api/v1/video/generate",
headers=headers,
json={
"image": "https://s3.eu-central-1.amazonaws.com/ai.im.inc/examples/inputs/0000414e-6bd9-4f21-9c5d-b0213fda27cc/input_image.png",
"model": "grok-imagine-video-1.5",
"prompt": "A single five-second photoreal product-material study from this image. Preserve exactly the one pink wavy glass vessel on charcoal blocks, the warm ivory table, dark wall, and direction of the white sunlight. The camera slides smoothly a few centimetres to the left, revealing real glass thickness and shifting the pink refracted caustic across the tabletop. The vessel stays firmly planted and geometrically constant, no liquid is added and no objects enter. Refined luxury still-life cinematography, tactile tiny surface imperfections, physically believable reflections and shadows, no cuts or text. Native sound is a quiet airy room tone with one very soft resonant glass tone, no speech, no vocals, no dramatic music.",
"duration": 5,
"resolution": "1080p",
"aspect_ratio": "16:9",
"generate_audio": True,
},
timeout=300,
).json()
# Poll every few seconds while the job is still running.
running = {"pending", "queued", "submitted", "starting", "processing", "running", "streaming", "in_queue", "in_progress"}
while True:
time.sleep(5)
result = requests.get(f"https://ai.im.inc/api/v1/video/{job['id']}", headers=headers, timeout=60).json()
if str(result.get("status", "")).lower() not in running:
break
print(result["url"])
{
"id": "d4fbfda3e191888cab830fa84e8f0014",
"url": "https://s3.eu-central-1.amazonaws.com/ai.im.inc/examples/outputs/0000414e-6bd9-4f21-9c5d-b0213fda27cc/result.mp4",
"status": "succeeded",
"duration": "5.00",
"model_name": "grok-imagine-video-1.5"
}
Your browser blocked the clipboard. Select the text and copy it by hand.
How the job runs
- POST returns the job's id and status right away.
- Poll GET /api/v1/video/{id} every few seconds while the job is running.
- When status is succeeded, download url. Failed jobs are refunded automatically.
- Endpoint
- POST /api/v1/video/generate
- Model
- grok-imagine-video-1.5
- Output
- Video · MP4