Kling Video O1


Kling Video O1 (Omni One) is Kuaishou's industry-first unified multimodal video model that merges video generation and editing into a single engine. Integrating text-to-video, image-to-video, element referencing, localized inpainting, and video restyling, it supports referencing up to 7 subjects simultaneously to lock character and prop consistency. Creators can perform conversational video editing via natural language prompts—ideal for advertising, VFX, and end-to-end film production.

Kling Video O1

Kling Video O1 (Omni One) is Kuaishou's industry-first unified multimodal video model that merges video generation and editing into a single engine. Integrating text-to-video, image-to-video, element referencing, localized inpainting, and video restyling, it supports referencing up to 7 subjects simultaneously to lock character and prop consistency. Creators can perform conversational video editing via natural language prompts—ideal for advertising, VFX, and end-to-end film production.

Base URL

https://api.icreat.ai

Authentication

All API requests must be authenticated with an API Key. You can obtain an API Key from the console.

export ICREAT_API_KEY="your-api-key-here"

HTTP Request Headers

import os

API_KEY = os.environ.get("ICREAT_API_KEY")
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer " + API_KEY,
}

Protect your API Key

Never expose your API Key in client-side code or public repositories. Use environment variables or a backend proxy.

Code Examples

Image and video generation uses a three-step async flow: submit to get task_id, poll status, then fetch results when status is SUCCEEDED.

1. Submit Task

Send a generation request to the submit endpoint.

POST/v1/task/submit/kwaivgi/kling-video-o1

2. Poll Status

Poll with task_id. Response contains only status.

POST/v1/task/query-status

3. Get Result

Fetch output when the task succeeds.

POST/v1/task/get-result

Input Schema

Submit Task — Input

Total: 17 Required: 3 Optional: 14

negative_promptstring

Negative prompt describing content that should not appear in the video

multi_shotboolean

Whether to enable multi-shot generation

image_listobject[]

List of image assets

element_listobject[]

List of subject assets

video_listobject[]

List of video assets

soundstring

Whether to generate audio. Supported values: on, off. Must be off when video_list is provided

modestring

Generation mode. Supported values: std, pro, 4k. std corresponds to 720p and pro corresponds to 1080p

aspect_ratiostring

Output aspect ratio. Supported values: 16:9, 9:16, 1:1

durationstring

Video duration in seconds

watermark_infoobject

Watermark configuration. Currently, only the enabled field is supported

image_urlstringrequired

Image URL

typestring

Image type. Supported values: first_frame, end_frame

element_idstringrequired

ID of a subject in the subject library

video_urlstringrequired

Video URL

refer_typestring

Video reference type. Supported values: feature, base

keep_original_soundstring

Whether to preserve the original video audio. Supported values: yes, no

enabledboolean

Whether to enable the watermark

Poll Status — Input

Total: 1 Required: 1 Optional: 0

task_idstringrequired

Task ID from the submit endpoint.

Get Result — Input

Total: 1 Required: 1 Optional: 0

task_idstringrequired

Task ID from the submit endpoint.

Output Schema

Submit Task — Output

Total: 1

task_idstring

Async task identifier.

Poll Status — Output

Total: 1

statusstring

Current task status. Fetch results when SUCCEEDED.

Get Result — Output

Top-level array of resource objects.

Total: 3

typestring

Resource type; Video for this model.

urlstring

Preview/access URL.

download_urlstring

Download URL.

LLM Prompt

The Markdown below is an LLM-friendly prompt you can paste into AI assistants (e.g. Cursor, ChatGPT) to help them understand this model's API, call flow, and key parameters. Use Copy for AI or copy from the code block below.

# kwaivgi/kling-video-o1

> Kling Video O1 (Omni One) is Kuaishou's industry-first unified multimodal video model that merges video generation and editing into a single engine.

## Overview

Use the iCreat three-step async task API: submit a generation request, poll status, then fetch the video URL on success.

## API Info

- **Base URL**:`https://api.icreat.ai`
- **Submit endpoint (POST)**:`/v1/task/submit/kwaivgi/kling-video-o1`
- **Poll endpoint (POST)**:`/v1/task/query-status`
- **Get result endpoint (POST)**:`/v1/task/get-result`
- **Model ID**:`kwaivgi/kling-video-o1`
- **Auth**:`Authorization: Bearer ${ICREAT_API_KEY}`

## Call Flow

1. **Submit**: POST submit path with body per Input Notes; response `{ "task_id": "..." }`
2. **Poll**: POST `/v1/task/query-status` with `{ "task_id": "..." }`; response contains **only** `{ "status": "SUBMITTED|SUCCEEDED|FAILED" }`
3. **Get result**: when `status` is `SUCCEEDED`, POST `/v1/task/get-result`; top-level array; read `url` or `download_url` when `type` is `Video`

### Input Notes

- Request body uses top-level flat fields
- Required: `element_id`, `video_url`
- Optional: `negative_prompt`, `multi_shot`, `image_list`, `element_list`, `video_list`, `sound`, `mode`, `aspect_ratio`, `duration`, `watermark_info`, `refer_type`, `keep_original_sound`, `enabled`
- `negative_prompt` (optional): Negative prompt describing content that should not appear in the video
- `multi_shot` (optional): Whether to enable multi-shot generation
- `image_list` (optional): List of image assets
- `element_list` (optional): List of subject assets
- `video_list` (optional): List of video assets
- `sound` (optional): Whether to generate audio. Supported values: `on`, `off`. Must be `off` when `video_list` is provided
- `mode` (optional): Generation mode. Supported values: `std`, `pro`, `4k`. `std` corresponds to 720p and `pro` corresponds to 1080p
- `aspect_ratio` (optional): Output aspect ratio. Supported values: `16:9`, `9:16`, `1:1`
- `duration` (optional): Video duration in seconds
- `watermark_info` (optional): Watermark configuration. Currently, only the `enabled` field is supported
- `element_id` (required): ID of a subject in the subject library
- `refer_type` (optional): Video reference type. Supported values: `feature`, `base`
- `keep_original_sound` (optional): Whether to preserve the original video audio. Supported values: `yes`, `no`
- `enabled` (optional): Whether to enable the watermark

### Output Notes

- Poll: read `status` only
- Result: top-level `[{ "type": "Video", "url": "...", "download_url": "..." }]`

## Notes

- Use the same `task_id` across all three steps; do not skip polling
- `FAILED` is terminal — check request parameters or reference media