HiAPI
Blog

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.

Oct 23, 2026
Come usare l'API Grok Imagine 1.5 Lite da immagine a video? Fai muovere le foto

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 →

Genera con questo prompt →

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.

Inizia a creare con artefatti IA persistenti

Ottieni la tua chiave API e chiama modelli di immagini, video e audio tramite un'unica API basata sui task.

Leggi la documentazione API