Gå til dokumentasjon
På denne siden

Seedance 2.0 Fast

Generer videoer med Seedance 2.0 Fast ved hjelp av tekst, første og siste bilde, eller multimodalt referansemateriale. Denne siden dekker hele arbeidsflyten fra forespørsel til ferdig resultat for denne modellen.

Modell-ID i API: seedance-2-0-fast

Genereringen skjer asynkront. Ta vare på taskId som returneres når du oppretter en oppgave, og bruk den til å sjekke status eller motta en webhook.

Funksjoner

FunksjonStøttede verdier
Utgangsoppløsning480p · 720p
Varighet på video4–15 sekunder
Skjermformat16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive
ReferansebilderOpptil 9 bilder
ReferansevideoerOpptil 3 videoer
ReferanselydfilerOpptil 3 lydfiler
Totalt referansemateriale samletOpptil 12 referansefiler totalt
Total varighet per video-/lydgruppe15 sekunder
seed-1 til 4294967295

Priser og kreditter

Videogenerering belastes i kreditter basert på den fakturerbare varigheten i sekunder. Uten videoinndata er den fakturerbare varigheten lik varigheten på den ferdige videoen. Med videoinndata inkluderes også varigheten på referansevideoen.

Tabellen nedenfor viser hvor mange kreditter som trekkes per sekund, ikke den totale kostnaden for en oppgave. Satsen avhenger av modell, utgangsoppløsning og om det brukes referansevideoer i referanse-til-video-modus. Se formlene og eksemplene under tabellen for å se hvordan totalkostnaden beregnes.

UtgangsoppløsningUten videoinndataMed videoinndata
480p5 kreditter/sekund3 kreditter/sekund
720p10 kreditter/sekund6 kreditter/sekund
  • Uten videoinndata: sekunder i ferdig video × pris uten video.
  • Med videoinndata: (sekunder i ferdig video + målt varighet på referansevideo) × pris med video. Serveren måler den totale varigheten på referansevideoen og runder opp til nærmeste hele sekund før fakturering.
  • Bruk av kun bilde- eller lydreferanser belastes med prisen uten video. Prisen med referansevideo gjelder kun i referanse-til-video-modus når det faktisk sendes med videoreferanser.

Eksempler på kostnadsberegning

5 sekunders tekst-til-video i 720p: 5 × 10 = 50 kreditter.

5 sekunders video ut i 720p med en 5 sekunders referansevideo: (5 + 5) × 6 = 60 kreditter.

Kreditter reserveres ved innsending og trekkes når oppgaven er fullført. Oppgaver som mislykkes eller tidsavbrytes, refunderes automatisk. Statusen refund_failed betyr at refusjonen ikke kunne fullføres; sjekk API-loggene eller kontakt kundeservice.

Autentisering

Opprett en API-nøkkel i dashbordet. Den fullstendige nøkkelen vises bare én gang. Oppbevar den trygt på serveren din, og send den med som et Bearer-token i alle forespørsler.

Base-URL

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

Definer miljøvariabelen SEEVIO_API_KEY før du kjører disse eksemplene. Eksemplene i JavaScript kjøres på serveren din med Node.js, mens Python-eksemplene bruker requests-pakken.

Hurtigstart

Send inn denne minimale forespørselen, ta vare på returnert taskId, og bruk deretter eksempelet for statusspørring nedenfor. Verdien for kreditter i opprettelsesresponsen er det reserverte beløpet.

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-0-fast",
  "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
  }
}'

Eksempel på svar ved opprettelse av oppgave

Når forespørselen ovenfor er godkjent, returnerer API-et dette JSON-svaret. taskId er oppgaveidentifikatoren som brukes til påfølgende statusforespørsler; credits er antall kreditter som er reservert for denne oppgaven. Dette svaret bekrefter kun at oppgaven er opprettet, ikke at videoen er klar. Du må polle oppgavestatusen eller bruke en Webhook for å motta videoresultatene.

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

Opprett en oppgave

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

Send et JSON-objekt som inneholder model og input, samt en valgfri callback_url. Oppgi alltid den nøyaktige modell-ID-en som vises på denne siden; utelates model, velges seedance-2-0 automatisk.

Forespørselstekst (body)

FeltTypePåkrevdBeskrivelse og begrensninger
model
stringJa

Modell-ID. For å bruke Seedance 2.0 Fast, setter du dette feltet til seedance-2-0-fast.

callback_url
stringNei

Offentlig HTTPS-endepunkt for POST-tilbakemeldinger ved fullført eller feilet oppgave. Interne nettverk og localhost er ikke tillatt.

Eksempel: https://example.com/webhooks/seevio
input
objectJa

Genereringsinnstillinger. Må inneholde en prompt som ikke er tom.

Inndataparametere

image_urls kreves i image-to-video. reference-to-video krever minst én referanse fordelt på image_urls, video_urls og audio_urls.

Oppgi image_urls, video_urls og audio_urls som matriser med URL-strenger (string[]). Hver oppgitte URL må være offentlig tilgjengelig over HTTPS, inkludert mediefiler som ignoreres av den valgte modusen.

FeltTypePåkrevdStandardverdiBeskrivelse og begrensninger
input.prompt
stringJa

Du må oppgi en ledetekst (prompt) i alle moduser. Den kan inneholde maksimalt 10 000 tegn før fjerning av overflødig mellomrom, og kan ikke bestå av kun tomme tegn.

Eksempel: A cat surfing at sunset
input.generation_type
stringNeitext-to-video

text-to-video bruker kun prompt; image-to-video bruker 1–2 bilder; reference-to-video bruker bilder, video og/eller lyd som referanser.

Støttede verdier
text-to-video | image-to-video | reference-to-video
input.image_urls
string[]Betinget[]

image-to-video: 1 bilde for første ramme, eller 2 sorterte bilder for første og siste ramme. reference-to-video: opptil 9 bilder. Ignoreres i text-to-video.

Eksempel: ["https://example.com/first-frame.jpg"]
input.video_urls
string[]Betinget[]

Videresendes kun i reference-to-video; opptil 3 videoer og totalt 15 sekunder til sammen. Ignoreres i andre moduser.

Eksempel: ["https://example.com/source.mp4"]
input.audio_urls
string[]Betinget[]

Videresendes kun i reference-to-video; opptil 3 lydfiler og totalt 15 sekunder til sammen. Ignoreres i andre moduser. Lydfiler kan ikke brukes som det eneste referansematerialet for denne modellen. Når du oppgir audio_urls, må du også legge til minst ett referansebilde i image_urls eller én referansevideo i video_urls.

Eksempel: ["https://example.com/music.mp3"]
input.duration
integerNei5

Heltall for varighet på ferdig video, fra 4 til 15 sekunder.

Støttede verdier
4–15
Eksempel: 5
input.aspect_ratio
stringNeiadaptive

Skjermformat på ferdig video. adaptive lar modellen bestemme formatet selv.

Støttede verdier
16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive
Eksempel: adaptive
input.resolution
stringNei720p

Bruk en av de støttede oppløsningene som er oppført her.

Støttede verdier
480p | 720p
Eksempel: 720p
input.generate_audio
booleanNeitrue

Be om synkronisert lydgenerering.

Støttede verdier
true | false
Eksempel: true
input.watermark
booleanNeifalse

Be om et AI-vannmerke på den genererte videoen.

Støttede verdier
true | false
Eksempel: false
input.web_search
booleanNeifalse

Tillat nettsøk når dette støttes av modellen.

Støttede verdier
true | false
Eksempel: false
input.return_last_frame
booleanNeifalse

Be om den siste rammen av videoen. Svaret på statusspørringen vil inneholde data.last_frame_url når bildet er klart; ellers returneres null.

Støttede verdier
true | false
Eksempel: true
input.seed
integerNei-1

Heltall fra -1 til 4294967295. -1 velger en tilfeldig seed.

Støttede verdier
-1 til 4294967295
Eksempel: 42

Bolske felt må være JSON true eller false, ikke strenger eller tall.

Opprettelsesrespons

HTTP 200 returnerer taskId (streng) og credits (tall). Dette bekrefter at oppgaven er opprettet, ikke at den er fullført. Beløpet nedenfor tilsvarer hurtigstart-eksempelet på 5 sekunder i 720p.

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

Genereringsmoduser og eksempler

Erstatt medie-URL-ene fra example.com med dine egne offentlig tilgjengelige HTTPS-filer. Eksempel-URL-ene illustrerer kun forespørselens struktur og er ikke nedlastbare filer.

Tekst til video

Generer ut fra en tekst-prompt. Medie-URL-er videresendes ikke i denne modusen.

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-0-fast",
  "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
  }
}'

Første ramme

Oppgi ett bilde som skal brukes som første ramme, og beskriv deretter bevegelsen i din 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-0-fast",
  "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"
  }
}'

Første og siste ramme

Oppgi to bilde-URL-er i rekkefølge: første ramme, og deretter siste ramme. Dette eksempelet ber også om den genererte videoens siste ramme.

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-0-fast",
  "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
  }
}'

Multimodalt referansemateriale

Kombiner referanser fra bilde, video og lyd. Tekst-prompt er fortsatt påkrevd. Referansevideo endrer formelen for fakturering.

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-0-fast",
  "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"
  }
}'

Spør om en oppgave

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

Erstatt eksempel-ID-en med den taskId du fikk ved opprettelse. Statusspørringer returnerer kun oppgaver som tilhører brukeren av den gitte API-nøkkelen; utilgjengelige eller ukjente ID-er returnerer HTTP 404.

Start med å gjøre en spørring (poll) hvert 10.–20. sekund. Ved HTTP 429 bør du øke intervallet, og stoppe når statusen er completed eller failed. Vi anbefaler webhooks i produksjon. Hvert kodeeksempel nedenfor utfører én enkelt spørring.

curl --fail-with-body https://api.seevio.ai/v1/tasks/3f2aK9mR7xQp4TnZ8bLc6YwH \
  -H "Authorization: Bearer $SEEVIO_API_KEY"
StatusBeskrivelse og begrensninger
queuedMottatt og venter på å bli sendt til behandling.
generatingGenerering pågår.
completedFullført med suksess. Last ned data.results før filene utløper.
failedFeilet. Undersøk failed_reason og billing_status.
FeltTypeBeskrivelse og begrensninger
idstring
Oppgave-ID. Dette tilsvarer taskId fra opprettelsesresponsen.
created_atnumber
Tidspunkt for opprettelse av oppgaven, oppgitt i Unix-sekunder.
modelstring
Den offentlige modell-ID-en som ble brukt for denne oppgaven.
billing_statusstring
reserved, charged, refunded eller refund_failed.
creditsnumber
Kreditter reservert for denne oppgaven. Denne verdien beholdes etter en refusjon; sjekk billing_status for å se det endelige faktureringsresultatet.
failed_reasonstring | null
Årsak til feilen på oppgaver som har feilet; ellers null. Svar på statusspørringer som har feilet, utelater data.
dataobject
Inkludert på vellykkede statusspørringer. Inneholder detaljer om resultat og behandling.
data.resultsstring[]
En array med video-URL-er. Tom frem til oppgaven er fullført, eller etter at videoen har utløpt.
data.video_expires_atstring | null
Tidspunktet videoen utløper, oppgitt som ISO 8601-tidsstempel, eller null før den er tilgjengelig. Lagre resultatet lokalt før dette tidspunktet.
data.last_frame_urlstring | null
URL til den siste rammen hvis forespurt og tilgjengelig, ellers null.
data.processing_timenumber | null
Leverandørens behandlingstid i sekunder når tilgjengelig, ellers null.

Fullført oppgave: statussvar med videoresultater

Når statusforespørselen returnerer status=completed, er videogenereringen fullført. Hent video-URL-ene fra data.results og last dem ned før data.video_expires_at. billing_status=charged viser at de reserverte kredittene har blitt trukket.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1788652800,
  "model": "seedance-2-0-fast",
  "status": "completed",
  "billing_status": "charged",
  "credits": 50,
  "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
  }
}

Mislykket oppgave: statussvar med feil- og faktureringsinformasjon

Når statusforespørselen returnerer status=failed, ble ikke genereringen fullført. Se failed_reason for årsaken, og billing_status for refusjonsstatusen. I dette eksempelet betyr refunded at kredittene har blitt refundert. credits viser det opprinnelige reserverte beløpet, og svaret inneholder ikke data.

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

Webhooks

Angi callback_url i opprettelsesforespørselen for å motta en JSON POST når oppgaven er fullført eller feiler. Returner en 2xx-respons innen 15 sekunder. Meldinger som ikke blir levert, prøves på nytt; håndter gjentatte leveringer idempotent basert på oppgave-ID.

Ditt endepunkt for tilbakesending må godta POST-forespørsler med en JSON-meldingskropp (Content-Type: application/json).

Opprett en oppgave med 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-0-fast",
  "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"
}'

Webhook-data skiller seg fra svarene på statusspørringer: de utelater billing_status og credits, og feildetaljer ligger i data.failed_reason og data.credits_refunded. Webhook-feltet created_at er tidspunktet for selve hendelsen i Unix-sekunder.

Oppgave fullført: payload for vellykket tilbakesending

Når genereringen lykkes, inneholder tilbakesendingen status=completed. Bruk id for å identifisere oppgaven og data.results for å hente video-URL-ene. Last ned og lagre resultatene før data.video_expires_at.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1788652800,
  "model": "seedance-2-0-fast",
  "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
  }
}

Oppgave mislyktes: payload for mislykket tilbakesending

Når genereringen mislykkes, inneholder tilbakesendingen status=failed. Bruk id for å identifisere oppgaven, data.failed_reason for årsaken til feilen, og data.credits_refunded for antall refunderte kreditter.

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

Eksempel på mottaker (receiver)

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 });
}

Dette Next.js-eksempelet leser JSON-tilbakesendingskroppen og håndterer fullførte og mislykkede oppgaver direkte. Legg til datalagring og deduplisering av oppgave-ID-er i applikasjonen din, og legg tidkrevende oppgaver i kø før tilbakesendingen bekreftes.

Mediekrav og begrensninger

  • Alle medie- og callback-URL-er må være offentlige HTTPS-URL-er. Unngå localhost, private IP-adresser og filer som krever informasjonskapsler (cookies) eller pålogging. URL-er for referansevideo og -lyd må peke direkte til lesbare mediefiler.
  • I reference-to-video må du oppgi minst én referanse, med maksimalt 9 bilder, 3 videoer, 3 lydfiler og totalt 12 materialer til sammen. Total videovarighet og total lydvarighet kan ikke overstige 15 sekunder hver.
  • text-to-video ignorerer alle mediereferanser. image-to-video videresender kun bildene for første/siste ramme og ignorerer video- og lydreferanser. Bruk reference-to-video for å kombinere ulike medier.
  • For Seedance 2.0-modeller må lyd kombineres med minst ett bilde eller én video av hensyn til modellkompatibilitet. Eksempler med kun lyd finnes på siden for Seedance 2.5.
  • Fast og Mini støtter 480p og 720p. Ikke ta for gitt at høyere oppløsninger blir godtatt under validering; de støttes ikke for denne modellen.

Krav til bilder

  • Hvert bilde må være mindre enn 30 MB.
  • Støttede formater: jpeg, png, webp, bmp, tiff, gif.
  • Bildeformat (bredde ÷ høyde): 0,4 til og med 2,5.
  • Bredde og høyde må hver være på mellom 300 og 6 000 piksler.

Krav til video

  • Støttede formater: mp4, mov.
  • Hver video kan ikke overstige 100 MB.
  • Bildefrekvens (FPS): 24 til og med 60.
  • Bildeformat (bredde ÷ høyde): 0,4 til og med 2,5.
  • Totalt antall piksler (bredde × høyde): 407 696 til og med 8 295 044. For eksempel: 614 × 664 = 407 696 og 3 326 × 2 494 = 8 295 044. Dette er eksempler på pikselantall, ikke faste krav til bredde og høyde.

Krav til lyd

  • Støttede formater: wav, mp3.
  • Hver lydfil kan ikke overstige 15 MB.

Feilmeldinger

HTTP-feil returnerer et error-objekt med code og message. En oppgave som ble mottatt uten feil, kan fortsatt mislykkes senere; sjekk status på oppgaven eller håndter feil via callback.

{
  "error": {
    "code": "invalid_request",
    "message": "input.prompt is required."
  }
}
HTTPFeltLøsning
400invalid_request
Rett opp feil i JSON-strukturen, manglende prompt, feil parameterverdier eller ugyldige medie-URL-er før du prøver igjen.
401invalid_api_key
Kontroller Bearer-tokenet og sjekk om API-nøkkelen er aktiv.
402insufficient_credits
Fyll på kreditter eller reduser kostnaden for oppgaven. Svaret kan inneholde opplysninger om nødvendig og tilgjengelig saldo.
403forbidden
Sjekk kontobegrensningen som er beskrevet i feilmeldingen.
404not_found
Kontroller oppgave-ID-en og at nøkkelen tilhører eieren av oppgaven.
429rate_limited
Vent i tidsrommet angitt i Retry-After før du prøver igjen.
500internal_error
Undersøk feilmeldingen og API-loggene. Prøv igjen med forsiktighet; en ny innsending av forespørselen kan opprette en ny, betalbar oppgave.

Grenser for forespørsler (rate limits)

Opprett oppgaver: Hver API-nøkkel tillater som standard opptil 100 forespørsler i minuttet. Skreddersydde ratebegrensninger er foreløpig ikke tilgjengelig.

Hent oppgaver: Hver API-nøkkel tillater som standard opptil 120 forespørsler i minuttet. Forespørsler om opphenting og oppretting av oppgaver telles hver for seg.

HTTP 429 inkluderer Retry-After: 60 for opprettelse og Retry-After: 5 for statusspørringer. Bruk gradvis økende ventetid (backoff) og unngå unødvendig hyppig polling.