Introduzione
Seedance 2.0 Mini immagine in video apre la clip su un’immagine che fornisci tu e la anima fino a 15 secondi. Aggiungi un fotogramma finale e la ripresa deve arrivarci, il che rende ripetibili le transizioni.
Seedance 2.0 Mini è il livello più piccolo della linea Seedance 2.0 di ByteDance. Pubblica gli stessi tre endpoint di Seedance 2.0 Fast e restituisce clip da 4 a 15 secondi a 480p o 720p, con audio generato nella stessa passata.
Scegli la modalità di Seedance 2.0 Mini in base al materiale di partenza
| Materiale di partenza | Modalità |
|---|---|
| Una sceneggiatura o la descrizione di una scena | Seedance 2.0 Mini Testo in video |
| Un’immagine iniziale approvata | Seedance 2.0 Mini Immagine in video |
| Riferimenti separati per aspetto, movimento o audio | Seedance 2.0 Mini Riferimenti in video |
Caratteristiche principali
Lo stesso contratto di Seedance 2.0 Fast
Mini pubblica gli stessi endpoint e gli stessi campi di Seedance 2.0 Fast: formato adattivo più sei formati fissi, da 4 a 15 secondi o -1 per una durata scelta dal modello, audio nativo e seed, con la risoluzione limitata a 720p. Una pipeline scritta per Mini passa a Fast cambiando l’id del modello, non la richiesta.
Pensato per i volumi
Mini è il livello giusto quando la produttività conta più della qualità in più dei modelli Seedance 2.0 maggiori. Ogni endpoint è asincrono: invia un Idempotency-Key con ogni richiesta, salva gli id dei task e lascia che polling o callback li risolvano. La chiave vale 24 ore, quindi un nuovo tentativo dopo una connessione caduta restituisce il task originale.
Sequenze più lunghe con l’estensione video
Per superare i quindici secondi, invia una clip finita all’endpoint video-extend: il suo ultimo fotogramma apre una nuova inquadratura di Seedance 2.0 Mini e ricevi un solo file con le due parti unite. Ogni passaggio addebita solo i secondi che aggiunge, e il risultato unito può essere esteso di nuovo.
Parametri della richiesta
| Parametro | Obbligatorio | Nota |
|---|---|---|
prompt | No | Facoltativo, ma conviene scriverlo: di' cosa succede dopo il fotogramma invece di ripetere ciò che si vede già — l'azione, il movimento di macchina, il passare del tempo, il suono. almeno 1 caratteri |
image_url | Sì | Link pubblico e scaricabile direttamente al primo fotogramma; obbligatorio. |
last_image_url | No | Fotogramma di chiusura facoltativo. Decide l'immagine su cui atterra l'inquadratura: una transizione, un prima e dopo o un loop che si apre e si chiude sulla stessa immagine. |
aspect_ratio | No | Inquadratura in uscita, adaptive per impostazione predefinita: la clip mantiene le proporzioni del fotogramma iniziale, quindi non viene tagliato nulla. |
resolution | No | Risoluzione in uscita: 480p, oppure 720p per impostazione predefinita. |
duration_seconds | No | Durata della clip finita in secondi interi, da 4 a 15, predefinita 5, ed è la quantità addebitata; con -1 sceglie il modello e la stima considera 15 secondi. |
generate_audio | No | Decide se viene generata una colonna sonora nativa sincronizzata con le immagini. Attivo per impostazione predefinita; disattivarlo non abbassa la tariffa in questo livello. Predefinito: |
enable_web_search | No | Disattivato di default. Se lo attivi, il modello può cercare sul web informazioni legate al tuo prompt prima del render. Predefinito: |
seed | No | Seed intero; se lo ometti, ogni esecuzione ne estrae uno proprio. Fissalo tenendo costante tutto il resto per giudicare che cosa ha davvero cambiato una modifica al prompt. |
return_last_frame | No | Restituisce anche l’ultimo fotogramma della clip come immagine separata, accanto al video. Predefinito: |
bitrate_mode | No | Bitrate del file consegnato: |
watermark | No | Aggiunge al video la filigrana visibile «AI generated» del modello. Predefinito: |
Prezzi
| Specifiche | Prezzo |
|---|---|
| $0.0246078 / secondo |
| $0.05292 / secondo |
| $0.036 / secondo |
| $0.072 / secondo |
Casi d’uso
Foto da catalogo in movimento
Una foto piatta di prodotto o di scaffale diventa qualche secondo di movimento senza rigirare. L’esempio pubblicato rifornisce uno scaffale frigo lattina per lattina in quattro secondi a camera fissa, con piccoli tintinnii e il ronzio del frigorifero.
Un time-lapse tra due fotogrammi
Con last_image_url, la clip deve arrivare al fotogramma finale. Uno degli esempi porta lo stesso viale dalla fine dell’estate al pieno autunno in dieci secondi, camera fissa, senza tagli.
Momenti che il filtro testuale rifiuterebbe
Il fotogramma iniziale porta il contenuto, quindi il prompt deve solo descrivere il movimento. Quando il livello di Seedance rifiuta una scena scritta come testo, guidarla da un primo fotogramma è il modo per ottenerla.
Consigli avanzati
Prepara il fotogramma iniziale
image_url è obbligatorio e fissa composizione, look e tetto di qualità; ogni lato deve misurare tra 300 e 6000 pixel. Rimuovi prima testi, filigrane e loghi, perché passano nel video.
Di’ cosa cambia, non cosa c’è
Il prompt è facoltativo. Descrivi l’azione, il movimento di camera e il suono che seguono il fotogramma; senza prompt è il modello a decidere il movimento. Verifica il movimento a 4 o 5 secondi prima di pagare per 15, perché una ripresa da un solo fotogramma deriva sempre di più man mano che dura.
Adatta l’esempio incluso
L’esempio pubblicato usa aspect_ratio 16:9, duration_seconds 4, generate_audio true e resolution 720p, con la foto di uno scaffale come image_url.
A gloved hand enters from the right and fills the gap in the upper row can by can, facing each label forward, then withdraws. Camera locked off on the shelf. Small metallic clinks, chiller hum, fluorescent light unchanged throughout.
Quattro secondi bastano per un’azione chiara a camera fissa. Sostituisci la foto con quella del tuo prodotto e mantieni l’unico movimento.
Dai al fotogramma finale la stessa forma
last_image_url deve avere le stesse proporzioni del fotogramma iniziale; altrimenti viene ritagliato per adattarsi. Tieni stabili camera e luce tra i due fotogrammi e cambia un solo stato chiaro, come la stagione nell’esempio del viale.
Avvio rapido dell’API
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "bytedance/seedance-2.0-mini/image-to-video",
"input": {
"aspect_ratio": "adaptive",
"bitrate_mode": "standard",
"duration_seconds": 5,
"enable_web_search": false,
"generate_audio": true,
"image_url": "https://example.com/reference.png"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
Nel riferimento dell’API trovi autenticazione, schema completo, polling e gestione degli errori.
















