Usa la API de RunComfy para ejecutar blackforestlabs/flux-3/keyframes-to-video/draft. Para entradas y salidas admitidas, consulta el esquema.
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
}
]
}'Define la variable de entorno YOUR_API_TOKEN con tu clave API (gestión en Perfil) e incluye en cada solicitud un token Bearer en la cabecera Authorization : Authorization: Bearer $YOUR_API_TOKEN.
Envía un trabajo de generación asíncrono y recibe de inmediato un request_id y URLs para consultar estado, obtener resultados y cancelar.
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
}
]
}'Obtiene el estado actual de un request_id ("in_queue", "in_progress", "completed" o "cancelled").
curl --request GET \
--url https://model-api.runcomfy.net/v1/requests/{request_id}/status \
--header "Authorization: Bearer <token>"Obtiene las salidas finales y metadatos del request_id; si el trabajo no ha terminado, la respuesta devuelve el estado actual para seguir haciendo polling.
curl --request GET \
--url https://model-api.runcomfy.net/v1/requests/{request_id}/result \
--header "Authorization: Bearer <token>"Cancela un trabajo en cola por request_id; los trabajos en curso no se pueden cancelar.
curl --request POST \
--url https://model-api.runcomfy.net/v1/requests/{request_id}/cancel \
--header "Authorization: Bearer <token>"Proporciona una URL HTTPS públicamente accesible. El host debe permitir peticiones del servidor (sin login/cookies), sin rate limit agresivo ni bloqueo de bots. Recomendado: imágenes ≤ 50 MB (~4K), vídeos ≤ 100 MB (~2–5 min a 720p). Para activos privados, URLs estables o firmadas.
{
"type": "object",
"title": "Esquema de entrada",
"required": [
"prompt",
"keyframes"
],
"properties": {
"prompt": {
"title": "Inmediato",
"description": "El mensaje de texto que describe el borrador del video.",
"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": "Fotogramas clave",
"description": "Imágenes de fotogramas clave fijadas a posiciones de fotograma en el borrador generado. Hasta 10 fotogramas clave con valores únicos de frame_index (basados en 0, duración máxima × 24 a 24 fps).",
"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 la imagen",
"description": "URL de la imagen del fotograma clave (PNG, JPEG o WebP).",
"type": "string",
"format": "image_uri",
"default": ""
},
"frame_index": {
"title": "Índice de fotogramas",
"description": "Posición de fotograma de este fotograma clave en el vídeo de 24 fps generado. Debe ser único y tener una duración máxima de × 24.",
"type": "integer",
"format": "int_slider_with_range",
"minimum": 0,
"maximum": 480,
"default": 0
}
},
"maxItems": 10,
"minItems": 1
},
"aspect_ratio": {
"title": "Relación de aspecto",
"description": "Relación de aspecto del borrador generado. auto deja elegir el modelo.",
"type": "string",
"enum": [
"auto",
"21:9",
"2:1",
"16:9",
"4:3",
"1:1",
"3:4",
"9:16"
],
"default": "auto"
},
"duration": {
"title": "Duración",
"description": "Duración del borrador en segundos enteros de 5 a 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": "Generar audio",
"description": "Ya sea para generar audio para el borrador del video.",
"type": "boolean",
"default": true
},
"safety_tolerance": {
"title": "Tolerancia de seguridad",
"description": "El nivel de tolerancia de seguridad para el vídeo generado. 0 es el más estricto y 4 es el más permisivo.",
"type": "integer",
"minimum": 0,
"maximum": 4,
"default": 2
}
}
}{
"output": {
"type": "object",
"properties": {
"image": {
"type": "string",
"format": "uri",
"description": "URL de una sola imagen"
},
"video": {
"type": "string",
"format": "uri",
"description": "URL de un solo vídeo"
},
"images": {
"type": "array",
"description": "varias URLs de imagen",
"items": {
"type": "string",
"format": "uri"
}
},
"videos": {
"type": "array",
"description": "varias URLs de vídeo",
"items": {
"type": "string",
"format": "uri"
}
}
}
}
}RunComfy es la principal ComfyUI plataforma, ofreciendo ComfyUI en línea entorno y servicios, junto con flujos de trabajo de ComfyUI con impresionantes imágenes. RunComfy también ofrece AI Models, permitiendo a los artistas aprovechar las últimas herramientas de AI para crear arte increíble.