Seedream 5.0 Pro đã ra mắt | Thử trong Trình tạo ảnh →

Kling V2.6 Std Motion Control

kwaivgi /

Kling 2.6 Standard Motion Control transfers motion from reference videos to animate still images. Upload a character image and a motion clip (dance, action, gesture), and the model extracts the movement to generate smooth, realistic video. Ready-to-use REST inference API, best performance, no cold starts, affordable pricing.

motion-control
Đầu vào

Chờ

$0.21cho mỗi lần chạy·~47 / $10

Ví dụXem tất cả

Mô hình liên quan

README

Kling V2.6 Standard Motion Control

Transfer motion from any video onto your character with Kling V2.6 Motion Control. Upload a reference image of your subject and a motion video — the model generates your character performing those exact movements. Perfect for dance videos, action sequences, and character animation.

Why It Looks Great

  • Precise motion transfer: Accurately maps movements from reference video to your character.
  • Character preservation: Maintains your subject's identity and appearance.
  • Audio retention: Option to keep the original video's sound.
  • Extended duration: Supports videos up to 30 seconds.
  • Orientation control: Specify character facing direction for better results.
  • Prompt Enhancer: Refine scene descriptions for enhanced output.

Parameters

ParameterRequiredDescription
imageYesReference image of your character/person.
videoYesMotion reference video to transfer movements from.
character_orientationYesDirection character is facing (front, side, back).
promptNoAdditional scene description or style guidance.
negative_promptNoElements to avoid in the generated video.
keep_original_soundNoRetain audio from the original motion video.

How to Use

  1. Upload character image — a clear image of your subject.
  2. Upload motion video — the video with movements to transfer.
  3. Select character orientation — Generate the orientation of the characters in the video, which can be selected to match the image or the video.
  4. Write prompt (optional) — add scene details or style guidance.
  5. Add negative prompt (optional) — specify what to avoid.
  6. Toggle audio — check to keep original video sound.
  7. Run — click the button to generate.
  8. Download — preview and save your video.

Pricing

Per 3-second billing based on video duration. Minimum 3 seconds, maximum 30 seconds.

DurationCalculationCost
3 seconds (min)3 ÷ 3 × $0.21$0.21
6 seconds6 ÷ 3 × $0.21$0.42
10 seconds10 ÷ 3 × $0.21$0.70
15 seconds15 ÷ 3 × $0.21$1.05
30 seconds (max)30 ÷ 3 × $0.21$2.10

Best Use Cases

  • Dance Videos — Transfer choreography onto any character.
  • Action Sequences — Apply stunts and movements to your subjects.
  • Character Animation — Animate illustrated or AI-generated characters.
  • Content Creation — Create viral-ready videos with custom performers.
  • Virtual Influencers — Bring virtual characters to life with real motion.
  • Music Videos — Sync character movements to music performances.

Example Workflows

  • Upload anime character + dance video → Anime character performs the dance
  • Upload portrait photo + workout video → Person performs exercise routine
  • Upload mascot image + wave gesture → Mascot waves naturally
  • Upload product character + presentation motion → Animated product spokesperson

Character Orientation Guide

OrientationWhen to Use
FrontCharacter facing camera directly
SideCharacter in profile view
BackCharacter facing away from camera

Pro Tips for Best Results

  • Use clear, well-lit character images with visible full body or upper body.
  • Match character orientation to their actual pose in the image.
  • Motion videos with clear, distinct movements work best.
  • Keep original sound for dance videos synced to music.
  • Use prompts to add environmental context or style details.
  • Shorter clips (3-10s) often produce more consistent results.

Notes

  • Minimum video duration is 3 seconds; maximum is 30 seconds.
  • If using URLs, ensure they are publicly accessible.
  • Processing time scales with video duration.
  • Best results come from motion videos with clear human movements.

More Models to Try

  • Kling V2.6 Pro Motion Control — Professional-grade motion transfer that maps movements from any reference video onto your character with superior quality and precision.

  • Wan 2.2 Animate — Transform static images into dynamic videos with AI-powered animation, bringing photos and illustrations to life with natural motion.

  • Wan 2.2 Fun Control — Creative pose and motion control for image-to-video generation, enabling playful character animations with customizable movements.

Lưu ý:Trang web này sử dụng các mô hình AI do bên thứ ba cung cấp.

Kling v2.6 Std Motion Control API — Quick start

Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/kwaivgi/kling-v2.6-std/motion-control with your input as JSON. The endpoint returns a prediction id. Start polling the result endpoint around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. On completed, read output values from data.outputs. Examples for Kling v2.6 Std Motion Control below.

HTTP example
set -euo pipefail

: "${WAVESPEED_API_KEY:?Set WAVESPEED_API_KEY}"

REQUEST_BODY=$(cat <<'JSON'
{
    "image": "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg",
    "video": "https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.mp4",
    "character_orientation": "video",
    "keep_original_sound": true
}
JSON
)

# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
  -X POST "https://api.wavespeed.ai/api/v3/kwaivgi/kling-v2.6-std/motion-control" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $WAVESPEED_API_KEY" \
  -d "$REQUEST_BODY")

TASK=$(printf '%s' "$SUBMIT_RESPONSE" | jq 'if has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "$TASK" | jq -r '.id')
if [ -z "$PREDICTION_ID" ] || [ "$PREDICTION_ID" = "null" ]; then
  printf 'Submission response did not contain a prediction id
' >&2
  exit 1
fi
RESULT_URL=$(printf '%s' "$TASK" | jq -r '.urls.get // empty')
if [ -z "$RESULT_URL" ]; then
  RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/$PREDICTION_ID/result"
fi

# 2. Poll until the prediction finishes.
while true; do
  RESPONSE=$(curl --silent --show-error --fail-with-body "$RESULT_URL" \
    -H "Authorization: Bearer $WAVESPEED_API_KEY")
  RESULT=$(printf '%s' "$RESPONSE" | jq 'if has("data") then .data else . end')
  STATUS=$(printf '%s' "$RESULT" | jq -r '.status')
  case "$STATUS" in
    completed) printf '%s\n' "$RESULT" | jq '.outputs'; break ;;
    failed|cancelled|timeout) printf '%s\n' "$RESULT" | jq . >&2; exit 1 ;;
    created|processing) sleep 2 ;;
    *) printf 'Unexpected status: %s
' "$STATUS" >&2; exit 1 ;;
  esac
done
Node.js example
const submitUrl = "https://api.wavespeed.ai/api/v3/kwaivgi/kling-v2.6-std/motion-control";
const apiKey = process.env.WAVESPEED_API_KEY;
if (!apiKey) throw new Error('Set WAVESPEED_API_KEY');

async function requestJson(url, options = {}) {
  const response = await fetch(url, options);
  if (!response.ok) throw new Error(await response.text());
  return response.json();
}

// 1. Submit the prediction.
const body = await requestJson(submitUrl, {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
        "image": "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg",
        "video": "https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.mp4",
        "character_orientation": "video",
        "keep_original_sound": true
}),
});
const task = body.data ?? body;
if (!task.id) throw new Error("Submission response did not contain a prediction id");
const resultUrl = task.urls?.get ||
  `https://api.wavespeed.ai/api/v3/predictions/${task.id}/result`;

// 2. Poll until the prediction finishes.
while (true) {
  const resultBody = await requestJson(resultUrl, {
    headers: { "Authorization": `Bearer ${apiKey}` },
  });
  const result = resultBody.data ?? resultBody;
  if (result.status === "completed") {
    console.log(result.outputs);
    break;
  }
  if (["failed", "cancelled", "timeout"].includes(result.status)) throw new Error(JSON.stringify(result));
  if (!["created", "processing"].includes(result.status)) throw new Error("Unexpected status: " + result.status);
  await new Promise(resolve => setTimeout(resolve, 2000));
}
Python example
import json
import os
import time
from urllib.request import Request, urlopen

api_key = os.environ["WAVESPEED_API_KEY"]
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
payload = {
    "image": "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg",
    "video": "https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.mp4",
    "character_orientation": "video",
    "keep_original_sound": True
}

def request_json(url, data=None):
    request = Request(url, data=data, headers=headers, method="POST" if data else "GET")
    with urlopen(request) as response:
        return json.load(response)

# 1. Submit the prediction.
body = request_json("https://api.wavespeed.ai/api/v3/kwaivgi/kling-v2.6-std/motion-control", json.dumps(payload).encode())
task = body.get("data", body)
if not task.get("id"):
    raise RuntimeError("Submission response did not contain a prediction id")
result_url = task.get("urls", {}).get("get") or f"https://api.wavespeed.ai/api/v3/predictions/{task['id']}/result"

# 2. Poll until the prediction finishes.
while True:
    result_body = request_json(result_url)
    result = result_body.get("data", result_body)
    status = result.get("status")
    if status == "completed":
        print(result.get("outputs", []))
        break
    if status in {"failed", "cancelled", "timeout"}:
        raise RuntimeError(result)
    if status not in {"created", "processing"}:
        raise RuntimeError(f"Unexpected status: {status}")
    time.sleep(2)

Kling v2.6 Std Motion Control API — Frequently asked questions

What is the Kling v2.6 Std Motion Control API?

Kling v2.6 Std Motion Control is a Kuaishou model for pose / motion driven video, exposed as a REST API on WaveSpeedAI. Kling 2.6 Standard Motion Control transfers motion from reference videos to animate still images. Upload a character image and a motion clip (dance, action, gesture), and the model extracts the movement to generate smooth, realistic video. Ready-to-use REST inference API, best performance, no cold starts, affordable pricing. You can call it programmatically or try it from the playground above.

How do I call the Kling v2.6 Std Motion Control API?

POST your input parameters to the model's REST endpoint (shown in the API tab of this playground) with your WaveSpeedAI API key in the Authorization header. Submission returns a prediction ID. Poll the result endpoint starting around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. The playground generates production-oriented Python, JavaScript, and cURL examples with timeouts, transient-error handling, and safe GET retries. Full request/response shape is documented at https://wavespeed.ai/docs/docs-api/kwaivgi/kwaivgi-kling-v2.6-std-motion-control.

How much does Kling v2.6 Std Motion Control cost per run?

Kling v2.6 Std Motion Control starts at $0.21 per run. That figure is the base price — the final charge scales with the parameters you set in the form (output size, length, count, references, or whatever knobs this model exposes), so a higher-quality or larger output costs more than a minimal one. The exact cost for your current input is shown live next to the Generate button before you submit, and the actual per-call charge is recorded on the prediction afterwards.

What inputs does Kling v2.6 Std Motion Control accept?

Key inputs: `prompt`, `image`, `video`, `negative_prompt`, `character_orientation`, `keep_original_sound`. The full JSON schema (types, defaults, allowed values) is rendered above the Generate button and mirrored in the API reference at https://wavespeed.ai/docs/docs-api/kwaivgi/kwaivgi-kling-v2.6-std-motion-control.

How long does Kling v2.6 Std Motion Control take to generate?

Median end-to-end generation time on WaveSpeedAI is around 234 seconds per request, based on recent successful runs. Queue time varies with global demand; live status is visible in the prediction record.

Can I use Kling v2.6 Std Motion Control outputs commercially?

Commercial usage rights depend on the model's license, set by its provider (Kuaishou). The license summary appears on the model card above; see WaveSpeedAI's Terms of Service for platform-level conditions.

Kling V2.6 Std Motion Control | AI Motion Control Video API | WaveSpeedAI