# Sora 2 | Image to Video | Pro Sora 2 Image to Video Pro transforms a single image into a realistic video with natural motion, lighting, and depth. ## API Information - **Model Slug:** sora-2-image-to-video-pro - **Branded URL:** https://www.eachlabs.ai/openai/sora-2/sora-2-image-to-video-pro - **Provider:** OpenAI - **Category:** Image to Video - **Output Type:** video - **Status:** active - **Version:** 0.0.1 - **Base Cost:** 720p (default): $0.30 per second of video duration (duration defaults to 8s) - **Estimated Processing Time:** 250 seconds - **Last Updated:** 2026-06-10 - **Interactive Demo:** https://www.eachlabs.ai/ai-models/sora-2-image-to-video-pro ## Pricing - **Charge Type:** dynamic - **Estimated Price (default example):** $2.40 - **Pricing Details:** 720p (default): $0.30 per second of video duration (duration defaults to 8s) ### Pricing Rules | Condition | Pricing | | --- | --- | | resolution eq_i "1080p" | 1080p: $0.50 per second of video duration | | Rule 2 | 720p (default): $0.30 per second of video duration (duration defaults to 8s) | ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | prompt | string | Yes | - | - | The text prompt describing the video you want to generate | | resolution | string | No | 720p | 720p,1080p | The resolution of the generated video | | 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 | | image_url | string | Yes | - | - | The URL of the image to use as the first frame | ## Example Request ```bash curl -X POST https://api.eachlabs.ai/v1/prediction/ \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "sora-2-image-to-video-pro", "input": { "prompt": "The camera glides slowly along the edge of a rocky seaside cliff as warm evening light reflects on the stone. Waves roll and break below, sending light mist into the air. Seabirds pass smoothly across the glowing horizon while the sky shifts from orange to soft pink. The movement feels calm and realistic, with gentle wind and natural motion in water, light, and air.", "image_url": "https://storage.googleapis.com/magicpoint/inputs/sora-2-pro-image-to-video-input.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 "Authorization: Bearer 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 `Authorization` bearer token | | `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-pro — Image-to-Video AI Model** sora-2-image-to-video-pro, OpenAI's advanced **image-to-video AI model** from the Sora 2 family, transforms static images into dynamic, realistic videos up to 20 seconds long with natural motion, synchronized audio, and cinematic quality. This Pro version excels at anchoring video generation to a reference image while adding lifelike physics, lighting, and depth, solving the challenge of creating professional short-form content without extensive editing. Developers and creators searching for **OpenAI image-to-video** tools find sora-2-image-to-video-pro ideal for quick iterations on social media clips or marketing visuals, supporting inputs like JPEG, PNG, or WebP images paired with text prompts. ## Usage Notes - API Base URL: `https://api.eachlabs.ai/v1` - Authentication: send `Authorization: Bearer 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.