Tutoriale
Come usare l'API Grok Imagine 1.5 Lite da immagine a video? Fai muovere le foto
Un'immagine diventa un video di 1–15 secondi con effetti sonori: il prezzo include il costo dell'immagine di input, il formato segue l'immagine, esempi curl/Python.
TL;DR
- Grok Imagine 1.5 Lite Image to Video (
grok-imagine-1.5-lite/image-to-video) carica 1 immagine e la fa muovere: 1–15 secondi, effetti sonori inclusi, formato che segue l'immagine di input. Apri la pagina del modello e carica un'immagine per provarlo, i nuovi utenti ricevono 200 crediti alla registrazione. - Prezzo = prezzo al secondo × secondi + $0.015 di costo immagine di input per video: 720P 6 secondi costa $0.273; 480P $0.189; 1080P $1.215.
- La chiamata passa per l'endpoint HiAPI
/v1/tasks:image_urlè una stringa (non un array), esattamente 1 URL pubblico.
Cosa può fare
- Una foto diventa una scena con audio: animazione, movimento di camera ed effetti sonori sono descritti dal prompt, il soggetto principale resta quello dell'immagine originale.
- Il formato segue l'immagine di input: immagine orizzontale → 16:9 (1264×720), verticale → 9:16 (720×1264), quadrata → 1:1 (960×960), 4:3 → 1104×816 — i pixel sono arrotondati alle dimensioni supportate, il rapporto resta invariato.
- Da 1 a 15 secondi, qualsiasi numero intero di secondi, tre livelli di risoluzione.
- Text to video della stessa famiglia: per generare da zero vedi la guida all'integrazione text to video; i due endpoint hanno lo stesso prezzo (immagine→video aggiunge $0.015 di costo immagine di input), stesso /v1/tasks, il codice differisce solo per model e image_url.
Come leggere la tabella prezzi:
- «prezzo al secondo × secondi» è il costo del video stesso, identico al text to video;
- $0.015 è il supplemento per l'immagine di input, fisso per ogni video, indipendente da risoluzione e durata;
- quindi a parità di parametri immagine→video costa $0.015 in più del text to video: 720P 6 secondi $0.258 + $0.015 = $0.273. Su mille video questo scarto è $15, da mettere in conto nel budget.
Ecco un risultato reale (foto di surf → ripresa inseguita di 6 secondi, con suono delle onde):
The wave curls and breaks behind the surfer as he carves down its face, white spray bursts and sparkles in the golden backlight, water rushes past. Smooth tracking camera following the surfer. Loud ocean surf and rushing water. Keep the photo realistic. No text, no logos.
(In italiano: l'onda si arriccia e si rompe dietro il surfista mentre scende lungo la sua parete, gli spruzzi bianchi esplodono e brillano nella controluce dorata. Camera fluida che segue il surfista. Forte rumore di onde e acqua che scorre. Mantieni il realismo fotografico. Niente testo, niente loghi.)
· 
grok-imagine-1.5-lite/image-to-video, 720P, 6 secondi, 16:9, 1264×720, effetti sonori inclusi, $0.273 (inclusi $0.015 di costo immagine di input).Guarda il video completo →
Prezzo: prezzo al secondo + costo immagine di input
| Livello | Al secondo | 6 secondi di video (inclusi $0.015 di costo immagine di input) |
|---|---|---|
| 480P | $0.029 | $0.189 |
| 720P (predefinito) | $0.043 | $0.273 |
| 1080P | $0.20 | $1.215 |
Prezzo attuale HiAPI, verificato il 23 ottobre 2026. image_url è obbligatorio, quindi ogni video ha questi $0.015; 1080P costa $0.2 al secondo (circa 4,65 volte il 720P), per esplorazioni in batch usa 480P. I fallimenti non vengono addebitati.
Due percorsi per iniziare
Browser in 3 passi: apri la pagina del modello → carica l'immagine, scrivi la descrizione del movimento → clicca genera.
API in 3 passi: POST /v1/tasks per inviare → ottieni il taskId → GET /v1/tasks/<taskId> per verificare success e poi scaricare.
curl: il primo
curl -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: your-unique-key-001" \
-d '{
"model": "grok-imagine-1.5-lite/image-to-video",
"input": {
"prompt": "The wave curls and breaks behind the surfer as he carves down its face, white spray bursts and sparkles in the golden backlight, water rushes past. Smooth tracking camera following the surfer. Loud ocean surf and rushing water. Keep the photo realistic. No text, no logos.",
"image_url": "https://static.hiapi.ai/gallery/2026/10/3f75ff28db9e0070.png",
"duration": 6,
"resolution": "720p"
}
}'
Nota che image_url è una stringa e si passa una sola immagine — passare un array restituisce 400.
Python: invio, polling, download
import time, uuid, requests
BASE = "https://api.hiapi.ai/v1/tasks"
HEADERS = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
}
payload = {
"model": "grok-imagine-1.5-lite/image-to-video",
"input": {
"prompt": "The wave curls and breaks behind the surfer as he carves down its face, white spray bursts and sparkles in the golden backlight, water rushes past. Smooth tracking camera following the surfer. Loud ocean surf and rushing water. Keep the photo realistic. No text, no logos.",
"image_url": "https://example.com/your-image.png",
"duration": 6,
"resolution": "720p",
},
}
resp = requests.post(
BASE,
headers={**HEADERS, "Idempotency-Key": str(uuid.uuid4())},
json=payload,
timeout=30,
)
resp.raise_for_status()
task_id = resp.json()["taskId"]
while True:
task = requests.get(f"{BASE}/{task_id}", headers=HEADERS, timeout=30).json()
print(task["status"])
if task["status"] in ("success", "fail"):
break
time.sleep(5)
if task["status"] == "success":
video = next(o for o in task["output"] if o.get("type") == "video")
mp4 = requests.get(video["url"], timeout=120) # indirizzo temporaneo, salvalo subito
with open("output.mp4", "wb") as f:
f.write(mp4.content)
print("saved output.mp4")
Tabella dei parametri
| Campo | Obbligatorio | Valori | Descrizione |
|---|---|---|---|
image_url |
Sì | Stringa, esattamente 1 URL pubblico | Il rapporto dell'output segue questa immagine |
prompt |
Sì | 1–4096 caratteri | Descrive il movimento o il cambiamento desiderato, inclusi gli effetti sonori |
duration |
No | Qualsiasi intero da 1 a 15, predefinito 6 | |
resolution |
No | 480p / 720p / 1080p, predefinito 720p |
Campi non presenti in tabella nel corpo della richiesta restituiscono direttamente 400.
Errori che incontrerai
| Status code | Significato | Come gestirlo |
|---|---|---|
| 400 INVALID_REQUEST | Corpo della richiesta non valido (image_url mancante, image_url passato come array, campo non in tabella) |
Usa image_url come stringa |
| 402 INSUFFICIENT_QUOTA | Credito insufficiente (nessun addebito) | Ricarica e riprova |
| 429 RATE_LIMITED | Rate limit attivato | Riduci la frequenza di invio |
| 409 / 422 IDEMPOTENCY_KEY_* | Invio duplicato con la stessa chiave di idempotenza | Usa un nuovo Idempotency-Key |
Tra i fallimenti in stato terminale ci sono anche CONTENT_POLICY_VIOLATION, TASK_FAILED, TASK_TIMEOUT e altri; i fallimenti non vengono addebitati.
Da sapere prima della messa in produzione
- Callback: i task video sono lunghi, passa
"callback": {"url": "https://..."}a livello superiore per evitare il polling. - Salva subito: l'indirizzo del video in
outputè temporaneo, scaricalo appena lo ottieni nel tuo storage, non usare il link temporaneo come archivio di materiali. - La stessa immagine si può riutilizzare: cambiare prompt genera un nuovo video (nuovo addebito), ideale per produrre rapidamente da un'unica foto di prodotto una serie completa di materiali con inquadrature da più angolazioni.
- Non dimenticare i $0.015 nel conteggio: per il budget in batch calcola «prezzo al secondo × secondi + $0.015 × numero di video».
- L'audio non si può disattivare: per materiali muti taglia in post-produzione; il prezzo resta invariato.
Domande frequenti
- Sì, ogni video ha effetti sonori inclusi: se scrivi gli effetti sonori nel prompt (onde, passi sulla neve) vengono generati, non c'è un interruttore per disattivarli.
- Sì, il formato segue l'immagine di input: un'immagine 16:9 produce 1264×720, una quadrata 960×960, pixel arrotondati e rapporto invariato.
- Sì,
image_urlè una stringa, solo 1 immagine; un array o più immagini restituiscono 400. - Sì, la durata è qualsiasi intero da 1 a 15 secondi, 5–6 secondi per un'azione, oltre 10 secondi per un'azione continua.
- Sì, la qualità dell'immagine di input determina il limite massimo del risultato: un'immagine piccola e sfocata non diventa nitida muovendosi; fornisci per quanto possibile un'immagine originale nitida da almeno 720p.
- Sì, per il calcolo in batch c'è una formula: prezzo al secondo × secondi + $0.015 × numero di video; 720P 6 secondi cento video $27.30, mille video $273.00.
Prossimo passo: prendi una tua foto e falla muovere dalla pagina del modello, i quattro scenari sono nella raccolta di prompt per image to video.
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