Hoppa till dokumentation
På denna sida

Kling 4.0

Generera videor med Kling 4.0 med hjälp av text, första och sista bildrutan eller multimodala referenser. Den här sidan täcker hela arbetsflödet från anrop till resultat för denna modell.

Modell-ID för API: kling-4-0

Genereringen sker asynkront. Spara det taskId som returneras när du skapar en uppgift, och fråga sedan efter dess status eller ta emot en webhook.

Funktioner

FunktionTillåtna värden
Upplösning720p · 1080p
Längd3–30 s
Bildformatauto, 16:9, 9:16, 1:1, 21:9
ReferensbilderUpp till 10 bilder
ReferensvideorUpp till 5 videor
ReferensljudfilerUpp till 3 ljudfiler
Alla referenser totaltUpp till totalt 15 referensfiler
Referensvideor (Σ)30 sekunder
seedStöds ej

Priser och krediter

Videogenerering debiteras i krediter baserat på den fakturerbara längden i sekunder. Utan videoinmatning är den fakturerbara längden lika med utgandets längd. Med videoinmatning inkluderas även referensvideons längd.

Tabellen nedan visar antalet krediter som debiteras per sekund, inte den totala kostnaden för en uppgift. Tariffen beror på modell, utgångsupplösning och om referensvideor används i referens-till-video-läget. Se formlerna och exemplen under tabellen för hur den totala kostnaden beräknas.

UpplösningUtan video som indataMed video som indata
720p13 krediter/sekund8 krediter/sekund
1080p20 krediter/sekund13 krediter/sekund
  • Utan video som indata: antal sekunder utdata × pris utan video.
  • Med videoindata är T referensvideornas sammanlagda längd i sekunder, mätt av servern. Det slutliga kreditbeloppet avrundas uppåt. ceil((duration + max(duration, T)) × rate)
  • Bilder eller enbart ljudreferenser använder priset utan video. Priset med video tillämpas endast i referens-till-video-läge när videoreferenser skickas med.

Exempel på kostnadsberäkning

5 sekunders text-till-video i 720p: 5 × 13 = 65 krediter.

5 sekunders utdata i 720p med en 5 sekunder lång referensvideo: (5 + 5) × 8 = 80 krediter.

Krediter reserveras när anropet skickas och dras när uppgiften lyckas. Uppgifter som misslyckas eller gör timeout återbetalas automatiskt. Betalningsstatusen refund_failed innebär att återbetalningen inte kunde slutföras; kontrollera API-loggarna eller kontakta support.

Autentisering

Skapa en API-nyckel i instrumentpanelen. Den fullständiga nyckeln visas bara en gång. Spara den säkert på din server och skicka den som en Bearer-token i varje anrop.

Bas-URL

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

Sätt miljövariabeln SEEVIO_API_KEY innan du kör dessa exempel. JavaScript-exemplen körs på din server med Node.js; Python-exemplen använder requests-paketet.

Snabbstart

Skicka detta minimala anrop, spara det returnerade taskId-värdet och använd sedan exemplet för statuskontroll nedan. Kreditvärdet i svaret är det belopp som reserveras.

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"
  }
}'

Exempel på svar vid skapande av uppgift

När begäran ovan har godkänts returnerar API:et detta JSON-svar. taskId är det ID som används för efterföljande statusförfrågningar, och credits är antalet krediter som reserverats för uppgiften. Svaret bekräftar endast att uppgiften har skapats, inte att videon är klar. Du behöver göra regelbundna anrop för att kontrollera status eller använda en webhook för att ta emot videoresultatet.

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

Skapa en uppgift

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

Skicka ett JSON-objekt som innehåller model och input, samt en valfri callback_url. Ange alltid det modell-ID som visas på den här sidan. Om model utelämnas väljs seedance-2-0 automatiskt.

Anropskropp

FältTypObligatoriskBeskrivning och begränsningar
model
stringJa

Modell-ID. För att använda Kling 4.0, ange kling-4-0 i detta fält.

callback_url
stringNej

Offentlig HTTPS-slutpunkt för POST-callbacks vid slutförda eller misslyckade uppgifter. Privata nätverk och localhost är inte tillåtna.

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

Indataparametrar

Indataparametrar

FältTypStandardBeskrivning och begränsningar
input.generation_typestringtext-to-videotext-to-video | image-to-video | reference-to-video
input.promptstring—Högst 8000 tecken. Valfritt endast vid generering från bild. Numrera referenser per typ i listordning från @Image1, @Video1 och @Audio1.
input.durationinteger53–30 s
input.resolutionstring720p720p | 1080p
input.aspect_ratiostringBeror på läget
Tillåtna värdenauto16:99:161:121:9

Ett fast bildförhållande bestämmer utdataformatet. Om fältet utelämnas eller sätts till auto använder textläget 16:9 och bildläget den första bildrutans proportioner. Referensläget utgår från referensbilderna eller referensvideorna.

input.image_urlsstring[][]Vid generering från bild anges först startbilden och därefter en valfri slutbild. Referensläget stöder upp till 10 bilder.
input.keyframe_urlsstring[][]Mellanbilder i uppspelningsordning vid generering från bild. Högst 9 utan slutbild eller 8 med slutbild.
input.video_urlsstring[][]Endast för referensläget. Ange HTTPS-adresser till videor som ska vägleda handling eller kamerarörelser. Högst 5 klipp på 2–30 sekunder vardera och sammanlagt högst 30 sekunder.
input.audio_urlsstring[][]Endast för referensläget. Ange HTTPS-adresser till ljudklipp som ska vägleda rösten eller ljudet. Högst 3 klipp på 5–30 sekunder vardera.
input.keep_original_soundbooleanfalseOm video_urls innehåller en referensvideo behåller true originalljudet och false (standard) skapar nytt ljud. Utan referensvideo ignoreras inställningen.

Svar vid skapande

HTTP 200 returnerar taskId (sträng) och credits (nummer). Detta bekräftar att uppgiften har skapats, inte att den är färdig. Beloppet nedan motsvarar snabbstarten på 5 sekunder i 720p.

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

Genereringslägen och exempel

Ersätt exempel-URL:erna för media med egna, offentligt tillgängliga HTTPS-filer. Exempel-URL:erna visar endast anropets struktur och är inte nedladdningsbara filer.

Text till video

Generera från en textprompt. Medie-URL:er skickas inte vidare i detta läge.

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örsta bildrutan

Ange en bild som första bildruta och beskriv sedan rörelsen 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örsta och sista bildrutan

Vid generering från bild anges först startbilden och därefter en valfri slutbild. Referensläget stöder upp till 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"
    ]
  }
}'

Exempel med nyckelbilder: en ros slår ut

Skapa en åtta sekunder lång timelapse med fyra foton tagna från samma vinkel. Lägg den slutna knoppen och den utslagna rosen i image_urls som start- och slutbild. I keyframe_urls lägger du först bilden där kronbladen börjar öppnas och sedan den halvöppna blomman. Videon går från knopp via de två mellanstegen till full blom. Listan styr ordningen och modellen väljer tidpunkterna.

Ersätt exempel-URL:erna för media med egna, offentligt tillgängliga HTTPS-filer. Exempel-URL:erna visar endast anropets struktur och är inte nedladdningsbara 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"
    ]
  }
}'

Multimodal referens

Kombinera bild-, video- och ljudreferenser. Prompten är fortfarande obligatorisk. Video som indata ändrar debiteringsformeln.

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
  }
}'

Fråga efter en uppgift

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

Ersätt exempel-ID:t med det taskId som returnerades när uppgiften skapades. Statusfrågor returnerar endast uppgifter som tillhör API-nyckelns användare; okända eller oåtkomliga ID:n returnerar HTTP 404.

Gör en statuskontroll var 10:e till 20:e sekund som utgångspunkt. Vid HTTP 429 bör du vänta längre, och sluta när statusen är completed eller failed. Använd webhooks i produktionsmiljö. Varje kodexempel nedan utför en enskild sökning.

curl --fail-with-body https://api.seevio.ai/v1/tasks/3f2aK9mR7xQp4TnZ8bLc6YwH \
  -H "Authorization: Bearer $SEEVIO_API_KEY"
StatusBeskrivning och begränsningar
queuedMottagen och väntar på att köras.
generatingGenerering pågår.
completedLyckades. Ladda ner data.results innan giltighetstiden går ut.
failedMisslyckades. Kontrollera failed_reason och billing_status.
FältTypBeskrivning och begränsningar
idstring
Unikt ID för uppgiften. Detta är samma taskId som i svaret vid skapandet.
created_atnumber
Tidpunkt då uppgiften skapades, i Unix-sekunder.
modelstring
Det publika modell-ID som användes för uppgiften.
billing_statusstring
reserved, charged, refunded eller refund_failed.
creditsnumber
Krediter reserverade för denna uppgift. Detta värde ligger kvar efter en återbetalning; kontrollera billing_status för att se det slutgiltiga debiteringsresultatet.
failed_reasonstring | null
Felorsak för misslyckade uppgifter; annars null. Misslyckade anrop utelämnar data-objektet.
dataobject
Finns med när uppgiften inte har misslyckats. Innehåller resultat och bearbetningsdetaljer.
data.resultsstring[]
En array med video-URL:er. Tom fram till att videon är klar, eller efter att videon har löpt ut.
data.video_expires_atstring | null
Tidpunkt då videon raderas, i ISO 8601-format, eller null innan den är tillgänglig. Spara resultatet före denna tidpunkt.
data.last_frame_urlstring | null
URL till den sista bildrutan om det begärts och är tillgängligt, annars null.
data.processing_timenumber | null
Tid för bearbetning av uppgiften i sekunder när tillgängligt, annars null.

Slutförd uppgift: svar på statusförfrågan med videoresultat

När statusförfrågan returnerar status=completed är videogenereringen klar. Hämta videons URL-adresser från data.results och ladda ner dem före data.video_expires_at. billing_status=charged visar att de reserverade krediterna har dragits.

{
  "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
  }
}

Misslyckad uppgift: svar på statusförfrågan med fel- och debiteringsinformation

När statusförfrågan returnerar status=failed har genereringen misslyckats. Läs failed_reason för att se orsaken och billing_status för återbetalningsresultatet. I detta exempel innebär refunded att krediterna har återförts. credits visar det ursprungliga reserverade beloppet, och svaret innehåller inte 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

Ange callback_url i anropet för att ta emot en JSON-POST när uppgiften slutförs eller misslyckas. Svara med en 2xx-statuskod inom 15 sekunder. Misslyckade leveranser försöks igen; hantera dubbletter i din kod baserat på uppgiftens ID (idempotens).

Ditt callback-ändpunkt måste acceptera POST-anrop med JSON-body (Content-Type: application/json).

Skapa en uppgift 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"
}'

Uppgiften slutförd: callback-payload för lyckat anrop

När genereringen lyckas innehåller callback-anropet status=completed. Använd id för att identifiera uppgiften och data.results för att hämta videolänkarna. Ladda ner och spara resultaten före data.video_expires_at.

created_at är händelsens skapandetid; task_created_at är uppgiftens skapandetid, i Unix-sekunder. Exemplen visar rekommenderade fält; svar kan innehålla ytterligare fält.

{
  "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
  }
}

Uppgiften misslyckades: callback-payload för misslyckat anrop

När genereringen misslyckas innehåller callback-anropet status=failed. Använd id för att identifiera uppgiften, failed_reason för felorsaken och credits_refunded för antalet återbetalade krediter.

{
  "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
}

Exempel på mottagarkod

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

Detta Next.js-exempel läser callback-anropets JSON-body och hanterar slutförda och misslyckade uppgifter direkt. Lägg till persistens och deduplicering av uppgifts-ID:n för din applikation. Köa långsamma processer innan du bekräftar callback-anropet.

Mediekrav och begränsningar

  • Alla medie- och callback-URL:er måste vara offentliga HTTPS-länkar. Undvik localhost, privata IP-adresser och filer som kräver cookies eller inloggning. URL:er till referensvideo och referensljud måste leda till direkt läsbara mediefiler.
  • Varje video får inte överstiga 100 MB.
  • Varje ljudfil får inte överstiga 15 MB.
  • Upp till totalt 15 referensfiler