Kling Video O1 Reference-to-Video by Kuaishou delivers breakthrough subject-consistent video generation from image references. This unified multimodal model preserves character, prop, and scene identity across entirely new scenarios, powered by advanced feature extraction.
Kling Video O1 excels in identity consistency and motion quality. Internal tests show 247% improvement over Google Veo 3.1 and 230% over Runway Aleph in reference generation tasks.

vs Google Veo 3.1: Kling O1 outperforms by 247% in reference fidelity, offering better multi-view fusion without coherence loss; Veo lags in complex subject interactions.
vs Runway Gen-4.5: Superior identity retention across angles makes Kling ideal for pro-grade consistency; Runway focuses more on text-driven motion but struggles with multi-references.
vs Hailuo 2.3: Kling's CoT reasoning delivers smoother physics and camera work; Hailuo excels in speed but trails in subject stability for extended clips.
import requests, time headers = {"Authorization": "Bearer " + AIMLAPI_KEY} job = requests.post( "https://api.aimlapi.com/v2/video/generations", headers=headers, json={ "model": "kling-video/o1/reference-to-video", "prompt": "A serene timelapse of clouds over a mountain range" }, ).json() gid = job["id"] while True: res = requests.get(f"https://api.aimlapi.com/v2/video/generations?generation_id={gid}", headers=headers).json() if res.get("status") in ("completed", "error"): break time.sleep(5) print(res["video"]["url"])
const headers = { Authorization: `Bearer ${process.env.AIMLAPI_KEY}`, "Content-Type": "application/json", }; const job = await (await fetch("https://api.aimlapi.com/v2/video/generations", { method: "POST", headers, body: JSON.stringify({ "model": "kling-video/o1/reference-to-video", "prompt": "A serene timelapse of clouds over a mountain range" }), })).json(); let res; do { await new Promise((r) => setTimeout(r, 5000)); res = await (await fetch(`https://api.aimlapi.com/v2/video/generations?generation_id=${job.id}`, { headers })).json(); } while (!["completed", "error"].includes(res.status)); console.log(res.video.url);
# submit the generation — the response contains the job "id" curl -X POST https://api.aimlapi.com/v2/video/generations \ -H "Authorization: Bearer $AIMLAPI_KEY" \ -H "Content-Type: application/json" \ -d '{"model":"kling-video/o1/reference-to-video","prompt":"A serene timelapse of clouds over a mountain range"}' # then poll until status is "completed" — video.url holds the result curl "https://api.aimlapi.com/v2/video/generations?generation_id={id}" -H "Authorization: Bearer $AIMLAPI_KEY"
OpenAI-compatible — swap the base URL and it works with your existing SDK.
| Type | Price |
|---|---|
| Output | |
| Model | Input | Output | Context | Best for |
|---|---|---|---|---|
Kling Video O1 Reference-to-Video This page | Video generation |
Kling Video O1 Reference-to-Video takes image as input and returns video.
Kling Video O1 Reference-to-Video is priced at $0.1456 / sec (variable).
Kling Video O1 Reference-to-Video is billed per generation — a fixed charge per output rather than by prompt length.
Yes, Kling Video O1 Reference-to-Video accepts image input as well as a text prompt.
Kling Video O1 Reference-to-Video was built by Kling AI.
Send a request to v2/video/generations with kling-video/o1/reference-to-video as the model id.
Yes. Kling Video O1 Reference-to-Video is served through AI/ML API, so the same key and endpoint format used for other models applies.
It uses AI reasoning to maintain consistent appearance based on the reference images provided as input.