# Kling O1 | Video to Video Reference Kling O1 Omni generates new shots guided by an input reference video, preserving cinematic language such as motion, framing, and camera style to maintain seamless scene continuity and visual coherence. ## API Information - **Model Slug:** kling-o1-video-to-video-reference - **Branded URL:** https://www.eachlabs.ai/kling/kling-o1/kling-o1-video-to-video-reference - **Provider:** Kling - **Category:** Reference to Video - **Output Type:** video - **Status:** active - **Version:** 0.0.1 - **Base Cost:** Unit-based pricing: $0.14 per Kling unit - **Estimated Processing Time:** 180 seconds - **Last Updated:** 2026-04-16 - **Interactive Demo:** https://www.eachlabs.ai/ai-models/kling-o1-video-to-video-reference ## Pricing - **Charge Type:** dynamic - **Pricing Details:** Unit-based pricing: $0.14 per Kling unit ### Pricing Rules | Condition | Pricing | | --- | --- | | Rule 1 | Unit-based pricing: $0.14 per Kling unit | ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | prompt | string | Yes | - | - | Use @Element1, @Element2 to reference elements and @Image1, @Image2 to reference images in order. | | video_url | string | Yes | - | - | Reference video URL. Only .mp4/.mov formats supported, 3-10 seconds duration, 720-2160px resolution, max 50MB. | | 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, etc. Maximum 4 total (elements + reference images) when using video. | | aspect_ratio | string | No | auto | auto,16:9,9:16,1:1 | The aspect ratio of the generated video frame. If 'auto', the aspect ratio will be determined automatically based on the input video, and the closest aspect ratio to the input video will be used. Default value: "auto" | | duration | string | No | 5 | 5,10 | Video duration in seconds. | | keep_audio | boolean | No | false | - | Whether to keep the original audio from the video. | ## 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-o1-video-to-video-reference", "input": { "video_url": "https://storage.googleapis.com/magicpoint/inputs/kling-o1-video-to-video-reference-input.mp4", "prompt": "Based on @Video1, generate the next shot. keep the style of the video" } }' ``` ## 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-o1-video-to-video-reference — Video-to-Video AI Model** Developed by Kling as part of the **kling-o1** family, **kling-o1-video-to-video-reference** enables creators to generate new video shots guided by a reference video, preserving cinematic language like motion, framing, and camera style for seamless scene continuity. This video-to-video AI model leverages Kling O1's unified multimodal architecture to handle reference videos of 3-10 seconds, outputting high-fidelity clips up to 1080p resolution that maintain visual coherence without manual editing. Ideal for filmmakers and content creators seeking **Kling video-to-video** tools, it transforms a single reference into extended narratives, solving the challenge of consistent multi-shot production. ## 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.