Kling Video Generation
Generate AI videos through AceDataCloud's Kuaishou Kling API.
First-time setup
- Install the official Skill with
clawhub install @acedatacloud/kling. Check that the ClawHub publisher is @acedatacloud. - Sign in at AceDataCloud → Applications, open General application, and check Kling access, balance, and current pricing. Copy its API key, or select Manage Keys → Create for a separate key. Copy the key value without
Bearer; aplatform-...management token is not a service API key. - If you enable Allowed APIs restrictions, include
/kling/videosand/kling/tasks. Advanced workflows below may call additional routes. - On the OpenClaw Gateway host, put
ACEDATACLOUD_API_TOKEN=your_api_key_herein~/.openclaw/.env, then restart the Gateway and start a new session. For a direct terminal test, runexport ACEDATACLOUD_API_TOKEN="your_api_key_here"in that shell. Never put the key in a prompt or commit an.envfile. - Run the Quick Start below. If this workflow returns a task ID, query that same task until it finishes; do not submit the same billable request again just to check progress.
Illustrated key setup, first run, and troubleshooting · Token details
Quick Start
curl -X POST https://api.acedata.cloud/kling/videos \
-H "Authorization: Bearer $ACEDATACLOUD_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"action": "text2video", "prompt": "a cat playing piano on a rooftop at sunset", "model": "kling-v3", "mode": "std", "duration": 5}'
Async: See async task polling. Poll via
POST /kling/taskswith{"id": "..."}.
Models
| Model | Quality | Best For |
|---|---|---|
kling-v3-turbo |
Fast | 720p/1080p, integer 3–15 seconds, included native audio with no off switch |
kling-v3 |
Latest | Best quality, flexible 3–15s duration, optional audio generation |
kling-v3-omni |
Latest | V3 Omni model with audio plus image/video references, flexible 3–15s duration |
kling-v2-6 |
High | High-quality output with optional audio (pro mode) |
kling-v2-5-turbo |
High + Fast | Best speed/quality trade-off |
kling-v2-master |
High | High-quality output |
kling-v2-1-master |
High | Improved v2 |
kling-v1-6 |
Improved | Better quality than v1 |
kling-v1 |
Standard | Basic generation, lowest cost |
kling-o1 |
Premium | Independent O1 model with image/video references, 5s only |
Quality Modes
| Mode | Speed | Cost | Use For |
|---|---|---|---|
std (Standard) |
Slower | Lower | Draft/preview |
pro (Professional) |
Faster | Higher | Final output |
4k (Native 4K) |
— | Premium | Native 4K output — only kling-v3 and kling-v3-omni; incompatible with camera_control |
Workflows
1. Text-to-Video
POST /kling/videos
{
"action": "text2video",
"prompt": "a futuristic city with flying cars",
"model": "kling-v3",
"mode": "std",
"duration": 5,
"aspect_ratio": "16:9"
}
2. Image-to-Video
Animate a still image. Optionally specify an ending frame.
POST /kling/videos
{
"action": "image2video",
"prompt": "the scene slowly comes alive with movement",
"start_image_url": "https://example.com/scene.jpg",
"end_image_url": "https://example.com/end-scene.jpg",
"model": "kling-v3",
"mode": "pro"
}
3. Omni References
Use kling-o1 or kling-v3-omni with reference images and/or one reference video. Cite each item in the prompt using its one-based token.
POST /kling/videos
{
"action": "text2video",
"prompt": "turn <<<video_1>>> into hand-painted animation while preserving its motion",
"model": "kling-o1",
"mode": "std",
"duration": 5,
"video_list": [
{
"video_url": "https://example.com/source.mp4",
"refer_type": "base",
"keep_original_sound": "no"
}
]
}
Use refer_type: "feature" to reference style, motion, or a neighboring shot. Use refer_type: "base" to edit the supplied video. A base video cannot be combined with first/end frames.
4. Extend Video
Continue an existing video with additional seconds.
POST /kling/videos
{
"action": "extend",
"video_id": "existing-video-id",
"prompt": "the camera pulls back to reveal the full landscape",
"model": "kling-v2-5-turbo"
}
5. Motion Control
Apply precise camera/motion control from an image + reference video.
POST /kling/motion
{
"image_url": "https://example.com/subject.jpg",
"video_url": "https://example.com/motion-reference.mp4",
"mode": "std",
"character_orientation": "image"
}
6. Lip Sync
Create a lip-synced video from a source video plus either an audio track or input text.
POST /kling/lip-sync
{
"video_url": "https://example.com/source.mp4",
"mode": "audio2video",
"audio_url": "https://example.com/voiceover.mp3"
}
7. Talking Photo
Animate a still portrait from an image plus an audio track.
POST /kling/talking-photo
{
"image_url": "https://example.com/portrait.jpg",
"audio_url": "https://example.com/voiceover.mp3",
"model": "kling-v2-1-master",
"duration": 5,
"mode": "pro"
}
Parameters
| Parameter | Values | Description |
|---|---|---|
action |
"text2video", "image2video", "extend" |
Generation mode |
model |
See models table | Model to use |
prompt |
string | Required generation or continuation instructions |
mode |
"std", "pro", "4k" |
Quality mode (4k only for kling-v3 / kling-v3-omni, incompatible with camera_control) |
duration |
O1: 5; v3/v3-omni/v3-turbo: integer 3–15; others: 5, 10 |
Duration in seconds |
start_image_url |
URL | Required first frame for action=image2video |
end_image_url |
URL | Optional end frame for image2video; requires start_image_url |
video_id |
string | Existing Kling video ID required by action=extend |
generate_audio |
true, false |
Optional audio for v3, v3-omni and v2-6 pro. Turbo always includes audio: omit this field or use true |
aspect_ratio |
"16:9", "9:16", "1:1" |
Video aspect ratio |
cfg_scale |
0–1 | Prompt relevance strength |
negative_prompt |
string | What to avoid in the video |
camera_control |
object | Camera movement parameters |
image_list |
array | Omni reference images for kling-o1 / kling-v3-omni; each item has image_url and optional type (first_frame / end_frame). Up to 7 images without a reference video, or 4 with one, including first/end frames |
video_list |
array | One MP4/MOV Omni reference video for kling-o1 / kling-v3-omni (3–10s, 720–2160px, 24–60fps, ≤200MB); item has video_url, refer_type (feature / base), and keep_original_sound (yes / no) |
callback_url |
string | Async callback URL |
mode (/kling/lip-sync) |
"audio2video", "text2video" |
Lip-sync mode |
video_url (/kling/lip-sync) |
URL | Source video URL for lip-sync |
video_id (/kling/lip-sync) |
string | Existing Kling video ID for lip-sync |
audio_url (/kling/lip-sync) |
URL | Audio source URL (for audio2video) |
audio_type (/kling/lip-sync) |
"url", "file" |
Audio input type (default url) |
audio_file (/kling/lip-sync) |
string | Audio file payload when audio_type=file |
text (/kling/lip-sync) |
string | Input text to synthesize speech (for text2video) |
voice_id (/kling/lip-sync) |
string | Voice preset ID used in text2video |
voice_language (/kling/lip-sync) |
"zh", "en" |
TTS language for text2video (default zh) |
voice_speed (/kling/lip-sync) |
number | TTS speaking speed (default 1.0) |
mode (/kling/motion) |
"std", "pro" |
Motion generation quality mode |
character_orientation (/kling/motion) |
"image", "video" |
Character orientation source |
image_url (/kling/talking-photo) |
URL | Source portrait image |
audio_url (/kling/talking-photo) |
URL | Driving audio track |
model (/kling/talking-photo) |
"kling-v1", "kling-v1-6", "kling-v2-master", "kling-v2-1-master", "kling-v2-5-turbo", "kling-v2-6" |
Talking-photo model |
duration (/kling/talking-photo) |
5, 10 |
Talking-photo duration |
mode (/kling/talking-photo) |
"std", "pro" |
Talking-photo quality mode |
Gotchas
kling-o1supportsduration=5only;kling-v3andkling-v3-omnisupport flexible3–15seconds; most other models support5or10mode=4kis only available forkling-v3andkling-v3-omniand is incompatible withcamera_controlgenerate_audioenables optional synchronized audio forkling-v3,kling-v3-omni, andkling-v2-6pro. Turbo includes audio and rejectsfalse.end_image_urlis only forimage2videoaction — it defines the last frame- Omni references are supported only by
kling-o1andkling-v3-omni; cite them as<<<image_N>>>/<<<video_1>>> - Omni reference requests do not support
negative_prompt,cfg_scale,camera_control, ormode=4k - With
video_list,generate_audiomust befalse; a base video cannot be combined with first/end frames element_listaccepts existing platform-owned or verified preset IDs; raw external IDs are rejected. Standalone management is not published.- Motion control (
/kling/motion) is a separate endpoint from video generation - Lip-sync is a separate endpoint (
/kling/lip-sync) and requiresmode; useaudio_urlforaudio2videoortext+ voice fields fortext2video - Talking-photo is a separate endpoint (
/kling/talking-photo) and requires bothimage_urlandaudio_url - Read the current platform price for the selected model and quality mode. Their price ratios vary; Turbo standard/pro rates are 1.12/1.4 Credits per actual delivered second.
- Task states use
"succeed"(not "succeeded") — check for this value when polling negative_prompthelps avoid unwanted elements (e.g., "blurry, low quality, text")
Turbo, multishot and commerce
Turbo accepts text or a first frame. Omit generate_audio or set it to true; false is unsupported. It omits tail frames, camera_control, cfg_scale, separate negative_prompt and Omni references. Use kling_generate_turbo_video in the companion MCP or kling turbo --request-file request.json in the CLI.
V3/V3 Omni accept multi_shot=true. Automatic shot_type="intelligence" uses the global prompt. Customized shots use multi_prompt (1–6 entries) with consecutive index values, prompts of at most 512 characters and integer durations summing to the total. Companion tools: kling_generate_storyboard / kling storyboard.
Commercial capabilities use /kling/goods-studio and /kling/video-commerce. Pass structured contents/settings and poll task IDs through /kling/tasks. Apparel, virtual try-on and standalone asset management are not currently published.
Reference inputs
Use element_list and voice_list only with already valid platform references and the supported model combinations in the current backend guide. Standalone asset creation and management are not published.
