Michael Johnson2026-06-30

如何使用 Kling 3.0 Motion Control:開發者指南(Web + API)

Kling 3.0 Motion Control 開發者指南——介紹 pro 與 std、輸入限制、提示詞技巧,以及透過 GPTProto 執行 Python 與 cURL API 程式碼。

如何使用 Kling 3.0 Motion Control:開發者指南(Web + API)

Kling 3.0 Motion Control animates a static character image with the movement from a reference video. You give it two inputs — a picture of your character and a video of someone moving — and it returns a new clip where your character performs that exact choreography while keeping their own face, outfit, and look.
 
This is motion transfer, not text-to-motion. Instead of describing an action in a prompt and hoping the model interprets it, you show it the action frame by frame. That makes it far more reliable for repeatable character animation, dance, and gesture work.
 
This guide covers both paths: the Kling web app for one-off clips, and the GPTProto API for wiring Motion Control into a pipeline. We'll cover inputs and limits, the `pro` vs `std` tiers, prompt technique, full runnable code, pricing, and the failure modes worth knowing before you spend credits.

目錄

What Is Kling 3.0 Motion Control

Motion Control takes one character image and one driving (reference) video, then generates a video in which the character matches the reference's movements, facial expressions, and — optionally — camera orientation. The visual identity comes from your image; the motion comes from your video.

Spec Detail
Task type Image-to-video only (a character image is required; no text-to-video Motion Control)
Inputs 1 character image + 1 driving video (+ optional prompt / negative prompt)
Reference video length 3–30 seconds; output length aligns to the reference
Min extractable motion 3 seconds of continuous action
Image resolution Short edge ≥ 340px, long edge ≤ 3850px
Multi-character video The character occupying the largest frame area drives the motion
Tiers std (720p) and pro (1080p)
Orientation modes image (max 10s output) or video (max 30s output)

What changed from 2.6 to 3.0

If you used Motion Control on Kling 2.6, the 3.0 upgrade is about consistency and physics rather than a new interface:

  • Better identity preservation — less face drift across the clip.
  • Grounded physics — feet stay anchored instead of "sliding on ice."
  • Element consistency — multi-angle face and outfit detail hold up better through turns.
  • Longer outputs — up to 30 seconds when orientation follows the video.
  • Faster inference — materially quicker turnaround per generation.
    One behavior to keep in mind: 3.0 Motion Control transfers movement only. It does not blend scene elements from the driving video into your character — the output sticks to the character image you supplied.

Kling 3.0 pro Motion Control vs Kling 3.0 std Motion Control

The two tiers run the same model with different output quality. Use std while you iterate on the reference video and prompt, then switch to pro for the final render.

  Kling 3.0 std Motion Control Kling 3.0 pro Motion Control
Output resolution 720p 1080p
Best for Iteration, drafts, high-volume runs Final delivery, client work
Speed Faster Slightly slower
Price (Per Time) $0.3024 (20% off, market $0.378) $0.4032 (20% off, market $0.504)
API model slug kling-v3.0-std kling-v3.0-pro

"Per Time" means the final cost scales with the generation you run; the model page's playground shows the live total before you submit.


Input Requirements (Read This First — It Saves Credits)

Most failed generations come from bad inputs, not the model. The single biggest predictor of a clean result is the quality of frame 1 and the driving video.

Character image

  • One person, clean half-body or full-body framing.
  • Face clearly visible and reasonably large in the frame — small faces force the model to invent detail, and likeness drifts.
  • Match the framing roughly to your reference video (don't pair a head-and-shoulders portrait with a full-body dance video).
    Driving (reference) video
  • 3–30 seconds, single continuous shot, no cuts or hard camera moves — cuts can truncate the output.
  • One subject, full body and head visible and unobstructed.
  • Steady, moderate motion. Very fast or complex action may make the output shorter than the input, because only valid continuous segments are extracted.
  • Keep hands visible if you need good hands in the result.
    If less than 3 seconds of usable continuous motion can be extracted, the generation can fail and — per Kling's terms — those credits are not refunded. Validate your reference clip before submitting at scale.

How to Use Kling 3.0 Motion Control in the Web App

For one-off clips, the Kling web UI is the fastest route:

  1. Open Kling, select the 3.0 model, then click Motion Control.
  2. Upload your driving video into the "character actions to mimic" box.
  3. Upload your character image into the box on the right.
  4. (Optional) Add a prompt describing the scene — lighting, environment, camera. Do not describe the action; that comes from the video.
  5. Set character orientation: follow the video (up to 30s) or the image (up to 10s).
  6. Choose std (720p) or pro (1080p) and click Generate.
    That's enough for manual work. The rest of this guide is for automating it.

How to Use the Kling 3.0 Motion Control API

This is the part most teams come for: a guide to the Kling 3.0 Motion Control API you can run end to end. GPT Proto exposes Kling through a unified, OpenAI-compatible account with a single key, and the video tasks follow a create-then-poll pattern.

Step 1 — Get an API key

Sign up at gptproto.com/dashboard and generate a key. One key works across every model on the platform. Export it so the examples pick it up:

export GPTPROTO_API_KEY="your_key_here"

Step 2 — Create a Motion Control task

You submit the character image, the driving video, the tier, and an optional prompt. The API returns a task id you'll poll for the result.

Note: GPT Proto authenticates Kling with a Bearer token in the Authorization header. The Motion Control task takes image (character), video (driving clip), prompt, negative_prompt, character_orientation, and keep_original_sound.

cURL

curl -X POST "https://gptproto.com/api/v3/kling/kling-v3.0-pro/motion-control" \
  -H "Authorization: Bearer $GPTPROTO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "image": "https://example.com/character.jpg",
    "video": "https://example.com/driving-motion.mp4",
    "prompt": "studio lighting, plain grey background, static camera",
    "negative_prompt": "warped background, extra fingers, motion blur",
    "character_orientation": "video",
    "keep_original_sound": false
  }'

Swap kling-v3.0-pro for kling-v3.0-std to run the 720p tier.

Step 3 — Poll for the result

Video generation is asynchronous. Take the id from the create response and poll the predictions endpoint until status is finished, then read the output URL.

Python (end to end)

import os
import time
import requests
 
BASE = "https://gptproto.com/api/v3"
API_KEY = os.environ["GPTPROTO_API_KEY"]
HEADERS = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}
 
def create_motion_control(image_url, video_url, prompt="", negative_prompt="",
                          tier="pro", orientation="video"):
    url = f"{BASE}/kling/kling-v3.0-{tier}/motion-control"
    payload = {
        "image": image_url,                       # character identity
        "video": video_url,                       # driving motion (3-30s, single shot)
        "prompt": prompt,                         # describe the SCENE, not the action
        "negative_prompt": negative_prompt,       # artifacts to suppress
        "character_orientation": orientation,     # "video" (<=30s) or "image" (<=10s)
        "keep_original_sound": False,
    }
    r = requests.post(url, json=payload, headers=HEADERS, timeout=60)
    r.raise_for_status()
    return r.json()["data"]["id"]
 
def wait_for_result(task_id, interval=5, timeout=600):
    deadline = time.time() + timeout
    while time.time() < deadline:
        r = requests.get(f"{BASE}/predictions/{task_id}/result", headers=HEADERS, timeout=60)
        r.raise_for_status()
        data = r.json()["data"]
        status = data.get("status")
        if status in ("succeeded", "completed"):
            return data["outputs"]          # list of output video URLs
        if status in ("failed", "error"):
            raise RuntimeError(data.get("error") or "generation failed")
        time.sleep(interval)
    raise TimeoutError(f"task {task_id} did not finish within {timeout}s")
 
if __name__ == "__main__":
    task_id = create_motion_control(
        image_url="https://example.com/character.jpg",
        video_url="https://example.com/driving-motion.mp4",
        prompt="studio lighting, plain grey background, static camera",
        tier="pro",
        orientation="video",
    )
    print("task:", task_id)
    outputs = wait_for_result(task_id)
    print("video:", outputs)

Confirm the exact status strings against the live response — the image-to-video docs expose data.status, data.outputs, and data.error, which is what the poller reads here.


Writing a Good Kling 3.0 Motion Control Prompt

The prompt in Motion Control is not where the action lives — the driving video handles that. A Kling 3.0 Motion Control prompt should describe everything except movement: the setting, lighting, wardrobe details, mood, and camera behavior.

Do describe:

  • Environment and background ("neon-lit alley at night", "plain white studio cyclorama")
  • Lighting ("soft key light from the left", "hard rim light")
  • Camera intent ("static camera", "locked-off tripod shot")
  • Style notes ("cinematic, shallow depth of field")
    Don't describe:
  • The action itself ("waving", "dancing", "turning around") — that comes from the reference video and a conflicting prompt can fight it.
    A reliable starting template:
[scene/background], [lighting], [camera behavior], [style]

Example: plain grey studio background, soft even lighting, static camera, cinematic

Use the negative prompt to suppress recurring artifacts: warped background, extra fingers, motion blur, duplicate limbs.


Orientation and Duration

character_orientation does double duty — it controls how the character is posed and caps the output length:

Setting Behavior Max output
video Character follows the reference video's orientation and camera 30s
image Character keeps the image's orientation 10s

Rule of thumb: if identity drifts, try image; if motion feels stiff or under-transferred, try video. The output length tracks the reference video, so a 12-second result needs a ~12-second driving clip and the video orientation.


Common Problems and Fixes

Symptom Likely cause Fix
Warped / wobbling background Camera moving too aggressively Add static background / static camera to the prompt; add warped background to negative prompt
Face likeness drifts Face too small in the source image Use an image where the face fills more of the frame; try character_orientation: image
Output shorter than the reference Fast/complex motion; only continuous segments extracted Slow the action; use a single clean continuous take
Bad / mangled hands Hands hidden in the reference video Use a reference where hands stay visible
Generation truncated Cuts or camera moves in the reference Use one continuous shot, no edits

Pricing

GPT Proto bills per task, pay-as-you-go — no subscription floor. Pricing is "Per Time," so the final cost scales with the generation you run; the model page's playground shows the live total before you submit.

Model Tier Motion Control Per Time rate
kling-v3.0-pro pro (1080p) $0.4032 (20% off, market $0.504)
kling-v3.0-std std (720p) $0.3024 (20% off, market $0.378)

Live rates are on each model page.


Next Steps

創意工作室

使用生產級 API 生成圖像、影片及更多內容。

開始創作
創意工作室
相關模型
全部模型
Kling
20% OFF
Kling
20% OFF
Claude
20% OFF
Google
40% OFF

常見問題

不提供角色圖片也能使用 Motion Control 嗎?

不行。Motion Control 僅支援影像轉影片,必須提供角色圖片。目前沒有文字轉影片的 Motion Control 模式。

輸出影片最長可以多長?

使用 character_orientation: video 時最長可達 30 秒,使用 image 時最長可達 10 秒。輸出長度會符合你的參考影片。

std 與 pro 有什麼差異?

std 輸出 720p,成本較低且速度較快,適合反覆調整;pro 輸出 1080p,適合最終交付。兩者使用相同模型與 API 結構,差異僅在模型 slug 與畫質。

如果我的參考影片中有兩個人,會發生什麼情況?

畫面中佔據最大面積的角色會主導動作。若要獲得可預期的結果,請使用只有單一人物的參考影片。

它會保留參考影片中的音訊嗎?

只有在你啟用此功能時才會保留(keep_original_sound: true)。本文範例預設為關閉。

相關文章

更多部落格
如何製作能正確呈現標題的 AI 電影海報(2026)

如何製作能正確呈現標題的 AI 電影海報(2026)

AI 電影海報最困難的地方不是圖片。任何影像模型大約二十秒就能生成一張充滿情緒的主角畫面。真正困難的是所有讓它看起來像海報的元素:沒有融化成胡言亂語的標題、真正看得清楚的標語、底部的演職員名單,以及像標準電影海報而不是正方形的畫面比例。我花了一個週末在五種類型中生成海報,幾乎每一次失敗都能追溯到三件事之一 — 比例錯誤、沒有留下文字空間,或是要求模型在繪製作品的同一個步驟中,同時畫出一整段排版文字。 本指南會解決這三個問題。你會獲得依類型分類、可直接複製貼上的提示詞,一組能把你自己的照片變成海報的提示詞,讓標題變清晰的兩步驟技巧,以及 — 如果你想製作五十張而不是五張 — 可以直接執行的 API 呼叫。整個流程由兩個模型完成: gpt-image-2 用於精確、多語言的文字,以及 Gemini 3 Pro Image (許多人稱它為 Nano Banana Pro)用於風格與 4K 輸出。兩者都能透過 GPTProto 執行,因此切換模型只需修改一行。

Schuyler Stacy | 2026-06-16

Seedance 2.5 出了嗎?發佈日期與我們目前真正知道的資訊(2026)

Seedance 2.5 出了嗎?發佈日期與我們目前真正知道的資訊(2026)

這週我刷新 ByteDance 的 Seed 頁面,等待 Seedance 2.5 出現的次數已經多到有點不好意思了。到目前為止,什麼都沒有。沒有模型頁面、沒有規格表,也沒有日期。這正是這篇文章存在的原因:目前流傳著大量關於 Seedance 2.5 的自信說法,其中大多數都把猜測當成事實。我想清楚區分兩者,然後告訴你今天實際可以執行什麼。

Tiffany Layne | 2026-06-23

如何使用 API 建立 AI 生成的虛擬網紅(以及實際運作成本)

如何使用 API 建立 AI 生成的虛擬網紅(以及實際運作成本)

大多數人第一次建立 AI 網紅時,第二張圖片就失敗了。第一張生成圖看起來很棒 — 一張可信的臉孔、恰到好處的光線。接著他們生成第二篇貼文,顴骨移位了、鼻子變寬了、眼睛也換了顏色。這已經是另一個人。第三篇貼文又是第三個人。他們擁有的不是網紅,而是一個剛好擁有相同髮色的陌生人資料夾。 在這個搜尋結果中排名靠前的無程式碼工具,會用一個按鈕掩蓋這個問題。上傳照片、點擊生成、取得結果。在你想要擴大規模、切換外觀,或按排程執行一百篇貼文之前,這樣做都沒問題 — 到那時,你通常會被鎖定在單一模型、單一風格,以及每月 $19 到 $99 的訂閱方案中,不論你生成 5 張圖片還是 500 張。 本指南選擇另一條路:API。這比點擊 SaaS 按鈕需要更多設定 — 你要撰寫幾行程式碼並管理 API 金鑰。但相對地,你可以控制每個鏡頭使用的生成模型,按圖片付費而不是按月付費,還能將整個流程自動化。讀完本指南後,你將擁有一個鎖定的身分、一批一致的貼文、一支可選的直式短片,以及 — 其他指南都跳過的部分 — 真實的單篇貼文成本。 為了說明為什麼有人會這麼做:由巴塞隆納代理商 The Clueless 打造的 AI 模特兒 Aitana L&oacute;pez,每月最高可賺取 &euro;10,000,平均約為 &euro;3,000, 據她的創作者表示 ,如 Euronews 報導 。記住這個數字。我們會在了解實際製作成本後回頭討論,因為這兩個數字之間的差距,就是整個商業模式的核心。

Schuyler Stacy | 2026-06-17