Tutoriale
Runway API da testo a video: guida per sviluppatori all'uso di Gen-4.5 tramite hiapi
Spiegazione dei parametri, come scrivere prompt cinematografici e un esempio di richiesta eseguibile subito all'endpoint runway-gen-4.5/text-to-video
Perché usare un endpoint gestito di testo a video
Il testo a video non sostituisce i flussi di generazione o modifica delle immagini: è una capacità fondamentale diversa. Un modello di immagine ti dà un fotogramma fisso, che puoi ritagliare, ritoccare o comporre. Una chiamata di testo a video ti dà il movimento: movimento della camera, azioni del soggetto e luce che cambia nel tempo. Se il tuo prodotto ha bisogno di una clip video — una breve scena di marketing, un loop di sfondo in-app, l'anteprima di una scena — una singola chiamata "da richiesta a clip" è spesso il percorso più rapido dall'idea al materiale.
Il prezzo è il controllo. Descrivi il movimento con le parole invece di definirlo con i fotogrammi chiave, quindi il modello deve interpretarlo da solo. Questo rende la qualità del prompt ancora più importante che nei compiti sulle immagini, e rende il ciclo di iterazione più importante di un tentativo singolo.
L'endpoint gestito fornito tramite hiapi elimina il lavoro infrastrutturale attorno a questa capacità fondamentale: ottieni un'interfaccia coerente, un unico modello di credenziali e una struttura di risposta uniforme tra i modelli video che chiami. Passi il tempo sui prompt e sull'integrazione nel prodotto, non sulle pipeline di storage, sul polling dei job e sugli SDK dei vari fornitori.
Casi d'uso adatti:
- Clip brevi generate su richiesta dall'input dell'utente o da template
- Esplorazione rapida di concetti prima di investire in una pipeline di produzione completa
- Materiale di sfondo e B-roll, utilizzabile anche se una singola generazione presenta piccoli difetti
Casi non adatti: qualsiasi esigenza di continuità precisa al fotogramma, output deterministico o coerenza narrativa su lunghe durate. Prevedi un budget per diverse clip candidate per ogni risultato utilizzabile.
La struttura dell'endpoint runway-gen-4.5/text-to-video
Concettualmente, una richiesta a runway-gen-4.5/text-to-video è composta da tre parti: il prompt, le impostazioni a livello di richiesta e la tua identità/autorizzazione. Solo la prima parte è creativa; le altre due determinano come viene eseguito il modello e come viene fatturato.
Cosa invii
- La stringa del prompt. L'input creativo principale: descrivi soggetto, azione, camera, luce e atmosfera in linguaggio naturale.
- Impostazioni a livello di richiesta. Proporzioni, durata e qualsiasi flag di generazione esposto dall'endpoint. Questi determinano la forma del contenitore dell'output, non il suo contenuto.
- Header di autenticazione. La tua chiave hiapi, da includere a ogni chiamata. Trattala come un segreto; non pubblicarla mai nel codice lato client.
Cosa ricevi
La generazione video non è istantanea, quindi a seconda di come viene chiamato l'endpoint potresti ricevere un handle di job da interrogare, oppure una risposta che si risolve in un URL del media. In entrambi i casi ricevi un riferimento alla clip generata, non i byte grezzi inline. Se devi usare il materiale oltre la scadenza dell'URL restituito, scaricalo e salvalo nel tuo storage.
Un modello mentale utile: l'endpoint è una funzione che mappa (prompt, settings) in una clip più metadati. La tua integrazione dovrebbe trattarlo come asincrono, ritentabile e non deterministico: gli stessi input non producono sempre la stessa clip, e questo è il comportamento previsto, non un difetto.
Mantieni la costruzione della richiesta semplice e noiosa. Scrivi un piccolo wrapper interno che assembla il body della richiesta, allega l'autenticazione, invia la chiamata e normalizza la risposta in { status, videoUrl, error }. Tutte le sezioni successive di questa guida presumono che questo wrapper esista già.
Scrivere prompt cinematografici che funzionano nel movimento
Gli aggettivi vaghi crollano nel movimento. "A beautiful cinematic shot of a city" non dà al modello nulla da animare, quindi genera qualcosa di generico e fluttuante. La soluzione è specificare i quattro elementi che servono a un operatore: soggetto, camera, luce e movimento.
Nomina il soggetto e l'azione
Indica cosa c'è nell'inquadratura e cosa fa durante la clip. Fornisci un punto di partenza e un punto di arrivo implicito, in modo che il modello abbia una traiettoria di movimento da seguire.
A lone cyclist rides from left to right along a wet coastal road,
pedaling steadily as spray kicks up from the rear wheel.
Specifica esplicitamente la camera
Usa un linguaggio di regia che il modello possa mappare in movimento: lento push-in, grandangolo fisso, inseguimento a mano, tracking dal basso, lenta panoramica a destra, discesa aerea. Un solo movimento di camera per clip è più sicuro di tre movimenti in conflitto.
Static wide shot, camera at ground level, no zoom.
Specifica luce e ora del giorno
La luce determina gran parte del livello di produzione percepito. Indica la fonte e la qualità: luce diurna diffusa con cielo coperto, forte sole pomeridiano da sinistra dell'inquadratura, neon pratici riflessi su superfici bagnate notturne.
Descrivi movimento fisicamente credibile
Il movimento rapido nelle clip brevi produce scie e sfocature. Preferisci una singola azione leggibile a velocità moderata rispetto a molti eventi rapidi. Se vuoi tensione, ottienila dal movimento della camera e dalla luce, non facendo accadere una dozzina di cose contemporaneamente.
Mantieni un solo paragrafo
Un paragrafo compatto di una o tre frasi batte un elenco puntato di specifiche. Scrivilo come descrizione di un'inquadratura, non come una lista dei desideri. Evita di accumulare aggettivi di stile; scegli un'immagine e portala fino in fondo.
Un template affidabile:
[Subject + action]. [Camera framing and movement]. [Lighting and time of day]. [Environment and atmosphere].
Riscrivi il tuo prompt in questo template prima di modificare qualsiasi impostazione.
Una richiesta eseguibile, passo per passo
Questo walkthrough presume Node.js e una funzione wrapper, ma la struttura non dipende dal linguaggio.
Passo 1: scrivi l'inquadratura
A chef slices vegetables on a wooden board in a small kitchen,
hands moving steadily. Static medium close-up, camera at counter height,
no zoom. Warm tungsten light from an overhead lamp, soft shadows,
light steam in the background.
Passo 2: scegli le impostazioni della richiesta
Scegli le proporzioni adatte al luogo in cui la clip verrà usata e la durata più breve che racconta la storia. Le clip brevi falliscono in fretta e costano meno da esplorare.
Passo 3: invia la chiamata
const res = await fetch(`${HIAPI_BASE}/runway-gen-4.5/text-to-video`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.HIAPI_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
prompt: shotPrompt,
aspect_ratio: '16:9',
duration: 5,
}),
});
const data = await res.json();
if (!res.ok) throw new Error(data.error ?? `HTTP ${res.status}`);
Passo 4: ottieni la clip
Se la risposta contiene un handle di job, interrogala con intervalli di backoff crescenti finché non raggiunge uno stato terminale. Se contiene direttamente l'URL del media, passa al passo 5.
Passo 5: salva il materiale
Scarica la clip e archiviala con i tuoi identificatori. Considera l'URL restituito come un indirizzo temporaneo.
Passo 6: registra i punti decisionali
Registra insieme prompt, impostazioni e materiale generato. È questo log che rende la sezione successiva — il tuning — praticabile anziché basata su congetture.
Ottimizzare l'output senza modificare il prompt
Quando una clip delude, l'istinto è riscrivere il prompt. Resisti per un giro. Prompt e impostazioni sono variabili indipendenti, e cambiare entrambe insieme distrugge la capacità di capire quale fosse davvero il problema.
Isola le variabili
Mantieni fisso il prompt e modifica esattamente un'impostazione a livello di richiesta: proporzioni, durata o un flag di generazione. Esegui di nuovo. Se la clip migliora, il problema era strutturale, non creativo. Se non migliora, ripristina quell'impostazione e passa a modificare il prompt.
Usa le impostazioni per risolvere problemi strutturali
- La composizione non corrisponde al posizionamento? Cambia le proporzioni.
- L'azione viene troncata prima di completarsi? Aumenta la durata.
- Tutto fluttua senza punti di ancoraggio? Accorcia la clip, così non ha abbastanza tempo per fluttuare.
Usa le modifiche al prompt per risolvere problemi di contenuto
- Soggetto sbagliato o assente? Nominalo prima e rendilo specifico.
- La camera vaga? Elimina tutte le parole sulla camera tranne il movimento che vuoi.
- Piatto e senza vita? Aggiungi una fonte di luce e una direzione.
Fai un piccolo test A/B
Fissa un prompt di base, genera tre varianti, ciascuna con una sola clausola modificata. Confrontale affiancate, non a memoria. La non determinismo significa che una singola clip scadente non è una prova; prima di concludere che una clausola sia dannosa, cerca uno schema su due o tre esecuzioni.
Scrivi le conclusioni nel log che già mantieni. Dopo una dozzina di iterazioni, questo diventa un manuale di prompt e impostazioni specifico per il tuo prodotto, il cui valore supera di gran lunga qualsiasi elenco generico di prompt.
Debug dei fallimenti comuni
La maggior parte dei fallimenti della prima settimana rientra in quattro categorie. Il percorso di indagine è diverso per ciascuna.
Richiesta rifiutata o bloccata
Una risposta non 2xx con un messaggio di policy significa che il prompt o le impostazioni non sono stati accettati. Leggi il body della risposta di errore invece di riprovare alla cieca. Riscrivi la descrizione problematica, rimuovi persone reali o marchi citati esplicitamente, quindi invia di nuovo. Registra il prompt rifiutato così com'è: i rifiuti ricorrenti di solito risalgono a un'abitudine nel template dei prompt.
Timeout
La generazione video è lenta. Se il tuo client HTTP va in timeout prima che l'endpoint risponda, il job potrebbe essere ancora in esecuzione e verrà fatturato. Aumenta il timeout del client per le chiamate di generazione e sposta il polling in un worker in background, invece di tenere la richiesta sospesa.
Clip vuote o inutilizzabili
Una risposta riuscita ma una clip senza un soggetto riconoscibile di solito significa che il prompt è troppo astratto. Rileggilo rispetto al template soggetto-camera-luce-movimento. Se manca uno dei quattro elementi, è lì che devi intervenire.
Errori di autenticazione e configurazione
401 e 403 indicano un problema di chiave, non di prompt. Verifica che la chiave esista nell'ambiente di runtime, non solo nella tua shell locale, e verifica il formato dell'header. Prima vengono scoperti questi fallimenti, meno costano; scoprirli in produzione costa di più.
Una regola generale: classifica l'errore prima di cambiare qualsiasi cosa. Gli errori di prompt, di impostazioni e di infrastruttura richiedono correzioni diverse, e mescolarli spreca budget di generazione.
Costi, latenza e protezioni per la produzione
Prima di andare live, decidi come si comporta l'endpoint in caso di errore, perché la generazione video è la chiamata più costosa e lenta nella maggior parte dei prodotti.
Fai budget per clip, non per chiamata
La fatturazione video è solitamente legata alla lunghezza dell'output, quindi le clip più lunghe costano più di quelle brevi. Fai budget per unità di clip finita — inclusi tentativi ed elementi rifiutati — invece di contare le chiamate API. Imposta limiti di generazione per utente e per sessione. Per le tariffe attuali consulta il pannello prezzi; non codificarle nella logica di business.
Progetta per la latenza
Non bloccare mai una richiesta rivolta all'utente sulla generazione. Avvia il job, restituisci subito l'handle e consegna la clip tramite polling, webhook o notifica. Mostra l'avanzamento nell'interfaccia, così un rendering lento viene percepito come lavoro in corso e non come blocco. Metti in cache le clip generate per prompt e impostazioni, per evitare richieste di rigenerazione duplicate.
Valida prima di generare
Controlli economici prima della chiamata risparmiano elaborazioni costose dopo:
- Imponi lunghezze minima e massima del prompt nel tuo wrapper
- Rifiuta prompt privi di soggetto o azione
- Valida le proporzioni rispetto all'obiettivo di rendering
- Verifica che l'utente rientri nella sua quota
Modera sia in ingresso sia in uscita
Esegui un controllo testuale sul prompt prima dell'invio. Fai un controllo leggero sulla clip restituita prima di mostrarla. Entrambi costano meno di un incidente di supporto.
Mantieni un piano di riserva
Se la generazione fallisce o richiede troppo tempo, fornisci un fotogramma di copertina statico o una clip segnaposto invece di un errore. La funzionalità deve degradarsi, non interrompersi.
Inizia con un endpoint, un wrapper e un log; aggiungi gradualmente le protezioni man mano che scopri dove il prodotto fallisce davvero, e lascia che il pannello prezzi sia sempre l'unica fonte di verità sui costi.
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