ByteDance: Seedance 1.0 Pro
Seedance 1.0 Pro genera video senza audio da testo o da un’immagine iniziale. Descrivete l’azione e la camera oppure animate una composizione esistente, con durata di 2–12 secondi, 24 fps e controlli espliciti dell’inquadratura e della risoluzione dell’uscita.
Informazioni sul modello
Questa descrizione illustra le funzionalità del modello. Gli input, gli output e le opzioni disponibili in Ailoot per il metodo selezionato sono elencati di seguito.
Seedance 1.0 Pro genera un video da testo o da una scena guidata da un’immagine. Il selettore doubao-seedance-1-0-pro-250528 supporta entrambe le modalità di ingresso, quindi il punto di partenza può essere un concetto scritto o una composizione visiva esistente. Usate una descrizione testuale per creare una scena nuova oppure fornite un’immagine quando soggetto, disposizione e vista iniziale devono essere stabiliti visivamente. Questo profilo 1.0 produce video senza audio; il suono sincronizzato appartiene al profilo 1.5 Pro descritto separatamente.
Per generare video da testo, specificate soggetto, ambiente, movimento, inquadratura e camera in un’unica scena coerente. L’esempio documentato passa gradualmente da un campo di margherite a una vista ravvicinata di un fiore con rugiada sui petali. Questa struttura è utile per altre rivelazioni: presentate l’ambientazione, avvicinatevi al soggetto e terminate sul dettaglio importante. Per un concetto di prodotto, descrivete il materiale e l’illuminazione oltre all’azione e date alla camera un percorso realizzabile nella breve inquadratura.
Per generare video da immagini, inserite il riferimento in un elemento content di tipo image_url e spiegate cosa deve cambiare rispetto alla vista iniziale. Un ritratto preparato può definire la persona e il ritaglio, mentre la richiesta descrive una piccola rotazione, capelli in movimento o un lieve arretramento della camera. Un’immagine fissa di un prodotto può stabilire l’oggetto e lo sfondo, mentre il prompt chiede una rivelazione controllata. Mantenete il movimento richiesto compatibile con la composizione di origine; l’immagine di un lato di un oggetto non fornisce una vista precisa mai mostrata di ogni altro lato.
Il campo immagine accetta un URL accessibile oppure un URL di dati contenente dati immagine Base64. I formati documentati sono JPEG, PNG, WEBP, BMP, TIFF e GIF. Le immagini devono essere più piccole di 30 MB, con un rapporto tra larghezza e altezza strettamente compreso tra 0.4 e 2.5 ed entrambe le dimensioni strettamente comprese tra 300 e 6000 pixel. Preparate una fonte chiara con il ritaglio desiderato invece di affidarvi a una miniatura che ha già perso i dettagli distintivi. Per la generazione video da immagini, la guida raccomanda un’inquadratura adattiva che segua le proporzioni del riferimento.
La durata documentata per 1.0 è da due a dodici secondi e la frequenza è 24 fps. I controlli dell’uscita comprendono i livelli 480p, 720p e 1080p, con 1080p come valore predefinito di Pro; la guida esclude 1080p nello scenario con immagine di riferimento. I formati fissi comprendono 16:9, 4:3, 1:1, 3:4, 9:16 e 21:9. Scegliete una combinazione compatibile con le immagini per un’inquadratura guidata da un’immagine, anziché trasferire inalterate tutte le impostazioni della generazione video da testo. Esaminate l’inquadratura effettivamente restituita prima di inserire la clip in un’impaginazione.
I controlli di seed e filigrana sono documentati insieme a camerafixed. L’istruzione di camera fissa non è supportata nello scenario con immagine di riferimento e, dove si applica, la guida non garantisce una camera perfettamente immobile. Le istruzioni sui parametri inserite nel prompt hanno precedenza sui campi opzionali separati. Mantenete un’unica impostazione autorevole per durata, risoluzione e rapporto e fate concordare con essa la descrizione della camera. Questo evita che la descrizione della scena sovrascriva implicitamente le impostazioni selezionate per la richiesta.
L’utilizzo si misura in token video: larghezza dell’uscita × altezza dell’uscita × frequenza dei fotogrammi × durata dell’uscita / 1024. L’attività completata riporta questa quantità come usage.completion_tokens. Conservate l’utilizzo riportato insieme alla clip completata e alle impostazioni richieste.
Il flusso di lavoro restituisce prima un identificatore dell’attività e, dopo l’elaborazione, la posizione del video completato. Preservate l’identificatore mentre controllate se l’attività è in coda o in esecuzione; un’attività conclusa con successo fornisce content.video_url e le informazioni sull’utilizzo. La conservazione documentata dei file generati è di sette giorni. Salvate la clip completata, l’immagine di origine e il prompt esatto come traccia della revisione, poi esaminate l’aspetto del soggetto, il movimento, la continuità con l’immagine e la composizione finale nell’intero risultato.
Ailoot Ultra · Generazione video POST /v1/videos doubao-seedance-1-0-pro-250528
doubao-seedance-1-0-pro-250528
doubao-seedance-1-0-pro-250528Introduzione
Seedance 1.0 Pro genera video senza audio da testo o da un’immagine iniziale. Descrivete l’azione e la camera oppure animate una composizione esistente, con durata di 2–12 secondi, 24 fps e controlli espliciti dell’inquadratura e della risoluzione dell’uscita.
- Input accettati
- Testo · Immagini
- Risultati
- Video
Disponibile in Ailoot · input e metodi
Ailoot Ultra · Generazione video POST /v1/videos
- Tipi di input
text,image- Tipi di output
video
| Campo | Tipo | Requisito | Valori e limiti | Predefinito |
|---|---|---|---|---|
Campomodel | Tipostring | RequisitoObbligatorio | Valori e limiti doubao-seedance-1-0-pro-250528 | Predefinito— |
Campocontent | Tipoarray | RequisitoObbligatorio | Valori e limiti Condizioni: Oggetti nativi di testo o contenuti multimediali; l'array esterno non deve essere vuoto. Questo costruttore generico Ailoot non convalida i tipi dei nodi annidati. | Predefinito— |
Campoduration | Tipointeger | RequisitoFacoltativo | Valori e limiti Minimo: 2 Massimo: 12 Condizioni: Schema principale 1.x: 2–12; una descrizione condivisa successiva indica per 1.5 l'intervallo 4–12 oppure -1. L'esempio usa 5, documentato in entrambi i casi. | Predefinito5 |
Camporesolution | Tipostring | RequisitoFacoltativo | Valori e limiti Condizioni: I valori confermati per la generazione da testo a video sono 480p e 1080p. L'input con immagine di riferimento esclude 1080p. L'enumerazione condivisa 720p contraddice la descrizione specifica del modello, quindi il supporto di 720p resta da chiarire in entrambe le modalità. | Predefinito1080p |
Camporatio | Tipostring | RequisitoFacoltativo | Valori e limiti 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive Condizioni: Valori predefiniti dipendenti dalla scena o dal modello; la documentazione dell'input con immagini consiglia adaptive. | Predefinito— |
Camposervice_tier | Tipostring | RequisitoFacoltativo | Valori e limiti default, flex Condizioni: default=online, flex=offline; scegli prima della creazione. | Predefinitodefault |
Camposeed | Tipointeger | RequisitoObbligatorio | Valori e limiti Minimo: -1 Massimo: 4.294.967.295 | Predefinito-1 |
Campocamerafixed | Tipoboolean | RequisitoObbligatorio | Valori e limiti Condizioni: Obbligatorio per Ailoot; il controllo della videocamera con immagine di riferimento è documentato come non supportato e il suo effetto non è garantito. | Predefinitofalse |
Campowatermark | Tipoboolean | RequisitoObbligatorio | Valori e limiti | Predefinitofalse |
Campoexecution_expires_after | Tipointeger | RequisitoObbligatorio | Valori e limiti Minimo: 3600 Massimo: 259.200 Unità: secondi | Predefinito172.800 |
Combinazioni di materiali in input
Parametri e ciclo di vita del metodo
| Parametro | Contratto |
|---|---|
Parametrocontent_type | Contrattoapplication/json |
Parametrorequired | Contrattocamerafixed, content, execution_expires_after, model, seed, watermark |
Parametrooptional | Contrattoduration, resolution, ratio, service_tier |
Parametromaterial_types | Contrattotext, image |
Parametroadditional_properties | Contrattotrue |
Parametrovalidation_scope | ContrattoAiloot verifica i tipi dei campi obbligatori e che model/content sia un array non vuoto. Gli altri campi della richiesta vengono conservati per il modello selezionato. |
Parametroimage_constraints | Contratto{"formats":["jpeg","png","webp","bmp","tiff","gif"],"aspect_ratio_exclusive":[0.4,2.5],"dimensions_px_exclusive":[300,6000],"file_size_mb_exclusive":30,"mb_bytes_definition":null} |
Alias del metodo: /v1/videos/generations
Ciclo di vita: submit_once_poll_original
GET /v1/videos/{request_id}
GET /v1/videos/generations/{request_id}
GET /v1/videos/{request_id}/content
GET /v1/videos/generations/{request_id}/content
Crea una sola volta e conserva id/polling_url pubblici restituiti.
Interroga periodicamente l'attività originale; scarica content.video_url effettivo di tua proprietà dopo succeeded.
Tariffe
Calcolo del costo finale
Le tariffe visualizzate stimano il costo prima della generazione. L'addebito finale viene calcolato in base al costo registrato per la generazione originale. La durata misurata dell'output e le quantità previste non costituiscono la quantità finale fatturabile.
Le tariffe non aggiungono opzioni alla richiesta. I parametri supportati sono elencati nel metodo selezionato.
- Modalità rapida
- Non specificato Quando è selezionata la modalità rapida
- Modalità flex
- Non specificato Quando è selezionata la modalità flex
- Sforzo massimo di ragionamento
- Non specificato Quando lo sforzo massimo di ragionamento usa l'adeguamento predefinito (default)
Tariffe stimate per il confronto
Prezzi per configurazione
Associa ogni costo alle condizioni indicate. Usa una sola tariffa per ogni insieme di configurazioni alternative.
| Configurazione | Listino delle tariffe | Quantità prevista | Unità di fatturazione | Costo |
|---|---|---|---|---|
| ConfigurazioneTariffe base dei token | Listino delle tariffeTariffa base | Quantità prevista— | Unità di fatturazione— | Costo Input · Token in input · Stima solo a fini di confronto — / 1K token Output · Token in output · Stima solo a fini di confronto — / 1K token Input · Lettura dalla cache · Stima solo a fini di confronto — / 1K token Input · Scrittura nella cache · Stima solo a fini di confronto — / 1K token Input · Scrittura nella cache, 1 ora · Stima solo a fini di confronto — / 1K token |
| ConfigurazioneUltra | Listino delle tariffe— | Quantità prevista— | Unità di fatturazioneper 1K token video | Costo Output · Stima solo a fini di confronto $0.0044 per 1K token video |
| ConfigurazioneCosto stimato della generazione | Listino delle tariffe— | Quantità previstastima per una generazione | Unità di fatturazione— | Costo Output · Costo di generazione stimato · Stima solo a fini di confronto $0.2112 stima prima della generazione Questa stima non è un addebito aggiuntivo né una tariffa fissa per la generazione completata. |
Ailoot prenota un importo stimato prima di una richiesta. Dopo il risultato, addebita il costo finale in base all’utilizzo misurato. Per lo streaming, l’addebito usa il record finale di utilizzo. Come funzionano la prenotazione e l’addebito finale →
Esempi di richieste
Ailoot Ultra · Generazione video
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
cat > request.json <<'JSON_REQUEST'
{"model":"doubao-seedance-1-0-pro-250528","content":[{"type":"text","text":"女孩抱着狐狸,女孩睁开眼,温柔地看向镜头,狐狸友善地抱着,镜头缓缓拉出,女孩的头发被风吹动"}],"resolution":"480p","ratio":"1:1","duration":5,"service_tier":"default","seed":-1,"camerafixed":false,"watermark":false,"execution_expires_after":172800}
JSON_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_POLL'
import json
from pathlib import Path
from urllib.parse import quote,urljoin,urlsplit
r=json.loads(Path("result.json").read_text())
i=r.get("id")
if not isinstance(i,str) or not i.startswith("native302_"):raise SystemExit("Keep original response/headers/id; do not resubmit creation.")
u=urljoin("https://api.ailoot.ai",r.get("polling_url") or "/v1/videos/"+quote(i,safe=""))
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or not p.path.startswith("/v1/videos/"):raise SystemExit("Use actual Ailoot lookup path.")
Path("poll-url.txt").write_text(u)
PY_POLL
curl --fail-with-body --silent --show-error "$(cat poll-url.txt)" -H "Authorization: Bearer $AILOOT_API_KEY" -D status-headers.txt -o status.json
set -eu
python3 - <<'PY_ASSETS'
import json
from pathlib import Path
from urllib.parse import urlsplit
r=json.loads(Path("status.json").read_text())
if r.get("status")!="succeeded":raise SystemExit("Poll same original job until an owned result is returned.")
u=r.get("content",{}).get("video_url")
urls=[u] if isinstance(u,str) else u
if not isinstance(urls,list) or not urls:raise SystemExit("No completed video URL.")
for u in urls:
if not isinstance(u,str):raise SystemExit("Invalid returned URL.")
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or not p.path.startswith("/v1/media/assets/") or not p.path.endswith("/content") or not p.query:raise SystemExit("Wait for actual Ailoot-owned signed result.")
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_ASSETS
index=0
while IFS= read -r asset_url; do
curl --fail-with-body --silent --show-error "$asset_url" -o "video-${index}.bin"
index=$((index + 1))
done < asset-urls.txt
Ricevi e salva i risultati
Ailoot Ultra · Generazione video
JSON nativo con id/polling_url pubblici. Dopo la pubblicazione content.video_url contiene uno o più URL firmati di proprietà di Ailoot; prima della pubblicazione gli URL dei risultati selezionati sono vuoti.
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Conserva tutti i risultati completati
Salva ogni video completato o file restituito; recupera ogni URL di risorsa effettivamente restituito.
Conserva ogni URL effettivo in content.video_url; index deve identificare un risultato reale restituito.
Se occorre verificare la risposta originale
Conserva risposta, intestazioni e id originali e interroga periodicamente quell'operazione; non inviare mai nuovamente una creazione dall'esito sconosciuto.
Campi della risposta
| Campo | Tipo |
|---|---|
Campoid | Tipostring |
Campoprovider_task_id | Tipostring |
Campopolling_url | Tipostring |
Campostatus | Tipostring when supplied |
Campocontent.video_url | Tipostring|string[] |
Campousage | Tipoobject when supplied |
Errori e passaggi successivi
| Risposta | Condizione | Passaggio successivo |
|---|---|---|
Risposta400 · invalid_request_error | CondizioneJSON, modello, tipi dei campi obbligatori o indice del contenuto non validi. | Passaggio successivo |
Risposta401 · authentication_error | CondizioneChiave API Ailoot non valida. | Passaggio successivo |
Risposta404 · not_found_error | CondizioneAttività o risultato assente oppure non appartenente allo stesso utente, alla stessa chiave API o allo stesso gruppo. | Passaggio successivo |
Risposta502 · result_pending_check | CondizioneInvio o stato originale incompleto; conserva l'ID originale e non inviare nuovamente la richiesta. | Passaggio successivo |
Risposta503 · result_pending_check | CondizioneIl contenuto multimediale, la rotta o il conguaglio dell'addebito originale è in verifica; prosegui con l'operazione originale. | Passaggio successivo |
Alias
Alias del modello
Ailoot Ultra doubao-seedance-1-0-pro-250528
Alias dei percorsi dei metodi
/v1/videos/generations
ID di chiamata correlati
FAQ · ByteDance: Seedance 1.0 Pro
- Quali input e risultati sono disponibili?
POST /v1/videos·doubao-seedance-1-0-pro-250528:text,image→video- Quali campi usa la richiesta?
POST /v1/videos·doubao-seedance-1-0-pro-250528:model,content,duration,resolution,ratio,service_tier,seed,camerafixed,watermark,execution_expires_after- Quali limiti si applicano?
POST /v1/videos·doubao-seedance-1-0-pro-250528:duration.minimum:2;duration.maximum:12;seed.minimum:-1;seed.maximum:4294967295;execution_expires_after.minimum:3600;execution_expires_after.maximum:259200