Dokümantasyona geç
Bu sayfada

Kling 4.0

Metin, ilk ve son kareler veya çok modlu referanslar kullanarak Kling 4.0 ile videolar üretin. Bu sayfa, bu modele ait istekten sonuca kadar olan tüm iş akışını kapsar.

API model kimliği: kling-4-0

Üretim asenkrondur. Görev oluşturulduğunda dönen taskId değerini kaydedin, ardından durumunu sorgulayın veya bir webhook alın.

Yetenekler

ÖzellikDesteklenen değerler
Çıkış çözünürlüğü720p · 1080p
Çıkış süresi3–30 s
En boy oranıauto, 16:9, 9:16, 1:1, 21:9
Referans görseller10 adede kadar görsel
Referans videolar5 adede kadar video
Referans ses dosyaları3 adede kadar ses dosyası
Tüm referansların toplamıToplam 15 adede kadar kaynak dosya
Referans videolar (Σ)30 saniye
seedDesteklenmiyor

Fiyatlandırma ve krediler

Video oluşturma işlemi, saniye cinsinden faturalandırılabilir süreye göre krediyle ücretlendirilir. Video girdisi olmadığında, faturalandırılabilir süre çıktı süresidir; video girdisi olduğunda ise referans video süresi de bu süreye dahil edilir.

Aşağıdaki tabloda, bir görevin toplam maliyeti değil, saniye başına tahsil edilen kredi miktarı listelenmiştir. Ücretlendirme oranı modele, çıktı çözünürlüğüne ve referans videodan videoya modunda referans videoların sağlanıp sağlanmadığına bağlıdır. Toplam maliyet hesaplaması için tablonun altındaki formüllere ve örneklere göz atabilirsiniz.

Çıkış çözünürlüğüVideo girişi olmadanVideo girişi ile
720p13 kredi/saniye8 kredi/saniye
1080p20 kredi/saniye13 kredi/saniye
  • Video girişi olmadan: çıkış saniyesi × video içermeyen ücret.
  • Video girdisi varsa T, referans videolarının sunucuda ölçülen toplam süresidir (saniye). Son kredi tutarı yukarı yuvarlanır. ceil((duration + max(duration, T)) × rate)
  • Yalnızca görsel veya ses referanslarının kullanılması, videosuz ücret üzerinden değerlendirilir. Referans video faturalandırma ücreti, yalnızca referans videolar sağlandığında referanstan videoya modunda geçerlidir.

Ücret hesaplama örnekleri

5 saniyelik 720p metinden videoya: 5 × 13 = 65 kredi.

5 saniyelik referans video ile 5 saniyelik 720p çıkış: (5 + 5) × 8 = 80 kredi.

Krediler istek gönderildiğinde rezerve edilir ve işlem başarıyla tamamlandığında tahsil edilir. Başarısız olan veya zaman aşımına uğrayan görevler iade sürecine girer. refund_failed fatura durumu, iadenin tamamlanamadığı anlamına gelir; API günlüklerini kontrol edin veya destek ekibiyle iletişime geçin.

Kimlik doğrulama

Panelde bir API anahtarı oluşturun. Anahtarın tamamı yalnızca bir kez gösterilir. Bu anahtarı sunucunuzda saklayın ve her istekte Bearer token olarak gönderin.

Temel URL

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

Bu örnekleri çalıştırmadan önce SEEVIO_API_KEY ortam değişkenini tanımlayın. JavaScript örnekleri sunucunuzda Node.js ile çalışır; Python örnekleri ise requests paketini kullanır.

Hızlı başlangıç

Bu temel isteği gönderin, dönen taskId değerini kaydedin ve ardından aşağıdaki görev sorgulama örneğini kullanın. İstek oluşturma yanıtındaki credits değeri, ayrılan (rezerve edilen) miktarı gösterir.

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

Görev oluşturma yanıtı örneği

Yukarıdaki istek kabul edildikten sonra API bu JSON yanıtını döndürür. taskId, sonraki durum sorgulamalarında kullanılan görev tanımlayıcıdır; credits ise bu görev için ayrılan kredi miktarını gösterir. Bu yanıt yalnızca görevin oluşturulduğunu onaylar, videonun hazır olduğu anlamına gelmez. Video sonuçlarını almak için görev durumunu düzenli olarak sorgulamanız (poll) veya bir Webhook kullanmanız gerekir.

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

Görev oluştur

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

model, input ve isteğe bağlı bir callback_url içeren bir JSON nesnesi gönderin. Her zaman bu sayfada gösterilen model ID'sini belirtin; model belirtilmezse varsayılan olarak seedance-2-0 seçilir.

İstek gövdesi

AlanTürZorunluAçıklama ve kısıtlamalar
model
stringEvet

Model kimliği. Kling 4.0 kullanmak için bu alanı kling-4-0 olarak ayarlayın.

callback_url
stringHayır

Tamamlanma ve başarısızlık POST geri çağrıları (callback) için genel erişime açık HTTPS uç noktası. Özel ağlara ve localhost adresine izin verilmez.

Örnek: https://example.com/webhooks/seevio
input
objectEvet

Giriş parametreleri

Giriş parametreleri

AlanTürVarsayılanAçıklama ve kısıtlamalar
input.generation_typestringtext-to-videotext-to-video | image-to-video | reference-to-video
input.promptstring—En fazla 8000 karakter. Yalnızca görselden video üretiminde isteğe bağlıdır. Referansları türe ve dizi sırasına göre @Image1, @Video1 ve @Audio1 ile başlayarak numaralandırın.
input.durationinteger53–30 s
input.resolutionstring720p720p | 1080p
input.aspect_ratiostringModa bağlı
Desteklenen değerlerauto16:99:161:121:9

Sabit oran çıktı biçimini belirler. Alan boş bırakılırsa veya auto seçilirse metin modu 16:9, görsel modu ilk karenin oranını kullanır. Referans modunda oran referans görsellerine veya videolarına göre belirlenir.

input.image_urlsstring[][]Görselden üretimde ilk kareyi ve isteğe bağlı olarak ardından son kareyi gönderin. Referans modu en fazla 10 görsel kabul eder.
input.keyframe_urlsstring[][]Görselden üretimde ara kareleri oynatma sırasıyla gönderin. Son kare yoksa en fazla 9, varsa 8 ara kare kullanılabilir.
input.video_urlsstring[][]Yalnızca referans modunda kullanılır. Aksiyon veya kamera hareketine örnek olacak videoların HTTPS adreslerini gönderin. Her biri 2–30 saniye olan en fazla 5 klip gönderilebilir. Toplam süre en fazla 30 saniyedir.
input.audio_urlsstring[][]Yalnızca referans modunda kullanılır. Üretilecek sese örnek olacak ses kliplerinin HTTPS adreslerini gönderin. Her biri 5–30 saniye olan en fazla 3 klip gönderilebilir.
input.keep_original_soundbooleanfalsevideo_urls bir referans videosu içeriyorsa true özgün sesi korur, false (varsayılan) yeni ses üretir. Referans videosu yoksa bu ayar yok sayılır.

Yanıt oluştur

HTTP 200, taskId (dize) ve credits (sayı) döndürür. Bu, görevin tamamlandığını değil, oluşturulduğunu onaylar. Aşağıdaki miktar, 5 saniyelik 720p hızlı başlangıç değerine karşılık gelir.

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

Üretim modları ve örnekler

example.com medya URL'lerini kendi genel erişime açık HTTPS dosyalarınızla değiştirin. Örnek URL'ler istek yapısını göstermek amaçlıdır ve indirilebilir örnek varlıklar değildir.

Metinden videoya

Bir metin isteminden video üretin. Medya URL'leri bu modda iletilmez.

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

İlk kare

İlk kare olarak tek bir görsel sağlayın, ardından isteminizde hareketi tanımlayın.

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

İlk ve son kareler

Görselden üretimde ilk kareyi ve isteğe bağlı olarak ardından son kareyi gönderin. Referans modu en fazla 10 görsel kabul eder.

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

Anahtar kare örneği: açan bir gül

Aynı açıdan çekilmiş dört fotoğrafla 8 saniyelik hızlandırılmış bir video oluşturun. image_urls dizisine ilk kare olarak kapalı tomurcuğu, son kare olarak tamamen açmış gülü koyun. keyframe_urls dizisine önce yaprakların açılmaya başladığı, sonra gülün yarı açık olduğu fotoğrafı ekleyin. Video tomurcuktan bu iki ara aşamaya, ardından tam çiçeklenmeye geçer. Dizinin sırası karelerin sırasını, model ise zamanlamayı belirler.

example.com medya URL'lerini kendi genel erişime açık HTTPS dosyalarınızla değiştirin. Örnek URL'ler istek yapısını göstermek amaçlıdır ve indirilebilir örnek varlıklar değildir.

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

Çok modlu referans

Görsel, video ve ses referanslarını birleştirin. İstem alanı yine de zorunludur. Referans video girişi faturalandırma formülünü değiştirir.

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

Görev sorgula

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

Örnek kimliği, oluşturma sırasında dönen taskId ile değiştirin. Sorgular yalnızca API anahtarının sahibine ait görevleri döndürür; erişilemeyen veya bilinmeyen kimlikler HTTP 404 döndürür.

Başlangıçta her 10-20 saniyede bir sorgulama yapın, HTTP 429 hatasında sıklığı azaltın ve durum completed veya failed olduğunda sorgulamayı durdurun. Üretim ortamında webhook'ları tercih edin. Aşağıdaki her kod örneği tek bir sorgu gerçekleştirir.

curl --fail-with-body https://api.seevio.ai/v1/tasks/3f2aK9mR7xQp4TnZ8bLc6YwH \
  -H "Authorization: Bearer $SEEVIO_API_KEY"
DurumAçıklama ve kısıtlamalar
queuedKabul edildi ve işlenmek üzere bekleniyor.
generatingÜretim devam ediyor.
completedBaşarılı sonuçlanma. Süre dolmadan önce data.results altındaki dosyaları indirin.
failedBaşarısız sonuçlanma. failed_reason ve billing_status alanlarını inceleyin.
AlanTürAçıklama ve kısıtlamalar
idstring
Görev tanımlayıcı. Bu, oluşturma yanıtındaki taskId değeridir.
created_atnumber
Unix saniyesi olarak görevin oluşturulma zamanı.
modelstring
Bu görev için kullanılan genel model kimliği.
billing_statusstring
reserved (rezerve edildi), charged (tahsil edildi), refunded (iade edildi) veya refund_failed (iade başarısız).
creditsnumber
Bu görev için rezerve edilen kredi. Bu değer iade sonrasında da korunur; faturalandırma sonucunu belirlemek için billing_status alanını inceleyin.
failed_reasonstring | null
Başarısız görevlerdeki başarısızlık nedeni; aksi takdirde null. Başarısız sorgu yanıtlarında data alanı yer almaz.
dataobject
Başarısız olmayan görev sorgularında bulunur. Çıkış ve işlem detaylarını içerir.
data.resultsstring[]
Video URL dizisi. Tamamlanana kadar veya videonun süresi dolduktan sonra boştur.
data.video_expires_atstring | null
ISO 8601 zaman damgası olarak videonun son geçerlilik tarihi veya video henüz hazır değilse null. Sonucu bu süreden önce kaydedin.
data.last_frame_urlstring | null
Talep edildiğinde ve mevcut olduğunda son kare URL'si, aksi takdirde null.
data.processing_timenumber | null
Mevcut olduğunda saniye cinsinden görevin işlem süresi, aksi takdirde null.

Tamamlanan görev: video sonuçlarını içeren sorgu yanıtı

Sorgu status=completed değerini döndürdüğünde video üretimi tamamlanmış demektir. Video URL'lerini data.results alanından okuyabilir ve data.video_expires_at tarihinden önce indirebilirsiniz. billing_status=charged ifadesi, rezerve edilen kredilerin tahsil edildiğini gösterir.

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

Başarısız görev: hata ve faturalandırma ayrıntılarını içeren sorgu yanıtı

Sorgu status=failed değerini döndürdüğünde üretim süreci başarısızlıkla sonuçlanmış demektir. Hatanın nedenini öğrenmek için failed_reason alanını, iade sonucunu görmek için ise billing_status alanını inceleyebilirsiniz. Bu örnekteki refunded ifadesi, kredilerin iade edildiğini gösterir. credits alanı orijinal rezerve edilen miktarı korur ve yanıt data alanını içermez.

{
  "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'lar

Görev tamamlandığında veya başarısız olduğunda bir JSON POST isteği almak için oluşturma isteğinde callback_url alanını ayarlayın. 15 saniye içinde bir 2xx yanıtı döndürün. İletilemeyen bildirimler tekrar denenir; yinelenen bildirimleri görev kimliğine göre tekilleştirerek (idempotent) işleyin.

Geri arama (callback) uç noktanız, JSON istek gövdesine (Content-Type: application/json) sahip POST isteklerini kabul etmelidir.

Geri çağırma (callback) ile görev oluşturma

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

Görev tamamlandı: Başarılı geri arama yükü

Oluşturma işlemi başarıyla tamamlandığında, geri arama status=completed değerini döndürür. Görevi tanımlamak için id parametresini, video URL'lerini almak için ise data.results parametresini kullanın. Sonuçları data.video_expires_at tarihinden önce indirip kaydetmeyi unutmayın.

created_at olayın, task_created_at görevin oluşturulma zamanıdır; ikisi de Unix saniyesidir. Örnekler önerilen alanları gösterir; yanıtlar ek alanlar içerebilir.

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

Görev başarısız oldu: Başarısızlık geri arama yükü

Oluşturma işlemi başarısız olduğunda, geri arama status=failed değerini döndürür. Görevi tanımlamak için id, başarısızlık nedenini görmek için failed_reason ve iade edilen kredi miktarını öğrenmek için credits_refunded parametrelerini kullanın.

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

Alıcı örneği

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

Bu Next.js örneği, JSON geri arama gövdesini okur ve tamamlanan ya da başarısız olan görevleri doğrudan işler. Kendi uygulamanız için veri kalıcılığı ve görev kimliği (task-ID) tekilleştirme özellikleri ekleyin; geri aramayı onaylamadan önce yavaş çalışan işlemleri sıraya alın.

Medya gereksinimleri ve sınırlamaları

  • Tüm medya ve geri çağırma URL'leri genel erişime açık HTTPS URL'leri olmalıdır. Localhost, özel IP'ler ve çerez veya oturum açma gerektiren dosyalardan kaçının. Referans video/ses URL'leri doğrudan okunabilir medyaya yönlenmelidir.
  • Her bir videonun boyutu 100 MB'ı aşmamalıdır.
  • Her bir ses dosyasının boyutu 15 MB'ı aşmamalıdır.
  • Toplam 15 adede kadar kaynak dosya