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
| Ciri | Nilai yang disokong |
|---|---|
| Resolusi output | 720p · 1080p |
| Durasi output | 3–30 s |
| Nisbah aspek | auto, 16:9, 9:16, 1:1, 21:9 |
| Imej rujukan | Sehingga 10 imej |
| Video rujukan | Sehingga 5 video |
| Fail audio rujukan | Sehingga 3 fail audio |
| Semua rujukan digabungkan | Sehingga 15 fail rujukan secara keseluruhan |
| Video rujukan (Σ) | 30 saat |
| seed | Tidak 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 output | Tanpa input video | Dengan input video |
|---|---|---|
720p | 13 kredit/saat | 8 kredit/saat |
1080p | 20 kredit/saat | 13 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.aiAuthorization: Bearer sk_live_your_api_key
Content-Type: application/jsonTetapkan 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/generationsHantar 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
| Medan | Jenis | Diperlukan | Penerangan & had |
|---|---|---|---|
model | string | Ya | ID Model. Untuk menggunakan Kling 4.0, tetapkan medan ini kepada kling-4-0. |
callback_url | string | Tidak | 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 | object | Ya | Parameter input |
Parameter input
| Medan | Jenis | Nilai lalai | Penerangan & had |
|---|---|---|---|
input.generation_type | string | text-to-video | text-to-video | image-to-video | reference-to-video |
input.prompt | string | — | Sehingga 8000 aksara. Pilihan hanya untuk penjanaan daripada imej. Nomborkan rujukan mengikut jenis dan susunan tatasusunan bermula dengan @Image1, @Video1 dan @Audio1. |
input.duration | integer | 5 | 3–30 s |
input.resolution | string | 720p | 720p | 1080p |
input.aspect_ratio | string | Bergantung pada mod | Nilai yang disokong auto16:99:161:121:9Nisbah 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_urls | string[] | [] | Untuk penjanaan daripada imej, berikan bingkai pertama diikuti bingkai terakhir jika perlu. Mod rujukan menerima sehingga 10 imej. |
input.keyframe_urls | string[] | [] | Bingkai perantaraan mengikut turutan main balik untuk penjanaan daripada imej. Sehingga 9 tanpa bingkai terakhir atau 8 dengannya. |
input.video_urls | string[] | [] | 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_urls | string[] | [] | 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_sound | boolean | false | Jika 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
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"| Status | Penerangan & had |
|---|---|
queued | Diterima dan sedang menunggu untuk dihantar. |
generating | Penjanaan sedang dijalankan. |
completed | Berjaya sepenuhnya. Muat turun data.results sebelum tamat tempoh. |
failed | Gagal sepenuhnya. Periksa failed_reason dan billing_status. |
| Medan | Jenis | Penerangan & had |
|---|---|---|
id | string | Pengecam tugasan. Ini ialah taskId daripada respons cipta. |
created_at | number | Masa penciptaan tugasan dalam saat Unix. |
model | string | ID model awam yang digunakan untuk tugasan ini. |
billing_status | string | reserved, charged, refunded atau refund_failed. |
credits | number | Kredit yang ditempah untuk tugasan ini. Nilai ini dikekalkan selepas bayaran balik; periksa billing_status untuk menentukan hasil pengebilan. |
failed_reason | string | null | Punca kegagalan bagi tugasan yang gagal; bernilai null jika sebaliknya. Respons pertanyaan yang gagal mengabaikan bahagian data. |
data | object | Ada pada pertanyaan tugasan yang tidak gagal. Mengandungi butiran output dan pemprosesan. |
data.results | string[] | Tatasusunan URL video. Kosong sehinggalah tugasan selesai atau selepas video tamat tempoh. |
data.video_expires_at | string | null | Masa tamat tempoh video sebagai penanda masa ISO 8601, atau null sebelum ia tersedia. Simpan hasil sebelum waktu ini. |
data.last_frame_url | string | null | URL bingkai terakhir apabila diminta dan tersedia, jika tidak nilainya adalah null. |
data.processing_time | number | 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