Usa l'API RunComfy per eseguire wan-ai/wan-3.0/image-to-video. Per input e output accettati, consulta lo schema.
curl --request POST \
--url https://model-api.runcomfy.net/v1/models/wan-ai/wan-3.0/image-to-video \
--header "Content-Type: application/json" \
--header "Authorization: Bearer <token>" \
--data '{
"prompt": "A vintage cream convertible parked on a windswept coastal cliff at golden hour; the camera slowly orbits to reveal the ocean below, tall grass sways in the sea breeze, warm sunlight glints across the chrome trim, gentle lens flare, cinematic anamorphic look, smooth continuous motion.",
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7413/media-files/input-promo.webp"
}'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/wan-ai/wan-3.0/image-to-video \
--header "Content-Type: application/json" \
--header "Authorization: Bearer <token>" \
--data '{
"prompt": "A vintage cream convertible parked on a windswept coastal cliff at golden hour; the camera slowly orbits to reveal the ocean below, tall grass sways in the sea breeze, warm sunlight glints across the chrome trim, gentle lens flare, cinematic anamorphic look, smooth continuous motion.",
"image_url": "https://playgrounds-storage-public.runcomfy.net/tools/7413/media-files/input-promo.webp"
}'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",
"image_url"
],
"properties": {
"prompt": {
"title": "Prompt",
"description": "Descrivi il movimento, l'azione, il movimento della fotocamera, l'illuminazione e lo stile in cui desideri animare il primo fotogramma.",
"type": "string",
"default": "A vintage cream convertible parked on a windswept coastal cliff at golden hour; the camera slowly orbits to reveal the ocean below, tall grass sways in the sea breeze, warm sunlight glints across the chrome trim, gentle lens flare, cinematic anamorphic look, smooth continuous motion."
},
"image_url": {
"title": "Immagine del primo fotogramma",
"description": "Immagine del primo fotogramma animata dal modello nel video. Utilizzare un'immagine chiara e di alta qualità per una migliore conservazione del soggetto.",
"type": "string",
"default": "https://playgrounds-storage-public.runcomfy.net/tools/7413/media-files/input-promo.webp"
},
"end_image_url": {
"title": "Immagine dell'ultimo fotogramma (opzionale)",
"description": "Immagine facoltativa dell'ultimo fotogramma utilizzata per guidare la posa, la composizione o la scena finale del video.",
"type": "string",
"default": ""
},
"resolution": {
"title": "Risoluzione",
"description": "Livello di risoluzione dell'output. Utilizza 480p per bozze veloci e 1080p per risultati di qualità superiore.",
"type": "string",
"enum": [
"480p",
"720p",
"1080p"
],
"default": "720p"
},
"aspect_ratio": {
"title": "Formato",
"description": "Proporzioni di uscita. Utilizza adaptive per far corrispondere le proporzioni dell'immagine in ingresso.",
"type": "string",
"enum": [
"adaptive",
"16:9",
"9:16",
"1:1",
"4:3",
"3:4"
],
"default": "adaptive"
},
"duration": {
"title": "Durata (secondi)",
"description": "Durata del video generato in secondi. L'intervallo è 2-30. Inizia brevemente a ripetere, quindi aumenta una volta che il movimento sembra corretto.",
"type": "integer",
"minimum": 2,
"maximum": 30,
"default": 5
},
"thinking_mode": {
"title": "Modalità pensiero",
"description": "Abilita un'interpretazione più approfondita e tempestiva per scene complesse con molteplici requisiti di movimento o composizione.",
"type": "boolean",
"default": false
},
"enable_audio": {
"title": "Genera audio",
"description": "Quando è attivo, il video in uscita include una traccia audio sincronizzata. Disattiva per una clip silenziosa.",
"type": "boolean",
"default": true
},
"seed": {
"title": "Seed",
"description": "Seme casuale per risultati riproducibili. L'intervallo è compreso tra 0 e 2147483647.",
"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.