Seedance 2.0 Mini
Generer videoer med Seedance 2.0 Mini 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-mini
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
| Funksjon | Støttede verdier |
|---|---|
| Utgangsoppløsning | 480p · 720p |
| Varighet på video | 4–15 sekunder |
| Skjermformat | 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive |
| Referansebilder | Opptil 9 bilder |
| Referansevideoer | Opptil 3 videoer |
| Referanselydfiler | Opptil 3 lydfiler |
| Totalt referansemateriale samlet | Opptil 12 referansefiler totalt |
| Total varighet per video-/lydgruppe | 15 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øsning | Uten videoinndata | Med videoinndata |
|---|---|---|
480p | 3 kreditter/sekund | 2 kreditter/sekund |
720p | 6 kreditter/sekund | 4 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 × 6 = 30 kreditter.
5 sekunders video ut i 720p med en 5 sekunders referansevideo: (5 + 5) × 4 = 40 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.aiAuthorization: Bearer sk_live_your_api_key
Content-Type: application/jsonDefiner 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-mini",
"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": 30
}Opprett en oppgave
POST https://api.seevio.ai/v1/videos/generationsSend 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)
| Felt | Type | Påkrevd | Beskrivelse og begrensninger |
|---|---|---|---|
model | string | Ja | Modell-ID. For å bruke Seedance 2.0 Mini, setter du dette feltet til seedance-2-0-mini. |
callback_url | string | Nei | 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 | object | Ja | Genereringsinnstillinger. Må inneholde en prompt som ikke er tom. |
Inndataparametere
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.
| Felt | Type | Påkrevd | Standardverdi | Beskrivelse og begrensninger |
|---|---|---|---|---|
input.prompt | string | Ja | — | 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 | string | Nei | text-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 | integer | Nei | 5 | Heltall for varighet på ferdig video, fra 4 til 15 sekunder. Støttede verdier 4–15Eksempel: 5 |
input.aspect_ratio | string | Nei | adaptive | 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, adaptiveEksempel: adaptive |
input.resolution | string | Nei | 720p | Bruk en av de støttede oppløsningene som er oppført her. Støttede verdier 480p | 720pEksempel: 720p |
input.generate_audio | boolean | Nei | true | Be om synkronisert lydgenerering. Støttede verdier true | falseEksempel: true |
input.watermark | boolean | Nei | false | Be om et AI-vannmerke på den genererte videoen. Støttede verdier true | falseEksempel: false |
input.web_search | boolean | Nei | false | Tillat nettsøk når dette støttes av modellen. Støttede verdier true | falseEksempel: false |
input.return_last_frame | boolean | Nei | false | 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 | falseEksempel: true |
input.seed | integer | Nei | -1 | Heltall fra -1 til 4294967295. -1 velger en tilfeldig seed. Støttede verdier -1 til 4294967295Eksempel: 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": 30
}Genereringsmoduser og eksempler
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-mini",
"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-mini",
"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-mini",
"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-mini",
"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"| Status | Beskrivelse og begrensninger |
|---|---|
queued | Mottatt og venter på å bli sendt til behandling. |
generating | Generering pågår. |
completed | Fullført med suksess. Last ned data.results før filene utløper. |
failed | Feilet. Undersøk failed_reason og billing_status. |
| Felt | Type | Beskrivelse og begrensninger |
|---|---|---|
id | string | Oppgave-ID. Dette tilsvarer taskId fra opprettelsesresponsen. |
created_at | number | Tidspunkt for opprettelse av oppgaven, oppgitt i Unix-sekunder. |
model | string | Den offentlige modell-ID-en som ble brukt for denne oppgaven. |
billing_status | string | reserved, charged, refunded eller refund_failed. |
credits | number | Kreditter reservert for denne oppgaven. Denne verdien beholdes etter en refusjon; sjekk billing_status for å se det endelige faktureringsresultatet. |
failed_reason | string | null | Årsak til feilen på oppgaver som har feilet; ellers null. Svar på statusspørringer som har feilet, utelater data. |
data | object | Inkludert på vellykkede statusspørringer. Inneholder detaljer om resultat og behandling. |
data.results | string[] | En array med video-URL-er. Tom frem til oppgaven er fullført, eller etter at videoen har utløpt. |
data.video_expires_at | string | 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_url | string | null | URL til den siste rammen hvis forespurt og tilgjengelig, ellers null. |
data.processing_time | number | 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-mini",
"status": "completed",
"billing_status": "charged",
"credits": 30,
"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-mini",
"status": "failed",
"billing_status": "refunded",
"credits": 30,
"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-mini",
"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-mini",
"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-mini",
"status": "failed",
"data": {
"failed_reason": "provider_failed",
"credits_refunded": 30
}
}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."
}
}| HTTP | Felt | Løsning |
|---|---|---|
| 400 | invalid_request | Rett opp feil i JSON-strukturen, manglende prompt, feil parameterverdier eller ugyldige medie-URL-er før du prøver igjen. |
| 401 | invalid_api_key | Kontroller Bearer-tokenet og sjekk om API-nøkkelen er aktiv. |
| 402 | insufficient_credits | Fyll på kreditter eller reduser kostnaden for oppgaven. Svaret kan inneholde opplysninger om nødvendig og tilgjengelig saldo. |
| 403 | forbidden | Sjekk kontobegrensningen som er beskrevet i feilmeldingen. |
| 404 | not_found | Kontroller oppgave-ID-en og at nøkkelen tilhører eieren av oppgaven. |
| 429 | rate_limited | Vent i tidsrommet angitt i Retry-After før du prøver igjen. |
| 500 | internal_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.