HiAPI
Blog

Guida all'uso

Creare video brevi con Seedance-2.0-Fast tramite l'API hiapi

Sep 15, 2026
Creare video brevi con Seedance-2.0-Fast tramite l'API hiapi

TL;DR

  • Di cosa si tratta: un flusso di lavoro completo per realizzare video verticali in stile TikTok/Reels con seedance-2.0-fast tramite l'API hiapi — dalla prima chiamata a un'attività asincrona fino al rendering di un'intera settimana di post con un unico script batch. Il video breve incorporato qui sotto è stato generato con esattamente la stessa richiesta mostrata in questa guida.
  • Perché scegliere questo modello per i video brevi: output nativo 9:16, durata da 4 a 15 secondi, rendering a 720p al prezzo di $0.1772 al secondo — un video verticale di 5 secondi costa circa $0.89 (prezzi in tempo reale). La fascia bozza a 480p costa $0.0843 al secondo, così puoi perfezionare a basso costo l'aggancio iniziale prima di impegnarti nel rendering finale.
  • Fatti verificati sull'API: prompt, resolution (480p | 720p) e duration (intero, 4–15) sono obbligatori. aspect_ratio accetta 1:1, 4:3, 3:4, 16:9, 9:16, 21:9, adaptive. Per il video da immagine si passa un'immagine statica tramite image_urls. Tutto passa dall'endpoint asincrono unificato /v1/tasks — non c'è un'API separata dedicata ai video da imparare.
  • Workflow: crea prima una bozza a 480p per fissare il concept, poi ri-renderizza a 720p le versioni che vuoi tenere, e poiché l'invio delle attività non è bloccante puoi distribuire più prompt in parallelo.

Perché seedance-2.0-fast è adatto al ciclo dei video brevi

I contenuti brevi sono un gioco di scala — raramente pubblichi un solo video, pubblichi un'intera coda e tieni quelli che funzionano. Questo cambia ciò che ti serve davvero da un modello video: output verticale nativo, veloce ed economico, conta più della qualità d'immagine grezza. seedance-2.0-fast è costruito proprio attorno a questo compromesso:

  • Il prezzo al secondo rende l'iterazione sostenibile. A 480p, una bozza di 4 secondi costa circa $0.34; un video di 5 secondi come quello qui sotto costa $0.42 a 480p e $0.89 a 720p. Poiché la fatturazione segue esattamente duration × rate, duration è la tua unica leva sui costi — non ci sono supplementi separati per la "qualità" da considerare nel budget (verificato rispetto alla pagina dei prezzi in tempo reale).
  • 9:16 nativo. Renderizzi il verticale direttamente tramite aspect_ratio, invece di ritagliare un video 16:9 perdendo la composizione descritta nel prompt.
  • La modalità video di riferimento costa meno, non di più. Passare un video breve in reference_video_urls come guida di stile/movimento abbassa la tariffa a $0.1072 al secondo a 720p e $0.0486 al secondo a 480p — utile quando trovi uno stile che vuoi replicare su un intero batch.

Se pubblichi pezzi di punta invece di contenuti batch quotidiani, il workflow qui sotto vale comunque — per una panoramica più ampia del modello, consulta il nostro articolo complementare seedance-2.0-fast per l'integrazione API.

Preparazione

Ti serve una chiave API hiapi — nessun SDK necessario:

export HIAPI_API_KEY="sk-..."

Ogni modello video su hiapi passa dallo stesso endpoint asincrono per le attività: POST https://api.hiapi.ai/v1/tasks restituisce immediatamente un taskId, poi esegui il polling di GET /v1/tasks/{taskId} finché non è completato. Il riferimento completo è nella documentazione.

Il tuo primo video verticale

La richiesta valida minima richiede prompt, resolution e duration. Aggiungi aspect_ratio: "9:16" per il formato breve:

curl -X POST https://api.hiapi.ai/v1/tasks \
  -H "Authorization: Bearer $HIAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.0-fast",
    "input": {
      "prompt": "Inquadratura verticale in primo piano: due mani posano una frittella dorata in cima a una pila alta di frittelle, disposte su un piatto di vetro su un tavolo rustico in legno in una cucina luminosa in stile country, con il vapore che sale. Una calda luce mattutina arriva da sinistra. Poi uno sciroppo d'acero viene versato lentamente sulla frittella in cima, scintillando nella luce, mentre il vapore continua a salire. Atmosfera accogliente, naturale, inquadratura a mano, profondità di campo ridotta, tonalità calde. Nessuna sovrapposizione di testo.",
      "resolution": "720p",
      "aspect_ratio": "9:16",
      "duration": 5
    }
  }'

La risposta restituisce immediatamente un ID attività:

{"code": 200, "data": {"taskId": "tk-hiapi-..."}, "message": "success"}

Esegui il polling finché status non è success, poi scarica subito output[0].url — quell'URL ha una scadenza. Ecco il video breve effettivamente generato da quella richiesta:

Il rendering risulta 720×1280 (9:16 pulito), dura poco più di 5 secondi ed è stato fatturato $0.886 — esattamente 5 × $0.1772, confermando nella pratica la fatturazione al secondo, non solo quanto dichiarato sulla pagina dei prezzi.

Schema di input verificato sull'API in tempo reale

Lo schema di seedance-2.0-fast è rigoroso — inviare campi non supportati restituisce un 400, invece di parametri ignorati silenziosamente:

Campo Tipo Obbligatorio Valori
prompt string ✅ La descrizione della tua inquadratura
resolution string ✅ 480p, 720p
duration integer ✅ 4–15 (secondi)
aspect_ratio string facoltativo 1:1, 4:3, 3:4, 16:9, 9:16, 21:9, adaptive
image_urls array facoltativo Immagine statica di partenza per il video da immagine

Se ometti un campo obbligatorio, l'attività viene rifiutata prima di creare qualsiasi cosa — le richieste malformate non vengono addebitate. Rispetta esattamente i nomi dei campi di questa tabella; gli script per video brevi scritti per altri modelli video (con motion_strength, seed, first_frame_url) qui restituiscono un 400, invece di essere ignorati.

Funzione Python riutilizzabile

Invia, esegui il polling, scarica — circa 30 righe di codice coprono un ciclo di produzione:

import os, time, requests

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

def submit(prompt: str, duration: int = 5, resolution: str = "720p",
           aspect_ratio: str = "9:16", **extra) -> str:
    r = requests.post(API, headers=HEADERS, json={
        "model": "seedance-2.0-fast",
        "input": {"prompt": prompt, "duration": duration,
                  "resolution": resolution, "aspect_ratio": aspect_ratio, **extra},
    }, timeout=60)
    data = r.json()
    task_id = (data.get("data") or {}).get("taskId")
    if not task_id:
        raise RuntimeError(f"submit failed: {data}")
    return task_id

def wait(task_id: str, timeout_s: int = 900) -> dict:
    deadline = time.time() + timeout_s
    while time.time() < deadline:
        task = requests.get(f"{API}/{task_id}", headers=HEADERS, timeout=30).json()["data"]
        if task["status"] == "success":
            return task
        if task["status"] == "fail":
            raise RuntimeError(f"task failed: {task.get('error')}")
        time.sleep(8)
    raise TimeoutError(task_id)

def make_clip(prompt: str, out_path: str, **kw):
    task = wait(submit(prompt, **kw))
    url = task["output"][0]["url"]          # soggetto a scadenza — scarica subito
    with open(out_path, "wb") as f:
        f.write(requests.get(url, timeout=120).content)

Un rendering di 5 secondi a 720p di solito si completa in uno o due minuti; sotto carico elevato, prevedi fino a circa 10 minuti prima di considerarlo in timeout.

Video da immagine: partire da un fotogramma fisso

Per i video brevi dominati da prodotto o brand, la vera insidia è la deriva del prompt — vuoi che nell'immagine ci sia il tuo prodotto o piatto, non l'interpretazione che ne dà il modello. image_urls risolve questo problema: genera o scatta un'immagine statica, poi falla muovere.

task_id = submit(
    "La pila di frittelle si assesta delicatamente, il vapore continua a salire in volute, poi lo sciroppo inizia a essere versato da fuori campo, con le prime gocce che cadono sulla frittella in cima. Movimento lento e stabile a mano, calda luce mattutina.",
    duration=5, resolution="720p", aspect_ratio="9:16",
    image_urls=["https://your-cdn.example/pancake-still.jpg"],
)

Composizione, illuminazione e posizione del soggetto restano ancorati alla tua immagine statica di riferimento — il prompt deve solo descrivere il movimento che avviene dopo. Ideale per qualsiasi video breve in cui il fotogramma iniziale conta più dell'intuizione del modello (un piatto, un'immagine di prodotto, un set di brand).

Generare in batch i video brevi di una giornata

Poiché /v1/tasks è asincrono, la produzione in batch si riduce a: invia tutto, poi raccogli.

briefs = [
    ("hook-pancakes", "Inquadratura verticale in primo piano: due mani impilano una frittella dorata..."),
    ("hook-latte",    "Inquadratura verticale: il vapore sale da un latte appena preparato mentre si versa il latte..."),
    ("hook-citrus",   "Inquadratura macro verticale: un coltello taglia un agrume..."),
]

tasks = {name: submit(p, duration=5) for name, p in briefs}   # invio in parallelo
for name, tid in tasks.items():                                # raccolta risultati
    result = wait(tid)
    url = result["output"][0]["url"]
    open(f"{name}.mp4", "wb").write(requests.get(url, timeout=120).content)

I costi restano prevedibili perché la fatturazione è strettamente duration × rate:

Scenario Specifiche Costo
1 iterazione di bozza 4 secondi · 480p circa $0.34
1 video breve pubblicabile 5 secondi · 720p circa $0.89
5 video brevi (batch giornaliero) 5 × 5 secondi · 720p circa $4.43
Batch con stile corrispondente 5 secondi · 720p con reference_video_urls circa $0.54 ciascuno

Un workflow che regge nella pratica: crea una bozza a 480p per ogni idea, tieni quelle che meritano di essere pubblicate e ri-renderizza solo quelle a 720p. Una volta trovato uno stile che vale la pena ripetere, reference_video_urls blocca lo stile a una tariffa al secondo inferiore a un rendering 720p da zero.

Consigli sui prompt per il feed

I fattori che nei test di rendering hanno davvero plasmato l'output, in particolare per i video brevi:

  • Descrivi l'inquadratura come verticale e imposta aspect_ratio: "9:16" di conseguenza. I prompt scritti per scene 16:9 vengono ritagliati al centro quando forzati in 9:16; descrivere in anticipo una composizione verticale ravvicinata (come il video delle frittelle qui sopra) fa sì che il soggetto riempia l'inquadratura.
  • Inizia con il movimento, non con l'ambientazione. Il primo istante di un video breve nel feed deve già mostrare qualcosa in azione — una mano che già impila, lo sciroppo che già cola — non un lento piano d'ambientazione prima della ricompensa.
  • Mantieni un'azione chiara per ogni video breve. Il rendering di 5 secondi qui sopra fa esattamente due cose in sequenza (impilare, poi versare) e si legge chiaramente; stipare tre azioni scollegate in un solo video tende a renderle tutte confuse.
  • Specifica chiaramente luce e materiali. "Calda luce mattutina", "vapore che sale", "che scintilla" — i dettagli sensoriali concreti sono ciò che distingue un rendering specifico e appetitoso da uno generico.

Domande frequenti

seedance-2.0-fast è particolarmente adatto a TikTok e Reels? Sì — il supporto nativo 9:16 e il prezzo al secondo (invece di un costo fisso per video) lo rendono ideale per il ritmo di pubblicazione, perché renderizzi più opzioni brevi e tieni la più forte.

Quanto costa un singolo video breve? A 720p, il costo è durata (secondi) × $0.1772. Un video di 5 secondi costa $0.886; uno di 10 secondi $1.772. A 480p la tariffa scende a $0.0843 al secondo. Prima di preventivare un intero batch, verifica sempre le tariffe attuali sulla pagina dei prezzi.

Posso animare un'immagine statica invece di generare solo da testo? Sì, tramite image_urls nella richiesta — vedi la sezione video da immagine qui sopra. È il percorso più affidabile quando un prodotto, un piatto o un set specifico deve apparire esattamente come scattato.

Qual è il video breve più corto e più lungo che posso generare? duration accetta numeri interi da 4 a 15 secondi. Le frazioni di secondo non sono supportate.

La risoluzione influisce su qualcosa oltre alle dimensioni in pixel e al prezzo? Non nello schema stesso — resolution controlla solo le dimensioni dell'output e la tariffa al secondo. Composizione e movimento sono guidati esclusivamente dal prompt e da aspect_ratio.

Conclusione

Fare video brevi con seedance-2.0-fast si riduce a un endpoint asincrono, tre campi obbligatori e un prezzo al secondo che incoraggia a iterare prima di impegnarsi: crea bozze a 480p dei concept verticali, se un prodotto o soggetto specifico deve apparire con esattezza blocca il fotogramma iniziale della soluzione vincente con image_urls, poi ri-renderizza a 720p le versioni che vuoi tenere. Ottieni una chiave API e parti dalla richiesta in cima a questa guida — la pagina del modello seedance-2.0-fast ha il riferimento completo dei parametri e i prezzi attuali per approfondire.

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