Guida all'uso
FLUX.3 Video short-form: bozze, rendering e continuazione via API
Un breve video verticale 9:16 con audio nativo: verifica l'idea con una bozza da $0,45, render finale a 720p, poi continuazione fino a 10 secondi, tutto con lo stesso model id, con output reali.
FLUX.3 Video (su hiapi è flux-3-video) copre con lo stesso model id le tre cose necessarie al flusso di lavoro per i video brevi: output verticale 9:16, una traccia audio generata in sincrono con le immagini e la continuazione di un video a partire dall'ultimo fotogramma di un clip esistente. Questa guida usa queste tre funzionalità su un piccolo incarico: un breve video verticale da 10 secondi per un negozio di ramen aperto a tarda notte. Prima si verifica il concetto con una bozza economica, poi si esegue il render finale a 720p e infine si estende l'inquadratura oltre i 5 secondi tramite la continuazione. Ogni clip qui sotto è un output API reale e non modificato, e ogni prezzo proviene dal listino in tempo reale di hiapi.
Per il riferimento completo dei parametri e una prova della prima richiesta, consulta la guida all'API di FLUX.3 Video. Se desideri endpoint separati per image-to-video e keyframe, con un prezzo al secondo più basso, il flusso di lavoro per video brevi con FLUX 3 Max tratta quel modello. Questo articolo riguarda ciò che flux-3-video offre in più: audio, anteprima in bozza e continuazione.
Il flusso di lavoro in tre chiamate
| Passo | Funzione | Campi chiave | Prezzo (al secondo) | Costo per 5 secondi |
|---|---|---|---|---|
| 1. Bozza | Verifica se il prompt si presenta come previsto | draft: true |
$0,09 | $0,45 |
| 2. Render finale | Esegue il render del clip che pubblicherai | resolution: "720p" |
$0,25 | $1,25 |
| 3. Continuazione | Estende il clip finale di altri 5 secondi | start_video + draft: true |
$0,18 | $0,90 |
Tutti e tre usano lo stesso model id, con la stessa struttura di richiesta sull'endpoint dei task asincroni. Questa esecuzione è costata in totale $2,60, producendo un breve video verticale da 10 secondi con audio. A 1080p, la tariffa del render normale sale a $0,42/secondo, la continuazione a $0,76/secondo e la continuazione 720p non in bozza a $0,59/secondo. Le tariffe attuali sono sulla pagina del modello flux-3-video e sulla pagina dei prezzi.
Passi 1 e 2: bozza e render finale, inviati come batch
Il prompt descrive l'inquadratura in un blocco di frasi e il suono su una riga Audio: separata. Con generate_audio: true, il modello restituisce un .mp4 con una traccia audio AAC integrata, non un file audio separato.
{
"model": "flux-3-video",
"input": {
"prompt": "Inquadratura verticale a mano, di notte: il vapore sale da una ciotola di ramen tonkotsu, le bacchette sollevano noodles lucidi verso l'obiettivo, dietro c'è un bancone da ramen con solo sei posti, lanterne di carta calde, la pioggia lascia strisce sul vetro, profondità di campo ridotta. Audio: brodo che sobbolle, leggeri slurp di noodles, pioggia sul vetro, conversazioni a bassa voce.",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "9:16",
"draft": true,
"generate_audio": true
}
}
La richiesta del render finale è lo stesso corpo, senza "draft": true. Le due richieste vengono inviate una dopo l'altra. Non si attendono a vicenda, perché ogni chiamata restituisce immediatamente un taskId:
| Bozza | Finale 720p | |
|---|---|---|
| Creazione → completamento (timestamp del server) | 29 secondi | 64 secondi |
| Dimensioni output | 704×1280 | 704×1280 |
| Durata | 5,04 secondi | 5,04 secondi |
| Picco audio | −23 dB | −5 dB |
| Costo | $0,45 | $1,25 |
Ecco la bozza:
E il render finale 720p dello stesso prompt:
Questi due clip mostrano cosa la bozza può dirti e cosa non può:
- La bozza è un'altra versione, non un'anteprima a bassa risoluzione del render finale. La bozza inquadra una ciotola bianca semplice, con i noodles già sollevati. Il render finale sceglie una ciotola decorata, con uovo marinato, cipollotti, clienti al bancone e vapore. Lo schema della richiesta non ha un campo seed, quindi non puoi bloccare la composizione della bozza e rieseguire il render a piena qualità.
- Le dimensioni in pixel sono identiche. Entrambi gli output sono 704×1280. La differenza sta nei dettagli: la bozza è chiaramente più morbida, lo sfondo è sfocato, mentre il render finale conserva la texture dei noodles e delle scritte sulle lanterne.
- La traccia audio della bozza ha un volume molto più basso. Il suo picco è intorno a −23 dB, contro −5 dB del render finale. Non usare la bozza per giudicare il mix audio.
Quindi usa la bozza a $0,45 per ciascuna variante di prompt per verificare il concetto (il prompt riesce a produrre un primo piano di ramen notturno in verticale con il gesto delle bacchette?). Poi esegui il render finale solo per i prompt che superano la verifica, e scegli dal render finale.
Passo 3: estendere l'inquadratura con la continuazione
Un hook da 5 secondi è spesso troppo breve per un post. Anziché generare un altro clip sconnesso, passa l'URL pubblico del render finale come start_video e descrivi cosa accade dopo:
{
"model": "flux-3-video",
"input": {
"prompt": "Continua la stessa inquadratura: i noodles vengono aspirati fuori dall'inquadratura, la camera a mano si sposta verso destra e verso l'alto, oltre la ciotola fumante, in direzione della finestra rigata dalla pioggia, la lanterna di carta luminosa si riflette sul vetro, fuori c'è un'insegna al neon sfocata. Audio: slurp di noodles, poi pioggia sul vetro e conversazioni al bancone che crescono dolcemente.",
"start_video": "https://static.hiapi.ai/blog/flux-3-video-short-form-video/hook-final.mp4",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "9:16",
"draft": true,
"generate_audio": true
}
}
Il task è passato dalla creazione al completamento in 119 secondi, al costo di $0,90 (5 secondi × $0,18 per la continuazione in bozza). Il risultato restituito è questo:
Due comportamenti da pianificare in anticipo:
- L'output contiene solo i secondi aggiunti. Il file restituito dura 5,0 secondi. Parte dall'ultimo fotogramma del clip sorgente (i noodles sollevati davanti alla lanterna), poi si sposta verso la finestra come richiesto. Non include i 5 secondi originali, quindi devi unire tu i due file.
- Poiché il primo fotogramma coincide, l'unione è senza cuciture. Un semplice concat produce un'unica inquadratura continua da 10 secondi:
ffmpeg -i hook-final.mp4 -i extend-draft.mp4 \
-filter_complex "[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1[v][a]" \
-map "[v]" -map "[a]" -c:v libx264 -crf 20 -c:a aac -movflags +faststart cut-10s.mp4
Qui la continuazione è stata renderizzata in modalità bozza per risparmiare, e la seconda metà è più morbida della prima, come accade per una bozza autonoma. Per un clip da pubblicare, la continuazione 720p non in bozza costa $0,59/secondo ($2,95 per 5 secondi). Estendere a passi di 5 secondi ti permette di approvare segmento per segmento prima di pagare il passo successivo; un render unico di 20 secondi a 720p richiede invece $5,00 in anticipo.
Script di elaborazione batch asincrona
Lo script seguente invia in parallelo un numero qualsiasi di task, esegue il polling di ogni taskId fino al completamento e scarica subito gli output. Gli URL dei risultati su temp.hiapi.ai hanno un timestamp expireAt, quindi copia i file nel tuo storage invece di collegarli direttamente. La documentazione degli endpoint è in Create Task e Get Task Detail.
import os, time, requests
API = "https://api.hiapi.ai/v1/tasks"
HEADERS = {"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"}
BASE = {"duration": 5, "resolution": "720p", "aspect_ratio": "9:16",
"generate_audio": True}
jobs = {
"ramen_draft": {**BASE, "draft": True, "prompt": "Inquadratura verticale a mano, di notte: …"},
"coffee_draft": {**BASE, "draft": True, "prompt": "Primo piano verticale: gocce di espresso …"},
"ramen_final": {**BASE, "prompt": "Inquadratura verticale a mano, di notte: …"},
}
# 1. Invia tutto; ogni chiamata restituisce subito un taskId
task_ids = {}
for name, inp in jobs.items():
r = requests.post(API, headers=HEADERS,
json={"model": "flux-3-video", "input": inp}, timeout=60)
r.raise_for_status()
task_ids[name] = r.json()["data"]["taskId"]
# 2. Esegui il polling finché ogni task non raggiunge lo stato finale
pending = dict(task_ids)
while pending:
time.sleep(10)
for name, tid in list(pending.items()):
data = requests.get(f"{API}/{tid}", headers=HEADERS, timeout=30).json()["data"]
if data["status"] == "success":
url = data["output"][0]["url"]
with open(f"{name}.mp4", "wb") as f:
f.write(requests.get(url, timeout=120).content)
print(name, "salvato")
pending.pop(name)
elif data["status"] in ("fail", "failed"):
print(name, "fallito:", data.get("error"))
pending.pop(name)
Per il passo di continuazione, aggiungi "start_video": "<URL pubblico del render finale approvato>" nell'input. L'URL deve essere accessibile pubblicamente, quindi carica prima il render finale approvato sul tuo storage.
Regole della richiesta da conoscere prima di inviare in batch
Queste risposte sono state restituite dall'API durante questa esecuzione. Le richieste non valide vengono rifiutate al momento dell'invio con 400 INVALID_REQUEST e non creano alcun task:
aspect_ratioaccettaauto,21:9,2:1,16:9,4:3,1:1,3:4,9:16. Qualsiasi altro valore viene rifiutato.durationha un massimo di 20 (maximum: got 99, want 20).start_videodeve essere una stringa URL.- I campi sconosciuti vengono rifiutati (
additional properties ... not allowed), quindi un errore di battitura genera un errore esplicito invece di essere ignorato.
Al contrario: una richiesta che supera la validazione è un task reale e addebitato. Non inviare prompt di "test" senza draft: true. Un semplice {"prompt": "test"} è valido e renderizza un clip a prezzo pieno.
Domande frequenti
Qual è il modo più economico per provare i prompt di flux-3-video? La modalità bozza a 720p: $0,09/secondo, quindi un clip da 5 secondi costa $0,45. Mostra se il concetto è praticabile, ma il render finale sarà un'altra versione.
flux-3-video genera audio?
Sì. Con generate_audio: true, la traccia audio è integrata nel .mp4 restituito. In questo test, descrivere il suono su una riga Audio: separata nel prompt ha prodotto un ambiente sonoro coerente (sobbollio, slurp, pioggia, conversazioni).
Quanto può essere lungo un clip di flux-3-video?
Fino a 20 secondi per richiesta. Con la continuazione tramite start_video, puoi estendere a passi e approvare ogni passo prima di pagare il successivo.
La continuazione restituisce il video completo già unito? No. In questo test restituisce solo i 5 secondi aggiuntivi, partendo dall'ultimo fotogramma del clip sorgente. Unisci tu i file.
Inizia a costruire
Apri la pagina del modello flux-3-video per vedere i prezzi attuali e usare il playground. Poi usa lo script batch qui sopra per abbozzare alcuni hook verticali, esegui il render finale di quelli che funzionano ed estendi il migliore.
Articoli correlati
Vedi tutti gli articoli →-
Guida all'uso
Cos'è GPT Image 2.6? Modifica markup e specifiche note
Tutte le informazioni su GPT Image 2.6 nella specifica dell'API OpenAI, come usare il nuovo parametro di modifica markup, e cosa non è ancora stato annunciato.
-
Guida all'uso
Quanto costa l'API di Vidu Q4 Preview? $0,0515 al secondo a 540p
Stesso prezzo per le due modalità, come viene fatturato con cinque livelli di risoluzione e durata da 3 a 16 secondi, quanti video si possono fare con $10 e il confronto prezzi con gli altri modelli video della piattaforma.
-
Guida all'uso
Immagini prodotto e-commerce con Recraft V4.1 Flash: immagini catalogo in batch a $0,01 ciascuna
Un vero batch parallelo su recraft-v4.1-flash/text-to-image: immagini di listino e di scena, bianco dello sfondo misurato, tempi e script batch.