Documentation Index Fetch the complete documentation index at: https://docs.oxen.ai/llms.txt
Use this file to discover all available pages before exploring further.
Try Grok Imagine - Video Edit in the Workbench Run this model interactively, tune parameters, and compare outputs.
Model ID: xai-grok-imagine-video-edit-video
Grok Imagine - Video Edit is a video generation model designed for editing existing videos.
It excels in prompt-driven video modifications like object swapping, scene restyling, and character animation, offering native synchronized audio generation (including sound effects, dialogue, and music) alongside visuals at 720p resolution and 24fps, with fast processing times such as 45 seconds for an 8-second clip.
Some other noteworthy capabilities of Grok Imagine - Video Edit include image-to-video generation from static images, support for multiple aspect ratios (e.g., 16:9, 9:16), and outputs up to 15 seconds in duration (with input videos resized to 854x480 and truncated to 8 seconds for editing).
Metric Value Parameter Count Unknown Mixture of Experts Unknown Context Length Unknown Multilingual No Quantized* Unknown Precision* Unknown
*Quantization is specific to the inference provider and the model may be offered with different quantization levels by other providers.
Example request
Use the Workbench as a request builder: configure parameters for this model in the UI, then open the API tab to copy the exact cURL or Python call.
Sync
Async
Async with SSE
This blocks until the video is ready (typically 5-15 minutes). Prefer Async or Async with SSE for anything beyond quick experimentation. See the video generation reference for more details. curl -X POST https://hub.oxen.ai/api/ai/videos/generate \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OXEN_API_KEY " \
-d '{
"model": "xai-grok-imagine-video-edit-video",
"prompt": "<prompt>",
"input_video": "https://hub.oxen.ai/api/repos/ox/Oxen-AI-Assets/file/main/images/winter_summer_ox.mp4"
}'
curl -X POST https://hub.oxen.ai/api/ai/videos/generate \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OXEN_API_KEY " \
-d '{
"model": "xai-grok-imagine-video-edit-video",
"prompt": "<prompt>",
"input_video": "https://hub.oxen.ai/api/repos/ox/Oxen-AI-Assets/file/main/images/winter_summer_ox.mp4",
"aspect_ratio": "auto"
}'
See the async queue reference for more details. # Enqueue, capture the generation id.
GEN_ID = $( curl -s -X POST https://hub.oxen.ai/api/ai/queue \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OXEN_API_KEY " \
-d '{
"model": "xai-grok-imagine-video-edit-video",
"prompt": "<prompt>",
"input_video": "https://hub.oxen.ai/api/repos/ox/Oxen-AI-Assets/file/main/images/winter_summer_ox.mp4"
}' | jq -r '.generations[0].generation_id' )
# Poll until the generation reaches a terminal status.
while true ; do
STATUS = $( curl -s -H "Authorization: Bearer $OXEN_API_KEY " \
"https://hub.oxen.ai/api/ai/queue/ $GEN_ID " | jq -r '.status' )
echo "Status: $STATUS "
case $STATUS in succeeded | failed | cancelled ) break ;; esac
sleep 5
done
# Print the result.
curl -s -H "Authorization: Bearer $OXEN_API_KEY " \
"https://hub.oxen.ai/api/ai/queue/ $GEN_ID " | jq .
# Enqueue, capture the generation id.
GEN_ID = $( curl -s -X POST https://hub.oxen.ai/api/ai/queue \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OXEN_API_KEY " \
-d '{
"model": "xai-grok-imagine-video-edit-video",
"prompt": "<prompt>",
"input_video": "https://hub.oxen.ai/api/repos/ox/Oxen-AI-Assets/file/main/images/winter_summer_ox.mp4",
"aspect_ratio": "auto"
}' | jq -r '.generations[0].generation_id' )
# Poll until the generation reaches a terminal status.
while true ; do
STATUS = $( curl -s -H "Authorization: Bearer $OXEN_API_KEY " \
"https://hub.oxen.ai/api/ai/queue/ $GEN_ID " | jq -r '.status' )
echo "Status: $STATUS "
case $STATUS in succeeded | failed | cancelled ) break ;; esac
sleep 5
done
# Print the result.
curl -s -H "Authorization: Bearer $OXEN_API_KEY " \
"https://hub.oxen.ai/api/ai/queue/ $GEN_ID " | jq .
See the async queue reference for more details. # Enqueue, capture the generation id.
GEN_ID = $( curl -s -X POST https://hub.oxen.ai/api/ai/queue \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OXEN_API_KEY " \
-d '{
"model": "xai-grok-imagine-video-edit-video",
"prompt": "<prompt>",
"input_video": "https://hub.oxen.ai/api/repos/ox/Oxen-AI-Assets/file/main/images/winter_summer_ox.mp4"
}' | jq -r '.generations[0].generation_id' )
# Stream the SSE channel, grab the data line that follows a
# media_generation_completed event for our id, and pretty-print it.
curl -sN -H "Authorization: Bearer $OXEN_API_KEY " https://hub.oxen.ai/api/events \
| awk -v id=" $GEN_ID " '
/^event: media_generation_completed$/ { expect=1; next }
/^data: / && expect {
payload = substr($0, 7)
if (index(payload, "\"generation_id\":\"" id "\"")) { print payload; exit }
expect = 0
}
' | jq .
# Enqueue, capture the generation id.
GEN_ID = $( curl -s -X POST https://hub.oxen.ai/api/ai/queue \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OXEN_API_KEY " \
-d '{
"model": "xai-grok-imagine-video-edit-video",
"prompt": "<prompt>",
"input_video": "https://hub.oxen.ai/api/repos/ox/Oxen-AI-Assets/file/main/images/winter_summer_ox.mp4",
"aspect_ratio": "auto"
}' | jq -r '.generations[0].generation_id' )
# Stream the SSE channel, grab the data line that follows a
# media_generation_completed event for our id, and pretty-print it.
curl -sN -H "Authorization: Bearer $OXEN_API_KEY " https://hub.oxen.ai/api/events \
| awk -v id=" $GEN_ID " '
/^event: media_generation_completed$/ { expect=1; next }
/^data: / && expect {
payload = substr($0, 7)
if (index(payload, "\"generation_id\":\"" id "\"")) { print payload; exit }
expect = 0
}
' | jq .
Fetch model details
The models endpoint returns the full model object, including its json_request_schema.
curl -H "Authorization: Bearer $OXEN_API_KEY " https://hub.oxen.ai/api/ai/models/xai-grok-imagine-video-edit-video
Request parameters
Required parameters
Field Type Default Description promptstring— Text description of what you want to generate, or the instruction on how to edit the given video. input_videostring— Video to use as reference. Format: uri.
Optional parameters
Field Type Default Description aspect_ratiostring"auto"Resolution of the output video. One of: auto, 720p, 480p.