# Sora 2 | Image to Video Sora 2 is an advanced image-to-video model that transforms a single image into ultra-realistic, smoothly animated video sequences with natural motion, lighting, and depth. ## API Information - **Model Slug:** sora-2-image-to-video - **Branded URL:** https://www.eachlabs.ai/openai/sora-2/sora-2-image-to-video - **Provider:** OpenAI - **Category:** Image to Video - **Output Type:** video - **Status:** active - **Version:** 0.0.1 - **Base Cost:** 4s duration video $0.40 - **Estimated Processing Time:** 220 seconds - **Last Updated:** 2026-06-01 - **Interactive Demo:** https://www.eachlabs.ai/ai-models/sora-2-image-to-video ## Pricing - **Charge Type:** dynamic - **Estimated Price (default example):** $0.4000 - **Pricing Details:** 4s duration video $0.40 ### Pricing Rules | Rule | Condition | Price | | --- | --- | --- | | value_match | duration == "4" | $0.4000 | | value_match | duration == "8" | $0.8000 | | value_match | duration == "12" | $1.20 | | value_match | duration == "16" | $1.60 | | value_match | duration == "20" | $2.00 | ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | prompt | string | Yes | - | - | The text prompt describing the video you want to generate | | image_url | string | Yes | - | - | The URL of the image to use as the first frame | | aspect_ratio | string | No | 16:9 | 9:16,16:9 | The aspect ratio of the generated video | | duration | integer | No | 4 | 4,8,12,16,20 | Duration of the generated video in seconds | ## Example Request ```bash curl -X POST https://api.eachlabs.ai/v1/prediction/ \ -H "X-API-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "sora-2-image-to-video", "input": { "prompt": "Ultra-realistic view of a quiet modern city street in the morning sunlight. Warm light reflects off glass windows and parked cars, while soft shadows fall across the pavement. Leaves and signs move slightly in the gentle breeze. The street is calm, detailed, and filled with natural reflections, captured in crisp 8K detail, realistic daylight tone, no people visible.", "image_url": "https://storage.googleapis.com/magicpoint/inputs/sora-2-image-to-video-input-image.png" } }' ``` ## Output Schema Response returned by `GET /v1/prediction/{id}` when the job completes: ```json { "status": "success", "predictionID": "string", "output": "string (URL of generated video)", "metrics": { "predict_time": "number (seconds)" } } ``` ## Polling ```bash curl https://api.eachlabs.ai/v1/prediction/{PREDICTION_ID} \ -H "X-API-Key: YOUR_API_KEY" ``` | Status | Meaning | |--------|---------| | `processing` | Still running — poll again | | `success` | Done — read `output` | | `error` | Failed — read `message` / `details` | ## Webhook (alternative to polling) Pass `"webhook_url": "https://your.host/path"` in the create request. Eachlabs POSTs this payload when the job ends: ```json { "exec_id": "prediction-uuid", "status": "succeeded", "output": "https://...", "error": "" } ``` `status` is `"succeeded"` or `"failed"`. `exec_id` equals the `predictionID` from create. Return 2xx within 30 seconds. ## Errors Error body: `{ "status": "error", "message": "...", "details": "..." }` | Code | Meaning | |------|---------| | `400` | Invalid input | | `401` | Missing / invalid `X-API-Key` | | `404` | Unknown model or prediction id | | `429` | Rate limit — 100 creates / min, 10 concurrent per key | | `5xx` | Retry with backoff | ## Overview **sora-2-image-to-video — Image-to-Video AI Model** Developed by OpenAI as part of the Sora 2 family, **sora-2-image-to-video** transforms static images into ultra-realistic, smoothly animated video sequences with natural motion, lighting, and depth. This image-to-video AI model solves a critical creative challenge: extending a single photograph or reference image into cinematic video without manual keyframing or complex editing workflows. By anchoring video generation to a reference image, creators maintain visual consistency while the model intelligently animates the scene based on natural language descriptions. Unlike generic video generation tools, sora-2-image-to-video preserves the exact composition, character design, and aesthetic of your input image while applying sophisticated motion synthesis. This capability is particularly valuable for creators building AI video generators that require both photorealistic quality and precise visual control—eliminating the need for multiple generation attempts or manual post-production alignment. ## Usage Notes - API Base URL: `https://api.eachlabs.ai/v1` - Authentication: send `X-API-Key: YOUR_API_KEY`. Generate a key from the Eachlabs dashboard at https://www.eachlabs.ai/dashboard/api-keys. - File-typed parameters (`*_url`, `image_url`, `video_url`, `audio_url`, etc.) accept publicly-reachable HTTPS URLs only. Upload your asset first (GCS / S3 / your CDN) and pass the resulting URL. Data-URIs and localhost URLs are rejected. - For structured parameters (arrays / objects) send real JSON values, not stringified payloads. - Monetary values are reported in USD; per-token / per-megapixel rates may be billed in micro-cents internally. - Prefer `webhook_url` over polling for long-running predictions — see the Webhook Callback section.