Browse ModelsOpenaiOpenai Sora 2 Pro Image To Video

Openai Sora 2 Pro Image To Video

Openai Sora 2 Pro Image To Video

Playground

Try it on WavespeedAI!

OpenAI Sora 2 Pro Image-to-Video creates physics-aware, realistic videos from reference images with synchronized audio and strong steerability. Supports 720p and 1080p resolutions with durations up to 20 seconds. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

Features

OpenAI Sora 2 Pro Image-to-Video

Sora 2 Pro Image-to-Video is OpenAI’s flagship image-to-video model, transforming still images into cinematic-quality videos. Built on OpenAI’s most advanced video generation technology, it animates your images with stunning visual fidelity, realistic physics, and coherent motion up to 20 seconds.


Why Choose This?

  • OpenAI’s best video model The most advanced image-to-video model from OpenAI, delivering state-of-the-art quality.

  • Image-guided generation Start from your reference image for precise control over the visual output.

  • Realistic physics Accurate simulation of real-world physics, motion, and object interactions.

  • Long-form generation Generate coherent videos up to 20 seconds in length.

  • Multiple resolutions Support for 720p, 1024p, and 1080p in both landscape and portrait orientations.

  • Prompt Enhancer Built-in tool to automatically improve your descriptions.


Parameters

ParameterRequiredDescription
imageYesReference image to animate (URL or upload)
promptYesText description of the desired motion and action
sizeNoResolution: 1280×720, 720×1280, 1792×1024, 1024×1792, 1920×1080, 1080×1920
durationNoVideo length: 4, 8, 12, 16, 20 seconds (default: 4)

Size Options

SizeOrientationResolution
1280×720Landscape720p
720×1280Portrait720p
1792×1024Landscape1024p
1024×1792Portrait1024p
1920×1080Landscape1080p
1080×1920Portrait1080p

How to Use

  1. Upload your image — provide the reference image to animate.
  2. Write your prompt — describe the motion, action, and scene dynamics.
  3. Select size — choose resolution and orientation based on your delivery platform.
  4. Set duration — choose 4, 8, 12, 16, or 20 seconds.
  5. Use Prompt Enhancer (optional) — click to refine your description.
  6. Run — submit and download your generated video.

Pricing

Duration720p1024p1080p
4 s$1.20$2.00$2.80
8 s$2.40$4.00$5.60
12 s$3.60$6.00$8.40
16 s$4.80$8.00$11.20
20 s$6.00$10.00$14.00

Billing Rules

  • 720p rate: $0.30 per second
  • 1024p rate: $0.50 per second
  • 1080p rate: $0.70 per second
  • Duration options: 4, 8, 12, 16, or 20 seconds

Best Use Cases

  • Photo Animation — Bring still photos to life with cinematic motion.
  • Commercial Production — Animate product images and campaign visuals.
  • Film Pre-visualization — Create high-fidelity animated concept footage.
  • Premium Content Creation — Produce top-tier videos from existing imagery.
  • Character Animation — Animate portraits and character art with realistic movement.

Pro Tips

  • Use high-quality reference images for best animation results.
  • Describe specific motion in your prompt — what should move and how.
  • Include camera movement descriptions for more dynamic output.
  • Match output size to your reference image orientation for best results.
  • Use 720p for iterations; 1080p for final production output.

Notes

  • Both image and prompt are required fields.
  • Duration options: 4, 8, 12, 16, or 20 seconds (in 4-second increments).
  • Higher resolutions cost more per second.
  • Ensure your prompts comply with OpenAI’s usage policies.

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/openai/sora-2-pro/image-to-video" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
    "resolution": "720p",
    "duration": 4
}'

# 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

ParameterTypeRequiredDefaultRangeDescription
imagestringYes-The image for generating the output.
promptstringYes-The positive prompt for the generation.
resolutionstringNo720p720p, 1080pThe resolution of the generated video.
durationintegerNo44, 8, 12, 16, 20The duration of the generated video in seconds.

Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
data.idstringUnique identifier for the prediction, Task Id
data.modelstringModel ID used for the prediction
data.outputsarrayArray of URLs to the generated content (empty when status is not completed)
data.urlsobjectObject containing related API endpoints
data.urls.getstringURL to retrieve the prediction result
data.has_nsfw_contentsarrayArray of boolean values indicating NSFW detection for each output
data.statusstringStatus of the task: created, processing, completed, or failed
data.created_atstringISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”)
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds

Result Request Parameters

ParameterTypeRequiredDefaultDescription
idstringYes-Task ID

Result Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
dataobjectThe prediction data object containing all details
data.idstringUnique identifier for the prediction, the ID of the prediction to get
data.modelstringModel ID used for the prediction
data.outputsstringArray of URLs to the generated content (empty when status is not completed).
data.urlsobjectObject containing related API endpoints
data.urls.getstringURL to retrieve the prediction result
data.statusstringStatus of the task: created, processing, completed, or failed
data.created_atstringISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”)
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds
© 2025 WaveSpeedAI. All rights reserved.