Utilisez l'API RunComfy pour exécuter blackforestlabs/flux-3/keyframes-to-video/draft. Pour les entrées et sorties acceptées, voir le schéma.
curl --request POST \
--url https://model-api.runcomfy.net/v1/models/blackforestlabs/flux-3/keyframes-to-video/draft \
--header "Content-Type: application/json" \
--header "Authorization: Bearer <token>" \
--data '{
"prompt": "One continuous tracking shot of a mountain steam train: it pulls away from a timber station, curves through a pine forest bend, and arrives at a stone tunnel mouth. Soft steam hiss, wheel clatter, distant forest birds.",
"keyframes": [
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7408/media-files/ref-promo-1.webp",
"frame_index": 0
},
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7408/media-files/ref-promo-2.webp",
"frame_index": 60
},
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7408/media-files/ref-promo-3.webp",
"frame_index": 120
}
]
}'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/blackforestlabs/flux-3/keyframes-to-video/draft \
--header "Content-Type: application/json" \
--header "Authorization: Bearer <token>" \
--data '{
"prompt": "One continuous tracking shot of a mountain steam train: it pulls away from a timber station, curves through a pine forest bend, and arrives at a stone tunnel mouth. Soft steam hiss, wheel clatter, distant forest birds.",
"keyframes": [
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7408/media-files/ref-promo-1.webp",
"frame_index": 0
},
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7408/media-files/ref-promo-2.webp",
"frame_index": 60
},
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7408/media-files/ref-promo-3.webp",
"frame_index": 120
}
]
}'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",
"keyframes"
],
"properties": {
"prompt": {
"title": "Rapide",
"description": "L'invite de texte décrivant le brouillon de la vidéo.",
"type": "string",
"default": "One continuous tracking shot of a mountain steam train: it pulls away from a timber station, curves through a pine forest bend, and arrives at a stone tunnel mouth. Soft steam hiss, wheel clatter, distant forest birds."
},
"keyframes": {
"title": "Images clés",
"description": "Images d’images clés épinglées aux positions des images dans le brouillon généré. Jusqu'à 10 images clés avec des valeurs frame_index uniques (basées sur 0, durée maximale × 24 à 24 ips).",
"type": "array",
"default": [
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7408/media-files/ref-promo-1.webp",
"frame_index": 0
},
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7408/media-files/ref-promo-2.webp",
"frame_index": 60
},
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7408/media-files/ref-promo-3.webp",
"frame_index": 120
}
],
"items": {
"image_url": {
"title": "URL de l'image",
"description": "URL de l'image clé (PNG, JPEG ou WebP).",
"type": "string",
"format": "image_uri",
"default": ""
},
"frame_index": {
"title": "Index des images",
"description": "Position de l'image de cette image clé dans la vidéo générée à 24 ips. Doit être unique et d'une durée maximale de 24 x.",
"type": "integer",
"format": "int_slider_with_range",
"minimum": 0,
"maximum": 480,
"default": 0
}
},
"maxItems": 10,
"minItems": 1
},
"aspect_ratio": {
"title": "Rapport hauteur/largeur",
"description": "Rapport hauteur/largeur du brouillon généré. auto laisse le modèle choisir.",
"type": "string",
"enum": [
"auto",
"21:9",
"2:1",
"16:9",
"4:3",
"1:1",
"3:4",
"9:16"
],
"default": "auto"
},
"duration": {
"title": "Durée",
"description": "Durée du brouillon en secondes entières de 5 à 20.",
"type": "integer",
"enum": [
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20
],
"default": 5
},
"generate_audio": {
"title": "Générer de l'audio",
"description": "S'il faut générer de l'audio pour le brouillon de vidéo.",
"type": "boolean",
"default": true
},
"safety_tolerance": {
"title": "Tolérance de sécurité",
"description": "Le niveau de tolérance de sécurité pour la vidéo générée. 0 est le plus strict et 4 le plus permissif.",
"type": "integer",
"minimum": 0,
"maximum": 4,
"default": 2
}
}
}{
"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.