Open Video Image To Video
Playground
Try it on WavespeedAI!OpenVideo Image to Video is a fast AI image-to-video generation model that creates short cinematic clips with native audio from a single reference image. It gives users full creative control over scene, style, and motion prompts, with support for 480p, 720p, and 1080p output and 3–20 second duration tiers. Ready-to-use REST inference API for cinematic clips, product videos, social media content, advertising creatives, visual storytelling, and professional image-to-video workflows with simple integration, no coldstarts, and affordable pricing.
Features
OpenVideo — Unlimited Image-to-Video (with Audio)
OpenVideo — Unlimited Image-to-Video (with Audio) generates short image-to-video clips with a synchronized native audio track. Upload a reference image, provide a prompt, choose the output resolution and duration, and generate an mp4 video with audio.
Why Choose This?
-
Image-to-video with audio Generate short video clips with a synchronized audio track in a single workflow.
-
Prompt-following generation The model follows the prompt directly for motion, scene, and overall output direction.
-
Flexible resolution options Choose
480p,720p, or1080pdepending on your quality and cost requirements. -
Short-form video generation Supports clip durations from
3to20seconds. -
Simple workflow Start from a single reference image and a text prompt to generate a final mp4 output.
Parameters
| Parameter | Required | Description |
|---|---|---|
image | Yes | Reference image. JPG or PNG is recommended; avoid WEBP. |
prompt | Yes | Positive prompt describing the desired motion and scene. |
resolution | No | Output resolution: 480p, 720p, or 1080p. Default: 480p. |
duration | No | Output duration in seconds. Supported range: 3 to 20. Default: 5. |
seed | No | Random seed. Use -1 for a random seed. Default: -1. |
How to Use
- Upload your image — Provide a reference image in JPG or PNG format.
- Write your prompt — Describe the motion and scene you want in the output video.
- Choose output settings (optional) — Select
resolution,duration, andseedas needed. - Submit — Generate the final video with audio.
Pricing
| Resolution | Per 5s | Per second | Max length |
|---|---|---|---|
| 480p | $0.10 | $0.02 / s | 20 s |
| 720p | $0.20 | $0.04 / s | 20 s |
| 1080p | $0.30 | $0.06 / s | 20 s |
Billing Rules
- Minimum charge: 5 seconds. Requests shorter than 5 seconds are billed as 5 seconds.
- Maximum billed duration: 20 seconds.
720pcosts 2x the480pprice.1080pcosts 3x the480pprice.- Billing is based on
max(5, min(duration, 20)).
Best Use Cases
- Short cinematic clips — Generate short video scenes with synchronized audio from a single reference image.
- Prompt-driven scene generation — Create motion, camera feel, and scene progression directly from a text prompt.
- Stylized visual content — Generate creative or stylized clips with audio in one pipeline.
- Social media content — Create short-form video content for quick publishing or iteration.
- Creative prototyping — Test scene ideas, motion directions, and visual concepts from one image.
Pro Tips
- Use a clear reference image with the main subject clearly visible.
- Keep the prompt focused on both the scene and the motion.
- Use
480pfor faster and lower-cost testing. - Use
720por1080pfor higher-quality final outputs. - Use a fixed
seedif you want more reproducible generations. - Avoid WEBP input images when possible.
Notes
imageandpromptare required fields.resolution,duration, andseedare optional.- Default
resolutionis480p. - Default
durationis5. - Default
seedis-1, which uses a random seed. - Audio is generated together with the video; no separate audio input is required.
480pis the fastest tier.- Ensure uploaded image URLs are publicly accessible.
- By using this endpoint, you confirm that you have the right to generate the requested content under your jurisdiction.
Authentication
For authentication details, please refer to the Authentication Guide.
API Endpoints
Submit Task & Query Result
# Submit the task
curl --location --request POST "https://api.wavespeed.ai/api/v3/wavespeed-ai/open-video/image-to-video" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"preset": "tuned",
"resolution": "480p",
"duration": 5,
"seed": -1
}'
# Get the result
curl --location --request GET "https://api.wavespeed.ai/api/v3/predictions/${requestId}/result" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}"
Parameters
Task Submission Parameters
Request Parameters
| Parameter | Type | Required | Default | Range | Description |
|---|---|---|---|---|---|
| image | string | Yes | - | Reference image for the first frame (JPG/PNG recommended). | |
| prompt | string | Yes | - | Positive prompt describing the desired motion / scene. | |
| preset | string | No | tuned | tuned, original | Style preset bundle. `original` = light styling. `tuned` = the recommended general-purpose stack. |
| resolution | string | No | 480p | 480p, 720p, 1080p | Output resolution tier. |
| duration | integer | No | 5 | 3 ~ 20 | Output duration in seconds (3-20). |
| seed | integer | No | -1 | -1 ~ 2147483647 | Random seed. -1 for a random seed. |
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data.id | string | Unique identifier for the prediction, Task Id |
| data.model | string | Model ID used for the prediction |
| data.outputs | array | Array of URLs to the generated content (empty when status is not completed) |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to retrieve the prediction result |
| data.status | string | Status of the task: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |
Result Request Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| id | string | Yes | - | Task ID |
Result Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data | object | The prediction data object containing all details |
| data.id | string | Unique identifier for the prediction, the ID of the prediction to get |
| data.model | string | Model ID used for the prediction |
| data.outputs | string | Array of URLs to the generated content (empty when status is not completed). |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to retrieve the prediction result |
| data.status | string | Status of the task: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |