Usa l'API RunComfy per eseguire blackforestlabs/flux-3-max/keyframes-to-video. Per input e output accettati, consulta lo schema.
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
}
]
}'Imposta la variabile d'ambiente YOUR_API_TOKEN con la tua chiave API (gestione nel Profilo) e includi in ogni richiesta un token Bearer nell'intestazione Authorization : Authorization: Bearer $YOUR_API_TOKEN.
Invia un job di generazione asincrono e ricevi subito un request_id e URL per stato, risultati e annullamento.
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
}
]
}'Recupera lo stato corrente per 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>"Recupera output finali e metadati per il request_id; se il job non è completo, la risposta restituisce lo stato corrente per continuare il polling.
curl --request GET \
--url https://model-api.runcomfy.net/v1/requests/{request_id}/result \
--header "Authorization: Bearer <token>"Annulla un job in coda tramite request_id; i job in corso non possono essere annullati.
curl --request POST \
--url https://model-api.runcomfy.net/v1/requests/{request_id}/cancel \
--header "Authorization: Bearer <token>"Fornisci un URL HTTPS raggiungibile pubblicamente. L'host deve consentire fetch lato server (senza login/cookie), senza rate limit eccessivo o blocco bot. Consigliato: immagini ≤ 50 MB (~4K), video ≤ 100 MB (~2–5 min a 720p). Per asset privati, URL stabili o pre-firmati.
{
"type": "object",
"title": "Schema di input",
"required": [
"prompt",
"keyframes"
],
"properties": {
"prompt": {
"title": "Prompt",
"description": "Descrivi come il clip dovrebbe muoversi tra i fermoimmagini dei keyframe.",
"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": "Fotogrammi chiave",
"description": "Fino a 10 immagini. Ogni immagine richiede un frame_index univoco su una sequenza temporale a 24 fps. L’indice non può superare 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 dell'immagine",
"description": "URL dell'immagine del fotogramma chiave. PNG, JPEG o WebP.",
"type": "string",
"format": "image_uri",
"default": ""
},
"frame_index": {
"title": "Indice del frame",
"description": "Posizione sulla sequenza temporale a 24 fps. L’indice deve essere univoco e non superare duration × 24.",
"type": "integer",
"format": "int_slider_with_range",
"minimum": 0,
"maximum": 480,
"default": 0
}
},
"maxItems": 10,
"minItems": 1
},
"aspect_ratio": {
"title": "Formato",
"description": "Forma del fotogramma di output. auto segue la prima immagine.",
"type": "string",
"enum": [
"auto",
"21:9",
"2:1",
"16:9",
"4:3",
"1:1",
"3:4",
"9:16"
],
"default": "auto"
},
"resolution": {
"title": "Risoluzione",
"description": "Risoluzione di output. 720p è il valore predefinito. 1080p è l'opzione più nitida.",
"type": "string",
"enum": [
"720p",
"1080p"
],
"default": "720p"
},
"duration": {
"title": "Durata",
"description": "Lunghezza del clip in secondi interi.",
"type": "integer",
"enum": [
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20
],
"default": 5
},
"generate_audio": {
"title": "Genera audio",
"description": "Crea una traccia audio con il video. Disattivalo per un clip silenzioso.",
"type": "boolean",
"default": true
},
"reasoning_level": {
"title": "Livello di ragionamento",
"description": "low ritorna prima. high passa più tempo sul prompt ed è più lento.",
"type": "string",
"enum": [
"low",
"high"
],
"default": "high"
},
"seed": {
"title": "Seed",
"description": "Opzionale. Lascia vuoto e il modello sceglie un seme casuale.",
"type": "integer"
}
}
}{
"output": {
"type": "object",
"properties": {
"image": {
"type": "string",
"format": "uri",
"description": "URL immagine singola"
},
"video": {
"type": "string",
"format": "uri",
"description": "URL video singolo"
},
"images": {
"type": "array",
"description": "più URL immagine",
"items": {
"type": "string",
"format": "uri"
}
},
"videos": {
"type": "array",
"description": "più URL video",
"items": {
"type": "string",
"format": "uri"
}
}
}
}
}RunComfy è la piattaforma principale ComfyUI che offre ComfyUI online ambiente e servizi, insieme a workflow di ComfyUI con visuali mozzafiato. RunComfy offre anche AI Models, consentire agli artisti di sfruttare gli ultimi strumenti di AI per creare arte incredibile.