Kling Image en vidéo
Utilisez le point de terminaison image vers vidéo pour créer une tâche asynchrone.
Vue d'ensemble
Utilisez le point de terminaison image vers vidéo avec un modèle compatible. Utilisez l'ID de tâche retourné pour récupérer son état, ou fournissez callback_url pour les livraisons documentées ci-dessous.
Démarrage rapide
- Créez une clé API et définissez-la comme RUNAPI_API_KEY.
- Choisissez un modèle pris en charge et envoyez une requête POST dont le corps correspond au schéma de ce modèle.
- Enregistrez l'identifiant de tâche retourné, puis interrogez l'état jusqu'à atteindre un état terminal ou gérez les callbacks documentés ci-dessous.
Point de terminaison
- URL de base
https://runapi.ai- Version de l'API
v1- Authentification
Authorization: Bearer YOUR_API_TOKEN
Modèles pris en charge
Ouvrez une page de modèle pour consulter la tarification actuelle, les limites de débit et les conditions d'utilisation commerciale.
Schéma de requête
Les champs et les valeurs autorisées dépendent du modèle sélectionné. Lorsqu'il est fourni, callback_url reçoit les livraisons de tâches documentées ci-dessous.
kling-o113 champs
aspect_ratiostringRatio d'aspect de la sortie.
Valeurs autorisées:16:9, 9:16, 1:1
Par défaut: 16:9
callback_urlstringURL de webhook pour les notifications asynchrones.
duration_secondsintegerDurée en secondes.
Valeurs autorisées:5
Par défaut: 5
enable_soundbooleanLa génération sonore doit rester désactivée.
Par défaut:false
first_frame_image_urlstringURL d'image de première image JPG, JPEG ou PNG HTTP(S) publique.
last_frame_image_urlstringURL d'image de dernière image finale JPG, JPEG ou PNG HTTP(S) publique ; ne peut pas être combinée avec reference_image_urls ou reference_video_url.
modestringMode de génération.
Valeurs autorisées:std, pro
Par défaut: std
modelstringSlug du modèle.
preserve_reference_video_audiobooleanConserver l'audio original de la vidéo de référence.
Par défaut:false
promptstringDescription de la vidéo ; référencez les médias avec des marqueurs numérotés correspondants.
Plage:1 - 2500
reference_image_urlsarrayURLs ordonnées d'images de référence JPG, JPEG ou PNG publiques en HTTP(S) ; ne peut pas être combiné avec last_frame_image_url.
Plage d'éléments:1 - 7
reference_video_typestringUtilisez la vidéo comme base d'édition ou référence de fonctionnalité.
Valeurs autorisées:base, feature
Par défaut: base
reference_video_urlstringURL de vidéo de référence MP4 ou MOV HTTP(S) publique ; ne peut pas être combinée avec last_frame_image_url.
kling-v2.1-master-image-to-video9 champs
aspect_ratiostringRatio d'aspect de la sortie.
callback_urlstringURL de webhook pour les notifications asynchrones.
cfg_scalenumberÉchelle de guidage (0-1).
duration_secondsintegerDurée en secondes.
Valeurs autorisées:5, 10
first_frame_image_urlstringURL de la première image.
last_frame_image_urlstringURL de l'image finale pour les modèles image-vers-vidéo pris en charge.
modelstringSlug du modèle.
negative_promptstringInvite négative.
promptstringDescription de la vidéo.
kling-v2.1-pro9 champs
aspect_ratiostringRatio d'aspect de la sortie.
callback_urlstringURL de webhook pour les notifications asynchrones.
cfg_scalenumberÉchelle de guidage (0-1).
duration_secondsintegerDurée en secondes.
Valeurs autorisées:5, 10
first_frame_image_urlstringURL de la première image.
last_frame_image_urlstringURL de l'image finale pour les modèles image-vers-vidéo pris en charge.
modelstringSlug du modèle.
negative_promptstringInvite négative.
promptstringDescription de la vidéo.
kling-v2.1-standard9 champs
aspect_ratiostringRatio d'aspect de la sortie.
callback_urlstringURL de webhook pour les notifications asynchrones.
cfg_scalenumberÉchelle de guidage (0-1).
duration_secondsintegerDurée en secondes.
Valeurs autorisées:5, 10
first_frame_image_urlstringURL de la première image.
last_frame_image_urlstringURL de l'image finale pour les modèles image-vers-vidéo pris en charge.
modelstringSlug du modèle.
negative_promptstringInvite négative.
promptstringDescription de la vidéo.
kling-v2.5-turbo-image-to-video-pro9 champs
aspect_ratiostringRatio d'aspect de la sortie.
callback_urlstringURL de webhook pour les notifications asynchrones.
cfg_scalenumberÉchelle de guidage (0-1).
duration_secondsintegerDurée en secondes.
Valeurs autorisées:5, 10
first_frame_image_urlstringURL de la première image.
last_frame_image_urlstringURL de l'image finale pour les modèles image-vers-vidéo pris en charge.
modelstringSlug du modèle.
negative_promptstringInvite négative.
promptstringDescription de la vidéo.
kling-v2.69 champs
aspect_ratiostringRatio d'aspect de la sortie.
Valeurs autorisées:16:9, 9:16, 1:1
Par défaut: 16:9
callback_urlstringURL de webhook pour les notifications asynchrones.
duration_secondsintegerDurée en secondes.
Valeurs autorisées:5, 10
Par défaut: 5
enable_soundbooleanActiver la génération de son ; nécessite le mode pro.
Par défaut:false
first_frame_image_urlstringURL de la première image.
last_frame_image_urlstringURL de l'image finale ; nécessite le mode pro et 5 secondes.
modestringMode de génération.
Valeurs autorisées:std, pro
Par défaut: std
modelstringSlug du modèle.
promptstringDescription de la vidéo.
Plage:1 - 2500
kling-v3-omni9 champs
aspect_ratiostringRatio d'aspect de la sortie.
Valeurs autorisées:16:9, 9:16, 1:1
Par défaut: 16:9
callback_urlstringURL de webhook pour les notifications asynchrones.
duration_secondsintegerDurée en secondes.
Valeurs autorisées:3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
Par défaut: 5
enable_soundbooleanActiver la génération de son synchronisée.
Par défaut:false
first_frame_image_urlstringURL de la première image.
last_frame_image_urlstringURL de l'image finale ; nécessite une durée de 5 secondes.
modelstringSlug du modèle.
output_resolutionstringRésolution de sortie.
Valeurs autorisées:720p, 1080p, 4k
Par défaut: 720p
promptstringDescription de la vidéo.
Plage:1 - 2500
kling-v3-turbo-image-to-video6 champs
callback_urlstringURL de webhook pour les notifications asynchrones.
duration_secondsintegerDurée en secondes.
Valeurs autorisées:3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
Par défaut: 5
first_frame_image_urlstringURL de la première image.
modelstringSlug du modèle.
output_resolutionstringRésolution de sortie.
Valeurs autorisées:720p, 1080p
Par défaut: 720p
promptstringDescription de la vidéo.
Plage:1 - 2500
Règles conditionnelles
Ces exigences s'appliquent lorsque toutes les conditions listées sont réunies.
-
Lorsque
model = kling-o1- Requis
- Non accepté
output_resolution,negative_prompt,cfg_scale
-
Lorsque
model = kling-v2.1-master-image-to-video- Requis
- Non accepté
output_resolution,enable_sound,reference_image_urls,reference_video_url,reference_video_type,preserve_reference_video_audio
-
Lorsque
model = kling-v2.1-pro- Requis
- Non accepté
output_resolution,enable_sound,reference_image_urls,reference_video_url,reference_video_type,preserve_reference_video_audio
-
Lorsque
model = kling-v2.1-standard- Requis
- Non accepté
output_resolution,enable_sound,reference_image_urls,reference_video_url,reference_video_type,preserve_reference_video_audio
-
Lorsque
model = kling-v2.5-turbo-image-to-video-pro- Requis
- Non accepté
output_resolution,enable_sound,reference_image_urls,reference_video_url,reference_video_type,preserve_reference_video_audio
-
Lorsque
model = kling-v2.6- Requis
- Non accepté
output_resolution,negative_prompt,cfg_scale,reference_image_urls,reference_video_url,reference_video_type,preserve_reference_video_audio
-
Lorsque
model = kling-v3-omni- Requis
- Non accepté
negative_prompt,cfg_scale,reference_image_urls,reference_video_url,reference_video_type,preserve_reference_video_audio
-
Lorsque
model = kling-v3-turbo-image-to-video- Requis
- Non accepté
enable_sound,aspect_ratio,negative_prompt,cfg_scale,last_frame_image_url,reference_image_urls,reference_video_url,reference_video_type,preserve_reference_video_audio
Créer une acceptation
POST /api/v1/kling/image_to_video
Schéma de réponse
{
"properties": {
"billing": {
"properties": {
"refund": {
"oneOf": [
{
"properties": {
"refunded_at": {
"type": "string"
}
},
"required": [
"refunded_at"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"reservation": {
"oneOf": [
{
"properties": {
"amount_cents": {
"type": "integer"
}
},
"required": [
"amount_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"settlement": {
"oneOf": [
{
"properties": {
"amount_micro_cents": {
"type": "integer"
},
"charged_amount_cents": {
"type": "integer"
}
},
"required": [
"charged_amount_cents",
"amount_micro_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
}
},
"required": [
"reservation",
"settlement",
"refund"
],
"type": "object",
"unevaluatedProperties": false
},
"id": {
"type": "string"
},
"status": {
"enum": [
"processing"
],
"type": "string"
},
"task_replayed": {
"type": "boolean"
}
},
"required": [
"id",
"status",
"billing"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"billing": {
"refund": null,
"reservation": null,
"settlement": null
},
"id": "tsk_reference_demo",
"status": "processing"
}
Interrogation en cours
GET /api/v1/kling/image_to_video/:id
Schéma de réponse
{
"properties": {
"billing": {
"properties": {
"refund": {
"oneOf": [
{
"properties": {
"refunded_at": {
"type": "string"
}
},
"required": [
"refunded_at"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"reservation": {
"oneOf": [
{
"properties": {
"amount_cents": {
"type": "integer"
}
},
"required": [
"amount_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"settlement": {
"oneOf": [
{
"properties": {
"amount_micro_cents": {
"type": "integer"
},
"charged_amount_cents": {
"type": "integer"
}
},
"required": [
"charged_amount_cents",
"amount_micro_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
}
},
"required": [
"reservation",
"settlement",
"refund"
],
"type": "object",
"unevaluatedProperties": false
},
"id": {
"type": "string"
},
"status": {
"enum": [
"processing"
],
"type": "string"
}
},
"required": [
"id",
"status",
"billing"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"billing": {
"refund": null,
"reservation": null,
"settlement": null
},
"id": "tsk_reference_demo",
"status": "processing"
}
Interrogation terminée
GET /api/v1/kling/image_to_video/:id
Schéma de réponse
{
"properties": {
"billing": {
"properties": {
"refund": {
"oneOf": [
{
"properties": {
"refunded_at": {
"type": "string"
}
},
"required": [
"refunded_at"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"reservation": {
"oneOf": [
{
"properties": {
"amount_cents": {
"type": "integer"
}
},
"required": [
"amount_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"settlement": {
"oneOf": [
{
"properties": {
"amount_micro_cents": {
"type": "integer"
},
"charged_amount_cents": {
"type": "integer"
}
},
"required": [
"charged_amount_cents",
"amount_micro_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
}
},
"required": [
"reservation",
"settlement",
"refund"
],
"type": "object",
"unevaluatedProperties": false
},
"id": {
"type": "string"
},
"status": {
"enum": [
"completed"
],
"type": "string"
},
"videos": {
"items": {
"properties": {
"url": {
"type": "string",
"x-runapi-generated-media": true
}
},
"required": [
"url"
],
"type": "object",
"unevaluatedProperties": false
},
"type": "array"
}
},
"required": [
"id",
"status",
"videos",
"billing"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"billing": {
"refund": null,
"reservation": null,
"settlement": null
},
"id": "tsk_reference_demo",
"status": "completed",
"videos": [
{
"url": "https://file.runapi.ai/reference-video.mp4"
}
]
}
Échec de l'interrogation
GET /api/v1/kling/image_to_video/:id
Schéma de réponse
{
"properties": {
"billing": {
"properties": {
"refund": {
"oneOf": [
{
"properties": {
"refunded_at": {
"type": "string"
}
},
"required": [
"refunded_at"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"reservation": {
"oneOf": [
{
"properties": {
"amount_cents": {
"type": "integer"
}
},
"required": [
"amount_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"settlement": {
"oneOf": [
{
"properties": {
"amount_micro_cents": {
"type": "integer"
},
"charged_amount_cents": {
"type": "integer"
}
},
"required": [
"charged_amount_cents",
"amount_micro_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
}
},
"required": [
"reservation",
"settlement",
"refund"
],
"type": "object",
"unevaluatedProperties": false
},
"error": {
"type": "string"
},
"id": {
"type": "string"
},
"status": {
"enum": [
"failed"
],
"type": "string"
}
},
"required": [
"id",
"status",
"error",
"billing"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"billing": {
"refund": null,
"reservation": null,
"settlement": null
},
"error": "Task processing failed.",
"id": "tsk_reference_demo",
"status": "failed"
}
Rappel client : terminé
POST callback_url
Schéma de réponse
{
"properties": {
"id": {
"type": "string"
},
"status": {
"enum": [
"completed"
],
"type": "string"
},
"videos": {
"items": {
"properties": {
"url": {
"type": "string",
"x-runapi-generated-media": true
}
},
"required": [
"url"
],
"type": "object",
"unevaluatedProperties": false
},
"type": "array"
}
},
"required": [
"id",
"status",
"videos"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"id": "tsk_reference_demo",
"status": "completed",
"videos": [
{
"url": "https://file.runapi.ai/reference-video.mp4"
}
]
}
Rappel client : échoué
POST callback_url
Schéma de réponse
{
"properties": {
"error": {
"oneOf": [
{
"type": "string"
},
{
"properties": {
"code": {
"type": "string"
},
"limit_cents": {
"type": "integer"
},
"message": {
"type": "string"
},
"reset_at": {
"format": "date-time",
"type": [
"string",
"null"
]
},
"used_cents": {
"type": "integer"
},
"window": {
"enum": [
"1h",
"1d",
"7d",
"daily",
"weekly",
"monthly",
"lifetime"
],
"type": "string"
}
},
"required": [
"code",
"message"
],
"type": "object",
"unevaluatedProperties": false
}
]
},
"id": {
"type": "string"
},
"status": {
"enum": [
"failed"
],
"type": "string"
}
},
"required": [
"id",
"status",
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"error": {
"code": "generation_failed",
"message": "Task processing failed."
},
"id": "tsk_reference_demo",
"status": "failed"
}
Erreurs
POST /api/v1/kling/image_to_video
Schéma de réponse
{
"properties": {
"error": {
"description": "Message d'erreur lisible par l'humain.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"error": "Authentication required"
}
Erreurs
GET /api/v1/kling/image_to_video/:id
Schéma de réponse
{
"properties": {
"error": {
"description": "Message d'erreur lisible par l'humain.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"error": "Authentication required"
}
Erreurs
POST /api/v1/kling/image_to_video
Schéma de réponse
{
"oneOf": [
{
"properties": {
"error": {
"description": "Message d'erreur lisible par l'humain.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
},
{
"properties": {
"error": {
"description": "Résumé de validation lisible par l'humain.",
"type": "string"
},
"errors": {
"additionalProperties": {
"items": {
"type": "string"
},
"type": "array"
},
"description": "Messages de validation indexés par champ de requête public, avec un tableau de chaînes lisibles par l'humain pour chaque champ.",
"type": "object"
}
},
"required": [
"error",
"errors"
],
"type": "object",
"unevaluatedProperties": false
}
]
}
Exemple de réponse
{
"error": "model must be one of: kling-o1, kling-v2.1-master-image-to-video, kling-v2.1-pro, kling-v2.1-standard, kling-v2.5-turbo-image-to-video-pro, kling-v2.6, kling-v3-omni, kling-v3-turbo-image-to-video"
}
Erreurs
POST /api/v1/kling/image_to_video
Schéma de réponse
{
"properties": {
"error": {
"description": "Message d'erreur lisible par l'humain.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"error": "Insufficient balance"
}
Erreurs
POST /api/v1/kling/image_to_video
Schéma de réponse
{
"properties": {
"error": {
"description": "Message d'erreur lisible par l'humain.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"error": "API key credit limit exceeded"
}
Erreurs
POST /api/v1/kling/image_to_video
Schéma de réponse
{
"properties": {
"error": {
"description": "Message d'erreur lisible par l'humain.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"error": "The request uses features that are not supported for the selected model"
}
Erreurs
POST /api/v1/kling/image_to_video
Schéma de réponse
{
"properties": {
"error": {
"description": "Message d'erreur lisible par l'humain.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"error": "Rate limit reached. Please retry later."
}
Erreurs
POST /api/v1/kling/image_to_video
Schéma de réponse
{
"properties": {
"error": {
"description": "Message d'erreur lisible par l'humain.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"error": "Service under maintenance, please try again later"
}
Erreurs
POST /api/v1/kling/image_to_video
Schéma de réponse
{
"properties": {
"error": {
"description": "Message d'erreur lisible par l'humain.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"error": "The request timed out"
}
Erreurs
GET /api/v1/kling/image_to_video/:id
Schéma de réponse
{
"properties": {
"error": {
"description": "Message d'erreur lisible par l'humain.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"error": "Task with id 'tsk_reference_demo' not found"
}
Exemples de code générés
Utilisez directement cURL, ou installez un SDK pour votre langage. Chaque exemple soumet la requête validée indiquée dans cette référence.
Installer
pip install runapi-kling
import os
from runapi.kling import KlingClient
client = KlingClient(api_key=os.environ["RUNAPI_API_KEY"])
task = client.image_to_video.create(
model="kling-o1",
prompt="A gentle camera pan across the scene.",
first_frame_image_url="https://file.runapi.ai/first-frame.png"
)