Kling 3.0 Motion Control은 정적인 캐릭터 이미지에 참조 영상의 움직임을 적용합니다. 캐릭터 이미지와 사람이 움직이는 영상, 두 가지 입력을 제공하면 캐릭터가 자신의 얼굴, 의상, 외형은 유지하면서 동일한 안무를 수행하는 새로운 클립을 반환합니다.
이는 텍스트-모션 변환이 아니라 모션 전이입니다. 프롬프트로 동작을 설명하고 모델이 해석하기를 기대하는 대신, 동작을 프레임 단위로 직접 보여줍니다. 따라서 반복 가능한 캐릭터 애니메이션, 댄스, 제스처 작업에서 훨씬 안정적입니다.
이 가이드에서는 두 가지 방법을 모두 다룹니다. 일회성 클립을 위한 Kling 웹 앱과 Motion Control을 파이프라인에 연결하기 위한 GPTProto API입니다. 입력 및 제한 사항, `pro`와 `std` 등급, 프롬프트 작성법, 실행 가능한 전체 코드, 가격, 크레딧을 사용하기 전에 알아두어야 할 주요 실패 사례를 살펴봅니다.
Kling 3.0 Motion Control 사용법: 개발자 가이드 (웹 + API)
GPTProto를 통한 Kling 3.0 Motion Control 개발자 가이드 — pro와 std 비교, 입력 제한, 프롬프트 팁, 실행 가능한 API 코드(Python + cURL).

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:
- Open Kling, select the 3.0 model, then click Motion Control.
- Upload your driving video into the "character actions to mimic" box.
- Upload your character image into the box on the right.
- (Optional) Add a prompt describing the scene — lighting, environment, camera. Do not describe the action; that comes from the video.
- Set character orientation: follow the video (up to 30s) or the image (up to 10s).
- 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
Bearertoken in theAuthorizationheader. The Motion Control task takesimage(character),video(driving clip),prompt,negative_prompt,character_orientation, andkeep_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
statusstrings against the live response — the image-to-video docs exposedata.status,data.outputs, anddata.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
- Try the model: Kling 3.0 Pro on GPT Proto
- Standard tier: Kling 3.0 Std on GPT Proto
- Compare costs across video models: Browse GPT Proto models
- Get a key and ship: GPT Proto Dashboard
자주 묻는 질문
캐릭터 이미지 없이 Motion Control을 사용할 수 있나요?
출력 영상은 얼마나 길게 만들 수 있나요?
std와 pro의 차이는 무엇인가요?
참조 영상에 두 사람이 등장하면 어떻게 되나요?
참조 영상의 오디오도 유지되나요?
관련 글
블로그 더 보기
제목을 렌더링하는 AI 영화 포스터 만드는 방법 (2026)
AI 영화 포스터에서 어려운 부분은 그림이 아닙니다. 어떤 이미지 모델이든 약 20초면 분위기 있는 주인공 샷을 만들어 줍니다. 진짜 어려운 부분은 포스터처럼 보이게 만드는 모든 요소입니다. 엉망이 되지 않은 제목, 실제로 읽을 수 있는 태그라인, 하단의 크레딧 블록, 정사각형이 아닌 실제 영화 포스터 같은 프레임이 필요합니다. 주말 동안 다섯 가지 장르로 포스터를 생성해 보니, 거의 모든 실패는 세 가지 중 하나로 귀결되었습니다 — 잘못된 비율, 텍스트를 넣을 공간 부족, 또는 모델에게 한 번에 그림과 함께 긴 타이포그래피 문단까지 그리도록 요청한 경우였습니다. 이 가이드는 이 세 가지 문제를 해결합니다. 장르별로 복사해 붙여 넣을 수 있는 프롬프트, 직접 찍은 사진을 포스터로 바꾸는 프롬프트 모음, 제목을 선명하게 만드는 2단계 방법, 그리고 다섯 장이 아니라 쉰 장을 만들고 싶을 때 사용할 수 있는 실행 가능한 API 호출까지 제공합니다. 두 모델이 작업을 나눠 맡습니다. gpt-image-2 는 정밀하고 다국어 텍스트를, Gemini 3 Pro Image (많은 사람이 Nano Banana Pro라고 부르는 모델)는 스타일과 4K 출력을 담당합니다. 두 모델 모두 GPTProto를 통해 실행되므로, 한 줄만 바꾸면 모델을 전환할 수 있습니다.
Schuyler Stacy | 2026-06-16

Seedance 2.5는 아직 출시되지 않았나요? 출시일과 현재까지 실제로 알려진 내용 (2026)
이번 주에 ByteDance의 Seed 페이지를 보고 또 보면서 Seedance 2.5가 올라오기를 기다렸습니다. 지금까지는 아무것도 없습니다. 모델 페이지도, 사양표도, 날짜도 없습니다. 바로 이 공백 때문에 이 글을 작성했습니다. 현재 Seedance 2.5에 관해 확신에 찬 글이 많이 떠돌고 있는데, 대부분 추측을 사실처럼 제시하고 있습니다. 여기서는 둘을 명확히 구분한 다음, 오늘 실제로 사용할 수 있는 것을 안내하겠습니다.
Tiffany Layne | 2026-06-23

API로 AI 인플루언서 만들기 (실제 운영 비용은 얼마일까)
대부분의 사람들이 처음 만든 AI 인플루언서는 두 번째 이미지에서 실패합니다. 첫 번째 렌더링은 멋져 보입니다 — 믿을 만한 얼굴과 괜찮은 조명 말이죠. 그런데 두 번째 게시물을 생성하면 광대뼈가 움직이고, 코가 더 넓어지고, 눈 색깔이 달라집니다. 전혀 다른 사람입니다. 세 번째 게시물은 또 다른 사람이고요. 결국 인플루언서가 아니라, 머리카락 색깔만 우연히 같은 낯선 사람들의 폴더를 갖게 됩니다. 이 검색 결과 상위에 표시되는 노코드 도구들은 버튼 하나 뒤에 이 문제를 숨깁니다. 사진을 업로드하고, 생성을 클릭하고, 결과를 받습니다. 이미지 5개를 만들든 500개를 만들든 월 $19에서 $99 정도의 구독료를 내면서 하나의 모델과 스타일에 묶여 있는 동안에는 괜찮습니다. 하지만 규모를 키우거나, 분위기를 바꾸거나, 일정에 맞춰 게시물 100개를 실행하려는 순간 문제가 됩니다. 이 가이드는 다른 길인 API를 선택합니다. SaaS 버튼을 클릭하는 것보다 설정할 일이 많습니다 — 몇 줄의 코드를 작성하고 API 키를 관리해야 하죠. 그 대신 각 장면을 어떤 모델로 렌더링할지 직접 제어하고, 월정액이 아닌 이미지 단위로 비용을 지불하며, 전체 파이프라인을 자동화할 수 있습니다. 마지막에는 하나의 고정된 정체성, 일관성 있는 게시물 묶음, 선택 사항인 세로형 릴, 그리고 — 다른 가이드들이 모두 건너뛰는 부분인 — 실제 게시물당 비용까지 갖추게 됩니다. 왜 이런 일을 하는지 맥락을 살펴보면, 바르셀로나 에이전시 The Clueless가 만든 AI 모델 Aitana López는 월 최대 €10,000, 평균 약 €3,000을 벌어들입니다. 제작자들에 따르면 , Euronews가 보도한 내용입니다. 이 숫자를 기억해 두세요. 실제 제작 비용을 파악한 뒤 다시 돌아오겠습니다. 이 두 수치 사이의 차이가 바로 이 비즈니스의 핵심이기 때문입니다.
Schuyler Stacy | 2026-06-17
