Utilisez l'API RunComfy pour exécuter kling/kling-v4/reference-to-video. Pour les entrées et sorties acceptées, voir le schéma.
curl --request POST \
--url https://model-api.runcomfy.net/v1/models/kling/kling-v4/reference-to-video \
--header "Content-Type: application/json" \
--header "Authorization: Bearer <token>" \
--data '{
"prompt": ""
}'Définissez la variable d'environnement YOUR_API_TOKEN avec votre clé API (gestion dans Profil) et incluez à chaque requête un jeton Bearer dans l'en-tête Authorization : Authorization: Bearer $YOUR_API_TOKEN.
Soumettez une tâche de génération asynchrone et recevez immédiatement un request_id ainsi que des URLs pour le statut, les résultats et l'annulation.
curl --request POST \
--url https://model-api.runcomfy.net/v1/models/kling/kling-v4/reference-to-video \
--header "Content-Type: application/json" \
--header "Authorization: Bearer <token>" \
--data '{
"prompt": ""
}'Récupère l'état actuel pour un request_id (« in_queue », « in_progress », « completed » ou « cancelled »).
curl --request GET \
--url https://model-api.runcomfy.net/v1/requests/{request_id}/status \
--header "Authorization: Bearer <token>"Récupère les sorties finales et métadonnées pour le request_id ; si le travail n'est pas terminé, la réponse indique l'état actuel pour poursuivre le polling.
curl --request GET \
--url https://model-api.runcomfy.net/v1/requests/{request_id}/result \
--header "Authorization: Bearer <token>"Annule un travail en file d'attente via request_id ; les travaux en cours ne peuvent pas être annulés.
curl --request POST \
--url https://model-api.runcomfy.net/v1/requests/{request_id}/cancel \
--header "Authorization: Bearer <token>"Fournissez une URL HTTPS accessible publiquement. L'hôte doit autoriser les récupérations côté serveur (sans login/cookies), sans limitation de débit ni blocage des bots. Recommandé : images ≤ 50 Mo (~4K), vidéos ≤ 100 Mo (~2–5 min en 720p). Préférez des URL stables ou pré-signées pour les actifs privés.
{
"type": "object",
"title": "Schéma d'entrée",
"required": [
"prompt"
],
"properties": {
"prompt": {
"title": "Prompt",
"description": "Décrivez le tir. Traitez les images de référence comme @Image1, les vidéos comme @Video1 et les sujets comme @Element1.",
"type": "string",
"examples": [
"Use @Image1. She turns from profile toward the camera and gives a small closed-mouth smile. The studio light stays soft. Audio: quiet room tone and a faint cloth rustle, no music."
]
},
"image_urls": {
"title": "URLs d'image",
"description": "Images de référence, jusqu'à dix, adressées comme @Image1 dans l'ordre de la liste. Les images d’ouverture, du milieu et de fin comptent pour les mêmes dix.",
"type": "array",
"maxItems": 10,
"items": {
"type": "string",
"format": "image_uri"
},
"examples": [
[
"https://playgrounds-storage-public.runcomfy.net/tools/7479/media-files/promo-input.webp"
]
]
},
"video_urls": {
"title": "URLs de vidéo",
"description": "Vidéos de référence, jusqu'à cinq, chacune d'une durée de 3 à 30 secondes, adressées comme @Video1. Avec les sujets vidéo, ils restent dans les 30 secondes.",
"type": "array",
"maxItems": 5,
"items": {
"type": "string",
"format": "video_uri"
}
},
"start_image_url": {
"title": "Image de départ",
"description": "Cadre ouvrant en option. Compte dans le total de dix images.",
"type": "string"
},
"middle_image_urls": {
"title": "Images intermédiaires",
"description": "Cadres commandés en option entre ouverture et fermeture. Huit au maximum.",
"type": "array",
"maxItems": 8,
"items": {
"type": "string",
"format": "image_uri"
}
},
"end_image_url": {
"title": "Image de fin",
"description": "Dernière image facultative. Compte dans le total de dix images.",
"type": "string"
},
"elements": {
"title": "Éléments",
"description": "Jusqu'à sept sujets enregistrés. Chacune est une vue de face plus des angles optionnels, ou une seule vidéo de 3 à 8 secondes. Trois au maximum peuvent être des vidéos. Appelez-les @Element1, @Element2, etc.",
"type": "array",
"items": {
"type": "object",
"properties": {
"frontal_image_url": {
"type": "string",
"format": "image_uri",
"description": "Vue de face du sujet. Utilisez-le avec jusqu'à trois angles supplémentaires ou utilisez plutôt une vidéo."
},
"reference_image_urls": {
"type": "array",
"format": "image_uris",
"maxItems": 3,
"items": {
"type": "string",
"format": "image_uri"
},
"description": "Jusqu'à trois angles supplémentaires. Nécessite une vue de face et ne peut pas être combiné avec une vidéo."
},
"video_url": {
"type": "string",
"format": "video_uri",
"description": "Un extrait de 3 à 8 secondes du sujet, utilisé à la place des images. Au maximum trois éléments peuvent être des vidéos."
}
}
},
"minItems": 0,
"maxItems": 7
},
"duration": {
"title": "Durée",
"description": "Durée du clip en secondes entières. La valeur par défaut est 5.",
"type": "integer",
"minimum": 3,
"maximum": 30,
"default": 5
},
"resolution": {
"title": "Résolution",
"description": "Résolution de sortie. 1080p est la valeur par défaut. 720p est la passe la plus légère.",
"type": "string",
"enum": [
"720p",
"1080p"
],
"default": "1080p"
},
"aspect_ratio": {
"title": "Format",
"description": "Cadre de sortie. auto suit les références. 16:9 est la valeur par défaut.",
"type": "string",
"enum": [
"16:9",
"9:16",
"1:1",
"21:9",
"auto"
],
"default": "16:9"
}
}
}{
"output": {
"type": "object",
"properties": {
"image": {
"type": "string",
"format": "uri",
"description": "URL d'une seule image"
},
"video": {
"type": "string",
"format": "uri",
"description": "URL d'une seule vidéo"
},
"images": {
"type": "array",
"description": "plusieurs URLs d'images",
"items": {
"type": "string",
"format": "uri"
}
},
"videos": {
"type": "array",
"description": "plusieurs URLs de vidéos",
"items": {
"type": "string",
"format": "uri"
}
}
}
}
}RunComfy est la première ComfyUI plateforme, offrant des ComfyUI en ligne environnement et services, ainsi que des workflows ComfyUI proposant des visuels époustouflants. RunComfy propose également AI Models, permettant aux artistes d'utiliser les derniers outils d'IA pour créer des œuvres d'art incroyables.