Kling 4.0
Generer videoer med Kling 4.0 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: kling-4-0
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 | 720p · 1080p |
| Varighet på video | 3–30 s |
| Skjermformat | auto, 16:9, 9:16, 1:1, 21:9 |
| Referansebilder | Opptil 10 bilder |
| Referansevideoer | Opptil 5 videoer |
| Referanselydfiler | Opptil 3 lydfiler |
| Totalt referansemateriale samlet | Opptil 15 referansefiler totalt |
| Referansevideoer (Σ) | 30 sekunder |
| seed | Støttes ikke |
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 |
|---|---|---|
720p | 13 kreditter/sekund | 8 kreditter/sekund |
1080p | 20 kreditter/sekund | 13 kreditter/sekund |
- Uten videoinndata: sekunder i ferdig video × pris uten video.
- Med videoinndata er T samlet varighet av referansevideoene i sekunder, målt av serveren. Det endelige antallet kreditter rundes opp.
ceil((duration + max(duration, T)) × rate) - 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 × 13 = 65 kreditter.
5 sekunders video ut i 720p med en 5 sekunders referansevideo: (5 + 5) × 8 = 80 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": "kling-4-0",
"input": {
"prompt": "A cat surfing at sunset, cinematic lighting",
"duration": 5,
"resolution": "720p",
"generation_type": "text-to-video"
}
}'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": 65
}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 modell-ID-en som vises på denne siden. Hvis model utelates, velges seedance-2-0 automatisk.
Forespørselstekst (body)
| Felt | Type | Påkrevd | Beskrivelse og begrensninger |
|---|---|---|---|
model | string | Ja | Modell-ID. For å bruke Kling 4.0, setter du dette feltet til kling-4-0. |
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 | Inndataparametere |
Inndataparametere
| Felt | Type | Standardverdi | Beskrivelse og begrensninger |
|---|---|---|---|
input.generation_type | string | text-to-video | text-to-video | image-to-video | reference-to-video |
input.prompt | string | — | Opptil 8000 tegn. Valgfritt bare ved generering fra bilde. Nummerer referanser etter type og rekkefølge i listen fra @Image1, @Video1 og @Audio1. |
input.duration | integer | 5 | 3–30 s |
input.resolution | string | 720p | 720p | 1080p |
input.aspect_ratio | string | Avhenger av modus | Støttede verdier auto16:99:161:121:9Et fast sideforhold bestemmer utdataformatet. Hvis feltet utelates eller settes til auto, bruker tekstmodus 16:9 og bildemodus formatet til første bilde. Referansemodus velger format ut fra referansebildene eller -videoene. |
input.image_urls | string[] | [] | Ved generering fra bilde angis startbildet først, eventuelt etterfulgt av sluttbildet. Referansemodus støtter opptil 10 bilder. |
input.keyframe_urls | string[] | [] | Mellombilder i avspillingsrekkefølge ved generering fra bilde. Opptil 9 uten sluttbilde eller 8 med sluttbilde. |
input.video_urls | string[] | [] | Kun for referansemodus. Oppgi HTTPS-adresser til videoer som skal brukes som eksempel på handling eller kamerabevegelser. Opptil 5 klipp på 2–30 sekunder hver, med samlet varighet på høyst 30 sekunder. |
input.audio_urls | string[] | [] | Kun for referansemodus. Oppgi HTTPS-adresser til lydklipp som skal være forbilde for stemme eller lyd. Opptil 3 klipp på 5–30 sekunder hver. |
input.keep_original_sound | boolean | false | Hvis video_urls inneholder en referansevideo, beholder true originallyden mens false (standard) genererer ny lyd. Uten referansevideo blir innstillingen ignorert. |
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": 65
}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": "kling-4-0",
"input": {
"prompt": "A cat surfing at sunset, cinematic lighting",
"duration": 5,
"resolution": "720p",
"generation_type": "text-to-video"
}
}'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": "kling-4-0",
"input": {
"prompt": "A cat surfing at sunset, cinematic lighting",
"duration": 5,
"resolution": "720p",
"generation_type": "image-to-video",
"image_urls": [
"https://example.com/first.jpg"
]
}
}'Første og siste ramme
Ved generering fra bilde angis startbildet først, eventuelt etterfulgt av sluttbildet. Referansemodus støtter opptil 10 bilder.
curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
-H "Authorization: Bearer $SEEVIO_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "kling-4-0",
"input": {
"prompt": "",
"duration": 5,
"resolution": "720p",
"generation_type": "image-to-video",
"image_urls": [
"https://example.com/first.jpg",
"https://example.com/last.jpg"
]
}
}'Eksempel med nøkkelbilder: en rose springer ut
Lag et åtte sekunder langt tidsforløp fra fire bilder tatt fra samme vinkel. Legg den lukkede knoppen og den utsprungne rosen i image_urls som start- og sluttbilde. Legg først kronbladene som begynner å åpne seg, og deretter den halvåpne blomsten i keyframe_urls. Videoen går fra knopp via de to mellomstadiene til full blomst. Listen bestemmer rekkefølgen og modellen velger tidspunktene.
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.
curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
-H "Authorization: Bearer $SEEVIO_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "kling-4-0",
"input": {
"prompt": "A time-lapse of a rose opening. Keep the camera still and the light soft as the petals unfold.",
"duration": 8,
"resolution": "720p",
"generation_type": "image-to-video",
"image_urls": [
"https://example.com/rose-bud.jpg",
"https://example.com/rose-full-bloom.jpg"
],
"keyframe_urls": [
"https://example.com/rose-opening.jpg",
"https://example.com/rose-half-open.jpg"
]
}
}'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": "kling-4-0",
"input": {
"prompt": "Animate @Image1 with the movement of @Video1 and ambience from @Audio1.",
"duration": 5,
"resolution": "720p",
"generation_type": "reference-to-video",
"image_urls": [
"https://example.com/character.jpg"
],
"video_urls": [
"https://example.com/motion.mp4"
],
"audio_urls": [
"https://example.com/surf.mp3"
],
"keep_original_sound": false
}
}'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 | Tid brukt på å behandle oppgaven i sekunder hvis 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": "kling-4-0",
"is_draft": false,
"draft_task_id": null,
"status": "completed",
"billing_status": "charged",
"credits": 65,
"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": "kling-4-0",
"is_draft": false,
"draft_task_id": null,
"status": "failed",
"billing_status": "refunded",
"credits": 65,
"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": "kling-4-0",
"input": {
"prompt": "A cat surfing at sunset, cinematic lighting",
"duration": 5,
"resolution": "720p",
"generation_type": "text-to-video"
},
"callback_url": "https://example.com/webhooks/seevio"
}'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.
created_at er hendelsens opprettelsestid; task_created_at er oppgavens opprettelsestid, i Unix-sekunder. Eksemplene viser anbefalte felt; svar kan inneholde flere felt.
{
"id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
"created_at": 1788652848,
"model": "kling-4-0",
"status": "completed",
"task_created_at": 1788652800,
"billing_status": "charged",
"credits": 65,
"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
}
}Oppgave mislyktes: payload for mislykket tilbakesending
Når genereringen mislykkes, inneholder tilbakesendingen status=failed. Bruk id for å identifisere oppgaven, failed_reason for årsaken til feilen, og credits_refunded for antall refunderte kreditter.
{
"id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
"created_at": 1788652848,
"model": "kling-4-0",
"status": "failed",
"task_created_at": 1788652800,
"billing_status": "refunded",
"credits": 65,
"failed_reason": "provider_failed",
"credits_refunded": 65
}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;
// 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.
- Hver video kan ikke overstige 100 MB.
- Hver lydfil kan ikke overstige 15 MB.
- Opptil 15 referansefiler totalt