Kling 3.0 Motion Control anime l’image statique d’un personnage en lui appliquant les mouvements d’une vidéo de référence. Vous lui fournissez deux entrées — une image de votre personnage et une vidéo d’une personne en mouvement — et il renvoie un nouveau clip dans lequel votre personnage exécute exactement la même chorégraphie, tout en conservant son propre visage, sa tenue et son apparence.
Il s’agit d’un transfert de mouvement, et non de texte vers mouvement. Au lieu de décrire une action dans un prompt en espérant que le modèle l’interprète correctement, vous lui montrez l’action image par image. Le résultat est ainsi bien plus fiable pour l’animation répétable de personnages, la danse et les gestes.
Ce guide couvre les deux possibilités : l’application web Kling pour les clips ponctuels et l’API GPTProto pour intégrer Motion Control à un pipeline. Nous aborderons les entrées et les limites, les niveaux `pro` et `std`, les techniques de prompt, du code complet exécutable, les tarifs et les problèmes à connaître avant de dépenser vos crédits.
Comment utiliser Kling 3.0 Motion Control : guide du développeur (Web + API)
Guide du développeur de Kling 3.0 Motion Control — pro ou std, limites des entrées, conseils pour les prompts et code API exécutable (Python + cURL) via GPTProto.

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
FAQ
Puis-je utiliser Motion Control sans image de personnage ?
Quelle peut être la durée maximale de la sortie ?
Quelle est la différence entre std et pro ?
Que se passe-t-il si ma vidéo de référence contient deux personnes ?
L’audio de ma vidéo de référence est-il conservé ?
Articles associés
Plus de blogs
Comment créer une affiche de film IA qui restitue le titre (2026)
La difficulté d’une affiche de film générée par IA ne réside pas dans l’image. N’importe quel modèle d’image peut vous fournir un plan héroïque et évocateur en une vingtaine de secondes. Le plus difficile, c’est tout ce qui fait qu’elle ressemble vraiment à une affiche : un titre qui ne se transforme pas en charabia, un slogan que l’on peut réellement lire, un bloc de crédits en bas et un cadre au format d’une affiche de cinéma plutôt que carré. J’ai passé un week-end à générer des affiches dans cinq genres, et presque tous les échecs remontaient à l’une de ces trois causes : de mauvaises proportions, aucun espace réservé au texte ou une demande au modèle de peindre un paragraphe de typographie en même temps que l’illustration. Ce guide corrige ces trois problèmes. Vous trouverez des prompts à copier-coller par genre, une série de prompts pour transformer votre propre photo en affiche, une astuce en deux étapes pour obtenir un titre net et — si vous préférez en créer cinquante plutôt que cinq — des appels API exécutables. Deux modèles s’en chargent : gpt-image-2 pour un texte précis et multilingue, et Gemini 3 Pro Image (celui que beaucoup de gens appellent Nano Banana Pro) pour le style et la sortie 4K. Les deux fonctionnent via GPTProto, donc passer de l’un à l’autre ne demande qu’une seule ligne de modification.
Schuyler Stacy | 2026-06-16

Seedance 2.5 est-il déjà disponible ? Date de sortie et ce que nous savons réellement (2026)
J'ai actualisé la page Seed de ByteDance plus de fois que je ne voudrais l'admettre cette semaine, en attendant de voir apparaître Seedance 2.5. Pour l'instant, rien. Pas de page consacrée au modèle, pas de fiche technique, pas de date. C'est précisément pour cela que cet article existe : de nombreux contenus très affirmatifs sur Seedance 2.5 circulent actuellement, et la plupart présentent des suppositions comme des faits. Je veux clairement distinguer les deux, puis vous orienter vers ce que vous pouvez réellement utiliser aujourd'hui.
Tiffany Layne | 2026-06-23

Comment créer un influenceur généré par IA avec une API (et ce que coûte réellement son fonctionnement)
L'influenceur IA de la plupart des gens échoue dès la deuxième image. Le premier rendu est superbe — un visage crédible, un éclairage correct. Puis ils génèrent la publication numéro deux et les pommettes ont bougé, le nez est plus large, les yeux sont d'une autre couleur. C'est une autre personne. La publication numéro trois montre une troisième personne. Ce qu'ils ont n'est pas un influenceur ; c'est un dossier rempli d'inconnus qui ont par hasard la même couleur de cheveux. Les outils sans code qui apparaissent en tête des résultats pour cette recherche dissimulent le problème derrière un bouton. Importez une photo, cliquez sur Générer, obtenez un résultat. C'est acceptable jusqu'à ce que vous vouliez passer à l'échelle, modifier le style ou programmer une centaine de publications — vous vous retrouvez alors lié à un seul modèle, un seul style et un abonnement qui coûte généralement entre 19 et 99 $ par mois, que vous génériez 5 images ou 500. Ce guide choisit l'autre voie : l'API. La mise en place demande plus d'efforts qu'un simple clic dans un SaaS — vous écrirez quelques lignes de code et gérerez une clé API. En contrepartie, vous contrôlez le modèle qui rend chaque prise, vous payez par image plutôt que par mois et vous pouvez automatiser l'ensemble du pipeline. À la fin, vous disposerez d'une identité verrouillée, d'un lot de publications cohérentes, d'un reel vertical facultatif et — la partie que tous les autres guides passent sous silence — du coût réel par publication. Pour comprendre pourquoi certains s'y intéressent : Aitana López, le modèle IA créé par l'agence barcelonaise The Clueless, gagne jusqu'à €10 000 par mois et environ €3 000 en moyenne, selon ses créateurs comme le rapporte Euronews . Retenez ce chiffre. Nous y reviendrons une fois que nous connaîtrons le coût réel de la production, car l'écart entre ces deux montants constitue tout le modèle économique.
Schuyler Stacy | 2026-06-17
