Operation
Generate Video
Generate a video with Cannon Studio's supported video models, including prompt-only and image-guided flows.
Operation: video.generate
Submit via POST /api/v1/requests
Credits: dynamic
Seedance 2.0Seedance 2.0 FastWan 2.7Veo 3.1Sora 2GrokNano Banana
Request fields
promptmodeldurationimage_urlfirst_frame_urlsource_video_urlfirst_clip_urlreference_image_urlsend_image_urllast_frame_urlaspect_ratioresolutionaudio_urlnegative_promptprompt_extendwatermarkseednsfw_checker
Example request
{
"operation": "video.generate",
"input": {
"prompt": "A handheld chase through a crowded market at blue hour.",
"model": "wan27video",
"duration": 10,
"aspect_ratio": "16:9",
"resolution": "1080p",
"image_url": "https://example.com/start-frame.jpg",
"audio_url": "https://example.com/drive-track.mp3",
"negative_prompt": "distorted faces, warping, text overlays"
}
}curl -X POST https://www.cannonstudio.app/api/v1/requests \
-H "Content-Type: application/json" \
-H "x-api-key: $CANNON_API_KEY" \
-H "x-idempotency-key: video-generate-001" \
-d @- <<'JSON'
{
"operation": "video.generate",
"input": {
"prompt": "A handheld chase through a crowded market at blue hour.",
"model": "wan27video",
"duration": 10,
"aspect_ratio": "16:9",
"resolution": "1080p",
"image_url": "https://example.com/start-frame.jpg",
"audio_url": "https://example.com/drive-track.mp3",
"negative_prompt": "distorted faces, warping, text overlays"
}
}
JSONNotes
- Uses the same standalone video generation stack as the Cannon Studio app.
- Supports prompt-first and image-guided flows depending on the selected model.
- Wan 2.7 supports prompt-only renders, first-frame guidance, first-and-last-frame guidance, and source-clip continuation.
- Wan 2.7 uses `audio_url` for prompt-first renders and `source_video_url` plus `audio_url` for continuation-style runs.
- Sora 2 uses 4s, 8s, 12s, 16s, or 20s durations plus portrait or landscape output sizes. Sora 2 Pro can request 1080p native sizes.
- The request object tracks the downstream video task and returns the final hosted video URL on success.
Success output
{
"task_id": "vid_123",
"asset_type": "video",
"status": "succeeded",
"video_url": "https://storage.googleapis.com/.../video.mp4",
"provider": "seedance",
"model": "seedance2",
"duration": 5,
"aspect_ratio": "16:9"
}