Sora 2 Image to Video Pro
openai/sora-2/image-to-video/proSora 2 Pro 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.30USD / run
- Execution
- async
- Model type
- video
- Input fields
- 6
Try the model
Playground
PNG, JPEG, WebP, or GIF · 20 MiB maximum
Your output will appear here
Complete the inputs, then click Run.
Specifications
Pricing
- Base price
- $0.30 / run
- Billing formula
- params.resolution == "1920x1080" || params.resolution == "1080x1920" ? params.duration * 0.70 : params.resolution == "1792x1024" || params.resolution == "1024x1792" ? params.duration * 0.50 : params.duration * 0.30
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/pro
- Execution
- async
- API
- Unified Run API
- Endpoint
- /v1/run
API README
Sora 2 Image To Video PRO
Sora 2 Image To Video PRO is the Sora 2 route for pro, turning the documented source inputs into a production-ready result while keeping the operation distinct from neighboring endpoints. Sora 2 Pro is OpenAI's image-to-video AI model. Bring static images to life with fluid animation, consistent character motion, and professional-grade video output. The workflow is designed for creators who need the model’s specific transformation to remain visible in the request, so the source, intended change, and finished artifact can be reviewed as one coherent creative decision.
In practical use, this route exposes image, prompt, duration, resolution, aspect_ratio, character_ids to shape the exact deliverable. Those controls let a team preserve the important source constraints, state subject behavior or material treatment precisely, choose supported timing or output characteristics, and reproduce successful settings across alternate takes. The result fits an iterative pipeline: establish the core brief, compare controlled variations, then pass the selected asset into editorial, design, localization, visualization, or publishing work.
Highlights
- Route-specific creation. Use this exact route for pro with its documented input contract. This capability belongs to the exact
openai/sora-2/image-to-video/proworkflow. - Scene continuity. Maintain subjects, environments, and motion across the generated or remixed shot.
- Directable cinematography. Express action, camera movement, framing, pacing, and visual tone in the prompt.
- Resolution and timing choices. Select the documented duration and delivery format appropriate to this Sora 2 route.
Pricing
| Configuration | Price |
|---|---|
| Formula rate · standard delivery | $0.300000 per second |
| Formula rate · 1792×1024 or 1024×1792 | $0.500000 per second |
| Formula rate · 1920×1080 or 1080×1920 | $0.700000 per second |
| 4s · auto/720p/1080p standard branch | $1.20 |
| 4s · true_1080p landscape legacy branch (1792×1024/1024×1792) | $2.00 |
| 4s · true_1080p full-HD branch (1920×1080/1080×1920) | $2.80 |
| 8s · auto/720p/1080p standard branch | $2.40 |
| 8s · true_1080p landscape legacy branch (1792×1024/1024×1792) | $4.00 |
| 8s · true_1080p full-HD branch (1920×1080/1080×1920) | $5.60 |
| 12s · auto/720p/1080p standard branch | $3.60 |
| 12s · true_1080p landscape legacy branch (1792×1024/1024×1792) | $6.00 |
| 12s · true_1080p full-HD branch (1920×1080/1080×1920) | $8.40 |
| 16s · auto/720p/1080p standard branch | $4.80 |
| 16s · true_1080p landscape legacy branch (1792×1024/1024×1792) | $8.00 |
| 16s · true_1080p full-HD branch (1920×1080/1080×1920) | $11.20 |
| 20s · auto/720p/1080p standard branch | $6.00 |
| 20s · true_1080p landscape legacy branch (1792×1024/1024×1792) | $10.00 |
| 20s · true_1080p full-HD branch (1920×1080/1080×1920) | $14.00 |
When to Use
| Scenario | Why it fits |
|---|---|
| Exact workflow fit | Choose this route when the required deliverable is pro, rather than a related route with different source media. |
| Directed creative iteration | Use it when subject, motion, material, speech, framing, or finish should be expressed explicitly and compared across controlled variants. |
| Existing-asset continuity | Use it when supplied images, video, audio, references, or styles must remain the anchor for the generated result. |
| Repeatable production | Use it when successful inputs need to be saved and rerun across a campaign, asset set, localization pass, or batch. |
| Pipeline handoff | Use it when the returned artifact will move into editorial, compositing, visualization, review, storage, or publishing. |
Prompt Guide
Start with the source or subject, then describe the intended transformation, movement or behavior, camera and composition, and the desired finish. Keep media URLs reachable, use only fields documented for this exact route, and change one major control at a time when comparing results. For source-led tasks, describe what should change as well as what must remain recognizable.
{
"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.",
"image": "https://static.sandbase.ai/examples/openai/sora-2/image-to-video/pro/input_image_0.png",
"duration": 4,
"resolution": "auto"
}
Technical Specs
| Property | Value |
|---|---|
| Model ID | openai/sora-2/image-to-video/pro |
| Execution mode | async |
| Required inputs | prompt, image |
image | string |
prompt | string |
duration | integer; options: 4, 8, 12, 16, 20; default: 4 |
resolution | string; options: auto, 720p, 1080p, true_1080p; default: auto |
aspect_ratio | string; options: 21:9, 16:9, 3:2, 4:3, 5:4, 1:1, 4:5, 3:4, 2:3, 9:16 |
character_ids | array |
Related Models
openai/sora-2/text-to-video/proopenai/sora-2/video-to-video/remixopenai/sora-2/charactersopenai/sora-2/image-to-video
Start building
Send your first request
OpenAI-compatible endpoint with unified authentication and usage tracking.
# 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/pro",
"image": "https://static.sandbase.ai/examples/openai/sora-2/image-to-video/pro/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
| Model | Context | Input / 1M | Output / 1M | Released |
|---|---|---|---|---|
Sora 2 Image to Video ProThis 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 |
