Use this file to discover all available pages before exploring further.
Try WAN 2.7 - Text to Video in the Workbench
Run this model interactively, tune parameters, and compare outputs.
Model ID:wan-v2-7-text-to-videoWAN 2.7 text-to-video generates video from a text prompt with enhanced motion smoothness, superior scene fidelity, and greater visual coherence over previous versions. It supports 720p and 1080p output, durations from 2-15 seconds, multiple aspect ratios (16:9, 9:16, 1:1, 4:3, 3:4), multi-shot video generation controlled via natural language in the prompt, and optional driving audio.
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.
Minimal
All parameters
curl -X POST https://hub.oxen.ai/api/ai/videos/generate \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OXEN_API_KEY" \ -d '{ "model": "wan-v2-7-text-to-video", "prompt": "A kitten running in a meadow, cinematic lighting, smooth camera movement."}'
curl -X POST https://hub.oxen.ai/api/ai/videos/generate \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OXEN_API_KEY" \ -d '{ "model": "wan-v2-7-text-to-video", "prompt": "A kitten running in a meadow, cinematic lighting, smooth camera movement.", "aspect_ratio": "16:9", "resolution": "1080p", "duration": 5}'
# 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": "wan-v2-7-text-to-video", "prompt": "A kitten running in a meadow, cinematic lighting, smooth camera movement."}' | jq -r '.generations[0].generation_id')# Poll the single generation until it 404s (terminal state).while curl -s -o /dev/null -w "%{http_code}" \ -H "Authorization: Bearer $OXEN_API_KEY" \ "https://hub.oxen.ai/api/ai/queue/$GEN_ID" | grep -q "^200$"; do sleep 5doneecho "Done. See the 'Async with SSE' tab to receive the result URL."
# 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": "wan-v2-7-text-to-video", "prompt": "A kitten running in a meadow, cinematic lighting, smooth camera movement.", "aspect_ratio": "16:9", "resolution": "1080p", "duration": 5}' | jq -r '.generations[0].generation_id')# Poll the single generation until it 404s (terminal state).while curl -s -o /dev/null -w "%{http_code}" \ -H "Authorization: Bearer $OXEN_API_KEY" \ "https://hub.oxen.ai/api/ai/queue/$GEN_ID" | grep -q "^200$"; do sleep 5doneecho "Done. See the 'Async with SSE' tab to receive the result URL."
Aspect ratio of the generated video. One of: 16:9, 9:16, 1:1, 4:3, 3:4.
resolution
string
"1080p"
Output video resolution tier. One of: 720p, 1080p.
duration
integer
5
Output video duration in seconds (2-15). Range: 2 – 15.
negative_prompt
string
—
Content to avoid in the video. Max 500 characters.
audio_url
string
—
URL of driving audio. Supports WAV and MP3. Duration: 3-30s. Max 15 MB. If not provided, the model auto-generates matching background music. Format: uri.
seed
integer
—
Random seed for reproducibility (0-2147483647).
⌘I
Assistant
Responses are generated using AI and may contain mistakes.