Seedance 2.0 Mini
Guida API di Seedance 2.0 Mini: generazione video, fotogrammi e riferimenti, esempi di richieste, polling delle attività, download e prezzi.
Seedance 2.0 Mini supporta testo, primo e ultimo fotogramma e riferimenti di immagini, video e audio, con output a 480p, 720p. Genera video lunghi fino a 15 secondi per richiesta. Dettagli del modello e Playground.
Collegarsi a Wan API
Usa https://api.wanapi.app come URL di base dell'API. Crea una chiave con la famiglia di modelli Seedance nelle impostazioni delle chiavi API e inviala come Authorization: Bearer YOUR_API_KEY. Conserva le chiavi sul tuo server. Il Playground usa la sessione del sito e addebita lo stesso saldo dell'account; non richiede di incollare una chiave nel browser.
L'accesso richiede un account abilitato con saldo sufficiente. GET /v1/models elenca i modelli disponibili per la tua chiave. I modelli Seedance usano POST /v1/videos; seleziona il modello nel corpo JSON.
| Impostazione | Seedance 2.0 Mini |
|---|---|
| ID modello | bytedance/seedance-2.0-mini |
resolution | 480p, 720p; valore predefinito: 720p. |
duration | 4–15 secondi di video in uscita oppure -1 per la durata automatica; valore predefinito: 5. |
aspectRatio | adaptive, 16:9, 4:3, 1:1, 3:4, 9:16, 21:9; valore predefinito: adaptive. |
generateAudio | true per impostazione predefinita. false non riduce la tariffa per token. |
| Output | Un video per richiesta, a 24 fps. |
I campi della richiesta descrivono tutti i 13 campi di primo livello. Usa i nomi indicati qui, compresi aspectRatio e generateAudio.
Inviare un'attività di Seedance 2.0 Mini
Questa richiesta da testo a video produce una clip di quattro secondi a 720p. Imposta WAN_API_KEY con la tua chiave Seedance sul server. Invia una sola volta e salva l'id restituito.
curl https://api.wanapi.app/v1/videos \
-H "Authorization: Bearer $WAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "bytedance/seedance-2.0-mini",
"prompt": "A paper boat floats through a sunlit stream. Slow tracking shot.",
"resolution": "720p",
"aspectRatio": "16:9",
"duration": 4,
"generateAudio": true
}'Interrogare un'attività di Seedance 2.0 Mini
Salva l'id restituito come TASK_ID, poi interroga l'attività con la stessa chiave. L'invio restituisce una ricevuta dell'attività; il video è disponibile al completamento. Inizia il polling ogni cinque secondi; consulta stati delle attività e download.
curl "https://api.wanapi.app/v1/videos/$TASK_ID" \
-H "Authorization: Bearer $WAN_API_KEY"Prezzi di Seedance 2.0 Mini
Le tariffe sono in USD per un milione di token video. I token video in ingresso e in uscita determinano il costo finale. Risoluzione, durata e video di riferimento influiscono sul consumo; usa la tariffa corrispondente alle richieste con o senza video di riferimento. L'audio non ha una fascia di prezzo separata.
| Risoluzione | Video di riferimento | Prezzo ufficiale | Prezzo Wan API | Risparmio |
|---|---|---|---|---|
| 480p | Senza video | 0,0352 USD | Non disponibile | — |
| 480p | Con video | 0,0211 USD | Non disponibile | — |
| 720p | Senza video | 0,0756 USD | Non disponibile | — |
| 720p | Con video | 0,0454 USD | Non disponibile | — |
Le stime si basano su un output in 16:9 a 24 fps. Altri rapporti d’aspetto e le dimensioni effettive dell’output possono modificare il costo.
Senza video di riferimento, si contano solo i secondi di output. Con un video di riferimento, si contano i secondi di input e di output; la durata di input fatturabile è pari almeno a due terzi della durata di output, arrotondati per eccesso al secondo intero.
Confronto ufficiale: Prezzi internazionali a consumo di BytePlus. Verificato il 2026-10-15. I prezzi di Wan API si aggiornano automaticamente.
I token video in ingresso e in uscita determinano il costo finale. Le richieste non riuscite non vengono addebitate.
Consulta prezzi e stime di Seedance 2.0 Mini. Controlla la stima nel Playground prima dell'invio.
Campi della richiesta
Invia un oggetto JSON. model è obbligatorio, insieme a un prompt non vuoto o almeno un input multimediale. Gli altri campi sono facoltativi. I campi sconosciuti vengono rifiutati.
| Campo | Tipo | Specifica |
|---|---|---|
model | string | Obbligatorio: bytedance/seedance-2.0-mini. |
prompt | string | Istruzioni testuali; fino a 20.000 caratteri su questo servizio. È obbligatorio un prompt o un input multimediale. |
image | URL o oggetto URL | URL dell'immagine del primo fotogramma, oppure un oggetto con type: "url", url e mediaType facoltativo. Usa image oppure frameImages, non entrambi. |
frameImages | array | Un first_frame e un last_frame facoltativo. Ogni elemento contiene frameType e image; vedi l'esempio dei fotogrammi qui sotto. |
inputReferences | array | Fino a 9 immagini e 3 video. Ogni elemento contiene type: "url", url e mediaType. È accettata anche la forma URL con data/mediaType. |
aspectRatio | string | adaptive (predefinito), 16:9, 4:3, 1:1, 3:4, 9:16, 21:9. |
resolution | string | 480p, 720p. Valore predefinito: 720p. Accetta anche 854x480, 1280x720 come livelli di risoluzione; usa aspectRatio per scegliere il formato. |
duration | integer | 4–15 secondi di video in uscita oppure -1 per la durata automatica. Valore predefinito: 5. |
fps | integer | Fisso a 24; omettilo oppure invia 24. |
seed | integer | Facoltativo; da -1 a 2147483647. La ripetibilità non è garantita. Non specificare anche providerOptions.bytedance.seed. |
generateAudio | boolean | Genera audio. Valore predefinito: true; disattivarlo non cambia la tariffa per token. |
n | integer | Fisso a 1; un video per richiesta. |
providerOptions | object | Oggetto bytedance facoltativo: referenceAudio (fino a 3 URL HTTP(S)), seed (stessi limiti del campo seed di primo livello). draft: true non è supportato. Le opzioni sconosciute vengono rifiutate. |
Combinazioni di input e limiti dei contenuti
-
Usa
imageper un primo fotogramma oppureframeImagesper un primo fotogramma e un ultimo facoltativo. Un ultimo fotogramma da solo e i tipi di fotogramma duplicati vengono rifiutati. -
I fotogrammi non possono essere combinati con
inputReferencesoproviderOptions.bytedance.referenceAudio. -
La modalità riferimenti accetta fino a 9 immagini, 3 video e 3 clip audio, per un massimo di 15 riferimenti totali.
-
Gli input multimediali devono essere URL HTTP(S) pubblici. Non sono accettati caricamenti di byte né URL con credenziali.
-
Immagini: JPEG, PNG, WebP, BMP, TIFF o GIF; meno di 30 MB; ogni lato di 300–6000 pixel; rapporto d'aspetto 0.4–2.5.
-
Video: MP4 o MOV; massimo 50 MB per file; ogni clip di 2–15 secondi e massimo 15 secondi complessivi; 300–6000 pixel per lato, rapporto d'aspetto 0.4–2.5, 24–60 fps.
-
Audio: MP3 o WAV; massimo 15 MB per file; ogni clip di 2–15 secondi e massimo 15 secondi complessivi. È richiesta almeno un'immagine o un video di riferimento.
-
Dimensioni, codifica e durata dei contenuti remoti vengono verificate durante l'elaborazione; la sola validazione dell'URL non garantisce che un file sia utilizzabile.
-
Questo endpoint non espone il rendering finale da una precedente attività di bozza né opzioni native arbitrarie per le attività.
Esempi con fotogrammi e riferimenti
Invia questi corpi allo stesso endpoint POST /v1/videos. Prima dell'invio, sostituisci ogni URL example.com con un tuo URL multimediale direttamente accessibile. Mantieni disponibili gli URL di input fino al completamento dell'attività.
Primo e ultimo fotogramma
Per un solo primo fotogramma, usa image: "https://example.com/first-frame.jpg" e ometti frameImages. Per definire l'inizio e la fine della clip, usa:
{
"model": "bytedance/seedance-2.0-mini",
"prompt": "The camera slowly moves from the opening scene to the closing scene.",
"frameImages": [
{
"frameType": "first_frame",
"image": "https://example.com/first-frame.jpg"
},
{
"frameType": "last_frame",
"image": "https://example.com/last-frame.jpg"
}
],
"aspectRatio": "adaptive",
"resolution": "720p",
"duration": 4
}Riferimenti di immagini, video e audio
Inserisci gli input di immagini e video in inputReferences, con un tipo MIME esplicito. Inserisci gli URL audio in providerOptions.bytedance.referenceAudio. Non aggiungere input di fotogrammi a questa richiesta.
{
"model": "bytedance/seedance-2.0-mini",
"prompt": "Use the character from the image and the camera movement from the video.",
"inputReferences": [
{
"type": "url",
"url": "https://example.com/character.jpg",
"mediaType": "image/jpeg"
},
{
"type": "url",
"url": "https://example.com/motion.mp4",
"mediaType": "video/mp4"
}
],
"providerOptions": {
"bytedance": {
"referenceAudio": [
"https://example.com/sound.wav"
]
}
},
"resolution": "720p",
"duration": 4
}Polling e download del video
Un'attività accettata restituisce un oggetto come questo. ID e timestamp di esempio sono illustrativi:
{
"id": "task_EXAMPLE",
"object": "video",
"model": "bytedance/seedance-2.0-mini",
"status": "queued",
"progress": 0,
"created_at": 1792022400
}Interroga periodicamente GET /v1/videos/{task_id} con la tua chiave API. La query restituisce lo stesso ID pubblico dell'attività e lo stesso modello. Usa status per decidere quando interrompere il polling; progress non è una stima del tempo rimanente.
| Stato | Significato | Passo successivo |
|---|---|---|
queued | L'attività è stata accettata. | Continua il polling. |
in_progress | La generazione è in corso. | Continua il polling. |
completed | Il video è pronto. | Leggi videos[0].url e scarica il video. |
failed | La generazione non è riuscita. | Interrompi il polling e controlla error. |
Una query completata include videos, un array di oggetti contenenti url e mediaType. I timestamp sono espressi in secondi Unix; completed_at compare quando viene registrato il completamento.
{
"id": "task_EXAMPLE",
"object": "video",
"model": "bytedance/seedance-2.0-mini",
"status": "completed",
"progress": 100,
"created_at": 1792022400,
"completed_at": 1792022460,
"videos": [
{
"url": "/v1/tasks/task_EXAMPLE/artifacts/video/content",
"mediaType": "video/mp4"
}
]
}Se l'URL restituito è un percorso relativo, risolvilo rispetto a https://api.wanapi.app e autenticati con la tua chiave API. Per l'esempio precedente:
curl "https://api.wanapi.app/v1/tasks/$TASK_ID/artifacts/video/content" \
-H "Authorization: Bearer $WAN_API_KEY" \
-o video.mp4Se viene restituito un URL multimediale HTTPS firmato, usalo direttamente senza inoltrare la chiave API a quell'host. Gli URL dei risultati possono scadere. Salva i video da conservare nel tuo spazio di archiviazione. Il polling e il download di un risultato esistente non creano un'altra generazione.
Un'attività non riuscita include un oggetto error con code e message, per esempio:
{
"id": "task_EXAMPLE",
"object": "video",
"model": "bytedance/seedance-2.0-mini",
"status": "failed",
"error": {
"code": "generation_failed",
"message": "Video generation failed"
}
}Fatturazione e gestione degli errori
L'addebito finale dipende dal consumo effettivo di token video e dalla tariffa attuale del modello. La stima del Playground è una stima massima, non un preventivo fisso. Clip più lunghe e risoluzioni di output maggiori possono aumentare il consumo di token. Le richieste non riuscite non vengono addebitate.
- Parametri non validi: correggi i campi o la combinazione di input prima di inviare di nuovo. Controlla formati e limiti dei contenuti, oltre alla sintassi degli URL.
- Autenticazione o accesso al modello: usa una chiave Seedance valida e abilitata per il modello richiesto.
- Saldo insufficiente: aggiungi fondi prima di una nuova richiesta a pagamento. Un limite della chiave non aggiunge credito all'account.
- Errore temporaneo nel polling: riprova la GET con intervalli crescenti e un tempo massimo di attesa. Una query non riuscita non significa che la generazione sia fallita.
- Timeout dell'invio o ID attività mancante: l'esito potrebbe essere sconosciuto. Non ripetere automaticamente la POST; potrebbe creare una seconda attività a pagamento.
- Errore di download: riprova il risultato esistente prima di avviare una nuova generazione.
Conserva l'ID attività e contatta l'assistenza se occorre indagare su un invio dall'esito incerto.