APIMaster.ai

API di Generazione Video Seedance 2.0 Mini

Parametri Seedance 2.0 Mini, media di riferimento, task asincroni, download autenticati e fatturazione per durata su APIMaster.

Generazione video Seedance 2.0 Mini

Utilizza seedance-2.0-mini per generazione testo-a-video, immagine-a-video, generazione del primo/ultimo fotogramma e riferimenti video o audio. Mini 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. Conserva 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-mini
prompt string Obbligatorio APIMaster non impone un limite di lunghezza specifico del modello per il prompt. Descrivi il soggetto, il movimento, la scena, la telecamera e l'audio desiderato; prompt concisi sono più facili da controllare.
duration integer 5 Lunghezza 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 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 regole dei ruoli sotto.
video_urls string[] Omesso Fino a 3 video di riferimento, con una durata totale fatturabile in input di al massimo 15 secondi. Vedi requisiti del materiale.
audio_urls string[] Omesso Fino a 3 file audio di riferimento, durata combinata al massimo 15 secondi. Richiede immagini o video di riferimento.
return_last_frame boolean false Al completamento con successo, restituisce un URL di download APIMaster autenticato per l'ultimo fotogramma quando il risultato include un ultimo fotogramma.
nsfw_check boolean false Richiede moderazione del contenuto testo/immagine prima della generazione. Video e audio non sono inclusi in questa passata di moderazione.
tools object[] Omesso Dichiarazione strumento di ricerca: [{"type":"web_search"}].

La generazione di bozze e l'aggiornamento di 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 su adaptive e ometti video_urls e audio_urls. Usa image_with_roles per ruoli espliciti; non passare anche image_urls.

{
  "model": "seedance-2.0-mini",
  "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 usando 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-mini" 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 e cancellazione. Gli endpoint di caricamento e gestione asset sono condivisi; i limiti di generazione su questa pagina si applicano a Mini. 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-mini",
    "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 task prima di reinviare; un altro invio riuscito crea un task fatturabile separato.

Riferimenti video e audio

{
  "model": "seedance-2.0-mini",
  "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":138,
    "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 Python completo

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-mini",
    "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 della risoluzione corrispondente.
  • 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 video di riferimento. Le immagini e l'audio non aggiungono secondi di video di riferimento. L'audio generato non introduce un livello separato per suono/silenzio per questi quattro prezzi configurati.

L'invio riserva la durata di output richiesta, più la durata verificata del video di input quando presente. Se la durata di output è omessa, vengono riservati 5 secondi di output. Il task mantiene la tariffa al momento dell'invio; il completamento riconcilia la durata effettiva. Una generazione fallita rimborsa l'addebito per il task 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 a video/audio.
Impossibile ispezionare il video di riferimento Fornisci un file 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 per 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 per formato/contenuto Leggi il error.message del task fallito, controlla i formati e i requisiti del materiale e sostituisci la fonte.
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 task video né addebitano la generazione. I task accettati possono comunque fallire in modo asincrono; controlla lo stato finale del task prima di utilizzare un risultato.

Vedi anche: Panoramica sulla generazione video, Seedance 2.0, Seedance 2.0 Fast e Seedance 2.5.