API di Generazione Video Seedance 2.0 Fast
Parametri Seedance 2.0 Fast, media di riferimento, task asincroni, download autenticati e fatturazione per durata su APIMaster.
Generazione video Seedance 2.0 Fast
Utilizza seedance-2.0-fast per la generazione da testo a video, da immagine a video, del primo/ultimo fotogramma e per riferimenti video o audio. Fast supporta 480p e 720p, con durate di output da 4 a 15 secondi.
Per la generazione del primo/ultimo fotogramma, imposta esplicitamente
aspect_ratio: "adaptive". L'audio di riferimento deve accompagnare un'immagine o un video. Mantieni la tua chiave API APIMaster sul tuo server.
Endpoint e autenticazione
URL di base: https://apimaster.ai/v1. Invia Authorization: Bearer YOUR_API_KEY durante l'invio, la query e il download.
| Operazione | Metodo e percorso |
|---|---|
| Crea video | POST /v1/videos/generations |
| Query risultato compatibile | GET /v1/video/generations/{task_id} |
| Query risultato in stile OpenAI | GET /v1/videos/{task_id} |
| Scarica video | GET /v1/videos/{task_id}/content |
| Scarica ultimo fotogramma richiesto | GET /v1/videos/{task_id}/last-frame |
Utilizza il task_id pubblico restituito da APIMaster. I task video e i task di revisione media sono risorse diverse: utilizza gli endpoint di query video sopra indicati per i video. Una richiesta accettata crea un task asincrono; il successo HTTP non significa che il video sia terminato.
Parametri
| Campo | Tipo | Obbligatorio / default | Descrizione |
|---|---|---|---|
model |
string | Obbligatorio | seedance-2.0-fast |
prompt |
string | Obbligatorio | Fino a 4000 caratteri. Descrivi il soggetto, il movimento, la scena, la telecamera e l'audio desiderato; prompt concisi sono più facili da controllare. |
duration |
integer | 5 |
Lunghezza dell'output, 4–15 secondi. -1 non è supportato. |
resolution |
string | 720p |
480p o 720p; 1080p e 4k non sono supportati. |
aspect_ratio |
string | 16:9 |
16:9, 9:16, 1:1, 4:3, 3:4, 21:9, o adaptive. |
ratio |
string | Uguale a aspect_ratio |
Alias APIMaster. Se compaiono entrambi, i loro valori devono corrispondere. |
size |
string | Uguale a aspect_ratio |
Un rapporto come 16:9 o adaptive. Preferisci aspect_ratio e resolution per esprimere le due dimensioni separatamente. Specifiche in conflitto restituiscono 400. |
seed |
integer | Omesso | Controlla la variazione; seed corrispondenti non garantiscono un output identico. |
generate_audio |
boolean | true |
Genera audio di accompagnamento; usa false per un output silenzioso. |
image_urls |
string[] | Omesso | Fino a 9 immagini di riferimento. URL pubblici di immagini o ID asset:// APIMaster approvati. |
image_with_roles |
object[] | Omesso | Oggetti immagine con url e role; non possono apparire insieme a image_urls. Vedi le regole dei ruoli sotto. |
video_urls |
string[] | Omesso | Fino a 3 video di riferimento, con una durata totale fatturabile dell'input di al massimo 15 secondi. Vedi i requisiti del materiale. |
audio_urls |
string[] | Omesso | Fino a 3 file audio di riferimento, durata combinata al massimo 15 secondi. Richiede riferimenti a immagini o video. |
return_last_frame |
boolean | false |
Al completamento con successo, restituisce un URL di download autenticato APIMaster per l'ultimo fotogramma quando il risultato include un ultimo fotogramma. |
nsfw_check |
boolean | false |
Richiede la moderazione del contenuto testo/immagine prima della generazione. Video e audio non sono inclusi in questo passaggio di moderazione. |
tools |
object[] | Omesso | Dichiarazione dello strumento di ricerca: [{"type":"web_search"}]. |
La generazione di bozze e l'aggiornamento delle bozze sono esclusivi di Seedance 2.5. Non passare draft: true o draft_task_id a questo modello.
Materiali di riferimento
Fornisci URL HTTPS pubblicamente accessibili, o ID approvati dalla tua libreria multimediale APIMaster. I file dietro pagine di login o che richiedono i tuoi header di autorizzazione non possono essere recuperati. Il caricamento riuscito di un'immagine non implica l'approvazione del contenuto o la conformità a ogni requisito del modello.
| Materiale | Requisiti |
|---|---|
| Immagini di riferimento | Fino a 9; utilizzare immagini JPEG/PNG RGB leggibili. L'endpoint di caricamento immagini di APIMaster ha il proprio limite di 20 MiB e accetta JPEG, PNG, GIF e WebP. |
| Video di riferimento | Fino a 3; video MP4/MOV, H.264/H.265; audio AAC/MP3 quando presente. Utilizzare video di riferimento di 480p–720p. La durata combinata dei riferimenti deve rientrare nei 15 secondi fatturabili. APIMaster verifica la durata dei file MP4/MOV accessibili prima di addebitare; le durate dei clip di input vengono arrotondate per eccesso ai secondi interi per questo controllo e la fatturazione. |
| Audio di riferimento | Fino a 3; WAV o MP3, al massimo 20 MB per file, durata combinata al massimo 15 secondi. Deve sempre accompagnare un'immagine o un video di riferimento. |
Usa immagini chiare con dettagli sufficienti, evita file corrotti o incompleti, e mantieni il movimento del video di riferimento coerente con il tuo prompt. I media possono fallire una revisione asincrona del formato o del contenuto anche quando l'invio viene accettato.
Ruoli delle immagini
role |
Significato |
|---|---|
first_frame |
Fotogramma iniziale; al massimo uno |
last_frame |
Fotogramma finale; al massimo uno, e richiede un primo fotogramma |
reference_image |
Immagine di riferimento, inclusi asset di personaggi approvati |
Per task di primo/ultimo fotogramma, imposta aspect_ratio a adaptive e ometti video_urls e audio_urls. Usa image_with_roles per ruoli espliciti; non passare anche image_urls.
{
"model": "seedance-2.0-fast",
"prompt": "A paper boat drifts gently from the starting composition to the ending composition",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "adaptive",
"image_with_roles": [
{"url": "https://your-storage.example/start.png", "role": "first_frame"},
{"url": "https://your-storage.example/end.png", "role": "last_frame"}
],
"generate_audio": false
}
Caricamenti e libreria multimediale
Carica un'immagine locale con POST /v1/uploads/images utilizzando il campo multipart file e l'autorizzazione Bearer. Il url di primo livello restituito può essere usato come input immagine pubblica.
curl "https://apimaster.ai/v1/uploads/images" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@reference.png"
Per materiali riutilizzabili o di personaggi, crea un gruppo con POST /v1/seedance2/private-avatar/groups, invia materiali con POST /v1/seedance2/private-avatar/assets, interroga la revisione con GET /v1/tasks/{asset_task_id}, e usa solo asset Active come asset://{asset_id}. Queste risorse appartengono al tuo account. Specifica model: "seedance-2.0-fast" esplicitamente. Gli ID asset da un'altra piattaforma o account non possono essere usati qui.
Vedi il flusso di lavoro della libreria multimediale per creazione, invio, revisione, fallimenti parziali ed eliminazione. Gli endpoint di caricamento e gestione asset sono condivisi; i limiti di generazione in questa pagina si applicano a Fast. Una revisione fallita potrebbe non restituire un motivo dettagliato; usa materiale chiaro e conforme in un formato supportato e invia una nuova revisione. Non ricreare ripetutamente un task mentre una revisione esistente è ancora in elaborazione.
Invia un video
curl "https://apimaster.ai/v1/videos/generations" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model":"seedance-2.0-fast",
"prompt":"A small paper boat on calm water at sunrise, gentle tracking shot",
"duration":5,
"resolution":"720p",
"aspect_ratio":"16:9",
"generate_audio":true,
"return_last_frame":true
}'
Risposta di creazione:
{"code":200,"data":[{"status":"submitted","task_id":"task_PUBLIC_VIDEO_ID"}]}
Un timeout di invio è ambiguo: la richiesta potrebbe essere stata accettata. Controlla la tua cronologia dei task prima di reinviare; un altro invio riuscito crea un task fatturabile separato.
Riferimenti video e audio
{
"model": "seedance-2.0-fast",
"prompt": "Follow the reference motion and keep the scene consistent with the image",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "adaptive",
"image_urls": ["https://your-storage.example/reference.png"],
"video_urls": ["https://your-storage.example/reference.mp4"],
"audio_urls": ["https://your-storage.example/reference.mp3"],
"generate_audio": true
}
Interroga e scarica
Interroga ogni 3–5 secondi. Fermati quando ha successo o fallisce.
curl "https://apimaster.ai/v1/video/generations/task_PUBLIC_VIDEO_ID" \
-H "Authorization: Bearer YOUR_API_KEY"
Interrogazione di successo compatibile:
{
"code":"success",
"message":"",
"data":{
"error":null,
"format":"mp4",
"metadata":null,
"status":"succeeded",
"task_id":"task_PUBLIC_VIDEO_ID",
"url":"https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID/content",
"actual_time":118,
"last_frame_url":"https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID/last-frame"
}
}
L'esempio include campi di completamento opzionali. actual_time è il tempo trascorso dall'invio al completamento in secondi, non la durata video fatturabile. last_frame_url viene omesso se un ultimo fotogramma non è stato richiesto o non è disponibile. Le attività fallite non includono i campi del tempo trascorso o dell'ultimo fotogramma, riservati ai soli successi.
Interrogazione in stile OpenAI:
curl "https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID" \
-H "Authorization: Bearer YOUR_API_KEY"
| Significato | data.status compatibile |
status stile OpenAI |
|---|---|---|
| In attesa | queued |
queued |
| In generazione | processing |
in_progress |
| Successo | succeeded |
completed |
| Fallimento | failed |
failed |
L'oggetto in stile OpenAI utilizza id per l'ID pubblico dell'attività e url per l'URL di download del video. I campi opzionali actual_time e last_frame_url compaiono al livello principale. In caso di fallimento, leggere error.message nel corrispondente oggetto risultato. Le risposte non includono campi monetari.
Scarica con la stessa chiave API dell'account. Aprire un URL risultato senza autorizzazione non è sufficiente. Salva prontamente l'output.
curl -L "https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID/content" \
-H "Authorization: Bearer YOUR_API_KEY" -o output.mp4
curl -L "https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID/last-frame" \
-H "Authorization: Bearer YOUR_API_KEY" -o last-frame.jpg
Flusso di lavoro completo in Python
import os
import time
import requests
base = "https://apimaster.ai/v1"
headers = {"Authorization": f"Bearer {os.environ['APIMASTER_API_KEY']}"}
response = requests.post(base + "/videos/generations", headers=headers, json={
"model": "seedance-2.0-fast",
"prompt": "A small paper boat on calm water at sunrise",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "16:9",
"generate_audio": True,
"return_last_frame": True,
}, timeout=90)
response.raise_for_status()
task_id = response.json()["data"][0]["task_id"]
for _ in range(240):
response = requests.get(base + "/video/generations/" + task_id,
headers=headers, timeout=30)
response.raise_for_status()
task = response.json()["data"]
if task["status"] == "failed":
raise RuntimeError((task.get("error") or {}).get("message", "Video failed"))
if task["status"] == "succeeded":
print("Elapsed seconds:", task.get("actual_time"))
for field, filename in [("url", "output.mp4"), ("last_frame_url", "last-frame.jpg")]:
if task.get(field):
with requests.get(task[field], headers=headers, stream=True, timeout=120) as result:
result.raise_for_status()
with open(filename, "wb") as out:
for chunk in result.iter_content(1024 * 1024):
out.write(chunk)
break
time.sleep(5)
else:
raise TimeoutError("Task still processing; query the same task_id later")
Fatturazione per durata
Ci sono quattro livelli: 480P, 720P, 480P-input e 720P-input. Un livello etichettato come "video caricati" significa che la richiesta contiene un input di video di riferimento. Seleziona il livello di input per la risoluzione di output richiesta anche se sono presenti anche riferimenti a immagini/audio.
- Senza video di riferimento: secondi di video generati × il prezzo unitario corrispondente alla risoluzione.
- Con video di riferimento: (secondi totali del video di riferimento + secondi di video generati) × il prezzo unitario del livello di input corrispondente.
- Il prezzo unitario base configurato viene moltiplicato per i coefficienti applicabili del canale e dell'account/gruppo per ottenere il prezzo unitario finale. Controlla la scheda del tuo modello e i record di consumo del portafoglio per il prezzo applicabile.
Ad esempio, un video di riferimento di 4 secondi e un output di 5 secondi utilizzano 9 secondi fatturabili al livello di input. Il prezzo unitario del livello di input può differire dal livello regolare; non calcolare solo la durata dell'output o applicare il livello regolare ai riferimenti video. Immagini e audio non aggiungono secondi di video di riferimento. L'audio generato non introduce un livello separato sonoro/silenzioso per questi quattro prezzi configurati.
L'invio riserva la durata di output richiesta, più la durata verificata del video di input quando presente. Una durata di output omessa riserva 5 secondi di output. Il compito mantiene la tariffa al momento dell'invio; il completamento riconcilia la durata effettiva. Una generazione fallita rimborsa l'addebito del compito video.
Errori e risoluzione dei problemi
Le richieste non valide restituiscono un errore HTTP. Leggi il messaggio di errore JSON così come il codice di stato. La convalida dei parametri utilizza il wrapper di errore di APIMaster, ad esempio:
{"code":"invalid_request","message":"First/last-frame tasks require adaptive aspect_ratio","data":null}
| Problema | Azione |
|---|---|
| Risoluzione / durata non supportata | Scegli 480p o 720p e una durata intera da 4 a 15. |
| Rapporto o dimensioni in conflitto | Usa aspect_ratio, ratio, size e resolution coerenti; preferibilmente mantieni solo la coppia rapporto/risoluzione esplicita. |
| Vincoli sul primo/ultimo fotogramma | Usa adaptive, al massimo uno per ogni ruolo, e ometti i riferimenti video/audio. |
| Impossibile ispezionare il video di riferimento | Fornisci un MP4/MOV completo accessibile con una durata valida. |
| Audio di riferimento senza immagine/video | Aggiungi riferimenti a immagini/video o rimuovi il riferimento audio. |
| Rifiuto da moderazione dei contenuti | Modifica il testo o l'immagine e invia una nuova richiesta. Un fallimento del servizio di moderazione potrebbe permettere alla generazione di continuare; questa non è una garanzia assoluta di sicurezza. |
FormatUnsupported / Rifiuto asincrono di formato/contenuto |
Leggi il error.message del compito fallito, controlla i formati e i requisiti del materiale e sostituisci la sorgente. |
401 |
Fornisci una chiave API Bearer valida. |
| Saldo insufficiente | Ricarica o usa una chiave con quota sufficiente. |
429 / errore temporaneo del servizio |
Attendi e riprova con backoff; evita invii duplicati dopo un timeout ambiguo. |
Le richieste sincrone con parametri non validi non creano compiti video né addebitano la generazione. I compiti accettati possono comunque fallire in modo asincrono; controlla lo stato finale del compito prima di utilizzare un risultato.
Vedi anche: Panoramica sulla generazione video, Seedance 2.0, Seedance 2.0 Mini e Seedance 2.5.
