- Quand Motion Control est l'outil approprié
- Étape 1 : Obtenez votre clé API Novita
- Étape 2 : Confirmez le point de terminaison et l'ID du modèle
- Étape 3 : Préparez vos entrées
- Étape 4 : Envoyez votre première requête
- Étape 5 : Interrogez le résultat
- Exemple complet d'intégration Python
- Référence des paramètres de l'API
- Standard vs Pro : quel niveau de qualité choisir
- Tarification, durée et estimations de coûts
- Résolution des erreurs courantes
- Ce que les développeurs construisent avec Kling Motion Control
- FAQ
- Articles recommandés
Kling V3.0 Motion Control vous permet d’animer une image de personnage statique en extrayant le mouvement d’une vidéo de référence et en l’appliquant image par image. La sortie préserve l’apparence du personnage de votre image tout en reproduisant le mouvement de la vidéo — une technique appelée transfert de mouvement. Ce guide couvre le point de terminaison Novita AI, les entrées requises, les paramètres clés et des exemples Python et curl fonctionnels que vous pouvez exécuter avec une véritable clé API.
Quand Motion Control est l’outil approprié
Motion Control est l’outil approprié lorsque vous disposez de deux éléments : une image de personnage statique que vous souhaitez animer et une vidéo de référence dont vous souhaitez reproduire le mouvement. Il est différent de l’Image vers Vidéo (I2V), qui génère du mouvement à partir d’une invite. Avec Motion Control, le mouvement est copié précisément à partir de la vidéo de référence — le personnage en sortie suivra la même courbe de mouvement que la personne dans la vidéo de référence.
Utilisez-le lorsque :
- Vous souhaitez une danse, un cycle de marche ou un geste spécifique appliqué à une illustration ou une photo de personnage
- Vous avez besoin d’un mouvement cohérent et reproductible sur différents personnages (même vidéo de référence, images différentes)
- Vous créez du contenu où la qualité du mouvement est importante et où les résultats ouverts de l’invite I2V sont trop imprévisibles
Ne l’utilisez pas lorsque le mouvement lui-même n’est pas encore défini — dans ce cas, l’I2V avec une invite descriptive vous offre plus de flexibilité à moindre coût.
Étape 1 : Obtenez votre clé API Novita
Inscrivez-vous sur novita.ai et générez une clé API depuis le tableau de bord. Les nouveaux comptes reçoivent des crédits gratuits que vous pouvez utiliser pour tester Motion Control avant de passer à un volume de production.
Étape 2 : Confirmez le point de terminaison et l’ID du modèle
Kling V3.0 Motion Control sur Novita AI utilise le modèle vidéo asynchrone standard :
Soumettre la tâche :
POST https://api.novita.ai/v3/async/kling-v3.0-motion-control
Interroger le résultat :
GET https://api.novita.ai/v3/async/task-result?task_id={task_id}
Toutes les requêtes nécessitent :
Authorization: Bearer VOTRE_CLE_API_NOVITA
Content-Type: application/json
Documentation complète : novita.ai/docs/api-reference/model-apis-kling-v3.0-motion-control
Étape 3 : Préparez vos entrées
Motion Control nécessite deux entrées : une image de référence et une vidéo de référence. Leur bonne préparation est le facteur le plus important pour la qualité de la sortie.
Image de référence
C’est le personnage dont l’apparence sera préservée en sortie. Exigences :
- Formats : JPEG, PNG, JPG
- Taille maximale : 10 Mo
- Résolution minimale : 340px de chaque côté
- Rapport d’aspect : entre 2:5 et 5:2
- Le personnage doit être clairement visible, occuper plus de 5 % de la zone de l’image et ne présenter aucune occlusion importante (ne recadrez pas la tête ou le corps)
Pour de meilleurs résultats, utilisez une image où les proportions du corps du personnage correspondent approximativement à ce qui est visible dans la vidéo de référence. Si la vidéo de référence montre un danseur en pied, utilisez une image de personnage en pied plutôt qu’un recadrage en portrait.
Vidéo de référence
C’est la source du mouvement. Le personnage en sortie reproduira les mouvements de cette vidéo :
- Formats : MP4, MOV
- Taille maximale : 10 Mo
- Durée : 3 à 30 secondes
- Résolution minimale : 340px de chaque côté
- Rapport d’aspect : entre 2:5 et 5:2
- La personne dans la vidéo de référence doit avoir le corps complet ou le haut du corps visible et non obstrué, y compris la tête
Des séquences claires, bien éclairées et avec un arrière-plan minimal transfèrent le mouvement plus précisément que des plans bruyants ou encombrés.
Étape 4 : Envoyez votre première requête
Requête curl minimale :
curl --request POST \
--url https://api.novita.ai/v3/async/kling-v3.0-motion-control \
--header 'Authorization: Bearer $NOVITA_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"image": "https://example.com/character.jpg",
"video": "https://example.com/reference_motion.mp4",
"prompt": "A person performing a smooth dance routine, cinematic lighting",
"model_name": "kling-v3.0-motion-control",
"character_orientation": "video"
}'
La réponse renvoie immédiatement un task_id :
{
"task_id": "abc123xyz"
}
Étape 5 : Interrogez le résultat
Kling V3.0 Motion Control est asynchrone. Soumettez la tâche, puis interrogez jusqu’à ce que le statut soit succeed :
curl --request GET \
--url 'https://api.novita.ai/v3/async/task-result?task_id=abc123xyz' \
--header 'Authorization: Bearer $NOVITA_API_KEY'
Une fois terminée, la réponse contient un tableau videos avec l’URL de sortie :
{
"task": {
"status": "succeed"
},
"videos": [
{
"video_url": "https://cdn.novita.ai/output/abc123xyz.mp4",
"video_url_ttl": "3600"
}
]
}
Le temps de génération typique est de 30 à 120 secondes selon la durée de la vidéo et le mode. Interrogez toutes les 5 à 10 secondes plutôt que de marteler le point de terminaison.
Exemple complet d’intégration Python
Ce script soumet une tâche Motion Control et interroge jusqu’à ce qu’elle soit terminée :
import os
import time
import requests
API_KEY = os.environ["NOVITA_API_KEY"]
BASE_URL = "https://api.novita.ai"
HEADERS = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
}
def submit_motion_control(image: str, video: str, prompt: str = "") -> str:
payload = {
"image": image,
"video": video,
"prompt": prompt,
"model_name": "kling-v3.0-motion-control",
"character_orientation": "video",
}
resp = requests.post(f"{BASE_URL}/v3/async/kling-v3.0-motion-control", json=payload, headers=HEADERS)
resp.raise_for_status()
return resp.json()["task_id"]
def poll_result(task_id: str, timeout: int = 300) -> str:
deadline = time.time() + timeout
while time.time() < deadline:
resp = requests.get(
f"{BASE_URL}/v3/async/task-result",
params={"task_id": task_id},
headers=HEADERS,
)
resp.raise_for_status()
data = resp.json()
status = data.get("task", {}).get("status")
if status == "succeed":
return data["videos"][0]["video_url"]
if status == "failed":
raise RuntimeError(f"Task failed: {data}")
time.sleep(8)
raise TimeoutError(f"Task {task_id} did not complete within {timeout}s")
if __name__ == "__main__":
image = "https://example.com/character.jpg"
video = "https://example.com/reference_motion.mp4"
print("Submitting task...")
task_id = submit_motion_control(image, video, prompt="smooth dance routine, warm lighting")
print(f"Task ID: {task_id}")
print("Polling for result...")
output_url = poll_result(task_id)
print(f"Output video: {output_url}")
Référence des paramètres de l’API
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
image |
chaîne | Oui | URL de l’image du personnage à animer. Voir les exigences d’entrée ci-dessus. |
video |
chaîne | Oui | URL de la vidéo de référence dont le mouvement sera transféré. |
model_name |
chaîne | Oui | Définir sur kling-v3.0-motion-control. |
prompt |
chaîne | Non | Description textuelle du style de mouvement souhaité ou du contexte de la scène. Optionnel mais peut améliorer la qualité de la sortie. |
character_orientation |
chaîne | Non | Contrôle l’alignement de la pose et la durée de la sortie. "video" correspond à l’orientation de la vidéo de référence — meilleur pour les mouvements complexes du corps entier, prend en charge jusqu’à 30 s. "image" correspond à l’orientation de l’image du personnage — meilleur pour les mouvements relatifs à la caméra, fixé à 5 s. |
character_orientation en pratique
Si votre vidéo de référence montre un danseur de face et que votre image de personnage est également de face, "video" offrira un meilleur transfert de mouvement et prend en charge jusqu’à 30 secondes. Si la vidéo de référence a une caméra qui se déplace autour du sujet et que votre image est un portrait à angle fixe, "image" tend à réduire les distorsions de perspective indésirables — mais notez qu’il génère un clip fixe de 5 secondes.
Standard vs Pro : quel niveau de qualité choisir
Kling V3.0 Motion Control est disponible en deux niveaux de qualité :
Standard produit en 720p. C’est le bon choix pour l’itération, le test de compatibilité des mouvements ou la génération de brouillons avant de s’engager sur une version finale.
Pro produit en 1080p avec une meilleure fidélité de mouvement et une cohérence du sujet. Utilisez Pro lorsque :
- La sortie est destinée à une production finale (post social, court métrage, démo produit)
- Les détails fins du visage ou des vêtements du personnage sont importants
- Vous générez des clips plus longs (10s+) où la dégradation de la qualité dans le temps est plus visible
Pour la plupart des workflows de développement, commencez par Standard pour confirmer la compatibilité des entrées et la qualité du mouvement, puis passez à Pro pour la version finale.
Tarification, durée et estimations de coûts
Novita AI facture Motion Control par seconde de vidéo générée. Les niveaux Standard et Pro ont des tarifs par seconde distincts. Pour les tarifs actuels, consultez la page du modèle Novita AI.
Limites de durée :
character_orientation: "video"— jusqu’à 30 secondescharacter_orientation: "image"— fixé à 5 secondes
Le coût varie avec la durée pour le mode "video". Le mode "image" génère toujours un clip de 5 secondes.
Résolution des erreurs courantes
La tâche échoue immédiatement avec une erreur 422 ou de validation
Vérifiez que les deux URL image et video sont accessibles publiquement (pas derrière une authentification ou une URL pré-signée à courte durée de vie qui a expiré). Le backend Novita doit pouvoir récupérer les deux fichiers au moment de l’exécution de la tâche.
Le mouvement de sortie semble incorrect ou le personnage se déforme
La cause la plus fréquente est une inadéquation entre l’orientation du personnage dans l’image et la vidéo de référence. Essayez de basculer character_orientation entre "video" et "image" pour voir lequel produit un meilleur alignement.
Le personnage perd son identité faciale au milieu du clip Assurez-vous que le personnage dans l’image de référence a un visage et un corps clairs et non obstrués. Pour les clips plus longs, le niveau Pro maintient mieux la cohérence du sujet que Standard.
Le mouvement de la vidéo de référence ne se transfère pas proprement Les séquences de référence bruyantes ou encombrées dégradent l’extraction du mouvement. Utilisez des séquences où l’interprète est le sujet principal sur un arrière-plan raisonnablement propre. Évitez les séquences tremblantes tenues à la main si l’objectif est un transfert de mouvement fluide.
Le statut reste bloqué sur processing pendant plus de 3 minutes
Des retards de file d’attente occasionnels peuvent se produire. Attendez jusqu’à 5 minutes avant de considérer le statut comme bloqué. S’il reste bloqué, soumettez une nouvelle tâche — ne réutilisez pas l’ancien task_id.
Ce que les développeurs construisent avec Kling Motion Control
Animation de personnages pour les assets de jeu : Prenez une illustration de personnage et appliquez un clip de mouvement de référence (marche, course, attaque) sans logiciel de rigging ou d’animation.
Contenu social avec mouvement cohérent : Appliquez la même vidéo de danse de référence à plusieurs images de personnages pour produire une série de clips avec une chorégraphie identique mais des apparences différentes.
Prévisualisation : Testez l’apparence d’une séquence de mouvement spécifique sur un design de personnage avant d’investir dans une animation de production complète.
Affichage de produits e-commerce : Appliquez des changements de pose subtils ou des mouvements de vêtements à des images de produits en utilisant une vidéo de référence soigneusement choisie montrant le mouvement du vêtement.
FAQ
Quelle est la différence entre Motion Control et Image vers Vidéo sur Novita AI ?
L’Image vers Vidéo (I2V) anime une image basée sur une invite textuelle — le mouvement est généré par le modèle à partir de votre description. Motion Control transfère un mouvement spécifique d’une vidéo de référence sur le personnage de votre image. Motion Control vous offre un mouvement précis et reproductible ; l’I2V vous offre une flexibilité créative sans nécessiter de clip de référence.
Le personnage de la vidéo de référence doit-il correspondre à l’apparence du personnage de l’image ?
Non. La vidéo de référence est utilisée uniquement pour l’extraction du mouvement — le personnage en sortie provient de l’image, pas de la vidéo. C’est la capacité essentielle : le mouvement d’une source, l’apparence d’une autre. Les proportions doivent correspondre approximativement (image en pied pour vidéo en pied, portrait pour vidéo en buste) pour une meilleure qualité de transfert.
Puis-je utiliser n’importe quelle vidéo accessible publiquement comme référence ?
Vous pouvez utiliser toute vidéo répondant aux exigences de format et de taille. Le mouvement se transfère mieux à partir de séquences où le sujet est clairement visible avec une occlusion minimale. Les scènes multi-personnes complexes ou les séquences fortement éditées (coupures, zooms) peuvent réduire la précision.
Combien de temps prend la génération ?
Généralement 30 à 120 secondes selon la durée de la sortie et le choix du mode Standard ou Pro. Interrogez toutes les 8 à 10 secondes plutôt que dans une boucle serrée.
