Use this file to discover all available pages before exploring further.
Try WAN 2.7 - Reference to Video in the Workbench
Run this model interactively, tune parameters, and compare outputs.
Model ID:wan-v2-7-reference-to-videoWAN 2.7 reference-to-video generates video from reference images or videos using the R2V model with enhanced motion smoothness, superior scene fidelity, and greater visual coherence. It supports single-character performances, multi-character interactions, and multi-shot narration. Output up to 1080p resolution with durations from 2-10 seconds.
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
Basic parameters
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-reference-to-video", "prompt": "A person walking through a beautiful garden, cinematic style."}'
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-reference-to-video", "prompt": "A person walking through a beautiful garden, cinematic style.", "input_image": [ "https://hub.oxen.ai/api/repos/elau/assets/file/main/bloxy/bloxy_cropped_512x512.png" ], "input_videos": [ "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": "wan-v2-7-reference-to-video", "prompt": "A person walking through a beautiful garden, cinematic style.", "input_image": [ "https://hub.oxen.ai/api/repos/elau/assets/file/main/bloxy/bloxy_cropped_512x512.png" ], "input_videos": [ "https://hub.oxen.ai/api/repos/ox/Oxen-AI-Assets/file/main/images/winter_summer_ox.mp4" ], "aspect_ratio": "16:9", "resolution": "1080p", "duration": 5, "multi_shots": false}'
# 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-reference-to-video", "prompt": "A person walking through a beautiful garden, cinematic style."}' | 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-reference-to-video", "prompt": "A person walking through a beautiful garden, cinematic style.", "input_image": [ "https://hub.oxen.ai/api/repos/elau/assets/file/main/bloxy/bloxy_cropped_512x512.png" ], "input_videos": [ "https://hub.oxen.ai/api/repos/ox/Oxen-AI-Assets/file/main/images/winter_summer_ox.mp4" ]}' | 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-reference-to-video", "prompt": "A person walking through a beautiful garden, cinematic style.", "input_image": [ "https://hub.oxen.ai/api/repos/elau/assets/file/main/bloxy/bloxy_cropped_512x512.png" ], "input_videos": [ "https://hub.oxen.ai/api/repos/ox/Oxen-AI-Assets/file/main/images/winter_summer_ox.mp4" ], "aspect_ratio": "16:9", "resolution": "1080p", "duration": 5, "multi_shots": false}' | 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."