Langkau ke dokumentasi
Pada halaman ini

Kling 4.0

Jana video dengan Kling 4.0 menggunakan teks, bingkai pertama dan terakhir, atau rujukan multimodal. Halaman ini merangkumi aliran kerja lengkap dari permintaan hingga hasil untuk model ini.

ID model API: kling-4-0

Penjanaan adalah asinkronus. Simpan taskId yang dikembalikan semasa mencipta tugasan, kemudian tanya statusnya atau terima webhook.

Keupayaan

CiriNilai yang disokong
Resolusi output720p · 1080p
Durasi output3–30 s
Nisbah aspekauto, 16:9, 9:16, 1:1, 21:9
Imej rujukanSehingga 10 imej
Video rujukanSehingga 5 video
Fail audio rujukanSehingga 3 fail audio
Semua rujukan digabungkanSehingga 15 fail rujukan secara keseluruhan
Video rujukan (Σ)30 saat
seedTidak disokong

Harga & kredit

Penjanaan video dicaj dalam bentuk kredit berdasarkan durasi dibilkan dalam saat. Tanpa input video, durasi dibilkan ialah durasi output; jika ada input video, ia juga merangkumi durasi video rujukan.

Jadual di bawah menunjukkan kredit yang dicaj sesaat, bukan jumlah kos keseluruhan untuk sesuatu tugas. Kadar caj bergantung pada model, resolusi output dan sama ada video rujukan disediakan dalam mod rujukan-ke-video. Sila rujuk formula dan contoh di bawah jadual untuk pengiraan jumlah kos keseluruhan.

Resolusi outputTanpa input videoDengan input video
720p13 kredit/saat8 kredit/saat
1080p20 kredit/saat13 kredit/saat
  • Tanpa input video: output dalam saat × kadar tanpa video.
  • Jika ada input video, T ialah jumlah tempoh video rujukan dalam saat yang diukur oleh pelayan. Jumlah kredit akhir dibundarkan ke atas. ceil((duration + max(duration, T)) × rate)
  • Rujukan imej atau audio sahaja akan menggunakan kadar tanpa video. Kadar pengebilan video rujukan hanya digunakan dalam mod rujukan-ke-video apabila rujukan video dibekalkan.

Contoh pengiraan kos

Teks ke video 720p selama 5 saat: 5 × 13 = 65 kredit.

Output 720p selama 5 saat dengan video rujukan 5 saat: (5 + 5) × 8 = 80 kredit.

Kredit akan ditempah semasa penyerahan dan dicaj setelah tugasan berjaya. Tugasan yang gagal atau tamat masa akan memasuki aliran bayaran balik. Status pengebilan refund_failed bermakna bayaran balik tidak dapat diselesaikan; sila semak log API atau hubungi sokongan.

Pengesahan

Cipta kunci API dalam papan pemuka. Kunci lengkap hanya akan dipaparkan sekali sahaja. Simpan kunci ini pada pelayan anda dan hantarkannya sebagai token Bearer dalam setiap permintaan.

URL asas

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

Tetapkan pemboleh ubah persekitaran SEEVIO_API_KEY sebelum menjalankan contoh ini. Contoh JavaScript dijalankan pada pelayan anda dengan Node.js; contoh Python menggunakan pakej requests.

Mula cepat

Hantar permintaan ringkas ini, simpan taskId yang dikembalikan, kemudian gunakan contoh pertanyaan tugasan di bawah. Nilai kredit dalam respons penciptaan ialah amaun yang ditempah.

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

Contoh respons cipta tugasan

Selepas permintaan di atas diterima, API akan mengembalikan respons JSON ini. taskId ialah pengecam tugasan yang digunakan untuk pertanyaan status seterusnya; credits pula ialah jumlah kredit yang dikuntukkan bagi tugasan ini. Respons ini hanya mengesahkan penciptaan tugasan dan tidak bermakna video tersebut sudah sedia. Anda perlu menyemak status tugasan secara berkala atau menggunakan Webhook untuk menerima hasil video.

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

Cipta tugasan

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

Hantar objek JSON yang mengandungi model dan input, serta callback_url pilihan. Sentiasa nyatakan ID model yang dipaparkan pada halaman ini; jika diabaikan, seedance-2-0 akan dipilih secara lalai.

Badan permintaan

MedanJenisDiperlukanPenerangan & had
model
stringYa

ID Model. Untuk menggunakan Kling 4.0, tetapkan medan ini kepada kling-4-0.

callback_url
stringTidak

Titik akhir HTTPS awam untuk panggilan semula POST bagi status selesai dan gagal. Rangkaian peribadi dan localhost adalah tidak dibenarkan.

Contoh: https://example.com/webhooks/seevio
input
objectYa

Parameter input

Parameter input

MedanJenisNilai lalaiPenerangan & had
input.generation_typestringtext-to-videotext-to-video | image-to-video | reference-to-video
input.promptstring—Sehingga 8000 aksara. Pilihan hanya untuk penjanaan daripada imej. Nomborkan rujukan mengikut jenis dan susunan tatasusunan bermula dengan @Image1, @Video1 dan @Audio1.
input.durationinteger53–30 s
input.resolutionstring720p720p | 1080p
input.aspect_ratiostringBergantung pada mod
Nilai yang disokongauto16:99:161:121:9

Nisbah tetap menentukan bentuk output. Jika medan ini ditinggalkan atau ditetapkan kepada auto, mod teks menggunakan 16:9 dan mod imej mengikut bingkai pertama. Mod rujukan menentukan nisbah daripada imej atau video rujukan.

input.image_urlsstring[][]Untuk penjanaan daripada imej, berikan bingkai pertama diikuti bingkai terakhir jika perlu. Mod rujukan menerima sehingga 10 imej.
input.keyframe_urlsstring[][]Bingkai perantaraan mengikut turutan main balik untuk penjanaan daripada imej. Sehingga 9 tanpa bingkai terakhir atau 8 dengannya.
input.video_urlsstring[][]Untuk mod rujukan sahaja. Berikan URL HTTPS video sebagai panduan aksi atau pergerakan kamera. Sehingga 5 klip dengan tempoh 2–30 saat setiap satu dan jumlah keseluruhan sehingga 30 saat.
input.audio_urlsstring[][]Untuk mod rujukan sahaja. Berikan URL HTTPS klip audio sebagai panduan suara atau bunyi yang dijana. Sehingga 3 klip dengan tempoh 5–30 saat setiap satu.
input.keep_original_soundbooleanfalseJika video_urls mengandungi video rujukan, true mengekalkan audio asal dan false (lalai) menjana audio baharu. Tanpa video rujukan, tetapan ini diabaikan.

Respons cipta

HTTP 200 mengembalikan taskId (rentetan) dan credits (nombor). Ini menunjukkan tugasan telah berjaya dicipta, bukan diselesaikan. Amaun di bawah sepadan dengan contoh mula cepat 720p selama 5 saat.

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

Mod penjanaan & contoh

Gantikan URL media contoh.com dengan fail HTTPS anda sendiri yang boleh diakses secara awam. URL contoh disediakan hanya untuk menunjukkan struktur permintaan dan bukannya aset sampel yang boleh dimuat turun.

Teks ke video

Jana daripada prom teks. URL media tidak akan dihantar dalam mod ini.

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

Bingkai pertama

Sediakan satu imej sebagai bingkai pertama, kemudian huraikan pergerakan dalam prom anda.

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

Bingkai pertama dan terakhir

Untuk penjanaan daripada imej, berikan bingkai pertama diikuti bingkai terakhir jika perlu. Mod rujukan menerima sehingga 10 imej.

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

Contoh bingkai utama: mawar berkembang

Hasilkan video selang masa 8 saat daripada empat gambar yang diambil dari sudut yang sama. Dalam image_urls, masukkan kudup tertutup dan mawar yang mekar penuh sebagai bingkai awal dan akhir. Dalam keyframe_urls, masukkan kelopak yang mula terbuka, kemudian bunga yang separuh mekar. Video bergerak daripada kudup melalui dua peringkat tersebut hingga mekar penuh. Susunan tatasusunan menentukan turutan dan model menentukan masanya.

Gantikan URL media contoh.com dengan fail HTTPS anda sendiri yang boleh diakses secara awam. URL contoh disediakan hanya untuk menunjukkan struktur permintaan dan bukannya aset sampel yang boleh dimuat turun.

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

Rujukan multimodal

Gabungkan rujukan imej, video dan audio. Prom masih tetap diperlukan. Input video rujukan akan mengubah formula pengebilan.

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

Tanya status tugasan

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

Gantikan ID contoh dengan taskId yang dikembalikan semasa penciptaan. Pertanyaan hanya mengembalikan tugasan milik pengguna kunci API tersebut; ID yang tidak boleh diakses atau tidak dikenali akan mengembalikan ralat HTTP 404.

Lakukan pengundian (polling) setiap 10–20 saat sebagai permulaan, kurangkan kekerapan jika menerima ralat HTTP 429, dan hentikan apabila status bertukar kepada completed atau failed. Sebaik-baiknya gunakan webhook untuk persekitaran pengeluaran. Setiap contoh kod di bawah melakukan satu pertanyaan.

curl --fail-with-body https://api.seevio.ai/v1/tasks/3f2aK9mR7xQp4TnZ8bLc6YwH \
  -H "Authorization: Bearer $SEEVIO_API_KEY"
StatusPenerangan & had
queuedDiterima dan sedang menunggu untuk dihantar.
generatingPenjanaan sedang dijalankan.
completedBerjaya sepenuhnya. Muat turun data.results sebelum tamat tempoh.
failedGagal sepenuhnya. Periksa failed_reason dan billing_status.
MedanJenisPenerangan & had
idstring
Pengecam tugasan. Ini ialah taskId daripada respons cipta.
created_atnumber
Masa penciptaan tugasan dalam saat Unix.
modelstring
ID model awam yang digunakan untuk tugasan ini.
billing_statusstring
reserved, charged, refunded atau refund_failed.
creditsnumber
Kredit yang ditempah untuk tugasan ini. Nilai ini dikekalkan selepas bayaran balik; periksa billing_status untuk menentukan hasil pengebilan.
failed_reasonstring | null
Punca kegagalan bagi tugasan yang gagal; bernilai null jika sebaliknya. Respons pertanyaan yang gagal mengabaikan bahagian data.
dataobject
Ada pada pertanyaan tugasan yang tidak gagal. Mengandungi butiran output dan pemprosesan.
data.resultsstring[]
Tatasusunan URL video. Kosong sehinggalah tugasan selesai atau selepas video tamat tempoh.
data.video_expires_atstring | null
Masa tamat tempoh video sebagai penanda masa ISO 8601, atau null sebelum ia tersedia. Simpan hasil sebelum waktu ini.
data.last_frame_urlstring | null
URL bingkai terakhir apabila diminta dan tersedia, jika tidak nilainya adalah null.
data.processing_timenumber | null
Tempoh pemprosesan tugasan dalam saat jika ada, sebaliknya null.

Tugasan selesai: respons pertanyaan dengan hasil video

Apabila pertanyaan mengembalikan status=completed, ini bermakna penjanaan video telah selesai. Baca URL video daripada data.results dan muat turun video tersebut sebelum data.video_expires_at. billing_status=charged menunjukkan bahawa kredit yang diketepikan telah ditolak.

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

Tugasan gagal: respons pertanyaan dengan butiran kegagalan dan pengebilan

Apabila pertanyaan mengembalikan status=failed, ini bermakna penjanaan telah tamat tetapi gagal. Rujuk failed_reason untuk mengetahui punca kegagalan dan billing_status untuk status bayaran balik. Dalam contoh ini, refunded bermakna kredit telah dikembalikan semula. credits mengekalkan amaun asal yang diketepikan, dan respons ini tidak mengandungi 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"
}

Webhook

Tetapkan callback_url dalam permintaan cipta untuk menerima POST JSON apabila tugasan selesai atau gagal. Kembalikan respons 2xx dalam masa 15 saat. Penghantaran yang gagal akan dicuba semula; proses penghantaran berulang secara idempotensi menggunakan ID tugasan.

Pangkalan akhir (endpoint) panggilan balik anda mesti menerima permintaan POST dengan badan permintaan JSON (Content-Type: application/json).

Cipta tugasan dengan panggilan semula

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

Tugasan selesai: muatan panggilan balik yang berjaya

Apabila penjanaan berjaya, panggilan balik akan mengandungi status=completed. Gunakan id untuk mengenal pasti tugasan dan data.results untuk mendapatkan URL video. Muat turun dan simpan keputusan sebelum data.video_expires_at.

created_at ialah masa penciptaan peristiwa; task_created_at ialah masa penciptaan tugasan, dalam saat Unix. Contoh menunjukkan medan yang disyorkan; respons mungkin mengandungi medan tambahan.

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

Tugasan gagal: muatan panggilan balik yang gagal

Apabila penjanaan gagal, panggilan balik akan mengandungi status=failed. Gunakan id untuk mengenal pasti tugasan, failed_reason untuk mengetahui punca kegagalan dan credits_refunded untuk jumlah kredit yang dikembalikan.

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

Contoh penerima

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

Contoh Next.js ini membaca badan panggilan balik JSON dan mengendalikan tugasan yang selesai serta gagal secara terus. Tambahkan fungsi persistensi dan penyahduplikasian ID tugasan untuk aplikasi anda; masukkan kerja yang lambat ke dalam giliran (queue) sebelum mengesahkan panggilan balik.

Keperluan & had media

  • Semua URL media dan panggilan semula mestilah URL HTTPS awam. Elakkan localhost, IP peribadi dan fail yang memerlukan kuki atau log masuk. URL video/audio rujukan mestilah merujuk terus kepada media yang boleh dibaca.
  • Setiap video tidak boleh melebihi 100 MB.
  • Setiap fail audio tidak boleh melebihi 15 MB.
  • Sehingga 15 fail rujukan secara keseluruhan