Ana içeriğe geç
kuaishou avatarı

Kling 3.0 Motion Control API

kuaishou/kling-video/v3/motion-control

Bir driving videodaki hareketi ve yüz ifadesini bir karakter görseline aktarın; karakteriniz referanstaki hareketleri yapsın.

üretilen video için saniye başına 0.168

Model girdisi

Input

Reference character/appearance image. The generated character keeps this identity and look.

Reference/driving video whose character actions and facial expressions the output follows. Max 30s when character_orientation is 'video', 10s when 'image'.

Whether the output character's orientation and framing match the reference image ('image') or the driving video ('video').

Optional text guidance to steer the motion or scene.

Additional Settings

Customize your input with more control.

Keep the driving video's original audio in the generated video.

You need to be logged in to run this model and view results.
Log in

Model çıktısı

Output

Loading
Generated in 167.339 seconds
Logs (1 lines)

Örnek istekler

Örnekler

Example output 1Example output 2

Kling 3.0 Motion Control API

Kling 3.0 Motion Control is a video-to-video AI model by kuaishou. On ModelRunner it runs through a REST API or via MCP from any AI assistant, at $0.168 per second of video.

POST https://queue.modelrunner.run/kuaishou/kling-video/v3/motion-control

cURL

# Submit a request to the queue. Input fields go at the top level of the
# body. The optional reserved "metadata" object holds your own flat string
# tags — stored on the request, never sent to the model; filter later with
# GET https://queue.modelrunner.run/requests?metadata=<url-encoded JSON>.
curl -X POST https://queue.modelrunner.run/kuaishou/kling-video/v3/motion-control \
  -H "Authorization: Key $MRUN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "the man speaks warmly to the camera with natural head movement",
    "image_url": "https://media.modelrunner.ai/qf7LUwPh7gD0iVj0lMoCF.jpeg",
    "video_url": "https://media.modelrunner.ai/m7GgVU46xQgWaPJGl3kD7.mp4",
    "keep_original_sound": false,
    "character_orientation": "image",
    "metadata": {
      "project": "my-project"
    }
  }'
# → { "request_id": "...", "status_url": "...", "response_url": "..." }

# Poll status_url until "COMPLETED", then fetch the result
curl "https://queue.modelrunner.run/kuaishou/kling-video/v3/motion-control/requests/$REQUEST_ID/status" \
  -H "Authorization: Key $MRUN_API_KEY"
curl "https://queue.modelrunner.run/kuaishou/kling-video/v3/motion-control/requests/$REQUEST_ID" \
  -H "Authorization: Key $MRUN_API_KEY"

JavaScript

import { modelrunner } from "@modelrunner/client";

const result = await modelrunner.subscribe("kuaishou/kling-video/v3/motion-control", {
  input: {
    "prompt": "the man speaks warmly to the camera with natural head movement",
    "image_url": "https://media.modelrunner.ai/qf7LUwPh7gD0iVj0lMoCF.jpeg",
    "video_url": "https://media.modelrunner.ai/m7GgVU46xQgWaPJGl3kD7.mp4",
    "keep_original_sound": false,
    "character_orientation": "image"
  },
});
console.log(result);

Python

import os
import requests

headers = {"Authorization": f"Key {os.environ['MRUN_API_KEY']}"}

submitted = requests.post(
    "https://queue.modelrunner.run/kuaishou/kling-video/v3/motion-control",
    headers=headers,
    json={
      "prompt": "the man speaks warmly to the camera with natural head movement",
      "image_url": "https://media.modelrunner.ai/qf7LUwPh7gD0iVj0lMoCF.jpeg",
      "video_url": "https://media.modelrunner.ai/m7GgVU46xQgWaPJGl3kD7.mp4",
      "keep_original_sound": false,
      "character_orientation": "image"
    },
).json()

# Poll submitted["status_url"] until "COMPLETED", then:
result = requests.get(submitted["response_url"], headers=headers).json()

Input parameters

Input parameters of Kling 3.0 Motion Control
NameTypeRequiredDescription
image_urlstring (uri)yesReference character/appearance image. The generated character keeps this identity and look.
video_urlstring (uri)yesReference/driving video whose character actions and facial expressions the output follows. Max 30s when character_orientation is 'video', 10s when 'image'.
character_orientationenumyesWhether the output character's orientation and framing match the reference image ('image') or the driving video ('video'). One of: image, video. Default: "image".
promptstringnoOptional text guidance to steer the motion or scene.
keep_original_soundbooleannoKeep the driving video's original audio in the generated video. Default: true.

Machine-readable: OpenAPI schema · llms.txt

Use Kling 3.0 Motion Control from Claude & Cursor (MCP)

Point Claude Code, Claude Desktop, Cursor, or any MCP client at the ModelRunner MCP server and Kling 3.0 Motion Control becomes a tool your assistant can call directly — it authorizes via OAuth (no API key in config) and runs this model with the run_model tool using the endpoint kuaishou/kling-video/v3/motion-control.

MCP client config (Claude Desktop, Cursor)

{
  "mcpServers": {
    "modelrunner": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.modelrunner.run/mcp"]
    }
  }
}

Claude Code

claude mcp add --transport http modelrunner https://mcp.modelrunner.run/mcp

Then ask your assistant, for example: “Run kuaishou/kling-video/v3/motion-control on ModelRunner to generate video”. MCP setup guide.

Model Detayları

Model Detayları

Kling 3.0 Motion Control, video-to-video bir motion transfer modelidir: bir referans karakter görseli ve bir driving video verin; model videodaki eylemleri, jestleri ve yüz ifadelerini çıkarıp görselinizdeki karaktere uygular ve karakterinizin referanstaki hareketleri yaptığı yeni bir video üretir. Bu, metinle yönlendirilen bir animasyon değil, motion control / motion transfer’dir — hareket gerçek bir driving klipten geldiği için zamanlama ve performans kaynağa sadık kalır. Çıktının sizin görselinizin mi yoksa driving videonun mu çerçevelemesini izleyeceğini `character_orientation` ile seçin; ek yönlendirme için isteğe bağlı bir `prompt` ekleyin.

## En uygun olduğu işler - Motion control: bir karakteri ya da portreyi driving videodaki hareketle canlandırmak - Motion transfer: bir dansı, jestleri ya da tüm bir performansı referans klipten durağan bir karaktere kopyalamak - Belirli bir karaktere, kimliğini ve görünümünü koruyarak mevcut bir eylemi yaptırmak - Kaynak videonun hem hareketi hem mimikleri yönettiği konuşma ya da sunucu tarzı klipler

## Şu durumlarda başka bir model seçin - Driving video olmadan, hareketi yalnızca bir metin prompt’uyla tarif ederek durağan bir görseli canlandırmak istiyorsanız — bir image-to-video modeli kullanın - Referans görsel ya da video olmadan, yalnızca metinden üretilmiş bir klip istiyorsanız — bir text-to-video modeli kullanın - Video değil, tek bir durağan görsel gerekiyorsa — bir text-to-image modeli kullanın

## İpuçları - `character_orientation: 'image'` görselinizin çerçevelemesini korur ve driving videoyu 10 saniyeyle sınırlar; `'video'` driving videonun çerçevelemesini izler ve 30 saniyeye kadar izin verir - Öznesi net ve önden görünen bir JPEG ya da WebP karakter görseli kullanın; PNG kaynaklar zaman zaman reddedilir - Hareketin de mimiklerin de temiz aktarılması için karakter hareketi belirgin ve yüzü görünen bir driving video seçin - `keep_original_sound` (varsayılan true) driving videonun sesini korur; sessiz bir sonuç için kapatın

ModelRunner JavaScript client ile çalıştırmak için: ```js import { modelrunner } from "@modelrunner/client";

const result = await modelrunner.subscribe("kuaishou/kling-video/v3/motion-control", { input: { image_url: "https://media.modelrunner.ai/qf7LUwPh7gD0iVj0lMoCF.jpeg", video_url: "https://media.modelrunner.ai/xCu3Uic8zYdc9dHfxmTCU.mp4", character_orientation: "image", prompt: "the person speaks and gestures naturally to the camera", }, }); ```