Install
openclaw skills install @germey/acedatacloud-kling-videoGenerate AI videos with Kuaishou Kling via AceDataCloud API. Use when creating videos from text or images, extending existing videos, or applying motion control. Supports text-to-video, image-to-video, extend, and motion generation with multiple models and quality modes.
openclaw skills install @germey/acedatacloud-kling-videoGenerate AI videos through AceDataCloud's Kuaishou Kling API.
export ACEDATACLOUD_API_TOKEN="your-token-here"
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-v2-5-turbo", "mode": "std", "duration": 5}'
| Model | Quality | Best For |
|---|---|---|
kling-v1 | Standard | Basic generation, lowest cost |
kling-v1-6 | Improved | Better quality than v1 |
kling-v2-master | High | High-quality output |
kling-v2-1-master | High | Improved v2 |
kling-v2-5-turbo | High + Fast | Best speed/quality trade-off (recommended) |
kling-video-o1 | Premium | Highest quality |
| Mode | Speed | Cost | Use For |
|---|---|---|---|
std (Standard) | Slower | Lower | Draft/preview |
pro (Professional) | Faster | Higher | Final output |
POST /kling/videos
{
"action": "text2video",
"prompt": "a futuristic city with flying cars",
"model": "kling-v2-5-turbo",
"mode": "std",
"duration": 5,
"aspect_ratio": "16:9"
}
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-v2-5-turbo",
"mode": "pro"
}
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"
}
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"
}
| Parameter | Values | Description |
|---|---|---|
action | "text2video", "image2video", "extend" | Generation mode |
model | See models table | Model to use |
mode | "std", "pro" | Quality mode |
duration | 5, 10 | Duration in seconds |
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 |
callback_url | string | Async callback URL |
POST /kling/tasks
{"task_id": "your-task-id"}
States: processing → succeed or failed.
duration only supports 5 or 10 secondsend_image_url is only for image2video action — it defines the last frame/kling/motion) is a separate endpoint from video generationpro mode costs roughly 2x std mode but generates faster with better quality"succeed" (not "succeeded") — check for this value when pollingnegative_prompt helps avoid unwanted elements (e.g., "blurry, low quality, text")