Kuaishou
Kling 3.0
kling-3.0-omni/transformation
A unified multimodal video generation series supporting text-to-video, image-to-video, reference-to-video, and in-video editing, with native lip sync and multilingual audio
Try kling-3.0-omni/transformation
Input
Showcases
View all showcasesOutput
Pricing
kling-3.0-omni/transformation per second
| Specifications | Unit Price |
|---|---|
| 720P | $0.143 |
| 1080P | $0.193 |
| 4K | $0.479 |
Positioning Overview
Kling 3.0 Omni's video transformation pipeline is designed for developers who need to do secondary creation on existing footage. Input a 3 to 15.5 second source video along with a text description, and the video content can be rewritten according to the description. The output duration and aspect ratio follow the source video, and you can choose 720p, 1080p, or 4K resolution. It supports referencing up to 7 reusable subjects in the prompt using @name, with each subject defined by 2 to 4 images—ideal for rewriting tasks that require consistent people or objects. Call it through the unified HiAPI.ai interface.
Core Highlights
- Rewriting based on a source video, not generating from scratch—The output duration and aspect ratio inherit from the source video, and the visual structure has a foundation to build on, making it suitable for targeted re-creation of existing footage.
- Prompts can reference named subjects—Register up to 7 subjects, each described with 2 to 4 images, and call them in the prompt using @name, making it easy to keep the same identity across shots.
- Resolution options up to 4K—Output is available in three tiers: 720p, 1080p, and 4k, so you can choose clarity based on the distribution channel.
Capability Description
Targeted source video rewriting: Upload an MP4 or MOV source video (max 200MB, 3 to 15.5 seconds, 700 to 4553 pixels, 24 to 60fps), transform the content according to the prompt, and the output inherits the source video's duration and aspect ratio.
Multi-subject referencing: Provide 2 to 4 JPG or PNG images for the same subject and name it, up to 7 groups, and refer to it in the prompt using @name, reducing the cost of describing the subject's appearance in text.
Resolution tier selection: Output can be 720p, 1080p, or 4k, with 720p as the default, making it easy to trade off between clarity and generation cost depending on the use case.
Prompt length control: Prompts support up to 3072 characters, accommodating fairly complete content rewriting instructions while keeping a single segment manageable.
Use Cases
- Advertising and marketing teams rewriting existing short videos—Rewrite existing shot or generated footage into different creative versions, producing short video deliverables ready for direct distribution.
- E-commerce operations replacing product display footage—Use a product short video as the source video, rewrite the scene or presentation style according to the prompt, and get a display video that fits the product page.
- Content teams reusing character assets—After registering a fixed character subject, reference it using @name across multiple transformation tasks to produce a series of videos with a consistent appearance.
Limitations and Selection Advice
This pipeline accepts only one source video, and the output follows the source video's duration and aspect ratio, so long content needs to be processed in segments; the source video must meet constraints such as 3 to 15.5 seconds and within 200MB, and anything outside that range cannot be used directly; the specifications explicitly state that no audio is generated, so scenes that need sound must be handled separately. If the task is generation from scratch or pure image-to-video, you can switch to the text-to-video or image-to-video pipelines in the same series; if fine motion control is needed, consider the motion control pipeline.
What's new
View changelog →- New model New models: Kling 3.0 Omni (可灵 O3) via POST /v1/tasks
Frequently asked questions
View all FAQs →-
Does Kling 3.0 Image-to-Video require an input image?
Yes. kling-3.0/image-to-video is an image-to-video route. The image establishes the subject and opening composition; the prompt directs motion, camera, and environmental change.
-
Which durations and resolutions does Kling 3.0 Image-to-Video support?
The current HiAPI contract supports 3–15s at 720p or 1080p or 4K. Check the page controls and API docs for the current options.
-
How is Kling 3.0 Image-to-Video billed?
Billing follows output duration and the selected tier. The page follows the global display unit, while the successful task record contains the final charge.
-
How can I improve subject consistency?
Use a clear, unobstructed source with a complete composition. Describe the main action and camera first, then name the appearance, material, and background relationships that must remain stable. Validate a short clip first.
Create a generation task
https://api.hiapi.ai/v1/tasks Headers
AuthorizationstringRequiredAccount API key. Required on every request. Example: Bearer YOUR_HIAPI_API_KEY. Get your API key
Content-TypestringOptionalThe request body is always parsed as JSON; when sent, only application/json (optionally with charset) is accepted — any other value returns 415. Example: application/json.
Idempotency-KeystringOptionalIdempotency key, up to 255 bytes. Retries with the same key from the same account create the task only once; replays return the original taskId.
On network timeouts or client retries, the same key creates the task only once — no double charges (scope: the API key's account). Use a business-unique identifier as the key (e.g. "order-42"); replays return the original taskId, and keys expire 24 hours after the first request. See the Unified Async API overview for the full scenario matrix.
Body
modelstringRequiredCurrent fixed value: kling-3.0-omni/transformation
routestringOptionalCurrent fixed value: default
inputobjectRequired
Business parameters for kling-3.0-omni/transformation and route default — see the parameter table below.
promptstringRequiredminLength 1maxLength 3072Video description text, used to describe the desired video content to be generated; if referencing an input subject, mention the corresponding subject name in the text in the form of @name.
elementsarrayOptionalmaxItems 7
Array of reusable subjects, up to 7; each element consists of a name, a short description, and 2-4 images, and can be referenced in the prompt as @name.
Array [ object ]
Array items
namestringRequiredminLength 1Subject name, used as the reference identifier for @name in the prompt; it must be unique and contain no spaces.
descriptionstringRequiredminLength 1A short textual description of the subject, used to help the model understand the subject's characteristics.
element_input_urlsarrayRequiredminItems 2maxItems 4Array of images for the same subject; 2-4 must be provided, in JPG or PNG format.
Array [ string ]
resolutionstringOptionalDefault: "720p"Output video resolution, default 720p.
720p1080p4kvideo_urlsarrayRequiredminItems 1maxItems 1Array of source videos to be converted; supports MP4 or MOV, maximum 200MB, duration 3-15.5 seconds, width and height 700-4553 pixels, frame rate 24-60 fps; the output video's duration and aspect ratio follow the source video, and no audio is generated.
Array [ string ]
callbackobjectOptional
Terminal-state notification config. When omitted, no callback is delivered — poll the task yourself. See the callback note below.
Provide callback.url when creating a task and HiAPI POSTs to your service once the task reaches a terminal state — no polling needed. The callback payload mirrors the task detail structure; signature verification, delivery retries and idempotency are documented on the Unified Async API overview page.
urlstringRequiredRequired when callback is present. A POST is sent to this URL once the task reaches a terminal state; must be a valid http(s) URL.
whenstringOptionalDefault: "final"Only final is supported today — notified on both success and fail.
finalstoragestringOptionalDefault: "temp"Artifact storage tier: temp (default, retained about 7 days) or persistent (long-term, billed by size). Insufficient balance or exceeding the storage cap silently downgrades to temp; the effective tier is shown in the task detail response.
temppersistentRequest examples
# Submit an async task; returns a taskId immediately (no waiting for generation)
curl -X POST "https://api.hiapi.ai/v1/tasks" \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kling-3.0-omni/transformation",
"input": {
"prompt": "…",
"resolution": "720p",
"video_urls": "…"
}
}' const res = await fetch("https://api.hiapi.ai/v1/tasks", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.HIAPI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "kling-3.0-omni/transformation",
input: {
"prompt": "…",
"resolution": "720p",
"video_urls": "…"
}
}),
});
const task = await res.json();
// { code: 200, message: "success", data: { taskId } } import os, requests
res = requests.post(
"https://api.hiapi.ai/v1/tasks",
headers={"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"},
json={
"model": "kling-3.0-omni/transformation",
"input": {
"prompt": "…",
"resolution": "720p",
"video_urls": "…"
}
},
)
print(res.json()) # { code, message, data: { taskId } } 200 OK
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR"
}
} 400 Bad Request
{
"code": 400,
"message": "invalid request",
"data": null,
"error_code": "INVALID_REQUEST"
} Get task detail
https://api.hiapi.ai/v1/tasks/:id Response fields
taskIdstringRequiredTask ID, always prefixed with tk-hiapi-.
modelstringRequiredResolved full model name. Tasks submitted with the route parameter return base@route (e.g. gpt-image-2/text-to-image@ext); otherwise identical to the name passed at creation.
routestringOptionalPresent only when the task was submitted with an explicit route parameter; echoes the submitted value.
statusstringRequiredTask status.
queued Queued, not started yet.
handling Being processed.
archiving Processing finished, artifacts being prepared.
success Terminal: completed, artifacts available (output returned).
fail Terminal: failed (error returned).
After submission, check status: success and fail are terminal, everything else is non-terminal. Poll every 1–3 seconds until terminal. On success, download artifacts from output[].url and transfer them before expireAt; pass storage: "persistent" at creation time when long-term retention is needed.
creatednumberRequiredTask creation time (Unix seconds).
completednumberRequiredUnix seconds when the task reached a terminal state; fixed to 0 while not terminal.
outputarrayOptional
Present only when status == success. Artifact list — always an array; a single task may return multiple types at once (e.g. video + first_frame).
Array [ object ]
Array items
urlstringRequiredArtifact URL, directly downloadable.
typestringRequiredCurrent possible values: video, image, audio, first_frame, last_frame, thumbnail; more may be added later.
expireAtnumberRequiredUnix seconds until which the artifact remains accessible; download or transfer before it expires.
errorobjectOptional
Present only when status == fail.
codestringRequiredBusiness error code.
messagestringRequiredError description.
Response examples
Success
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR",
"model": "happyhorse-1-0",
"status": "success",
"created": 1777282033,
"completed": 1777282099,
"output": [
{
"url": "https://cdn.hiapi.ai/tasks/.../video.mp4",
"type": "video",
"expireAt": 1777886899
}
]
}
} Processing (non-terminal)
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "archiving",
"created": 1777282033,
"completed": 0
}
} Failed
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "fail",
"created": 1777282033,
"completed": 1777282099,
"error": {
"code": "TASK_FAILED",
"message": "task failed"
}
}
} Articles
View all articles →Related Models
View all models →Same Type
-
Vidu Q3 Vidu $0.149 /second -
Seedance 2.5 ByteDance $0.121 /second -
Wan 3.0 Video Alibaba $0.040 /second -
PixVerse V6 PixVerse $0.036 /second -
Gemini Omni Google -- -
Veo 3.1 Fast Google $0.170 /second -
FLUX 3 Max Black Forest Labs $0.061 /second -
Kling AI Avatar Kuaishou -- -
Kling 3.0 Turbo Kuaishou $0.130 /second -
Wan 2.7 Video Alibaba $0.100 /second -
Veo 3.1 Lite Google $0.060 /second -
Grok Imagine 1.5 xAI $0.011 /second