Kling 3.0 Omni
Kling 3.0 Omni — unified text/image/reference-to-video model with video editing, native audio, and multi-shot timelines.
POST /v2/videos/generate — model: "kling-3.0-omni"
Kling 3.0 Omni is the unified Kling model. On top of everything Kling 3.0 offers (flexible 3–15s duration, standard/pro/4K modes, audio, end-frame control, multi-shot timelines), it adds reference images for subject/style guidance and a reference video for style transfer or full video editing.
See Video Generation overview for common request fields, response format, and error codes.
Model-specific parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
klingParams.duration | integer | 5 | Video duration in seconds (3–15) |
klingParams.aspect_ratio | string | — | Aspect ratio: "16:9", "9:16", or "1:1" |
klingParams.mode | string | "pro" | Generation mode: "standard" (720p), "pro" (1080p), or "4k" (2160p) |
klingParams.start_image | string | — | URL of an image to use as the first frame |
klingParams.end_image | string | — | URL of an image to use as the last frame |
klingParams.negative_prompt | string | — | Things to avoid in the video (max 2,500 chars) |
klingParams.generate_audio | boolean | true | Whether to generate native audio. Cannot be combined with reference_video. |
klingParams.reference_images | string[] | — | Up to 7 reference-image URLs (max 4 when a reference_video is set). Refer to them in the prompt as <<<image_1>>>, <<<image_2>>>, … |
klingParams.reference_video | string | — | URL of a 3–10s clip used for style transfer or video editing. |
klingParams.video_reference_type | string | — | Required when reference_video is set: "feature" (style/camera reference) or "base" (edit/restyle this video). |
klingParams.keep_original_sound | boolean | false | Keep the reference video's original audio track. |
klingParams.multi_prompt | array | — | JSON array of { "prompt": string, "duration": integer } shots (max 6) for timeline control. |
generate_audio and reference_video are mutually exclusive — a request that sets both is rejected. When a reference_video is supplied, video_reference_type is required and reference_images is capped at 4.
Reference images
Attach up to 7 reference images and address them positionally in your prompt with the <<<image_N>>> token (1-indexed). For example:
{
"prompt": "<<<image_1>>> walks through <<<image_2>>> at golden hour",
"reference_images": [
"https://example.com/character.png",
"https://example.com/location.png"
]
}Credit cost
Pricing is per second of output. The total credit cost is credits-per-second × duration. The variant key combines mode and generate_audio; duration is applied as a multiplier.
| Variant | Credits / sec |
|---|---|
standard | 29 |
standard-audio | 43 |
pro | 39 |
pro-audio | 58 |
4k | 72 |
4k-audio | 72 |
Examples: a 5-second pro clip with audio costs 58 × 5 = 290 credits; a 10-second standard clip without audio costs 29 × 10 = 290 credits; a 15-second pro clip with audio costs 58 × 15 = 870 credits.
4k renders at 3840×2160 and takes noticeably longer than lower modes. Audio does not change the per-second rate at 4k (both 4k and 4k-audio bill 72 credits/sec).
Example result
Once the job is COMPLETED, the result object on GET /v2/jobs/:id looks like:
{
"videoUrl": "https://cdn2.apiframe.ai/videos/b2c3d4e5-f6a7-8901-bcde-f23456789012.mp4"
}See Result format for field details.
Code examples
curl -X POST https://api.apiframe.ai/v2/videos/generate \
-H "X-API-Key: afk_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"prompt": "<<<image_1>>> explores a neon-lit market at night",
"model": "kling-3.0-omni",
"klingParams": {
"duration": 10,
"mode": "pro",
"aspect_ratio": "16:9",
"generate_audio": true,
"reference_images": ["https://example.com/character.png"]
}
}'import requests
response = requests.post(
"https://api.apiframe.ai/v2/videos/generate",
headers={
"X-API-Key": "afk_your_api_key_here",
"Content-Type": "application/json",
},
json={
"prompt": "<<<image_1>>> explores a neon-lit market at night",
"model": "kling-3.0-omni",
"klingParams": {
"duration": 10,
"mode": "pro",
"aspect_ratio": "16:9",
"generate_audio": True,
"reference_images": ["https://example.com/character.png"],
},
},
)
print(response.json())const response = await fetch("https://api.apiframe.ai/v2/videos/generate", {
method: "POST",
headers: {
"X-API-Key": "afk_your_api_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({
prompt: "<<<image_1>>> explores a neon-lit market at night",
model: "kling-3.0-omni",
klingParams: {
duration: 10,
mode: "pro",
aspect_ratio: "16:9",
generate_audio: true,
reference_images: ["https://example.com/character.png"],
},
}),
});
console.log(await response.json());Try it
/v2/videos/generateTry it