HiAPI
Blog

Tutoriale

Tutorial API Seedance 2.0 Mini:l'interfaccia video a $0.0272 al secondo

Il Seedance più economico: testo, immagine e riferimento in un unico modello, con esempi curl e Python, tutti i parametri e il costo al secondo.

Oct 15, 2026
Tutorial API Seedance 2.0 Mini:l'interfaccia video a $0.0272 al secondo

TL;DR

  • seedance-2.0-mini è la versione leggera di Seedance 2.0 di ByteDance. Con un solo nome di modello puoi creare video da testo, video da immagine (primo frame o primo e ultimo frame) e video da riferimento, con audio sincronizzato incluso. Apri la pagina del modello per generare online; i nuovi utenti ricevono 200 crediti alla registrazione.
  • È uno dei modelli video più economici su HiAPI: 480p a $0.0272 al secondo, 720p a $0.0586 al secondo. Un video da 5 secondi in 480p costa solo $0.136.
  • resolution è obbligatorio: se non lo passi, ricevi un errore. Di seguito trovi esempi curl e Python, tutti i parametri e come si calcola il costo nei tre tipi di modalità.

Prima guarda i risultati

Tre video da testo, tutti da 5 secondi in 480p, $0.136 ciascuno.

A slow dolly-in toward a steaming bowl of ramen on a worn wooden counter in a dim izakaya. Warm amber lantern light, soft volumetric haze, gentle steam curling upward, shallow depth of field, the broth surface rippling slightly. Cinematic, photoreal.

Genera con questo prompt → (5 secondi, 480p)

seedance-2.0-mini, video da testo, 480p, 5 secondi, $0.136.

A cozy fireplace crackling in a log cabin at night, orange embers popping and drifting, a cast-iron kettle gently steaming on the hearth, rain streaking the dark window behind. Static locked-off shot. Native audio: crackling fire, soft rain on glass, a low wind.

Genera con questo prompt → (5 secondi, 480p)

seedance-2.0-mini, video da testo, 480p, 5 secondi, con audio nativo, $0.136.

Il crepitio del fuoco, il rumore della pioggia e il vento in questo video provengono dall'ultima frase del prompt. Mini genera l'audio per impostazione predefinita, ma il tipo di suono dipende da quanto lo descrivi chiaramente nel prompt.

A border collie sprints across a sunlit beach toward the camera, kicking up wet sand, ears flapping, tongue out, water spray catching the low golden light. Tracking shot moving backward to keep the dog centered, motion blur on the paws, joyful energy, photoreal.

Genera con questo prompt → (5 secondi, 480p)

seedance-2.0-mini, video da testo, 480p, 5 secondi, $0.136.

curl: il primo video

curl -X POST https://api.hiapi.ai/v1/tasks \
  -H "Authorization: Bearer $HIAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.0-mini",
    "input": {
      "prompt": "Strada cyberpunk con neon in una notte di pioggia, la camera avanza lentamente, riflessi variopinti sull'asfalto bagnato, atmosfera cinematografica",
      "resolution": "480p",
      "duration": 5,
      "aspect_ratio": "16:9"
    }
  }'

5 secondi in 480p, $0.136. Dopo aver ricevuto data.taskId, usa GET /v1/tasks/{taskId} per verificare che status sia success, poi scarica output[0].url.

Python: invio, polling, download

# pip install requests; prima esegui export HIAPI_KEY=la_tua_Key
import os, time, uuid, requests

KEY = os.environ["HIAPI_KEY"]
H = {"Authorization": f"Bearer {KEY}"}

def generate(timeout_s=900, **params):
    body = {"model": "seedance-2.0-mini", "input": params}
    # Per ritentare l'invio dello stesso task usa la stessa Idempotency-Key, evitando addebiti duplicati
    headers = {**H, "Idempotency-Key": str(uuid.uuid4())}
    r = requests.post("https://api.hiapi.ai/v1/tasks", json=body, headers=headers, timeout=30)
    r.raise_for_status()
    res = r.json()
    if res.get("code") != 200:
        raise RuntimeError(res)
    task_id = res["data"]["taskId"]
    deadline = time.time() + timeout_s
    while time.time() < deadline:
        d = requests.get(f"https://api.hiapi.ai/v1/tasks/{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)

# Video da immagine: anima una foto, 720p 5 secondi ($0.293)
url = generate(
    prompt="La camera si allontana lentamente, nuvole e nebbia scorrono tra le cime, luce dorata del mattino",
    first_frame_url="https://your-cdn.example.com/first-frame.jpg",
    resolution="720p", duration=5, generate_audio=False,
)
with open("clip.mp4", "wb") as f:
    f.write(requests.get(url).content)

Un modello, tre modalità

A seconda dei parametri che passi, si attiva una modalità diversa:

Modalità Cosa passare Note
Video da testo Solo prompt
Video da immagine first_frame_url, eventualmente più last_frame_url Non combinabile con immagini di riferimento o video di riferimento
Video da riferimento reference_image_urls, reference_video_urls, reference_audio_urls Massimo 3 video di riferimento e 3 audio di riferimento, con durata totale di ciascun gruppo non superiore a 15 secondi

Elenco dei parametri

Parametro Valori Note
prompt stringa, obbligatorio Sia in cinese che in inglese
resolution 480p / 720p, obbligatorio Se non lo passi restituisce 400
duration intero da 4 a 15, obbligatorio (negli esempi 5) In secondi
aspect_ratio 1:1 4:3 3:4 16:9 9:16 21:9 adaptive, predefinito 16:9
generate_audio predefinito true Audio nativo sincronizzato
first_frame_url / last_frame_url URL dell'immagine jpeg/png/webp/bmp/tiff/gif, lato da 300 a 6000 px, singolo file sotto 30 MB
reference_image_urls URL dell'immagine Insieme ai frame iniziale e finale, massimo 9 immagini in totale
reference_video_urls Massimo 3 video mp4/mov, 480p o 720p, singolo video da 2 a 15 secondi, totale non superiore a 15 secondi
reference_audio_urls Massimo 3 audio wav/mp3, singolo audio da 2 a 15 secondi, totale non superiore a 15 secondi

Calcoliamo il costo

Durata 480p ($0.0272/secondo) 720p ($0.0586/secondo)
4 secondi $0.1088 $0.2344
5 secondi $0.136 $0.293
10 secondi $0.272 $0.586
15 secondi $0.408 $0.879

Quando passi reference_video_urls, la tariffa è diversa: 480p a $0.0172 al secondo, 720p a $0.0358 al secondo. Con $10 in 480p puoi generare circa 367 secondi. Consigliamo di regolare prima il prompt in 480p e passare a 720p solo dopo la versione definitiva; se ti serve il 1080p, passa a Seedance 2.0 o Seedance 2.5.

Da sapere prima della messa in produzione

  • Usa i callback invece del polling: al livello superiore della richiesta (allo stesso livello di input) aggiungi "callback": {"url": "https://tuo-dominio/hiapi/callback"} e deduplica in base al taskId.
  • Salva subito i file: output[0].url è un link temporaneo.
  • Riprova con la chiave di idempotenza: aggiungi Idempotency-Key nell'header della richiesta; riprovare con la stessa chiave crea il task una sola volta.
  • Rimborso automatico in caso di errore: paghi solo per i video generati con successo.

Domande frequenti

Come scegliere tra Seedance 2.0 Mini e Seedance 2.0?

In 480p il prezzo di Mini è circa un quinto di quello di 2.0 ($0.0272 al secondo contro $0.136), ma arriva al massimo a 720p. Usa Mini per bozze, video brevi per i social in batch e test dei prompt; se ti serve il 1080p o il 4K, passa a Seedance 2.0.

Perché dà errore se non passo resolution?

Per questo modello resolution è obbligatorio: devi specificare esplicitamente "480p" o "720p".

C'è l'audio?

Sì, per impostazione predefinita. Descrivi chiaramente nel prompt il suono che desideri; se non vuoi audio, imposta generate_audio su false.

Quanto può durare un video al massimo?

Da 4 a 15 secondi.

Per altri esempi di prompt, consulta la guida ai prompt di Seedance 2.0; oppure vai alla pagina del modello per generare il video del ramen.

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