Tutoriale
Tutorial di integrazione API Wan 3.0: curl, Python e tutti i parametri
Come chiamare Wan 3.0 Standard: invio e recupero risultati, primo/ultimo frame e modalità reference, tutti i parametri, errori comuni, 480P 5 secondi $0.20.
Wan 3.0 Standard (wan3.0-video) su HiAPI usa l'interfaccia asincrona unificata: invio con POST /v1/tasks, ottieni il taskId, poi recuperi il risultato con GET /v1/tasks/{taskId}. Basta scrivere un solo prompt per ottenere un video con audio; puoi anche aggiungere primo frame, ultimo frame, oppure fino a 10 immagini di riferimento, 5 video di riferimento e 5 audio di riferimento per controllare insieme la generazione. Questo articolo fornisce esempi curl e Python pronti all'uso, tutti i parametri attuali e alcune cose da sapere prima della messa in produzione.
Prima i prezzi
| Risoluzione | Al secondo | 5 secondi |
|---|---|---|
| 480P | $0.04 | $0.20 |
| 720P | $0.08 | $0.40 |
| 1080P (predefinito) | $0.16 | $0.80 |
Prezzo attuale HiAPI, verificato il 18 ottobre 2026. L'audio è attivo per impostazione predefinita e non ha costi aggiuntivi.
Attenzione ai valori predefiniti: se non specifichi resolution ottieni 1080P, se non specifichi duration ottieni 5 secondi, quindi $0.80 per video. Quando provi i prompt ricordati di scrivere esplicitamente "resolution": "480P".
Per ottenere risultati più veloci puoi usare la versione accelerata wan3.0-video-prime, con un prezzo più che doppio rispetto alla standard (480P $0.0875 al secondo).
Un video reale
480P, 16:9, 5 secondi, con audio:
A steaming noodle stall at a night market, close on the cook's hands as she lifts a tangle of noodles from a boiling pot and swirls them into a blue-rimmed bowl; slow push-in, warm tungsten light against cool blue street glow, steam drifting through the frame. Sound: rolling boil, the clink of a ladle, crowd murmur and a scooter passing in the distance.
wan3.0-video, 480P, 5 secondi, $0.20.
Esegui il primo test
Preparazione: crea una API Key nella console. I nuovi utenti ricevono 200 crediti alla registrazione.
curl: invio del task
curl -s -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan3.0-video",
"input": {
"prompt": "A steaming cup of coffee on a wooden table, soft morning light, gentle steam rising. Sound: a quiet cafe.",
"resolution": "480P",
"duration": 5,
"aspect_ratio": "16:9"
}
}'
Restituisce subito il taskId, la generazione avviene in background:
{"code": 200, "message": "success", "data": {"taskId": "tk-hiapi-..."}}
curl: recupero del risultato
curl -s https://api.hiapi.ai/v1/tasks/tk-hiapi-... \
-H "Authorization: Bearer $HIAPI_KEY"
Quando data.status diventa success, data.output[0].url è l'indirizzo del video. L'indirizzo temporaneo scade dopo circa 7 giorni, quindi scaricalo e salvalo al più presto. fail indica un fallimento, senza addebito.
Python
import os, time, requests
KEY = os.environ["HIAPI_KEY"]
BASE = "https://api.hiapi.ai/v1"
H = {"Authorization": f"Bearer {KEY}", "Content-Type": "application/json"}
r = requests.post(f"{BASE}/tasks", headers=H, json={
"model": "wan3.0-video",
"input": {
"prompt": "A steaming cup of coffee on a wooden table, soft morning light, gentle steam rising. Sound: a quiet cafe.",
"resolution": "480P",
"duration": 5,
},
})
task_id = r.json()["data"]["taskId"]
while True:
d = requests.get(f"{BASE}/tasks/{task_id}", headers=H).json()["data"]
if d["status"] in ("success", "fail"):
break
time.sleep(10)
print(d["output"][0]["url"] if d["status"] == "success" else d)
I video brevi richiedono di solito qualche minuto; un intervallo di polling di 10 secondi è sufficiente.
Tutti i parametri
| Campo | Obbligatorio | Valori | Descrizione |
|---|---|---|---|
prompt |
Sì | Testo | Scena, azioni, inquadratura, luce e audio si scrivono qui; in modalità reference usa Image1, Video1, Audio1 per riferirti ai materiali |
resolution |
No | 480P / 720P / 1080P (predefinito) |
Determina il prezzo al secondo |
duration |
No | Intero 2–30, predefinito 5 | La durata totale dei video di riferimento più la durata di output non può superare 30 secondi |
aspect_ratio |
No | adaptive (predefinito) / 16:9 / 4:3 / 1:1 / 3:4 / 9:16 |
adaptive sceglie automaticamente in base ai materiali e al prompt |
audio |
No | Booleano, predefinito true |
Se includere una traccia audio sincronizzata |
seed |
No | 0–2147483647 | Fissarlo facilita la riproducibilità |
first_frame_url |
No | 1 URL immagine | Modalità primo frame |
last_frame_url |
No | 1 URL immagine | Da usare con il primo frame per specificare l'ultimo frame |
reference_image_urls |
No | Massimo 10 | Immagini di riferimento |
reference_video_urls |
No | Massimo 5, singolo segmento 1–15 secondi, totale ≤15 secondi | Video di riferimento |
reference_audio_urls |
No | Massimo 5 WAV/MP3 | Da usare insieme a immagini o video |
reference_file_urls |
No | Massimo 1 | Documento o presentazione |
reference_link_urls |
No | Massimo 1 | Pagina web senza login |
Le due modalità non sono combinabili: modalità primo/ultimo frame e modalità reference reference_* sono mutuamente esclusive, una richiesta può usarne solo una.
Esempio di scrittura in modalità reference:
{
"model": "wan3.0-video",
"input": {
"prompt": "Use Image1 as the product: slow quarter orbit around it on a wooden counter, soft morning window light. Sound: gentle pouring water.",
"reference_image_urls": ["https://example.com/product.jpg"],
"resolution": "480P",
"duration": 5
}
}
Errori comuni
Sono tutti restituiti in modo sincrono all'invio con HTTP 400, senza creare il task e senza addebito:
duration: maximum: got 99, want 30: la durata supera i 30 secondi.resolution: value must be one of '480P', '720P', '1080P': la P della risoluzione deve essere maiuscola.additional properties 'negative_prompt', 'image_urls' not allowed: questo modello non ha il prompt negativo; il campo per le immagini di riferimento si chiamareference_image_urls, nonimage_urls.- API Key errata restituisce HTTP 401, saldo insufficiente restituisce 402.
Se il task fallisce dopo essere stato creato, nel risultato della query compare status: "fail", ma il codice di stato HTTP resta 200, quindi controlla data.status.
Da sapere prima della messa in produzione
- Usa il callback al posto del polling: aggiungi al livello superiore del body della richiesta
"callback": {"url": "https://tuo-dominio/hiapi/callback", "when": "final"}, e HiAPI ti notificherà al termine del task.callbackva al livello superiore, non dentroinput. - Evita addebiti duplicati: includi l'header
Idempotency-Keyall'invio. In caso di retry per timeout di rete, usando la stessa key viene restituito iltaskIdoriginale, senza creare un task aggiuntivo. - Salva subito i file: gli indirizzi temporanei scadono dopo circa 7 giorni. Se devi conservarli a lungo, passa
"storage": "persistent"alla creazione, oppure convertili successivamente in archiviazione persistente; vedi la documentazione per la creazione dei task.
Domande frequenti
Si può usare senza immagini di riferimento?
Sì. Basta scrivere prompt per generare un video; i materiali di riferimento sono opzionali.
L'audio ha un costo aggiuntivo?
No. audio è attivo per impostazione predefinita; il prezzo dipende solo da risoluzione e secondi. Se non vuoi l'audio, passa false.
Vuoi un formato verticale?
Passa 9:16 come aspect_ratio.
Si possono usare insieme primo frame e immagini di riferimento?
No, bisogna scegliere uno dei due.
Per altri esempi di prompt vedi la raccolta completa di prompt per Wan 3.0, con video reali per tutti e 4 gli scenari. Puoi anche copiare direttamente il prompt del banco di noodles qui sopra e generarne uno con $0.20.
Articoli correlati
Vedi tutti gli articoli →-
Tutoriale
Come chiamare hailuo-2.3-fast/image-to-video tramite l'API HiAPI: pratica con curl e Python
La prima richiesta funzionante per il livello image-to-video veloce ed economico — dall'ID del modello al download di un MP4
-
Tutoriale
Come chiamare hailuo-2.3/text-to-video tramite l'API HiAPI: curl, Python ed esempi di richiesta eseguibili
-
Tutoriale
Utilizzare Kandinsky 6.0 Pro su HiAPI per la generazione di video da testo: tutorial con curl e Python
Dimostrazione pratica guidata dalla richiesta: costruire la chiamata da prompt a clip video, inviare la richiesta, monitorare lo stato di completamento e scaricare il risultato