Claude Opus 5.5 è disponibile su SeedRouter
SeedRouter Docs

Seedance 2.0

Genera video con Seedance 2.0 tramite l'API di attività ufficiale ModelArk: da testo a video, primo e ultimo fotogramma e riferimenti immagine, video e audio, da 480p a 4K.

View Markdown

Seedance 2.0 è il modello di generazione video di ByteDance (Dreamina Seedance 2.0). Invia il corpo dell'attività ufficiale ModelArk, conserva l'identificativo dell'attività restituito e leggi il video finito dall'attività. Immagini, video e audio vanno in content come URL.

ID modello

ID modelloRisoluzioniNote
dreamina-seedance-2-0480p, 720p, 1080p, 4KModello completo
dreamina-seedance-2-0-fast480p, 720pPrezzo al secondo più basso
dreamina-seedance-2-0-mini480p, 720pPrezzo al secondo minimo

Tutti e tre gli ID accettano gli stessi parametri. Consulta la pagina del modello per i prezzi attuali.

Esempio rapido

curl https://api.seedrouter.ai/v1/contents/generations/tasks \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "dreamina-seedance-2-0",
    "content": [{"type": "text", "text": "A red paper boat drifts across a calm pond at sunrise, slow dolly-in"}],
    "resolution": "720p",
    "ratio": "16:9",
    "duration": 5,
    "generate_audio": true
  }'

Endpoint

POST https://api.seedrouter.ai/v1/contents/generations/tasks
HeaderValore
AuthorizationBearer YOUR_API_KEY
Content-Typeapplication/json

Il corpo è la richiesta ufficiale ModelArk «crea un'attività di generazione video». Se chiami già ModelArk, cambia solo l'URL di base in https://api.seedrouter.ai/v1 e la chiave API. La risposta è {"id": "task_..."}, non il video finito. Tieni le chiavi API nel codice lato server.

Parametri

NomeTipoObbligatorioPredefinitoNote
modelstringSì—Uno dei tre ID modello indicati sopra.
contentobject[]Sì—Il prompt e i media; vedi sotto.
resolutionenumNo720p480p, 720p, 1080p, 4k; gli ID Fast e Mini accettano solo 480p e 720p.
ratioenumNoadaptive16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive.
durationintegerNo54–15 secondi, oppure -1 per lasciar scegliere il modello.
generate_audiobooleanNotrueGenera l'audio insieme al video.
watermarkbooleanNofalseAggiunge una filigrana.
return_last_framebooleanNofalseRestituisce anche il fotogramma finale come URL di immagine.
execution_expires_afterintegerNo1728003600–259200 secondi. Un'attività ancora non conclusa dopo questo tempo diventa expired e non viene addebitata.
priorityintegerNo00–9.
safety_identifierstringNo—1–64 caratteri che identificano il tuo utente finale. Va bene anche un hash.
service_tierenumNodefaultSolo default.
content_filterbooleanNotrueEstensione di SeedRouter. false disattiva il filtro dei contenuti per questa richiesta.

Elementi di content

ElementoFormaRuoloLimite
Testo{"type": "text", "text": "..."}—Uno.
Immagine{"type": "image_url", "image_url": {"url": "https://..."}, "role": "..."}first_frame, last_frame, reference_imageFino a 9 immagini di riferimento.
Video{"type": "video_url", "video_url": {"url": "https://..."}, "role": "reference_video"}reference_videoFino a 3.
Audio{"type": "audio_url", "audio_url": {"url": "https://..."}, "role": "reference_audio"}reference_audioFino a 3. Richiede un'immagine o un video di riferimento.

I campi sconosciuti vengono rifiutati. Non supportati: seed, callback_url (interroga invece l'attività), draft e draft_task, tools, i parametri frames e camera_fixed esclusivi di 1.x, nonché output_format e omni_reference_task_type (solo Seedance 2.5). Le attività non possono essere annullate né eliminate.

Modalità

La modalità dipende dagli elementi di content; non esiste un parametro di modalità.

Modalitàcontent
Da testo a videoun elemento di testo
Primo fotogrammatesto (facoltativo) + un'immagine con ruolo first_frame, oppure un'immagine senza ruolo
Primo e ultimo fotogrammatesto (facoltativo) + un'immagine first_frame + un'immagine last_frame
Riferimento multimodaletesto + qualsiasi combinazione di elementi reference_image, reference_video e reference_audio

Le modalità con primo fotogramma non possono essere combinate con elementi di riferimento. Con più immagini o con altri media, ogni immagine richiede un role.

Esempio con riferimenti

curl https://api.seedrouter.ai/v1/contents/generations/tasks \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "dreamina-seedance-2-0",
    "content": [
      {"type": "text", "text": "The character from the image walks through the market in the video, same camera move"},
      {"type": "image_url", "image_url": {"url": "https://example.com/character.png"}, "role": "reference_image"},
      {"type": "video_url", "video_url": {"url": "https://example.com/market.mp4"}, "role": "reference_video"}
    ],
    "ratio": "adaptive",
    "duration": 8
  }'

Sostituisci gli URL di esempio con file tuoi accessibili.

Input multimediali

Questa API accetta solo riferimenti tramite URL. Non sono accettati base64, URL data:, identificativi asset:// e caricamenti multipart. Il Playground carica i file selezionati nello storage prima di inviarne gli URL.

I media devono essere URL HTTP(S) pubblici e rispettare i limiti ufficiali del modello:

MediaFormatiLimiti
ImmagineJPEG, PNG, WebP, BMP, TIFF, GIF, HEIC, HEIFMeno di 30 MB; larghezza e altezza 300–6000 px; rapporto d'aspetto (larghezza / altezza) 0,4–2,5; 1–9 immagini di riferimento
VideoMP4, MOV (H.264 o H.265)2–15 secondi ciascuno, fino a 3, al massimo 15 secondi in totale; al massimo 200 MB; 24–60 FPS; larghezza e altezza 300–6000 px; rapporto d'aspetto 0,4–2,5; 407.696–8.295.044 pixel (larghezza × altezza)
AudioWAV, MP32–15 secondi ciascuno, fino a 3, al massimo 15 secondi in totale; richiede un'immagine o un video di riferimento; al massimo 15 MB

Il modello non supporta immagini e video di riferimento che contengono volti umani reali.

I media vengono controllati all'avvio dell'attività, prima di qualsiasi generazione. Un'attività i cui media violano uno di questi limiti termina come failed con invalid_request_error e un messaggio che indica la regola, ad esempio The request was rejected: content reference videos must total at most 15 seconds., e non viene addebitata. Un file che in quel momento non può essere letto viene passato al modello, che lo accetta o lo rifiuta; in entrambi i casi un'attività fallita non viene addebitata.

Fattori di costo

Consulta la sezione prezzi del modello per le tariffe correnti. Seedance 2.0 fattura i token video, l'unità ufficiale:

video tokens = (output seconds + reference video seconds) × width × height × 24 / 1024

La tariffa per milione di token dipende dalla risoluzione di output e dalla presenza di un video di riferimento nella richiesta; una richiesta con video di riferimento applica una tariffa più bassa a tutti i suoi token. Gli input di testo, immagine e audio non vengono fatturati. In 16:9, un secondo corrisponde a 10.044 token a 480p (864×496), 21.600 a 720p, 48.600 a 1080p e 194.400 a 4K.

L'addebito segue i token dichiarati dal video finito (usage.completion_tokens), quindi duration: -1 viene fatturato sulla durata effettivamente generata. Le clip renderizzate durano leggermente più di quanto richiesto: una richiesta di 5 secondi a 720p in 16:9 renderizza 121 fotogrammi e dichiara 108.900 token anziché 108.000. Gli addebiti definitivi sono nello storico di utilizzo del tuo account. Le attività fallite e scadute non vengono addebitate.

Schema di output

L'invio restituisce l'identificativo dell'attività:

{"id": "task_..."}

Recuperare l'attività

curl https://api.seedrouter.ai/v1/contents/generations/tasks/YOUR_TASK_ID \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY"

Interroga ogni 10–20 secondi finché status non diventa succeeded, failed o expired. Un timeout di rete durante il polling non significa che la generazione sia fallita: conserva l'identificativo dell'attività e riprendi il controllo. Non creare un'altra attività per verificare l'avanzamento.

Esempio di polling completo

Esegui questo dopo l'esempio di invio in Python qui sopra.

import time

deadline = time.monotonic() + 1800
while time.monotonic() < deadline:
    result = requests.get(
        f"https://api.seedrouter.ai/v1/contents/generations/tasks/{task_id}",
        headers={"Authorization": f"Bearer {os.environ['SEEDROUTER_API_KEY']}"},
        timeout=30,
    )
    result.raise_for_status()
    task = result.json()
    if task["status"] == "succeeded":
        print(task["content"]["video_url"])
        break
    if task["status"] in ("failed", "expired"):
        raise RuntimeError(task["error"]["message"])
    time.sleep(15)
else:
    raise TimeoutError(f"Still waiting. Resume polling task {task_id}.")

Attività riuscita

{
  "id": "task_...",
  "model": "dreamina-seedance-2-0",
  "status": "succeeded",
  "content": {
    "video_url": "https://static.seedrouter.ai/media/tasks/task_example/0.mp4",
    "last_frame_url": "https://static.seedrouter.ai/media/tasks/task_example/last_frame/0.jpg"
  },
  "usage": {"completion_tokens": 108900, "total_tokens": 108900},
  "seed": 42,
  "resolution": "720p",
  "ratio": "16:9",
  "duration": 5,
  "framespersecond": 24,
  "generate_audio": true,
  "draft": false,
  "output_format": "mp4",
  "service_tier": "default",
  "execution_expires_after": 172800,
  "priority": 0,
  "created_at": 1790321515,
  "updated_at": 1790321652
}
CampoSignificato
idConserva questo identificativo per le interrogazioni successive.
statusqueued, running, succeeded, failed o expired.
content.video_urlIl video generato.
content.last_frame_urlIl fotogramma finale, quando return_last_frame è true.
usage.completion_tokensToken video del video finito; la quantità fatturata.
duration, resolution, ratio, framespersecond, seedI valori effettivamente renderizzati; seed è quello scelto dal modello.
created_at, updated_atTimestamp Unix in secondi.
error{"code", "message"} per un'attività fallita o scaduta.

Gli URL dei video sono ospitati sul nostro storage. Salva il file nel tuo storage se ti serve una copia duratura.

Elencare le attività

curl "https://api.seedrouter.ai/v1/contents/generations/tasks?page_num=1&page_size=20&filter.status=succeeded" \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY"

Restituisce {"total": N, "items": [...]} con gli oggetti attività degli ultimi 7 giorni, dal più recente. page_num e page_size accettano valori 1–500 (predefiniti 1 e 20). Filtri: filter.status, filter.model, filter.task_ids (ripetibile) e filter.service_tier.

Errori

Le richieste rifiutate prima della creazione di un'attività restituiscono un errore HTTP con un oggetto error e non vengono addebitate. Un'attività che fallisce dopo l'accettazione restituisce HTTP 200 all'interrogazione, con status: "failed" (o "expired") e un oggetto error. L'output bloccato dal filtro dei contenuti fallisce con content_policy_violation; un'attività che supera execution_expires_after termina come expired con task_expired.

Vedi il catalogo errori comune per codici, stati HTTP e indicazioni sui tentativi.

{
  "id": "task_...",
  "model": "dreamina-seedance-2-0",
  "status": "failed",
  "error": {
    "code": 60001,
    "message": "The request was rejected by the content policy. Please revise the prompt or input images."
  }
}

Se è l'invio stesso ad andare in timeout, controlla l'elenco delle attività prima di inviare di nuovo: la prima richiesta potrebbe essere già stata accettata.

Suggerimenti

  • Descrivi il soggetto, l'azione, il movimento di camera e l'illuminazione con frasi complete.
  • Fai le bozze a 480p con una duration breve, poi renderizza la versione scelta a una risoluzione più alta.
  • Concatena le inquadrature con return_last_frame: usa il fotogramma restituito come first_frame dell'attività successiva.

Correlati