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.
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 altaskId. - Salva subito i file:
output[0].urlè un link temporaneo. - Riprova con la chiave di idempotenza: aggiungi
Idempotency-Keynell'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.
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