Use a API RunComfy para executar blackforestlabs/flux-3-max/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-max/keyframes-to-video \
--header "Content-Type: application/json" \
--header "Authorization: Bearer <token>" \
--data '{
"prompt": "He sets the robe on the rock, lowers himself into the steaming pool, then turns toward the woman beside him and smiles. Snow keeps falling. Water, soft wind, and a quiet laugh. No text.",
"keyframes": [
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7471/media-files/ref-promo-1.webp",
"frame_index": 0
},
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7471/media-files/ref-promo-2.webp",
"frame_index": 60
},
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7471/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-max/keyframes-to-video \
--header "Content-Type: application/json" \
--header "Authorization: Bearer <token>" \
--data '{
"prompt": "He sets the robe on the rock, lowers himself into the steaming pool, then turns toward the woman beside him and smiles. Snow keeps falling. Water, soft wind, and a quiet laugh. No text.",
"keyframes": [
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7471/media-files/ref-promo-1.webp",
"frame_index": 0
},
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7471/media-files/ref-promo-2.webp",
"frame_index": 60
},
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7471/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": "Descreva como o clipe deve se mover entre os quadros-chave estáticos.",
"type": "string",
"default": "He sets the robe on the rock, lowers himself into the steaming pool, then turns toward the woman beside him and smiles. Snow keeps falling. Water, soft wind, and a quiet laugh. No text."
},
"keyframes": {
"title": "Quadros-chave",
"description": "Até 10 imagens. Cada imagem precisa de um frame_index exclusivo em uma linha do tempo de 24 fps. O índice não pode exceder duration × 24.",
"type": "array",
"default": [
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7471/media-files/ref-promo-1.webp",
"frame_index": 0
},
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7471/media-files/ref-promo-2.webp",
"frame_index": 60
},
{
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7471/media-files/ref-promo-3.webp",
"frame_index": 120
}
],
"items": {
"image_url": {
"title": "URL da imagem",
"description": "URL da imagem do quadro-chave. PNG, JPEG ou WebP.",
"type": "string",
"format": "image_uri",
"default": ""
},
"frame_index": {
"title": "Índice de Quadro",
"description": "Posição na linha do tempo de 24 fps. O índice deve ser exclusivo e não exceder duration × 24.",
"type": "integer",
"format": "int_slider_with_range",
"minimum": 0,
"maximum": 480,
"default": 0
}
},
"maxItems": 10,
"minItems": 1
},
"aspect_ratio": {
"title": "Proporção",
"description": "Formato do quadro de saída. auto segue a primeira imagem.",
"type": "string",
"enum": [
"auto",
"21:9",
"2:1",
"16:9",
"4:3",
"1:1",
"3:4",
"9:16"
],
"default": "auto"
},
"resolution": {
"title": "Resolução",
"description": "Resolução de saída. 720p é a padrão. 1080p é a opção mais nítida.",
"type": "string",
"enum": [
"720p",
"1080p"
],
"default": "720p"
},
"duration": {
"title": "Duração",
"description": "Duração do clipe em segundos inteiros.",
"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": "Crie uma faixa de áudio com o vídeo. Desative isso para um clipe silencioso.",
"type": "boolean",
"default": true
},
"reasoning_level": {
"title": "Nível de Raciocínio",
"description": "low retorna mais cedo. high passa mais tempo no prompt e é mais lento.",
"type": "string",
"enum": [
"low",
"high"
],
"default": "high"
},
"seed": {
"title": "Seed",
"description": "Opcional. Deixe vazio e o modelo escolherá uma semente aleatória.",
"type": "integer"
}
}
}{
"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.