HiAPI
Blog

Tutoriale

API video Grok Imagine: da immagine a video e da testo a video con 1.0 e 1.5

Quale dei tre endpoint video di Grok Imagine chiamare, quanto costa una singola clip, esempi reali di output con prompt e codice curl e Python pronto all'uso.

Jul 3, 2026
API video Grok Imagine: da immagine a video e da testo a video con 1.0 e 1.5

TL;DR

  • L'API video Grok Imagine su HiAPI ha tre endpoint: 1.0 da testo a video, 1.0 da immagine a video e 1.5 da immagine a video. Tutti e tre hanno lo stesso prezzo: $0,015 al secondo a 480p, $0,0282 al secondo a 720p, e ogni clip include gli effetti sonori generati senza costi aggiuntivi.
  • 1.0 dura da 6 a 30 secondi e accetta fino a 7 immagini di riferimento. 1.5 dura da 1 a 15 secondi, accetta una sola immagine e con aspect_ratio: "auto" l'output segue la forma dell'immagine.
  • Una clip bozza da 6 secondi a 480p costa $0,09. Apri la pagina del modello da immagine a video per provarlo; i nuovi account ricevono 200 crediti gratuiti.

Quale endpoint usare

ID modello Input Durata Proporzioni Extra
grok-imagine/text-to-video prompt 6–30 secondi (predefinito 6) 2:3 (predefinito), 3:2, 1:1, 16:9, 9:16 mode: normal o fun
grok-imagine/image-to-video 1–7 immagini + prompt facoltativo 6–30 secondi (predefinito 6) come sopra mode; usa @image1, @image2 per fare riferimento alle immagini
grok-imagine-1.5/image-to-video esattamente 1 immagine + prompt facoltativo 1–15 secondi (predefinito 8) auto (predefinito), 1:1, 16:9, 9:16, 3:2, 2:3 nessun mode

Tutti e tre gli endpoint fatturano al secondo: $0,015 (480p, predefinito) o $0,0282 (720p). Prezzi HiAPI in tempo reale, rilevati il 19 ottobre 2026. Le attività fallite non vengono addebitate.

Come scegliere:

  • Durata superiore a 15 secondi o necessità di più immagini di prodotto come riferimento: 1.0 da immagine a video.
  • Una sola immagine fissa, clip breve e output che deve mantenere la forma dell'immagine: 1.5 da immagine a video. È anche l'unico endpoint che scende sotto i 6 secondi, quindi una clip in loop da 4 secondi costa meno.
  • Nessuna immagine: 1.0 da testo a video.
Clip 480p 720p
4 secondi (solo 1.5) $0,06 $0,11
6 secondi $0,09 $0,17
15 secondi $0,23 $0,42
30 secondi (solo 1.0) $0,45 $0,85

Output reale

1.0 da immagine a video, un'immagine di riferimento. Un'immagine fissa da catalogo di una borsa da viaggio per il fine settimana:

Orbita cinematografica lenta attorno alla borsa da viaggio in tela arancio bruciato, la camera ruota dolcemente dalla vista frontale a quella a tre quarti, l'illuminazione da studio fa brillare le cerniere in ottone, lo sfondo bianco uniforme resta pulito e senza ombre, il prodotto è perfettamente nitido e invariato, sottile energia da e-commerce premium.

grok-imagine/image-to-video, 6 secondi, 720p, un'immagine di riferimento, $0,17. Abbiamo richiesto 9:16, ma da un'immagine sorgente quadrata l'output è rimasto quadrato (960×960).

1.0 da immagine a video, due immagini di riferimento. Passando insieme un'immagine di scena reale e un'immagine di prodotto, la borsa mantiene lo stesso aspetto nella nuova scena:

grok-imagine/image-to-video, 6 secondi, 720p, 9:16, due immagini di riferimento, $0,17.

1.5 da immagine a video, stessa immagine fissa, due movimenti di camera. Il movimento di camera è nel prompt. Cambiando il verbo si ottiene un'inquadratura diversa:

Lento e costante carrello in avanti lungo la strada del mercato bagnata dalla pioggia verso la bancarella di noodle luminosa, il vapore sale e si arriccia dalle pentole, la pioggia cade in sottili strisce, i riflessi delle insegne al neon brillano sul selciato bagnato, i passanti si allontanano lentamente sotto gli ombrelli, velocità di camera costante e fluida, un'unica ripresa continua, nessun taglio, ritmo cinematografico

Apri la pagina del modello con questo prompt (carica prima la tua immagine fissa) →

grok-imagine-1.5/image-to-video, 6 secondi, 720p, 16:9, $0,17.

La camera scivola lentamente verso sinistra con un fluido movimento di carrellata laterale, forte parallasse tra le bancarelle vicine e il fondo della strada, la pioggia continua a cadere, i riflessi al neon scivolano sul terreno bagnato, il cuoco continua a mescolare dietro il bancone, il vapore si sposta lateralmente, un unico movimento continuo, nessun taglio, nessuno zoom

grok-imagine-1.5/image-to-video, 6 secondi, 720p, 16:9, $0,17.

1.5, un loop ambientale di 4 secondi. Con la camera fissa, tutto il movimento viene dalla scena stessa:

grok-imagine-1.5/image-to-video, 4 secondi, 720p, 16:9, $0,11.

curl

Da immagine a video con 1.0:

curl -s -X POST https://api.hiapi.ai/v1/tasks \
  -H "Authorization: Bearer $HIAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "grok-imagine/image-to-video",
    "input": {
      "image_urls": ["https://your-cdn.example.com/product.jpg"],
      "prompt": "Slow orbit around the product, studio light, background stays clean",
      "duration": 6,
      "resolution": "480p",
      "aspect_ratio": "9:16"
    }
  }'

Riceverai un taskId. Esegui il polling su GET https://api.hiapi.ai/v1/tasks/{taskId} finché data.status non è success, poi scarica data.output[0].url. I link scadono, salva subito il file.

Per il testo a video cambia il modello in grok-imagine/text-to-video e rimuovi image_urls. Per usare 1.5, cambia il modello in grok-imagine-1.5/image-to-video, mantieni una sola immagine e rimuovi mode.

Python: invio, polling, download

# pip install requests; export HIAPI_KEY=your-key first
import os, time, uuid, requests

API = "https://api.hiapi.ai/v1/tasks"
H = {"Authorization": f"Bearer {os.environ['HIAPI_KEY']}"}

def generate(model, timeout_s=900, **inp):
    body = {"model": model, "input": inp}
    # Reuse the same Idempotency-Key if you retry a submit, so a retry never bills twice
    r = requests.post(API, json=body, headers={**H, "Idempotency-Key": str(uuid.uuid4())}, timeout=30)
    res = r.json()
    if res.get("code") != 200:
        raise RuntimeError(res)  # 400s list every invalid field
    task_id = res["data"]["taskId"]
    deadline = time.time() + timeout_s
    while time.time() < deadline:
        d = requests.get(f"{API}/{task_id}", headers=H, timeout=30).json()["data"]
        if d["status"] == "success":
            return d["output"][0]["url"]
        if d["status"] == "fail":
            raise RuntimeError(d)
        time.sleep(10)
    raise TimeoutError(task_id)

still = "https://your-cdn.example.com/still.jpg"

# Draft cheaply on 1.5 at 480p, then re-render the keeper at 720p
draft = generate("grok-imagine-1.5/image-to-video", image_urls=[still],
                 prompt="slow push-in, steam rising, camera steady", duration=4, resolution="480p")
final = generate("grok-imagine-1.5/image-to-video", image_urls=[still],
                 prompt="slow push-in, steam rising, camera steady", duration=6, resolution="720p")

# A 20-second clip needs 1.0
long_clip = generate("grok-imagine/image-to-video", image_urls=[still],
                     prompt="slow push-in, steam rising, camera steady", duration=20, resolution="480p")

with open("clip.mp4", "wb") as f:
    f.write(requests.get(final).content)

Parametri

Campo 1.0 testo a video 1.0 immagine a video 1.5 immagine a video
prompt obbligatorio, massimo 5.000 caratteri facoltativo facoltativo, massimo 4.096 caratteri
image_urls non accettato 1–7 immagini, jpeg/png/webp, massimo 10 MB ciascuna esattamente 1 immagine, jpeg/png/webp, massimo 20 MB
duration 6–30 6–30 1–15
resolution 480p (predefinito) / 720p come sopra come sopra
aspect_ratio 2:3 predefinito 2:3 predefinito auto predefinito (segue l'immagine)
mode normal (predefinito) / fun come sopra non accettato

Errori che incontrerai

Tutti i seguenti errori restituiscono HTTP 400 al momento dell'invio, quindi non viene creata alcuna attività e non vengono addebitati costi:

  • duration: minimum: got 4, want 6: 1.0 parte da 6 secondi. Per clip più brevi usa 1.5.
  • duration: maximum: got 20, want 15: 1.5 arriva a un massimo di 15 secondi. Per clip più lunghe usa 1.0.
  • image_urls: maxItems: got 2, want 1: 1.5 accetta una sola immagine.
  • additional properties 'mode' not allowed: 1.5 non ha mode.
  • resolution: value must be one of '480p', '720p': non esiste il 1080p e il valore deve essere in minuscolo.

FAQ

Meglio 1.0 o 1.5?

Il prezzo al secondo è identico. Scegli in base all'input e alla durata: con più immagini di riferimento o oltre 15 secondi usa 1.0; con una sola immagine fissa e clip brevi usa 1.5. Se sei indeciso, genera la stessa immagine fissa su entrambi gli endpoint a 480p per 6 secondi: costa in tutto $0,18.

C'è l'audio?

Sì. Ognuna delle clip sopra ha restituito una traccia audio generata; nel loop del faro si sentono chiaramente le onde. Non esiste un interruttore per disattivarlo (generate_audio e audio vengono rifiutati come campi sconosciuti) e l'audio non influisce sul prezzo. Se non lo vuoi, puoi rimuovere la traccia in montaggio.

Si può avere il 1080p?

No. La risoluzione massima di tutti e tre gli endpoint è 720p.

A cosa serve mode: "fun"?

È un'opzione di 1.0 che rende il movimento più vivace ed esagerato. normal è il valore predefinito ed è la scelta più sicura per le clip di prodotto.

Altri esempi: Grok Imagine 1.5 per i video brevi. Per i prezzi dell'intera serie, consulta Prezzi dell'API Grok Imagine. Per generare immagini statiche, consulta La guida all'API immagini di Grok Imagine.

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