Guida all'uso
Kling 3.0 Turbo image-to-video: crea video brevi con l'API hiapi
Basta una singola foto statica e una chiamata API per generare su hiapi un video breve che invoglia a fermarsi a guardare, usando Kling 3.0 Turbo image-to-video. Niente editor di timeline, niente rigging dei movimenti, niente green screen: invii un'immagine del primo fotogramma e un breve prompt di movimento e dopo pochi minuti ricevi un .mp4 da 8, 10 o 15 secondi. Questo tutorial realizza un video end-to-end con l'API reale /v1/tasks, mostra il dettaglio dei costi effettivi e trasforma lo stesso codice in un ciclo che può puntare a un'intera cartella di immagini statiche, producendo in batch video adatti a TikTok o Reels.
Ecco il video generato in questo articolo a partire da una singola foto del primo fotogramma:
Cosa richiede davvero Kling 3.0 Turbo image-to-video
Lo schema di input del modello è essenziale, e questo è il punto: non devi pensare a setup di camera o keyframe, bastano due campi obbligatori e due opzionali:
prompt(stringa, obbligatorio) — descrive il movimento che vuoi, non l'intera scena. Il primo fotogramma definisce già la scena; il prompt dice al modello cosa deve muoversi.image_urls(array, obbligatorio) — un URL pubblico che punta all'immagine del primo fotogramma (JPEG o PNG, massimo 10MB). È l'unica immagine accettata dal modello; qui non esiste una modalità con più immagini di riferimento.duration(intero, opzionale, predefinito5) — durata del video in secondi, da3a15.resolution(stringa, opzionale, predefinito720p) —720po1080p.
Un punto da pianificare in anticipo: non esiste il parametro aspect_ratio. Il fotogramma di output eredita sempre la composizione dell'immagine di input — un primo fotogramma 9:16 produce un video 9:16, senza possibilità di override. Se crei contenuti per TikTok o Reels, genera (o ritaglia) il primo fotogramma in 9:16 prima di chiamare l'endpoint video, altrimenti dovrai rieseguire una generazione da $0.65 a $1.60 solo per correggere la composizione. Il riferimento completo dei parametri e il pannello di prova online sono sulla pagina del modello.
Passo 1: parti da un buon primo fotogramma
Prima di generare qualsiasi cosa nuova, controlla se hai già immagini statiche utilizzabili — foto di prodotto, immagini generate in precedenza dall'AI, fotografia di branding. Poiché Kling 3.0 Turbo image-to-video legge solo il primo fotogramma per definire l'intera scena, riutilizzare immagini esistenti non comporta costi aggiuntivi nello step video; paghi solo i secondi di movimento generati.
Se non ne hai, generare il primo fotogramma è una normale chiamata di text-to-image. Il primo fotogramma di questo articolo proviene da gpt-image-2/text-to-image, composto in verticale fin dall'inizio, così il video eredita il rapporto d'aspetto corretto:
import requests
resp = requests.post(
"https://api.hiapi.ai/v1/tasks",
headers={"Authorization": f"Bearer {HIAPI_API_KEY}"},
json={
"model": "gpt-image-2/text-to-image",
"input": {
"prompt": (
"Vertical smartphone-shot photo of a barista in a small specialty "
"coffee shop pouring steaming latte art into a white ceramic to-go "
"cup, warm golden morning light streaming through a large window "
"behind her, steam curling upward, shallow depth of field, cozy "
"minimalist cafe aesthetic, natural candid framing typical of a "
"TikTok food video, photorealistic, high detail, 9:16 vertical composition"
),
"aspect_ratio": "9:16",
"resolution": "1K",
},
},
)
task_id = resp.json()["data"]["taskId"]
Questo è esattamente il primo fotogramma usato qui sotto, generato una volta e poi dato in input allo step video:

Passo 2: trasforma l'immagine statica in video
Ogni modello su hiapi segue lo stesso schema di task asincrono: POST per creare il task, polling con GET finché non è completato, poi download dell'output prima che il link temporaneo scada. Per l'image-to-video l'unica differenza è il payload di input:
curl -s -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kling-3.0-turbo/image-to-video",
"input": {
"prompt": "The barista continues pouring steamed milk in a slow spiral, latte art rosetta blooming across the surface of the coffee, steam swirling upward and catching the warm morning light, her hand moves the pitcher in a smooth steady motion, camera holds a subtle slow push-in, natural handheld micro-movement, shallow depth of field, cozy cafe ambience, smooth natural motion, stable cinematic camera movement",
"image_urls": ["https://static.hiapi.ai/blog/kling-3-0-turbo-image-to-video-short-form-video/first-frame.jpg"],
"duration": 8,
"resolution": "1080p"
}
}'
Poi esegui il polling per il risultato:
import time, requests
def wait_task(task_id, token, timeout_s=600, poll_interval=5):
deadline = time.time() + timeout_s
while time.time() < deadline:
r = requests.get(
f"https://api.hiapi.ai/v1/tasks/{task_id}",
headers={"Authorization": f"Bearer {token}"},
).json()
task = r.get("data") or {}
if task.get("status") == "success":
return task
if task.get("status") == "fail":
raise RuntimeError(task.get("error"))
time.sleep(poll_interval)
raise TimeoutError(task_id)
task = wait_task(task_id, HIAPI_API_KEY)
video_url = task["output"][0]["url"] # temporary link — download it immediately
Il video 8 secondi in 1080p incorporato sopra proviene direttamente da questa chiamata: dal submit al .mp4 scaricabile sono serviti circa due minuti e mezzo — senza editing manuale, senza post-produzione.
Costi effettivi
Kling 3.0 Turbo image-to-video si fattura al secondo, con prezzi differenziati per risoluzione (confermati ad agosto 2026 in base al listino di hiapi):
| Risoluzione | Prezzo al secondo | Video 5 secondi | Video 8 secondi | Video 15 secondi |
|---|---|---|---|---|
| 720p | $0.13/secondo | $0.65 | $1.04 | $1.95 |
| 1080p | $0.16/secondo | $0.80 | $1.28 | $2.40 |
Il video principale dell'articolo — 8 secondi in 1080p — è costato $1.28. Se fai test di prompt o iterazioni sul movimento prima del render finale, usa il 720p per queste prove e passa a "resolution": "1080p" solo dopo che il movimento è come lo vuoi; solo questo riduce il costo delle iterazioni di circa il 20%.
Elaborazione batch: da un singolo video a un calendario editoriale
Poiché non esiste un endpoint "batch" separato — è sempre la stessa chiamata task, ripetuta in un ciclo — trasformarla in una pipeline di contenuti brevi è soprattutto una questione di registrazione dei dati:
clips = [
{"image_url": "https://your-bucket/product-a.jpg", "prompt": "..."},
{"image_url": "https://your-bucket/product-b.jpg", "prompt": "..."},
{"image_url": "https://your-bucket/product-c.jpg", "prompt": "..."},
]
results = []
for clip in clips:
resp = requests.post(
"https://api.hiapi.ai/v1/tasks",
headers={"Authorization": f"Bearer {HIAPI_API_KEY}"},
json={
"model": "kling-3.0-turbo/image-to-video",
"input": {
"prompt": clip["prompt"],
"image_urls": [clip["image_url"]],
"duration": 8,
"resolution": "1080p",
},
},
)
task_id = resp.json()["data"]["taskId"]
results.append(wait_task(task_id, HIAPI_API_KEY))
Esegui questo codice di notte su una cartella di foto di prodotto, ritratti o fotografia di scena e al risveglio avrai una serie di video pronti da pubblicare — il costo di ciascuno è esattamente quello della tabella sopra, senza voci di spesa impreviste. Se preferisci partire da una descrizione testuale invece che da una foto esistente, la guida gemella Kling 3.0 Turbo text-to-video illustra quella modalità usando la stessa API dei task.
Domande frequenti
Quanto tempo impiega Kling 3.0 Turbo image-to-video a renderizzare? In questo test, un video 8 secondi in 1080p ha impiegato circa due minuti e mezzo dal submit del task al file scaricabile. I video più brevi in 720p di solito si completano più rapidamente.
Posso ottenere un output verticale 9:16?
Sì, ma in modo indiretto — questo modello non ha il parametro aspect_ratio. L'output corrisponde sempre al rapporto d'aspetto dell'immagine di input, quindi prima di inviare il task video genera o ritaglia il primo fotogramma in 9:16.
Quali formati di immagine sono supportati per il primo fotogramma?
JPEG o PNG, massimo 10MB, forniti come URL pubblici nell'array image_urls. L'array di questo modello accetta una sola immagine.
Quanto costa un video 8 secondi in 1080p? $1.28, calcolato sulla tariffa confermata di $0.16 al secondo per il 1080p. Lo stesso video in 720p costa $1.04.
Il prompt supporta dialoghi o lip-sync?
Sì — il campo prompt (fino a 2.500 caratteri) supporta dialoghi citati, che il modello può usare per animare in lip-sync il soggetto che parla nel primo fotogramma.
Provalo tu stesso
Tutto quanto sopra è stato eseguito con l'endpoint reale /v1/tasks e una chiave reale — nessuna risposta simulata, nessuna risorsa segnaposto. Se hai una libreria di immagini inutilizzata, il modo più rapido per vedere la qualità del movimento del modello sui tuoi soggetti è provare un video: vai alla pagina del modello Kling 3.0 Turbo image-to-video, inserisci un'immagine del primo fotogramma e ottieni il primo risultato in pochi minuti.
Articoli correlati
Vedi tutti gli articoli →-
Guida all'uso
Guida introduttiva a seedream-5.0-pro/image-to-image: capacità, prezzi e punti chiave di integrazione
Limiti di capacità, modalità di fatturazione e pratiche di integrazione ingegneristica del modello di editing immagini di ByteDance
-
Guida all'uso
Guida pratica al text-to-image con seedream-5.0-pro: limiti di capacità, integrazione API e controllo dei costi
Prospettiva operativa per sviluppatori: dai punti chiave sui parametri alla stima di costo di $0,05 per immagine
-
Guida all'uso
Guida introduttiva a Hailuo 2.3 Fast image-to-video: limiti delle capacità, prezzi e pratiche di integrazione
Selezione e integrazione del modello MiniMax image-to-video per sviluppatori