Use a API RunComfy para executar blackforestlabs/flux-3/keyframes-to-video. Para entradas e saídas aceitas, consulte o esquema.
curl --request POST \
--url https://model-api.runcomfy.net/v1/models/blackforestlabs/flux-3/keyframes-to-video \
--header "Content-Type: application/json" \
--header "Authorization: Bearer <token>" \
--data '{
"prompt": "One continuous tracking shot: she starts on the wet coastal road facing the distant lighthouse, walks through the wooden gate as the mist thins, and arrives at the lighthouse base just as sunlight breaks through. Soft ocean spray, distant gulls, natural footsteps on wet asphalt.",
"keyframes": [
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7399/media-files/ref-promo-1.webp",
"frame_index": 0
},
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7399/media-files/ref-promo-2.webp",
"frame_index": 60
},
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7399/media-files/ref-promo-3.webp",
"frame_index": 120
}
]
}'Defina a variável de ambiente YOUR_API_TOKEN com sua chave de API (gerenciamento no Perfil) e inclua em cada solicitação um token Bearer no cabeçalho Authorization : Authorization: Bearer $YOUR_API_TOKEN.
Envie um trabalho de geração assíncrono e receba imediatamente um request_id e URLs para status, resultados e cancelamento.
curl --request POST \
--url https://model-api.runcomfy.net/v1/models/blackforestlabs/flux-3/keyframes-to-video \
--header "Content-Type: application/json" \
--header "Authorization: Bearer <token>" \
--data '{
"prompt": "One continuous tracking shot: she starts on the wet coastal road facing the distant lighthouse, walks through the wooden gate as the mist thins, and arrives at the lighthouse base just as sunlight breaks through. Soft ocean spray, distant gulls, natural footsteps on wet asphalt.",
"keyframes": [
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7399/media-files/ref-promo-1.webp",
"frame_index": 0
},
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7399/media-files/ref-promo-2.webp",
"frame_index": 60
},
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7399/media-files/ref-promo-3.webp",
"frame_index": 120
}
]
}'Obtém o estado atual de um 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>"Obtém as saídas finais e metadados do request_id; se o trabalho não estiver concluído, a resposta retorna o estado atual para continuar o polling.
curl --request GET \
--url https://model-api.runcomfy.net/v1/requests/{request_id}/result \
--header "Authorization: Bearer <token>"Cancela um trabalho na fila por request_id; trabalhos em andamento não podem ser cancelados.
curl --request POST \
--url https://model-api.runcomfy.net/v1/requests/{request_id}/cancel \
--header "Authorization: Bearer <token>"Forneça uma URL HTTPS publicamente acessível. O host deve permitir buscas no servidor (sem login/cookies), sem limite de taxa agressivo ou bloqueio de bots. Recomendado: imagens ≤ 50 MB (~4K), vídeos ≤ 100 MB (~2–5 min em 720p). Para ativos privados, URLs estáveis ou pré-assinadas.
{
"type": "object",
"title": "Esquema de entrada",
"required": [
"prompt",
"keyframes"
],
"properties": {
"prompt": {
"title": "Prompt",
"description": "Texto que descreve o vídeo que você deseja gerar.",
"type": "string",
"default": "One continuous tracking shot: she starts on the wet coastal road facing the distant lighthouse, walks through the wooden gate as the mist thins, and arrives at the lighthouse base just as sunlight breaks through. Soft ocean spray, distant gulls, natural footsteps on wet asphalt."
},
"keyframes": {
"title": "Keyframes",
"description": "Imagens de keyframe fixadas em posições de frame no vídeo gerado. Até 10 keyframes com valores frame_index únicos (a partir de 0, no máximo duração × 24 a 24 fps).",
"type": "array",
"default": [
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7399/media-files/ref-promo-1.webp",
"frame_index": 0
},
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7399/media-files/ref-promo-2.webp",
"frame_index": 60
},
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7399/media-files/ref-promo-3.webp",
"frame_index": 120
}
],
"items": {
"image_url": {
"title": "URL da imagem",
"description": "URL da imagem de keyframe (PNG, JPEG ou WebP).",
"type": "string",
"format": "image_uri",
"default": ""
},
"frame_index": {
"title": "Índice do frame",
"description": "Posição do frame deste keyframe no vídeo de 24 fps. Deve ser único e no máximo duração × 24.",
"type": "integer",
"format": "int_slider_with_range",
"minimum": 0,
"maximum": 480,
"default": 0
}
},
"maxItems": 10,
"minItems": 1
},
"aspect_ratio": {
"title": "Proporção",
"description": "Proporção do vídeo gerado. auto deixa o modelo escolher.",
"type": "string",
"enum": [
"auto",
"21:9",
"2:1",
"16:9",
"4:3",
"1:1",
"3:4",
"9:16"
],
"default": "16:9"
},
"resolution": {
"title": "Resolução",
"description": "Resolução do vídeo gerado.",
"type": "string",
"enum": [
"720p",
"1080p"
],
"default": "720p"
},
"duration": {
"title": "Duração",
"description": "Duração do vídeo gerado em segundos. É necessária uma duração explícita para validar as posições dos keyframes.",
"type": "integer",
"enum": [
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20
],
"default": 5
},
"generate_audio": {
"title": "Gerar áudio",
"description": "Se deve gerar áudio sincronizado para o vídeo.",
"type": "boolean",
"default": true
},
"safety_tolerance": {
"title": "Tolerância de segurança",
"description": "Nível de tolerância de segurança do vídeo gerado. 0 é o mais rigoroso e 4 o mais permissivo.",
"type": "integer",
"minimum": 0,
"maximum": 4,
"default": 2
}
}
}{
"output": {
"type": "object",
"properties": {
"image": {
"type": "string",
"format": "uri",
"description": "URL de imagem única"
},
"video": {
"type": "string",
"format": "uri",
"description": "URL de vídeo único"
},
"images": {
"type": "array",
"description": "várias URLs de imagem",
"items": {
"type": "string",
"format": "uri"
}
},
"videos": {
"type": "array",
"description": "várias URLs de vídeo",
"items": {
"type": "string",
"format": "uri"
}
}
}
}
}RunComfy é a principal ComfyUI plataforma, oferecendo ComfyUI online ambiente e serviços, juntamente com fluxos de trabalho do ComfyUI apresentando visuais impressionantes. RunComfy também oferece AI Models, permitindo que artistas utilizem as mais recentes ferramentas de AI para criar arte incrível.