xAI's video generation model based on the Aurora architecture, supporting text-to-video, image-to-video, and video editing with native audio-visual synthesis at up to 720p
Details
Model ID
grok-imagine-video
Also known as:
grok-video
Creator
xAI
Family
grok-imagine
Released
February 2026
Tags
video-generation
text-to-video
image-to-video
video-editing
audio-generation
Providers & Pricing (1)
Replicate
replicate/grok-imagine-video
Provider Model ID:
xai/grok-imagine-video
$0.050
/second
grok-video API Async video generation
Base URL
https://api.lumenfall.ai/v1
Model
grok-imagine-video
Text to Video Generate
Submit a prompt, poll for the result, and download the video
# Step 1: Submit video generation request
VIDEO_ID=$(curl -s -X POST \
https://api.lumenfall.ai/v1/videos \
-H "Authorization: Bearer $LUMENFALL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-imagine-video",
"prompt": "A serene mountain landscape at sunset",
"size": "1024x1024"
}' | jq -r '.id')
echo "Video ID: $VIDEO_ID"
# Step 2: Poll for completion
while true; do
RESULT=$(curl -s \
https://api.lumenfall.ai/v1/videos/$VIDEO_ID \
-H "Authorization: Bearer $LUMENFALL_API_KEY")
STATUS=$(echo $RESULT | jq -r '.status')
echo "Status: $STATUS"
if [ "$STATUS" = "completed" ]; then
echo $RESULT | jq -r '.output.url'
break
elif [ "$STATUS" = "failed" ]; then
echo $RESULT | jq -r '.error.message'
break
fi
sleep 5
done
const BASE_URL = 'https://api.lumenfall.ai/v1';
const API_KEY = 'YOUR_API_KEY';
// Step 1: Submit video generation request
const submitRes = await fetch(`${BASE_URL}/videos`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'grok-imagine-video',
prompt: 'A serene mountain landscape at sunset',
size: '1024x1024'
})
});
const { id: videoId } = await submitRes.json();
console.log('Video ID:', videoId);
// Step 2: Poll for completion
while (true) {
const pollRes = await fetch(`${BASE_URL}/videos/${videoId}`, {
headers: { 'Authorization': `Bearer ${API_KEY}` }
});
const result = await pollRes.json();
if (result.status === 'completed') {
console.log('Video URL:', result.output.url);
break;
} else if (result.status === 'failed') {
console.error('Error:', result.error.message);
break;
}
await new Promise(r => setTimeout(r, 5000));
}
import requests
import time
BASE_URL = "https://api.lumenfall.ai/v1"
API_KEY = "YOUR_API_KEY"
HEADERS = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
# Step 1: Submit video generation request
response = requests.post(
f"{BASE_URL}/videos",
headers=HEADERS,
json={
"model": "grok-imagine-video",
"prompt": "A serene mountain landscape at sunset",
"size": "1024x1024"
}
)
video_id = response.json()["id"]
print(f"Video ID: {video_id}")
# Step 2: Poll for completion
while True:
result = requests.get(
f"{BASE_URL}/videos/{video_id}",
headers=HEADERS
).json()
if result["status"] == "completed":
print(f"Video URL: {result['output']['url']}")
break
elif result["status"] == "failed":
print(f"Error: {result['error']['message']}")
break
time.sleep(5)
Gallery
View all 2 imagesGrok Imagine Video FAQ
How do I use Grok Imagine Video via API?
You can use Grok Imagine Video through Lumenfall's OpenAI-compatible API. Send requests to the unified endpoint with model ID "grok-imagine-video". Code examples are available in Python, JavaScript, and cURL.
Which providers offer Grok Imagine Video?
Grok Imagine Video is available through Replicate on Lumenfall. Lumenfall automatically routes requests to the best available provider.
Try Grok Imagine Video in Playground
Generate images with custom prompts — no API key needed.