Sora 2

openai/sora-2/image-to-video

Sora 2 is OpenAI's image-to-video AI model. Bring static images to life with fluid animation, consistent character motion, and professional-grade video output.

Base price
$0.40USD / run
Execution
async
Model type
video
Input fields
5

Try the model

Playground

Open playground
Input
The text prompt describing the video you want to generate

PNG, JPEG, WebP, or GIF · 20 MiB maximum

The URL of the image to use as the first frame
The resolution of the generated video Allowed values: auto, 720p.
Duration of the generated video in seconds Allowed values: 4, 8, 12, 16, 20.
The aspect ratio of the generated image. Allowed values: 21:9, 16:9, 3:2, 4:3, 5:4, 1:1, 4:5, 3:4, 2:3, 9:16.
OutputReady

Your output will appear here

Complete the inputs, then click Run.

Specifications

Pricing

Base price
$0.40 / run
Billing formula
params.duration * 0.10

Context & modalities

Input
Schema-defined
Output
video

Capabilities

Chat
Not supported
Vision
Not supported
Reasoning
Not supported
Structured output
Not supported
Function calling
Not supported
Audio input
Not supported

Access

Provider
OpenAI
Model ID
openai/sora-2/image-to-video
Execution
async
API
Unified Run API
Endpoint
/v1/run

API README

Sora 2 Image To Video

Sora 2 Image To Video is built for cinematic video generation, with this exact route focused on source-image animation. Sora 2 is OpenAI's image-to-video AI model. Bring static images to life with fluid animation, consistent character motion, and professional-grade video output. It is designed for production workflows that need a clearly scoped media operation instead of a generic assistant response, preserving the supplied direction while returning an artifact ready for review, iteration, or downstream assembly.

The request surface keeps creative direction and delivery choices explicit through prompt, duration, image_url, sync_mode, resolution, aspect_ratio. Teams can lock source material, describe the intended result, choose supported output controls, and rerun the same request structure across variations. This makes experiments easier to compare and larger pipelines easier to operate without hiding important decisions inside an opaque preset.

Highlights

  • Source-Image Animation. The openai/sora-2/image-to-video route is dedicated to source-image animation, keeping inputs and outputs matched to this operation.
  • Coherent Motion And Scene Continuity. Within openai/sora-2/image-to-video, documented prompt and media controls direct coherent motion and scene continuity while keeping the brief close to the result.
  • Directable Visual Storytelling. The openai/sora-2/image-to-video result provides directable visual storytelling in a machine-consumable form for review and downstream production.
  • Route-specific control. For openai/sora-2/image-to-video, documented controls include prompt, duration, image_url, sync_mode, resolution, aspect_ratio, defining the supported variation space for this exact route.

Pricing

ConfigurationPrice
4 seconds$0.4000
8 seconds$0.8000
12 seconds$1.2000
16 seconds$1.6000
20 seconds$2.0000
Base-price example$0.4000
Rate$0.1 per second

When to Use

ScenarioWhy it fits
Choose this routeWhen the deliverable is specifically source-image animation, not a neighboring generation or editing task.
Production iterationWhen creative teams need repeatable coherent motion and scene continuity with an explicit request payload.
Automated pipelinesWhen directable visual storytelling must flow into review, storage, compositing, or publishing.
Controlled variationsWhen a stable brief should be rerun while changing only documented inputs.
Prototype to scaleWhen the same openai/sora-2/image-to-video contract should serve a single experiment and a larger batch later.

Prompt Guide

Lead with the subject or source, then state the transformation, important spatial or temporal details, style, and finish. Supply only documented fields, keep media URLs reachable, and vary one control at a time when comparing outputs.

{
  "prompt": "A directed creative request with subject, setting, style, motion, and finish.",
  "image": "https://example.com/reference.jpg"
}

Technical Specs

PropertyValue
Model IDopenai/sora-2/image-to-video
Required inputsprompt
promptstring
durationinteger; options: 4, 8, 12, 16, 20; default: 4
image_urlstring
sync_modeboolean; default: false
resolutionstring; options: auto, 720p; default: auto
aspect_ratiostring; options: auto, 9:16, 16:9; default: auto
delete_videoboolean; default: true
character_idsarray
safety_tolerancestring; default: 6
detect_and_block_ipboolean; default: false

Related Models

  • openai/sora-2/characters

Start building

Send your first request

OpenAI-compatible endpoint with unified authentication and usage tracking.

Production API
Unified Run API endpoint
https://api.sandbase.ai/v1/run
Model ID
openai/sora-2/image-to-video
# The quoted heredoc keeps Unicode and shell metacharacters unchanged.
result=$(curl --fail-with-body --silent \
  -X POST "https://api.sandbase.ai/v1/run" \
  -H "Authorization: Bearer $SANDBASE_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @- <<'SANDBASE_JSON'
{
  "model": "openai/sora-2/image-to-video",
  "image": "https://static.sandbase.ai/examples/openai/sora-2/image-to-video/input_image_0.png",
  "prompt": "Front-facing 'invisible' action-cam on a skydiver in freefall above bright clouds; camera locked on his face. He speaks over the wind with clear lipsync: 'This is insanely fun! You've got to try it—book a tandem and go!' Natural wind roar, voice close-mic'd and slightly compressed so it's intelligible. Midday sun, goggles and jumpsuit flutter, altimeter visible, parachute rig on shoulders. Energetic but stable framing with subtle shake; brief horizon roll. End on first tug of canopy and wind noise dropping.",
  "duration": 4,
  "resolution": "auto"
}
SANDBASE_JSON
)
run_id=$(printf '%s' "$result" | jq -r .id)
for attempt in $(seq 1 120); do
  status=$(printf '%s' "$result" | jq -r .status)
  case "$status" in completed|failed|timeout) break ;; esac
  sleep 2
  result=$(curl --fail-with-body --silent \
    -H "Authorization: Bearer $SANDBASE_API_KEY" \
    "https://api.sandbase.ai/v1/run/$run_id")
done
status=$(printf '%s' "$result" | jq -r .status)
[ "$status" = completed ] || { echo "Generation ended: $status" >&2; exit 1; }
printf '%s\n' "$result"

Choose your model

Compare models

All language models
ModelContextInput / 1MOutput / 1MReleased
Sora 2This model
OpenAI
———Oct 6, 2025
OpenAI———Mar 12, 2026
OpenAI———Oct 8, 2025
OpenAI———Oct 6, 2025
OpenAI———Oct 6, 2025
OpenAI———Oct 6, 2025