vault backup: 2026-04-26 21:17:25

This commit is contained in:
Vadym Samoilenko 2026-04-26 21:17:25 +01:00
parent 20106495a9
commit 562e9aed2c
14 changed files with 797 additions and 1 deletions

View file

@ -23,3 +23,21 @@ tags: [daily]
- 21:09 (1min) | `memory-compiler`
- **Asked:** Compile a new Kling image-to-video API article into the wiki knowledge base.
- **Done:** Created structured wiki article documenting the image-to-video endpoint with motion brush and voice injection features.
- 21:10 (1min) | `memory-compiler`
- **Asked:** Compile a new article about Kling's multi-image-to-video API into the wiki knowledge base.
- **Done:** Created structured article documenting the POST /v1/videos/multi-image2video endpoint with full parameter and constraint details, updated index counts.
- 21:11 (<1min) | `memory-compiler`
- **Asked:** Compile a new article about Kling Motion Control API into the wiki knowledge base.
- **Done:** Created structured wiki article with full API reference, constraints table, key takeaways, and wikilinks.
- 21:12 (<1min) | `memory-compiler`
- **Asked:** Asked the developer to compile a new article on the Kling Multi-Elements API into the wiki knowledge base.
- **Done:** Compiled the article into the wiki with full workflow documentation and updated the master index article count.
- 21:13 (<1min) | `memory-compiler`
- **Asked:** Update the wiki knowledge base with a new article about the Kling video extension API and increment the web-agency article count.
- **Done:** Created structured wiki article documenting three API endpoints with schemas and constraints, updated article counts in both index files.
- 21:14 (1min) | `memory-compiler`
- **Asked:** Asked | Processed new Kling API reference article and filed it into knowledge base | Compiled Kling lip-sync API documentation into wiki structure with timing rules, audio options, and constraints | Kling API reference | Master Index update, new article creation | wiki/web-agency/kling-lip-sync-api.md, wiki Master Index
- **Done:**
- 21:15 (<1min) | `memory-compiler`
- **Asked:** Asked | Compile raw Kling video models article into structured wiki with capability matrix and model selection guide
- **Done:** Done | Created wiki/web-agency/kling-video-models.md with 11 model matrix, resolution/FPS tables, feature comparison, and selection guide

View file

@ -27,7 +27,7 @@ This 3-hop pattern works for hundreds of articles without vector search.
| [[wiki/connections/_index\|connections/]] | Cross-cutting insights linking 2+ concepts | 3 |
| [[wiki/qa/_index\|qa/]] | Filed answers to queries (saved with `--file-back`) | 0 |
| [[wiki/homelab/_index\|homelab/]] | Self-hosted infra: Proxmox install, IOMMU/PCI passthrough, hypervisor setup, budget builds, Homarr API + Apps + Boards + Certificates + Integrations + Settings + Tasks + AdGuard + Clock + Docker Stats + Docker Integration + Download Client + Firewall + Proxmox Integration + Radarr + Readarr + Sonarr + Bookmarks + Calendar + Icons + App Widget + Weather + GitHub + Nextcloud + qBittorrent + RSS Feed + Speedtest Tracker + System Health Monitoring + System Resources | 35 |
| [[wiki/web-agency/_index\|web-agency/]] | AI-assisted website building & selling: Claude Code, Nanobanana 2, Kling, LaunchPath MCP | 3 |
| [[wiki/web-agency/_index\|web-agency/]] | AI-assisted website building & selling: Claude Code, Nanobanana 2, Kling, LaunchPath MCP | 9 |
| [[wiki/dotfiles/_index\|dotfiles/]] | Linux terminal ricing: Kitty, Fish, WezTerm CLI, modern Rust CLI tools, LazyVim, unified themes, Tabby | 21 |
| [[wiki/agent-sdk/_index\|agent-sdk/]] | Claude Agent SDK (formerly Claude Code SDK) — build autonomous AI agents in Python and TypeScript | 30 |
| [[wiki/llm-models/_index\|llm-models/]] | LLM model catalogs — OpenAI and Claude/Anthropic models, IDs, context, pricing | 2 |

View file

@ -8,3 +8,8 @@
| [[wiki/web-agency/kling-text-to-video-api\|Kling AI Text-to-Video API Reference]] | Full REST API reference: create/query tasks, multi-shot storyboard, camera control, models v1v3. Videos expire 30 days. | Kling AI docs | 2026-04-26 |
| [[wiki/web-agency/kling-image-to-video-api\|Kling AI Image-to-Video API Reference]] | Animate a still image or interpolate between two frames. Motion brush, voice injection, element library, multi-shot from image. | Kling AI docs | 2026-04-26 |
| [[wiki/web-agency/kling-multi-image-to-video-api\|Kling AI Multi-Image-to-Video API Reference]] | Composite 24 reference images into one video (kling-v1-6 only). Subject+clothing, product-in-scene workflows. Videos expire 30 days. | Kling AI docs | 2026-04-26 |
| [[wiki/web-agency/kling-motion-control-api\|Kling AI Motion Control API Reference]] | Pose/motion transfer: drive a character image using a reference video. Duration matches reference video; image vs video orientation modes. | Kling AI docs | 2026-04-26 |
| [[wiki/web-agency/kling-multi-elements-api\|Kling AI Multi-Elements API Reference]] | Session-based element editing: add, swap, or remove objects in existing videos via RLE segmentation masks. 5 or 10-second output. | Kling AI docs | 2026-04-26 |
| [[wiki/web-agency/kling-video-extension-api\|Kling AI Video Extension API Reference]] | Extend any Kling video by 45 s per call up to 3-minute total cap. Model/mode locked to source. Videos expire after 30 days. | Kling AI docs | 2026-04-26 |
| [[wiki/web-agency/kling-lip-sync-api\|Kling AI Advanced Lip-Sync API Reference]] | Two-step face-identify → lip-sync workflow. Audio timing triplet, volume controls, one-person limit. Results expire 30 days. | Kling AI docs | 2026-04-26 |
| [[wiki/web-agency/kling-video-models\|Kling AI Video Models — Capability Matrix]] | Full model lineup (v1v3-omni, o1): feature support per tier, resolution/FPS table, and model selection guide. | Kling AI docs | 2026-04-26 |

View file

@ -0,0 +1,166 @@
---
title: "Kling AI Advanced Lip-Sync API Reference"
aliases: [kling-lip-sync, advanced-lip-sync, kling-face-sync]
tags: [kling, api, lip-sync, video, ai-video]
sources: [raw/Kling AI Next-Gen AI Video & AI Image Generator 7.md]
created: 2026-04-26
updated: 2026-04-26
---
## Overview
Two-step workflow to overlay audio onto a detected face in a video: **identify face → create lip-sync task**. Session ID links the two calls. Currently supports **one person only**.
Base URL: `https://api-singapore.klingai.com`
---
## Step 1 — Identify Face
`POST /v1/videos/identify-face`
Detects faces in the source video and returns face IDs + time intervals. The `session_id` returned here is required for the next step.
### Request Body
| Field | Type | Required | Notes |
|-------|------|----------|-------|
| `video_id` | string | Either/or | Kling-generated video ID (last 30 days, ≤60 s) |
| `video_url` | string | Either/or | `.mp4`/`.mov`, ≤100 MB, 260 s, 720p or 1080p, 5122160 px |
- `video_id` and `video_url` are mutually exclusive — exactly one must be provided.
### Response `data`
```json
{
"session_id": "id",
"final_unit_deduction": "string",
"face_data": [
{
"face_id": "string",
"face_image": "url",
"start_time": 0,
"end_time": 5200
}
]
}
```
- `start_time` / `end_time` — face appearance window in the video (ms)
---
## Step 2 — Create Lip-Sync Task
`POST /v1/videos/advanced-lip-sync`
Assigns audio to a specific face and queues the render.
### Request Body
| Field | Type | Required | Notes |
|-------|------|----------|-------|
| `session_id` | string | Required | From identify-face response |
| `face_choose` | array | Required | One entry per face (max 1 currently) |
| `external_task_id` | string | Optional | Custom ID; must be unique per user |
| `callback_url` | string | Optional | Webhook for status changes |
| `watermark_info` | object | Optional | `{"enabled": true\|false}` |
#### `face_choose` entry fields
| Field | Type | Required | Notes |
|-------|------|----------|-------|
| `face_id` | string | Required | From `face_data` in Step 1 |
| `audio_id` | string | Either/or | ID from Kling TTS API; 260 s, last 30 days |
| `sound_file` | string | Either/or | Base64 or URL; `.mp3/.wav/.m4a/.aac`, ≤5 MB, 260 s |
| `sound_start_time` | long | Required | Crop start in source audio (ms from 0) |
| `sound_end_time` | long | Required | Crop end in source audio (ms); cropped segment ≥2 s |
| `sound_insert_time` | long | Required | Where in the video to insert audio (ms); must overlap face interval ≥2 s |
| `sound_volume` | float | Optional | `[0, 2]` — injected audio volume |
| `original_audio_volume` | float | Optional | `[0, 2]` — original video audio volume; no effect if video is silent |
### Response `data`
```json
{
"task_id": "string",
"task_status": "submitted|processing|succeed|failed",
"created_at": 1722769557708,
"updated_at": 1722769557708
}
```
---
## Step 3 — Query Task
### Single task
`GET /v1/videos/advanced-lip-sync/{task_id}`
### List tasks
`GET /v1/videos/advanced-lip-sync?pageNum=1&pageSize=30`
- `pageNum`: 11000
- `pageSize`: 1500
### Result schema
```json
{
"task_id": "string",
"task_status": "submitted|processing|succeed|failed",
"task_status_msg": "string",
"task_info": {
"parent_video": { "id": "string", "url": "string", "duration": "string" }
},
"task_result": {
"videos": [
{
"id": "string",
"url": "string",
"watermark_url": "string",
"duration": "string"
}
]
},
"watermark_info": { "enabled": true },
"final_unit_deduction": "string",
"created_at": 1722769557708,
"updated_at": 1722769557708
}
```
> **Warning:** Generated videos are deleted after **30 days** — download promptly.
---
## Key Takeaways
- **Two-step flow:** identify face (get `session_id` + `face_id`) → create lip-sync task
- **One person limit:** `face_choose` array currently supports a single face only
- **Audio source:** either Kling TTS `audio_id` or external `sound_file` (URL or base64) — mutually exclusive
- **Timing triplet:** `sound_start_time` + `sound_end_time` crop the audio; `sound_insert_time` places it in the video — overlap with face interval must be ≥2 s
- **Volume control:** both injected audio and original audio are independently adjustable on a `[0, 2]` scale
- **Video constraints:** source must be 720p/1080p, 260 s, ≤100 MB, `.mp4`/`.mov`
- **Results expire:** 30-day TTL on all generated video URLs
- **Callbacks supported:** set `callback_url` to avoid polling
---
## Related Articles
- [[wiki/web-agency/kling-text-to-video-api|Kling Text-to-Video API]] — generate source videos to feed into lip-sync
- [[wiki/web-agency/kling-image-to-video-api|Kling Image-to-Video API]] — animate a portrait image before syncing lips
- [[wiki/web-agency/kling-video-extension-api|Kling Video Extension API]] — extend the output after lip-sync
- [[wiki/web-agency/kling-multi-elements-api|Kling Multi-Elements API]] — session-based editing pattern (same session concept)
- [[wiki/web-agency/claude-code-nanobanana-website-workflow|Web Agency Workflow]] — where Kling fits in the £310K site pipeline
---
## Sources
- Raw: `raw/Kling AI Next-Gen AI Video & AI Image Generator 7.md`
- Kling AI API docs — Advanced Lip-Sync section

View file

@ -0,0 +1,183 @@
---
title: "Kling AI Motion Control API Reference"
aliases: [kling-motion-control, motion-control-api]
tags: [kling, video-generation, api, motion-control, pose-transfer]
sources: [raw/Kling AI Next-Gen AI Video & AI Image Generator 4.md]
created: 2026-04-26
updated: 2026-04-26
---
## Overview
Motion Control (`/v1/videos/motion-control`) drives a character in a **reference image** using the motion captured from a **reference video** — essentially pose/motion transfer. The generated video length matches the reference video duration.
Supported models: `kling-v2-6`, `kling-v3`
Base URL: `https://api-singapore.klingai.com`
---
## Create Task
**POST** `/v1/videos/motion-control`
### Required Fields
| Field | Type | Notes |
|-------|------|-------|
| `model_name` | enum | `kling-v2-6` or `kling-v3` |
| `image_url` | string | Reference character image (Base64 raw or URL) |
| `video_url` | string | Reference motion video (mp4/mov) |
| `character_orientation` | enum | `image` or `video` |
| `mode` | enum | `std` (cost-effective) or `pro` (high quality) |
### Optional Fields
| Field | Type | Notes |
|-------|------|-------|
| `prompt` | string | Max 2500 chars; add scene elements, camera hints |
| `keep_original_sound` | enum | `yes` / `no` |
| `element_list` | array | One element ID from element library |
| `watermark_info` | object | `{ "enabled": boolean }` |
| `callback_url` | string | Webhook for status change notifications |
| `external_task_id` | string | Your own task ID (unique per account) |
### Minimal Example
```bash
curl --request POST \
--url https://api-singapore.klingai.com/v1/videos/motion-control \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json; charset=utf-8' \
--data-raw '{
"model_name": "kling-v2-6",
"image_url": "https://example.com/character.png",
"video_url": "https://example.com/dance.mp4",
"character_orientation": "image",
"mode": "pro",
"keep_original_sound": "yes"
}'
```
### Response
```json
{
"code": 0,
"request_id": "string",
"data": {
"task_id": "string",
"task_status": "submitted",
"created_at": 1722769557708,
"updated_at": 1722769557708
}
}
```
Task statuses: `submitted``processing``succeed` / `failed`
---
## Query Task (Single)
**GET** `/v1/videos/motion-control/{task_id}`
- Can query by system `task_id` **or** your `external_task_id` in the path
```bash
curl --request GET \
--url https://api-singapore.klingai.com/v1/videos/motion-control/{task_id} \
--header 'Authorization: Bearer <token>'
```
### Result Shape
```json
{
"data": {
"task_id": "string",
"task_status": "succeed",
"task_result": {
"videos": [
{
"id": "string",
"url": "string", // anti-leech, expires 30 days
"watermark_url": "string",
"duration": "string" // seconds
}
]
},
"final_unit_deduction": "string"
}
}
```
---
## Query Task (List)
**GET** `/v1/videos/motion-control?pageNum=1&pageSize=30`
- `pageNum`: 11000
- `pageSize`: 1500
Returns same per-task structure as single query, wrapped in a data array.
---
## Constraints & Tips
### Image Requirements (`image_url`)
- Formats: `.jpg` / `.jpeg` / `.png`
- Size: ≤ 10 MB; dimensions: 300 px 65536 px; aspect ratio: 1:2.5 2.5:1
- Character should be full-body or clear upper body, no occlusion
- **Base64**: submit raw string only — no `data:image/png;base64,` prefix
### Video Requirements (`video_url`)
- Formats: `.mp4` / `.mov`; size: ≤ 100 MB; dimensions: 340 px 3850 px
- Duration: min 3 s; max depends on `character_orientation`:
- `image` → max **10 s**
- `video` → max **30 s**
- Single continuous shot — no cuts, no camera movement
- Single person preferred; 2+ people → largest on-screen person is used
- Output length = reference video duration (may be shorter for fast/complex actions; credits not refunded)
### `character_orientation` Modes
| Value | Orientation follows | Max video duration |
|-------|--------------------|--------------------|
| `image` | Character pose in the reference image | 10 s |
| `video` | Character pose in the reference video | 30 s |
### Generation Modes
| Value | Description |
|-------|-------------|
| `std` | Standard — cost-effective |
| `pro` | Professional — higher quality |
---
## Key Takeaways
- Motion Control = **pose/motion transfer**: character from image moves like the actor in the reference video
- Output duration matches reference video; minimum extractable motion is 3 s
- Videos **expire after 30 days** — download and store immediately
- Use `character_orientation: "image"` for short clips (≤10 s), `"video"` for up to 30 s
- Base64 images must be raw — no `data:` prefix or the request will fail
- Single-person, full-body, stable reference videos yield the best results
- Errors surface in `task_status_msg` when status is `failed`
---
## Related
- [[wiki/web-agency/kling-text-to-video-api|Kling Text-to-Video API]] — generate video from prompt only
- [[wiki/web-agency/kling-image-to-video-api|Kling Image-to-Video API]] — animate a still or interpolate two frames
- [[wiki/web-agency/kling-multi-image-to-video-api|Kling Multi-Image-to-Video API]] — composite 24 reference images
- [[wiki/web-agency/claude-code-nanobanana-website-workflow|Claude Code + Nanobanana 2 Workflow]] — end-to-end agency workflow using Kling
---
## Sources
- Raw article: `raw/Kling AI Next-Gen AI Video & AI Image Generator 4.md`
- Origin: https://kling.ai/document-api/apiReference/model/motionControl

View file

@ -0,0 +1,173 @@
---
title: "Kling AI Multi-Elements API Reference"
aliases: [kling-multi-elements, kling-video-element-editing, kling-add-swap-remove]
tags: [kling, api, video-editing, multi-elements, ai-video]
sources: ["raw/Kling AI Next-Gen AI Video & AI Image Generator 5.md"]
created: 2026-04-26
updated: 2026-04-26
---
## Overview
The Multi-Elements API lets you **add**, **swap**, or **remove** specific objects within an existing video using AI segmentation. You mark elements by clicking coordinates, then submit an editing task.
Base URL: `https://api-singapore.klingai.com`
Supported model: `kling-v1-6` only.
---
## Workflow (5 Steps)
1. **Init**`POST /v1/videos/multi-elements/init-selection` — parse video, get `session_id`
2. **Add selection**`POST /v1/videos/multi-elements/add-selection` — click a point on a frame to mark an object
3. **Preview**`POST /v1/videos/multi-elements/preview-selection` — see masked overlay before committing
4. **Create task**`POST /v1/videos/multi-elements` — choose `edit_mode` + prompt + optional reference images
5. **Query**`GET /v1/videos/multi-elements/{task_id}` — poll until `succeed`
Optional cleanup steps: `delete-selection` (remove specific points) or `clear-selection` (wipe all).
---
## Step 1 — Init Selection
`POST /v1/videos/multi-elements/init-selection`
| Field | Type | Notes |
|-------|------|-------|
| `video_id` | string (optional) | Kling-generated video, last 30 days only |
| `video_url` | string (optional) | Public `.mp4` / `.mov` URL |
**Video constraints:**
- Duration: 25 s or 710 s
- Resolution: 7202160 px (both dimensions)
- Frame rate: 24, 30, or 60 fps
**Response fields:**
- `session_id` — valid for **24 hours**, used in all subsequent calls
- `fps`, `original_duration`, `total_frame` — required when creating the task
- `normalized_video` — URL of the processed video
---
## Step 2 — Add Selection
`POST /v1/videos/multi-elements/add-selection`
| Field | Type | Notes |
|-------|------|-------|
| `session_id` | string | Required |
| `frame_index` | int | Which frame to mark (max 10 frames total) |
| `points` | array | `{x, y}` in `[0,1]` range (top-left = 0,0); up to 10 points per frame |
**Response:** returns `rle_mask_list` — RLE-encoded segmentation masks + PNG base64 per object.
### Decoding the RLE Mask (TypeScript)
```typescript
export type RLEObject = { size: [h: number, w: number]; counts: string }
export function decode(rleObj: RLEObject): Uint8Array {
// Returns flat Uint8Array (row-major): 1 = masked pixel, 0 = background
// ... see full implementation in source article
}
```
### Rendering the Mask Overlay (Canvas)
```typescript
function drawMask(rleMask: string, height: number, width: number) {
const decodeData = decode({ counts: rleMask, size: [height, width] })
// Paint pixels with RGBA (116, 255, 82, 163) where decodeData[y*w+x] === 1
}
```
---
## Step 3 — Delete / Clear Selection (optional)
`POST /v1/videos/multi-elements/delete-selection`
- Same body as add-selection; `points` must **exactly match** coordinates used when adding.
`POST /v1/videos/multi-elements/clear-selection`
- Only requires `session_id` — wipes all marked areas.
---
## Step 4 — Preview Selection (optional)
`POST /v1/videos/multi-elements/preview-selection`
Returns: `video` (masked overlay), `video_cover`, `tracking_output` (per-frame mask).
---
## Step 5 — Create Task
`POST /v1/videos/multi-elements`
| Field | Type | Notes |
|-------|------|-------|
| `model_name` | enum | `kling-v1-6` |
| `session_id` | string | Required |
| `edit_mode` | enum | `addition` / `swap` / `removal` |
| `image_list` | array | Required for add/swap; omit for removal |
| `prompt` | string | Use `<<<video_1>>>` / `<<<image_1>>>` references; max 2500 chars |
| `negative_prompt` | string | Optional, max 2500 chars |
| `mode` | enum | `std` (cost-effective) / `pro` (high-quality) |
| `duration` | enum | `5` or `10` seconds |
| `callback_url` | string | Optional webhook |
| `external_task_id` | string | Optional custom ID |
### edit_mode Details
| Mode | image_list | Prompt template |
|------|-----------|-----------------|
| `addition` | 12 images (pre-cropped) | `Using the context of <<<video_1>>>, seamlessly add [x] from <<<image_1>>>` |
| `swap` | 1 image only | `swap [x] from <<<image_1>>> for [x] from <<<video_1>>>` |
| `removal` | not required | `Delete [x] from <<<video_1>>>` |
**Image requirements (for add/swap):**
- Formats: `.jpg` / `.jpeg` / `.png`
- Max 10 MB; min 300 px; aspect ratio 1:2.52.5:1
- Base64: raw string only — **no** `data:image/png;base64,` prefix
---
## Step 6 — Query Task
`GET /v1/videos/multi-elements/{task_id}`
`GET /v1/videos/multi-elements?pageNum=1&pageSize=30`
Task statuses: `submitted``processing``succeed` / `failed`
Result video URL expires after **30 days** — download and store promptly.
---
## Key Takeaways
- Session-based workflow: init once → mark objects → edit → query. Session lives 24 h.
- Three edit modes: **add** (needs 12 ref images), **swap** (1 ref image), **remove** (no images needed).
- Object selection uses normalized `[0,1]` click coordinates on specific frame indices — up to 10 frames, 10 points each.
- Response masks are RLE-encoded; decode to `Uint8Array` for canvas rendering.
- Only `kling-v1-6` supports multi-elements; duration must be 5 s or 10 s matching source video length bracket.
- Generated videos auto-delete after 30 days; use `callback_url` for async workflows.
- Base64 images must be raw (no data-URI prefix).
---
## Related
- [[wiki/web-agency/kling-text-to-video-api|Kling Text-to-Video API]] — generate new videos from prompts
- [[wiki/web-agency/kling-image-to-video-api|Kling Image-to-Video API]] — animate still images
- [[wiki/web-agency/kling-multi-image-to-video-api|Kling Multi-Image-to-Video API]] — composite 24 reference images
- [[wiki/web-agency/kling-motion-control-api|Kling Motion Control API]] — pose/motion transfer
- [[wiki/web-agency/claude-code-nanobanana-website-workflow|Claude Code + Nanobanana 2 Workflow]] — end-to-end agency workflow using Kling
---
## Sources
- Raw: `raw/Kling AI Next-Gen AI Video & AI Image Generator 5.md`
- Origin: Kling AI API docs — `/v1/videos/multi-elements`

View file

@ -0,0 +1,135 @@
---
title: "Kling AI Video Extension API Reference"
aliases: [kling-video-extend, kling-extend-api]
tags: [kling, api, video, extension, ai-video]
sources: [raw/Kling AI Next-Gen AI Video & AI Image Generator 6.md]
created: 2026-04-26
updated: 2026-04-26
---
## Overview
The Video Extension API appends additional footage to an existing Kling-generated video. Each extension adds 45 seconds; a video can be extended repeatedly up to a **3-minute total cap**.
- Base URL (Singapore): `https://api-singapore.klingai.com`
- Auth: `Authorization: Bearer <token>`
---
## Create Extension Task
`POST /v1/videos/video-extend`
```bash
curl --request POST \
--url https://api-singapore.klingai.com/v1/videos/video-extend \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"prompt": "A puppy appears",
"video_id": "743211632612511839",
"negative_prompt": "",
"callback_url": ""
}'
```
### Request Body
| Field | Type | Required | Notes |
|-------|------|----------|-------|
| `video_id` | string | Yes | Source video ID (text-to-video, image-to-video, or prior extension). Max total 3 min. |
| `prompt` | string | No | Up to 2500 characters |
| `negative_prompt` | string | No | Up to 2500 characters |
| `cfg_scale` | number | No | Prompt reference strength, range [0, 1] |
| `watermark_info` | object | No | `{"enabled": boolean}` — generate watermarked output alongside clean output |
| `callback_url` | string | No | Server-push URL for status changes |
| `external_task_id` | string | No | User-defined ID (must be unique per user) |
### Supported Source Videos
- Generated by **V1.0, V1.5, or V1.6** models only
- Source videos expire **30 days** after generation — extension not possible after that
### Response (200)
```json
{
"code": 0,
"message": "string",
"request_id": "string",
"data": {
"task_id": "string",
"task_status": "submitted | processing | succeed | failed",
"task_info": { "external_task_id": "string" },
"created_at": 1722769557708,
"updated_at": 1722769557708
}
}
```
---
## Query Single Task
`GET /v1/videos/video-extend/{task_id}`
```bash
curl --request GET \
--url https://api-singapore.klingai.com/v1/videos/video-extend/{task_id} \
--header 'Authorization: Bearer <token>'
```
Use either `task_id` or `external_task_id` as the path parameter.
### Response — Notable Fields
| Field | Notes |
|-------|-------|
| `task_info.parent_video.id` | Original video ID before extension |
| `task_info.parent_video.duration` | Original duration (seconds) |
| `task_result.videos[].id` | New extended video ID (cleared after 30 days) |
| `task_result.videos[].url` | Download URL (expires 30 days) |
| `task_result.videos[].duration` | **Total** video duration after extension |
| `final_unit_deduction` | Credits consumed by this task |
---
## Query Task List
`GET /v1/videos/video-extend?pageNum=1&pageSize=30`
### Query Parameters
| Param | Range | Notes |
|-------|-------|-------|
| `pageNum` | [1, 1000] | Page number |
| `pageSize` | [1, 500] | Items per page |
Response body is the same schema as single-task, wrapped in a `data` array.
---
## Key Takeaways
- **+45 s per call** — each extension appends roughly 45 seconds to the source video
- **3-minute hard cap** — total extended duration cannot exceed 3 minutes
- **Model locked** — extension inherits the model and mode of the source video; you cannot switch
- **30-day expiry** — both source and extended videos are deleted after 30 days; download immediately
- **Chain extensions** — you can feed the extended video's ID back as `video_id` to extend further
- **Supported sources** — text-to-video, image-to-video, and prior extension outputs (V1.0/1.5/1.6 only)
---
## Related
- [[wiki/web-agency/kling-text-to-video-api|Kling Text-to-Video API]] — generate the source video
- [[wiki/web-agency/kling-image-to-video-api|Kling Image-to-Video API]] — animate a still image, then extend
- [[wiki/web-agency/kling-multi-image-to-video-api|Kling Multi-Image-to-Video API]] — composite sources you may want to extend
- [[wiki/web-agency/kling-motion-control-api|Kling Motion Control API]] — pose-driven video generation
---
## Sources
- `raw/Kling AI Next-Gen AI Video & AI Image Generator 6.md`
- Official docs: `https://kling.ai/document-api/apiReference/model/videoExtension`

View file

@ -0,0 +1,116 @@
---
title: "Kling AI Video Models — Capability Matrix"
aliases: [kling-models, kling-model-comparison, kling-video-models]
tags: [kling, ai-video, api, models, reference]
sources: [raw/Kling AI Next-Gen AI Video & AI Image Generator.md]
created: 2026-04-26
updated: 2026-04-26
---
# Kling AI Video Models — Capability Matrix
Full model lineup with feature support per mode. Use this to pick the right model before hitting the API.
## Model Generations at a Glance
| Model | Tiers | Max Duration | Standout Features |
|-------|-------|-------------|-------------------|
| kling-v1 | std / pro | 5s / 10s | Camera control (std 5s), motion brush, video effects |
| kling-v1-5 | std / pro | 5s / 10s | Image-to-video only; pro adds start/end frame, motion brush, camera control |
| kling-v1-6 | std / pro | 5s / 10s | Multi-image2video, multi-elements, video effects |
| kling-v2-master | single tier | 5s / 10s | Clean text+image generation, 720p / 24fps |
| kling-v2-1 | std / pro | 5s / 10s | Image-to-video focus; no text-to-video |
| kling-v2-1-master | single tier | 5s / 10s | Text + image generation |
| kling-v2-5-turbo | std / pro | 5s / 10s | Full text+image; pro adds start/end frame |
| kling-v2-6 | std / pro | 5s / 10s | Voice control (pro img2vid), motion control (std custom duration) |
| kling-v3 | std / pro / 4k | 315s | Multi-shot, element control, motion control; longest clip |
| kling-v3-omni | std / pro / 4k | 315s | Multi-shot, element control, reference video (std/pro only up to 10s) |
| kling-video-o1 | std / pro | 5s / 10s | Single-shot only; element control + video reference |
---
## Feature Deep-Dives
### kling-v3 / kling-v3-omni (Latest Generation)
- Duration 315 s — longest available
- Three tiers: **std**, **pro**, **4k** (4k drops reference video support)
- Both support **multi-shot video generation** (storyboard-style scenes)
- **Element control**: video character elements + multi-image elements
- **Motion control**: std + pro only (❌ 4k)
- Voice control not yet supported on either v3 model
- v3-omni adds reference video input (std/pro 310s only)
### kling-v2-6 (Voice + Motion)
- First model with **voice control** (human voice) on image-to-video (pro tier)
- **Motion control** available at custom durations (std + pro)
- std tier is audio-free only; pro enables full audio
- start/end frame: pro only, no-audio mode
### kling-v1 (Classic, Most Features)
- Only model with **camera control** on text-to-video (std 5s)
- **Motion brush** (std/pro 5s)
- **Video effects**: dual-character Hug / Kiss / heart_gesture
- **Video extension** supported across all modes
### kling-v1-5 / kling-v1-6
- v1-5: image-to-video only (no text-to-video at all)
- v1-6 re-adds text-to-video; adds multi-image2video + multi-elements
- Both support video extension and dual-character effects
---
## Resolution & Frame Rate Reference
| Model | STD res | PRO res | FPS |
|-------|---------|---------|-----|
| kling-v1 | 720p | 720p | 30 |
| kling-v1-5 | 720p | 1080p | 30 |
| kling-v1-6 (img2vid) | 720p | 1080p | 30 |
| kling-v1-6 (txt2vid) | 720p | 1080p | 24 |
| kling-v2-master | — | — | 24 / 720p |
| kling-v2-1 (img2vid) | 720p | 1080p | 24 |
| kling-v2-1-master | — | 1080p | 24 |
| kling-v2-5 (img2vid) | — | 1080p | 24 |
| kling-v2-5 (txt2vid) | — | 1080p | 24 |
> PRO tier = 1080p starting from v1-5. Always use PRO for deliverable-quality output.
---
## Non-Model-Specific Features
| Feature | Supported | Notes |
|---------|-----------|-------|
| Avatar | ✅ | Digital human video from one photo |
| Lip sync | ✅ | Text or audio drives mouth shape; see [[wiki/web-agency/kling-lip-sync-api\|Lip-Sync API]] |
| Video to audio | ✅ | Add audio to any Kling video or user upload |
| Text to audio | ✅ | Generate audio from text prompt |
---
## Model Selection Guide
- **Best quality clip (up to 15s)**: `kling-v3` or `kling-v3-omni` pro/4k
- **Multi-shot / cinematic storyboard**: `kling-v3` or `kling-v3-omni`
- **Voice-driven character video**: `kling-v2-6` pro
- **Motion transfer from reference video**: `kling-v3` std/pro or `kling-v3-omni`
- **Animate image with fine control**: `kling-v1` pro (motion brush + camera)
- **Multi-image composite**: `kling-v1-6` (see [[wiki/web-agency/kling-multi-image-to-video-api\|Multi-Image-to-Video API]])
- **Budget / fast iteration**: `kling-v1-6` std or `kling-v2-5-turbo` std
## Key Takeaways
- **v3 / v3-omni are the flagship models** — 15s clips, 4K tier, multi-shot, element control
- **PRO always means 1080p** (from v1-5 onwards); STD is 720p
- **Voice control is limited** — only `kling-v2-6` pro (image-to-video) supports it; v3 does not
- **Camera control** lives in `kling-v1` std 5s only — unique to that legacy mode
- **Motion brush** available on v1 and v1-5 pro; not carried forward to v2+
- **Video effects** (Hug/Kiss/heart_gesture) available v1, v1-5, v1-6 only
- **All videos expire after 30 days** — download before expiry (see [[wiki/web-agency/kling-text-to-video-api\|Text-to-Video API]])
---
## Sources
- Raw: `Kling AI Next-Gen AI Video & AI Image Generator.md`
- Origin: Kling AI official API documentation — video models reference page