Generate high-quality AI videos using Kling O1. Supports text-to-video, raw reference images, persistent subject/object elements (image only), start/end frames, video transform, and video reference. Same shape as Omni 3.0 but does not supportDocumentation Index
Fetch the complete documentation index at: https://docs.unifically.com/llms.txt
Use this file to discover all available pages before exploring further.
multi_shots, native_audio, or video-type elements. Max duration 10s.
Model
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
video_mode | string | No | - | Input mode. Allowed: "elements", "start_end_frame", "transform", "video_reference". Omit for text-to-video |
prompt | string | Yes | - | Text prompt |
mode | string | No | "pro" | "std" (720p) or "pro" (1080p) |
duration | integer | No | 5 | Video length in seconds (3–10) |
aspect_ratio | string | No | - | "1:1", "9:16", "16:9", or "auto". Must be "auto" when video_url is set; rejected otherwise. Omit to let the server choose ("auto" if video_url, else "16:9") |
image_urls | string[] | No | - | Raw reference image URLs uploaded per request (max 7). No description, no reuse. Use @Image1, @Image2 in prompt |
start_image_index | integer | No | - | 1-based index into image_urls marking which reference image anchors the first frame. No end-frame equivalent |
elements | ElementInput30[] | No | - | Persistent subject/object assets (image only on O1). Auto-created on Kling and auto-deleted if submit fails. Use @Element1, @Element2 in prompt. Coexists with image_urls |
start_frame_url | string | No | - | First frame image URL (start_end_frame mode) |
end_frame_url | string | No | - | Last frame image URL (start_end_frame mode) |
video_url | string | No | - | Source video URL (transform / video_reference modes) |
Modes
| Mode | Required inputs | Optional inputs | Notes |
|---|---|---|---|
| omitted (text-to-video) | prompt | — | Rejects every input field including elements, image_urls, start_frame_url, video_url |
elements | At least one of image_urls, elements | — | Combined image_urls + elements cap of 7. video_url rejected |
start_end_frame | start_frame_url | end_frame_url, elements | — |
transform | video_url | image_urls, elements | Combined image_urls + elements cap of 4. aspect_ratio must be "auto" |
video_reference | video_url | image_urls, elements | Combined image_urls + elements cap of 4. aspect_ratio must be "auto" |
Text-to-video with elements — set
video_mode: "elements" and pass only the elements array (no image_urls required). The omit-video_mode path is strictly for pure text-to-video with zero inputs; any reference (image or element) requires elements mode.Reference images vs elements
image_urls— raw images uploaded per request. Single-use, no description, no reuse across tasks. Cap 7. Reference inpromptas@Image1,@Image2, …elements— persistent subject/object assets stored on the Kling account. Auto-created from your input on submit and auto-deleted if the submit fails. Reference inpromptas@Element1,@Element2, …
Elements
O1 supports IMAGE elements only — passing an element withtype: "video" returns 400.
| Parameter | Type | Default | Description |
|---|---|---|---|
description | string | "" | Short description of the element (max 100 chars) |
type | string | "image" | Must be "image" on O1 |
image_urls | string[] | - | Source image URLs for the element (max 4) |
