# Kling | o3 | Pro | Video to Video | Reference Generates videos using a reference clip as a visual anchor Kling O3 Pro locks character identity, motion style, and scene details from your input to produce consistent, high-quality output. ## API Information - **Model Slug:** kling-o3-pro-video-to-video-reference - **Branded URL:** https://www.eachlabs.ai/kling/kling-o3/kling-o3-pro-video-to-video-reference - **Provider:** Kling - **Category:** Reference to Video - **Output Type:** video - **Status:** active - **Version:** 0.0.1 - **Estimated Processing Time:** 300 seconds - **Last Updated:** 2026-05-15 - **Interactive Demo:** https://www.eachlabs.ai/ai-models/kling-o3-pro-video-to-video-reference ## Pricing Pricing information not available. ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | prompt | string | Yes | - | - | Text prompt for video generation. Reference video as @Video1. | | video_url | string | Yes | - | - | Reference video URL. Only .mp4/.mov formats, 3-10s duration, 720-2160px resolution, max 200MB. | | image_urls | array | No | - | 0–4 | Reference images for style/appearance. Reference in prompt as @Image1, @Image2, etc. Maximum 4 total (elements + reference images) when using video. | | elements | array | No | - | 0–4 | Elements (characters/objects) to include. Reference in prompt as @Element1, @Element2. | | keep_audio | boolean | No | true | - | Whether to keep the original audio from the reference video. | | aspect_ratio | string | No | 16:9 | 16:9,9:16,1:1 | Aspect ratio. | | duration | string | No | 5 | 3,4,5,6,7,8,9,10,11,12,13,14,15 | Video duration in seconds (3-15s for reference video). | | shot_type | string | No | customize | customize | The type of multi-shot video generation. | ## 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": "kling-o3-pro-video-to-video-reference", "input": { "video_url": "https://storage.googleapis.com/magicpoint/inputs/kling-o3-pro-video-to-video-reference-input-video.mp4", "prompt": "Replace the main character with @Element1. The entire scene should match the painterly oil painting style of @Image1." } }' ``` ## 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 Kling | o3 | Standard | Video to Video | Reference, part of Kling's O3 family from provider Kling, excels at generating new video shots from reference videos or images, preserving cinematic motion, camera style, and scene continuity for seamless extensions. This video-to-video model leverages the unified multimodal Omni architecture to transform reference inputs into consistent, high-quality outputs, solving the challenge of maintaining character identity and environmental details across shots. Unlike traditional text-only generators, it prioritizes reference-driven consistency, making it ideal for creators needing precise control over multi-subject scenes and transitions. Available via each::labs (eachlabs.ai), this Kling video-to-video tool supports professional workflows with up to 10+ references simultaneously, enabling complex productions without losing stylistic fidelity. ## 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.