# Sora 2 | Text to Video | Pro Sora 2 Text to Video Pro is a next-generation model that turns written descriptions into ultra-realistic, physically accurate videos. It captures natural motion, lighting, and depth with cinematic precision, delivering smooth, lifelike results from simple text prompts. ## API Information - **Model Slug:** sora-2-text-to-video-pro - **Branded URL:** https://www.eachlabs.ai/openai/sora-2/sora-2-text-to-video-pro - **Provider:** OpenAI - **Category:** Text to Video - **Output Type:** video - **Status:** active - **Base Cost:** $0.30–$0.50 per second, depending on resolution - **Estimated Processing Time:** 250 seconds - **Interactive Demo:** https://www.eachlabs.ai/ai-models/sora-2-text-to-video-pro ## Pricing - **Charge Type:** dynamic - **Estimate:** $0.30–$0.50 per second, depending on resolution - **Pricing Details:** 1080p: $0.5 - **Pricing Details:** default: $0.3 ## 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 | 16:9, 9:16 | The aspect ratio of the generated video. | | duration | integer | No | 4 | 4, 8, 12, 16, 20 | Duration of the generated video in seconds. | | character_id | string | No | - | - | Optional character asset ID (char_xxx) uploaded via the Characters API. The character's name must appear verbatim in the prompt. | ## 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-text-to-video-pro", "input": { "prompt": "A calm cinematic scene at sunset on a quiet park path. A man and a woman walk slowly side by side, talking softly as warm golden light filters through the trees. Their gestures feel natural and relaxed while autumn leaves drift gently around them. The camera tracks smoothly behind, capturing the glow of sunset and subtle lens flare. Soft ambient sound of wind and leaves, no background music, ultra-realistic motion." } }' ``` ## 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-text-to-video-pro — Text to Video AI Model** Developed by OpenAI as part of the **sora-2** family, **sora-2-text-to-video-pro** transforms text prompts into cinematic videos up to 20 seconds at 1080p resolution with native synchronized audio and realistic physics simulation. This **OpenAI text-to-video** model excels in storytelling by generating lifelike motion, depth, and sound effects in a single pass, ideal for creators seeking professional-grade output without post-production. Unlike basic video generators, **sora-2-text-to-video-pro** supports video extension and remix workflows, enabling seamless iteration from initial clips to refined narratives. Developers and marketers searching for a **text-to-video AI model** with built-in audio find it perfect for rapid prototyping of social media reels or product demos. ## 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.