Sari la documentație
Pe această pagină

Seedance 2.5

Generează videoclipuri cu Seedance 2.5 folosind text, primul și ultimul cadru sau referințe multimodale. Această pagină acoperă întregul flux, de la solicitare până la rezultat.

ID model API: seedance-2-5

Generarea este asincronă. Salvează parametrul taskId returnat la crearea sarcinii, apoi interoghează statusul acesteia sau primește un webhook.

Funcționalități

FuncțieValori acceptate
Rezoluție de ieșire480p · 720p · 1080p
Durată de ieșire4–30 secunde
Raport de aspect16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive
Imagini de referințăMaxim 30 imagini
Videoclipuri de referințăMaxim 10 videoclipuri
Fișiere audio de referințăMaxim 10 fișiere audio
Toate referințele combinateMaxim 50 fișiere de referință în total
Durată totală per grup video/audio30 secunde
seedNeacceptat
Se acceptă de asemenea duration=-1 în modul referință-la-video; consultă secțiunile de editare video și tarife de mai jos. Modul image-to-video acceptă doar valoarea adaptive; omite acest câmp sau setează-l pe adaptive.

Tarife și credite

Generarea video este tarifată în credite, în funcție de durata facturabilă exprimată în secunde. În absența unui videoclip de intrare, durata facturabilă este egală cu durata videoclipului generat; în cazul utilizării unui videoclip de intrare, durata facturabilă include și durata videoclipului de referință.

Tabelul de mai jos prezintă creditele tarifate pe secundă, nu costul total al unei sarcini. Tariful depinde de model, de rezoluția de redare și de utilizarea videoclipurilor de referință în modul de conversie referință-video. Consultați formulele și exemplele de sub tabel pentru calculul costului total.

Rezoluție de ieșireFără intrare videoCu intrare video
480p10 credite/secundă6 credite/secundă
720p20 credite/secundă12 credite/secundă
1080p30 credite/secundă20 credite/secundă
  • Fără intrare video: secunde de ieșire × tariful fără video.
  • Cu intrare video: (secunde de ieșire + secunde măsurate ale videoclipului de referință) × tariful cu video. Serverul măsoară durata totală a videoclipului de referință și o rotunjește în plus la secunde întregi înainte de facturare.
  • Referințele de tip imagine sau exclusiv audio folosesc tariful fără video. Tariful de facturare cu video de referință se aplică doar în modul referință-la-video, atunci când sunt furnizate referințe video.

Exemple de calcul al costurilor

Generare text-la-video de 5 secunde la 720p: 5 × 20 = 100 credite.

Generare de 5 secunde la 720p cu un videoclip de referință de 5 secunde: (5 + 5) × 12 = 120 credite.

Aceste credite sunt deduse în avans la crearea sarcinii. Dacă sarcina este finalizată cu succes, aceasta este suma finală reținută; costul nu va fi majorat și nu se vor acorda rambursări parțiale în funcție de durata efectivă a videoclipului generat. Sarcinile eșuate sau cele care au expirat intră în procesul de rambursare.

Creditele sunt rezervate la trimiterea solicitării și sunt încasate doar în caz de succes. Sarcinile eșuate sau care au expirat intră în fluxul de rambursare. Statusul de facturare refund_failed înseamnă că rambursarea nu s-a putut finaliza; verifică jurnalele API sau contactează echipa de asistență.

Cum se tarifează creditele când durata este de -1

Când durata este setată la -1, durata finală a videoclipului nu este fixă, fiind determinată direct de model.

În majoritatea cazurilor, vă recomandăm să setați durata la lungimea exactă a videoclipului de care aveți nevoie, în loc de -1. Se recomandă utilizarea valorii -1 exclusiv pentru editarea video, nu și pentru alte scenarii de generare video.

Materiale de referințăCum se calculează costulExemplu
Cu videoclipuri de referințăSe adună duratele tuturor videoclipurilor de referință, iar totalul se rotunjește în plus la următoarea secundă întreagă (notată cu T). Costul este (T + T) × tariful aplicabil cu video: un T reprezintă durata estimată a videoclipului generat, iar celălalt T reprezintă durata videoclipurilor de referință furnizate.720p cu un videoclip de referință de 5 secunde: (5 + 5) × 12 = 120 credite.
Fără videoclipuri de referință (doar imagini sau audio)Se folosește o durată estimată de 30 de secunde pentru videoclipul generat. Costul este 30 × tariful aplicabil fără video.720p fără videoclipuri de referință: 30 × 20 = 600 credite.

Autentificare

Creează o cheie API în panoul de control. Cheia completă este afișată o singură dată. Păstreaz-o în siguranță pe serverul tău și trimite-o ca token Bearer la fiecare solicitare.

URL de bază

https://api.seevio.ai
Authorization: Bearer sk_live_your_api_key
Content-Type: application/json

Setează variabila de mediu SEEVIO_API_KEY înainte de a rula aceste exemple. Exemplele în JavaScript rulează pe serverul tău cu Node.js; exemplele în Python utilizează pachetul requests.

Ghid rapid

Trimite această solicitare minimă, salvează valoarea taskId returnată, apoi folosește exemplul de interogare a sarcinii de mai jos. Valoarea creditelor din răspunsul de creare reprezintă suma rezervată.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "A cat surfing at sunset, cinematic lighting",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "text-to-video",
    "aspect_ratio": "16:9",
    "generate_audio": true
  }
}'

Exemplu de răspuns pentru crearea sarcinii

După acceptarea cererii de mai sus, API-ul returnează acest răspuns JSON. Valoarea taskId este identificatorul de sarcină utilizat pentru interogările ulterioare de stare, iar credits reprezintă numărul de credite rezervate pentru această sarcină. Acest răspuns confirmă crearea sarcinii, nu și faptul că videoclipul este gata. Trebuie să interogați periodic starea sarcinii (polling) sau să folosiți un Webhook pentru a primi rezultatele video.

{
  "taskId": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "credits": 100
}

Creează o sarcină

POST https://api.seevio.ai/v1/videos/generations

Trimite un obiect JSON care să conțină model și input, plus un parametru opțional callback_url. Specifică întotdeauna ID-ul exact al modelului indicat pe această pagină; omiterea parametrului model va selecta automat seedance-2-0.

Corp solicitare

CâmpTipObligatoriuDescriere și constrângeri
model
stringDa

ID model. Pentru a utiliza Seedance 2.5, setează acest câmp la seedance-2-5.

callback_url
stringNu

Endpoint HTTPS public pentru callback-urile de tip POST în caz de finalizare sau eșec. Rețelele private și localhost nu sunt permise.

Exemplu: https://example.com/webhooks/seevio
input
objectDa

Setările de generare. Trebuie să conțină un prompt completat.

Parametri de intrare

Proprietatea image_urls este obligatorie în modul image-to-video. Modul reference-to-video necesită cel puțin o referință validă în image_urls, video_urls sau audio_urls.

Furnizați image_urls, video_urls și audio_urls ca liste de șiruri URL (string[]). Fiecare URL furnizat trebuie să fie accesibil public prin HTTPS, inclusiv fișierele media ignorate de modul selectat.

CâmpTipObligatoriuValoare implicităDescriere și constrângeri
input.prompt
stringDa

Obligatoriu în toate modurile de utilizare, inclusiv în cele care conțin doar referințe media. Maximum 10.000 de caractere înainte de trunchiere; trebuie să conțină text, nu doar spații.

Exemplu: A cat surfing at sunset
input.generation_type
stringNutext-to-video

text-to-video folosește doar promptul; image-to-video folosește 1–2 imagini; reference-to-video folosește referințe de tip imagine, video și/sau audio.

Valori acceptate
text-to-video | image-to-video | reference-to-video
input.image_urls
string[]Condiționat[]

image-to-video: 1 imagine pentru primul cadru, sau 2 imagini ordonate pentru primul și ultimul cadru. reference-to-video: până la 30 imagini. Ignorat în modul text-to-video.

Exemplu: ["https://example.com/first-frame.jpg"]
input.video_urls
string[]Condiționat[]

Transmis doar în modul reference-to-video; până la 10 videoclipuri și în limita a 30 secunde combinate. Ignorat în alte moduri.

Exemplu: ["https://example.com/source.mp4"]
input.audio_urls
string[]Condiționat[]

Transmis doar în modul reference-to-video; până la 10 fișiere audio și în limita a 30 secunde combinate. Ignorat în alte moduri.

Exemplu: ["https://example.com/music.mp3"]
input.duration
integerNu5

Număr întreg reprezentând durata de ieșire, de la 4 la 30 secunde. Se acceptă și valoarea -1, însă doar în modul reference-to-video. Folosește-o cu un videoclip sursă pentru editare; facturarea respectă regula specială de mai sus.

Valori acceptate
-1 | 4–30
Exemplu: 5
input.aspect_ratio
stringNuadaptive

Raportul de aspect al videoclipului generat. Valoarea adaptive permite modelului să determine raportul optim. Modul image-to-video acceptă doar valoarea adaptive; omite acest câmp sau setează-l pe adaptive.

Valori acceptate
16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive
Exemplu: adaptive
input.resolution
stringNu720p

Folosește una dintre rezoluțiile de ieșire acceptate și enumerate aici.

Valori acceptate
480p | 720p | 1080p
Exemplu: 720p
input.generate_audio
booleanNutrue

Solicită generarea unui sunet sincronizat.

Valori acceptate
true | false
Exemplu: true
input.watermark
booleanNufalse

Solicită aplicarea unui filigran AI pe videoclipul generat.

Valori acceptate
true | false
Exemplu: false
input.web_search
booleanNufalse

Permite căutarea pe web, atunci când această funcție este susținută de model.

Valori acceptate
true | false
Exemplu: false
input.return_last_frame
booleanNufalse

Solicită ultimul cadru generat. Rezultatul interogării va conține adresa în data.last_frame_url când cadrul este disponibil; în caz contrar, valoarea va fi null.

Valori acceptate
true | false
Exemplu: true

Câmpurile booleene trebuie să fie true sau false în format JSON, nu stringuri sau numere.

Răspuns creare

Codul HTTP 200 returnează taskId (string) și credits (număr). Acest lucru confirmă crearea sarcinii, nu și finalizarea ei. Suma de mai jos corespunde ghidului rapid pentru un clip de 5 secunde la 720p.

{
  "taskId": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "credits": 100
}

Moduri de generare și exemple

Înlocuiește URL-urile media de tip example.com cu propriile tale fișiere accesibile public prin HTTPS. URL-urile din exemplu au scop demonstrativ pentru structura solicitării și nu reprezintă resurse descărcabile.

Text în video

Generează pornind de la un prompt text. URL-urile media nu sunt transmise în acest mod.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "A cat surfing at sunset, cinematic lighting",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "text-to-video",
    "aspect_ratio": "16:9",
    "generate_audio": true
  }
}'

Primul cadru

Furnizează o imagine ca prim cadru, apoi descrie mișcarea dorită în prompt.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "A cat surfing at sunset, cinematic lighting",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "image-to-video",
    "image_urls": [
      "https://example.com/first-frame.jpg"
    ],
    "aspect_ratio": "adaptive"
  }
}'

Primul și ultimul cadru

Furnizează două URL-uri de imagini în ordine: mai întâi primul cadru, apoi ultimul cadru. Acest exemplu solicită, de asemenea, ultimul cadru al videoclipului generat.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "A cat surfing at sunset, cinematic lighting",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "image-to-video",
    "image_urls": [
      "https://example.com/first-frame.jpg",
      "https://example.com/last-frame.jpg"
    ],
    "aspect_ratio": "adaptive",
    "return_last_frame": true
  }
}'

Referință multimodală

Combină referințe de tip imagine, video și audio. Promptul text rămâne obligatoriu. Introducerea unui videoclip de referință modifică formula de facturare.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "Follow the reference camera movement and keep the character consistent. Use the audio for ambience.",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "reference-to-video",
    "image_urls": [
      "https://example.com/character.jpg"
    ],
    "video_urls": [
      "https://example.com/camera.mp4"
    ],
    "audio_urls": [
      "https://example.com/ambience.mp3"
    ],
    "aspect_ratio": "adaptive"
  }
}'

Referință audio

Folosește audio ca singur tip de referință, alături de un prompt text obligatoriu care descrie videoclipul dorit.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "Create a coastal sunrise scene matching the rhythm of this audio.",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "reference-to-video",
    "audio_urls": [
      "https://example.com/music.mp3"
    ]
  }
}'

Editare video

Pentru editarea video în Seedance 2.5, durata trebuie setată la -1, iar parametrul aspect_ratio trebuie setat pe adaptive. Ambele setări sunt obligatorii; în caz contrar, generarea va eșua.

Descrie modificările dorite și furnizează videoclipul sursă. Setează duration=-1 și folosește raportul de aspect adaptive. Folosește un clip sursă de cel puțin 4 secunde pentru acest flux de lucru. Regula de facturare pentru duration=-1 este prezentată mai sus.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "Edit the source video: change the character’s coat to blue and preserve the camera movement.",
    "duration": -1,
    "resolution": "720p",
    "generation_type": "reference-to-video",
    "video_urls": [
      "https://example.com/source.mp4"
    ],
    "aspect_ratio": "adaptive"
  }
}'

Extindere video

Pentru extensia video Seedance 2.5, parametrul aspect_ratio trebuie setat pe adaptive; în caz contrar, generarea poate eșua. Setați parametrul duration în mod normal, la lungimea dorită a videoclipului rezultat, în intervalul acceptat; nu este necesar să folosiți valoarea -1.

Descrie cum ar trebui să continue videoclipul sursă. Folosește raportul de aspect adaptive și setează o durată normală de ieșire, în limitele permise de model.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "Continue the camera movement from the source video, revealing a forest clearing.",
    "duration": 8,
    "resolution": "720p",
    "generation_type": "reference-to-video",
    "video_urls": [
      "https://example.com/source.mp4"
    ],
    "aspect_ratio": "adaptive"
  }
}'

Interoghează o sarcină

GET https://api.seevio.ai/v1/tasks/{taskId}

Înlocuiește ID-ul din exemplu cu valoarea taskId returnată la crearea sarcinii. Interogările returnează doar sarcinile asociate utilizatorului cheii API; ID-urile inaccesibile sau necunoscute returnează HTTP 404.

Ca punct de pornire, interoghează la fiecare 10–20 secunde, redu frecvența în caz de HTTP 429 și oprește interogarea când statusul devine completed sau failed. Pentru mediile de producție, recomandăm utilizarea webhookurilor. Fiecare exemplu de cod de mai jos efectuează o singură interogare.

curl --fail-with-body https://api.seevio.ai/v1/tasks/3f2aK9mR7xQp4TnZ8bLc6YwH \
  -H "Authorization: Bearer $SEEVIO_API_KEY"
StatusDescriere și constrângeri
queuedAcceptat și în așteptare pentru procesare.
generatingGenerarea este în curs de desfășurare.
completedSucces. Descarcă elementele din data.results înainte de expirare.
failedEșec definitiv. Inspectează failed_reason și billing_status.
CâmpTipDescriere și constrângeri
idstring
Identificatorul sarcinii. Acesta reprezintă valoarea taskId din răspunsul de creare.
created_atnumber
Data creării sarcinii, exprimată în secunde Unix.
modelstring
ID-ul public al modelului utilizat pentru această sarcină.
billing_statusstring
statusul facturării: reserved, charged, refunded sau refund_failed.
creditsnumber
Credite rezervate pentru această sarcină. Această valoare este păstrată după o rambursare; inspectează billing_status pentru a determina rezultatul final al facturării.
failed_reasonstring | null
Motivul eșecului pentru sarcinile eșuate; în caz contrar, are valoarea null. Răspunsurile de interogare eșuate nu conțin obiectul data.
dataobject
Prezent în interogările sarcinilor care nu au eșuat. Conține detalii despre rezultat și procesare.
data.resultsstring[]
Array cu URL-urile videoclipurilor generate. Rămâne gol până la finalizare sau după ce videoclipul a expirat.
data.video_expires_atstring | null
Expirarea videoclipului ca timestamp ISO 8601 sau null înainte ca acesta să fie disponibil. Salvează rezultatul înainte de acest termen.
data.last_frame_urlstring | null
URL-ul ultimului cadru când este solicitat și disponibil, în caz contrar null.
data.processing_timenumber | null
Durata de procesare la furnizor în secunde, când este disponibilă, în caz contrar null.

Sarcină finalizată: răspuns la interogare cu rezultatele video

Atunci când interogarea returnează status=completed, generarea videoclipului s-a încheiat. Citiți URL-urile videoclipurilor din data.results și descărcați-le înainte de data.video_expires_at. billing_status=charged indică faptul că au fost debitate creditele rezervate.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1788652800,
  "model": "seedance-2-5",
  "status": "completed",
  "billing_status": "charged",
  "credits": 100,
  "failed_reason": null,
  "data": {
    "results": [
      "https://cdn.seevio.ai/api/videos/example.mp4"
    ],
    "video_expires_at": "2026-09-07T00:00:00Z",
    "last_frame_url": null,
    "processing_time": 48
  }
}

Sarcină eșuată: răspuns la interogare cu detalii despre eroare și facturare

Atunci când interogarea returnează status=failed, procesul de generare s-a încheiat fără succes. Consultați failed_reason pentru a afla cauza și billing_status pentru rezultatul rambursării. În acest exemplu, refunded înseamnă că toate creditele au fost returnate. Parametrul credits păstrează valoarea inițială rezervată, iar răspunsul nu include obiectul data.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1788652800,
  "model": "seedance-2-5",
  "status": "failed",
  "billing_status": "refunded",
  "credits": 100,
  "failed_reason": "provider_failed"
}

Webhookuri

Setează parametrul callback_url în solicitarea de creare pentru a primi un POST JSON atunci când sarcina se finalizează sau eșuează. Returnează un răspuns de tip 2xx în decurs de 15 secunde. Livrările eșuate vor fi reîncercate; procesează livrările repetate în mod idempotent pe baza ID-ului sarcinii.

Endpoint-ul dumneavoastră de callback trebuie să accepte solicitări de tip POST cu un corp de solicitare JSON (Content-Type: application/json).

Creează o sarcină cu callback

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "A cat surfing at sunset, cinematic lighting",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "text-to-video",
    "aspect_ratio": "16:9",
    "generate_audio": true
  },
  "callback_url": "https://example.com/webhooks/seevio"
}'

Payload-ul webhookului diferă de cel al interogării de sarcină: exclude proprietățile billing_status și credits; detaliile despre eșec se află în data.failed_reason și data.credits_refunded. Proprietatea created_at din webhook reprezintă momentul creării evenimentului în secunde Unix.

Sarcină finalizată: payload de callback reușit

Atunci când generarea reușește, callback-ul conține status=completed. Utilizați id pentru a identifica sarcina și data.results pentru a prelua URL-urile videoclipurilor. Descărcați și salvați rezultatele înainte de data.video_expires_at.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1788652800,
  "model": "seedance-2-5",
  "status": "completed",
  "data": {
    "results": [
      "https://cdn.seevio.ai/api/videos/example.mp4"
    ],
    "video_expires_at": "2026-09-07T00:00:00Z",
    "last_frame_url": null,
    "processing_time": 48
  }
}

Sarcină eșuată: payload de callback eșuat

Atunci când generarea eșuează, callback-ul conține status=failed. Utilizați id pentru a identifica sarcina, data.failed_reason pentru motivul eșecului și data.credits_refunded pentru numărul de credite returnate.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1788652800,
  "model": "seedance-2-5",
  "status": "failed",
  "data": {
    "failed_reason": "provider_failed",
    "credits_refunded": 100
  }
}

Exemplu de receptor

export async function POST(request: Request) {
  const callbackData = await request.json();

  if (callbackData.status === "completed") {
    const videoUrls = callbackData.data.results;
    // Save the video URLs and mark this task as completed in your application.
    console.log(callbackData.id, videoUrls);
  }

  if (callbackData.status === "failed") {
    const { failed_reason, credits_refunded } = callbackData.data;
    // Record the failure reason and refunded credits for this task.
    console.error(callbackData.id, failed_reason, credits_refunded);
  }

  return new Response(null, { status: 200 });
}

Acest exemplu de Next.js citește corpul JSON al callback-ului și gestionează direct sarcinile finalizate și cele eșuate. Adăugați persistență și deduplicare a ID-urilor de sarcini pentru aplicația dumneavoastră; puneți în coadă procesele lente înainte de a confirma callback-ul.

Cerințe și limitări media

  • Toate URL-urile pentru fișierele media și cele de callback trebuie să fie adrese HTTPS publice. Evită localhost, IP-urile private și fișierele care necesită cookie-uri sau autentificare. URL-urile pentru videoclipurile/fișierele audio de referință trebuie să returneze direct fluxul media.
  • În modul reference-to-video, furnizează cel puțin o referință, fără a depăși 30 imagini, 10 videoclipuri, 10 fișiere audio și în total maximum 50 elemente combinate. Durata video totală și durata audio totală trebuie să fie de maximum 30 secunde fiecare.
  • Modul text-to-video ignoră toate referințele media. Modul image-to-video transmite doar imaginile pentru primul/ultimul cadru și ignoră referințele video și audio. Folosește modul reference-to-video pentru a combina mai multe tipuri de fișiere media.
  • Fiecare videoclip și fișier audio de referință trebuie să aibă o durată cuprinsă între 2 și 30 de secunde. Pentru exemplele de editare video, folosește clipuri sursă de cel puțin 4 secunde.

Cerințe privind imaginile

  • Fiecare imagine trebuie să aibă o dimensiune mai mică de 30 MB.
  • Formate acceptate: jpeg, png, webp, bmp, tiff, gif.
  • Raport de aspect (lățime ÷ înălțime): între 0,4 și 2,5, inclusiv.
  • Atât lățimea, cât și înălțimea trebuie să fie între 300 și 6.000 de pixeli, inclusiv.

Cerințe privind videoclipurile

  • Formate acceptate: mp4, mov.
  • Fiecare videoclip nu trebuie să depășească 100 MB.
  • Frecvență cadre: între 24 și 60 FPS, inclusiv.
  • Raport de aspect (lățime ÷ înălțime): între 0,4 și 2,5, inclusiv.
  • Număr total de pixeli (lățime × înălțime): între 407.696 și 8.295.044, inclusiv. De exemplu, 614 × 664 = 407.696 și 3.326 × 2.494 = 8.295.044. Acestea sunt exemple de număr de pixeli, nu cerințe fixe pentru lățime și înălțime.

Cerințe privind fișierele audio

  • Formate acceptate: wav, mp3.
  • Fiecare fișier audio nu trebuie să depășească 15 MB.

Erori

Erorile HTTP conțin un obiect error cu proprietățile code și message. O sarcină acceptată cu succes poate eșua ulterior; interoghează sarcina sau gestionează callback-ul de eșec primit.

{
  "error": {
    "code": "invalid_request",
    "message": "input.prompt is required."
  }
}
HTTPCâmpSoluție recomandată
400invalid_request
Corectează codul JSON, promptul lipsă, limitele parametrilor sau URL-ul media înainte de a reîncerca.
401invalid_api_key
Verifică tokenul Bearer și dacă cheia API este activă.
402insufficient_credits
Adaugă credite sau redu costul sarcinii. Răspunsul poate include sumele necesare și cele disponibile.
403forbidden
Verificați restricția la nivel de cont descrisă în mesajul de eroare.
404not_found
Verifică ID-ul sarcinii și asigură-te că cheia aparține utilizatorului care a creat sarcina.
429rate_limited
Așteaptă intervalul indicat în antetul Retry-After înainte de a reîncerca.
500internal_error
Inspectează mesajul de eroare și jurnalele API. Reîncearcă cu atenție; retrimiterea unei solicitări de creare poate genera o nouă sarcină facturabilă.

Limite de rată

Crearea de sarcini: în mod implicit, fiecare cheie API permite maximum 100 de solicitări pe minut. Limitele personalizate de rată nu sunt disponibile în prezent.

Interogarea sarcinilor: în mod implicit, fiecare cheie API permite maximum 120 de solicitări pe minut. Solicitările de interogare și cele de creare a sarcinilor sunt contorizate separat.

Codul HTTP 429 include Retry-After: 60 pentru creare și Retry-After: 5 pentru interogări. Folosește o strategie de backoff și evită interogările mai frecvente decât este necesar.