Ringkasnya Anda dapat mengakses model video Kling yang didukung melalui CometAPI dengan akun dan kunci API CometAPI, alih-alih menyelesaikan alur onboarding pengembang Kling terpisah. Rute teks-ke-video saat ini adalah POST /kling/v1/videos/text2video. Rute ini mengembalikan ID tugas, yang backend Anda polling hingga tugas mencapai succeed atau failed. Ketersediaan model, parameter, harga, dan kelayakan akun dapat berubah, jadi verifikasi katalog model live dan dokumentasi API sebelum penerapan produksi.
Jawaban langsung
Rute praktisnya adalah katalog model Kling milik CometAPI. Jika model Kling yang Anda perlukan tersedia untuk akun CometAPI Anda, server Anda dapat melakukan autentikasi dengan kunci API CometAPI dan memanggil endpoint yang kompatibel dengan Kling yang sesuai. Untuk rute ini, aplikasi API Kling terpisah bukan bagian dari langkah-langkah integrasi.
Pembedaan ini penting bagi tim yang sudah menggunakan CometAPI untuk model lain. Aplikasi mempertahankan satu permukaan manajemen kredensial dan satu hubungan dengan penyedia sambil menambahkan alur kerja video Kling. Kode Anda tetap harus menggunakan skema permintaan khusus video Kling dan siklus hidup tugas asinkron; โsatu kunci APIโ tidak berarti setiap penyedia berbagi satu badan permintaan yang identik.
Artikel ini berfokus pada teks-ke-video karena ini adalah integrasi terkecil yang berguna. CometAPI juga mendokumentasikan gambar-ke-video dan alur Kling lainnya, tetapi masing-masing memiliki endpoint dan batasan parameternya sendiri. Mulailah dengan satu jalur yang telah diverifikasi, lalu tambahkan kapabilitas hanya setelah memeriksa katalog model live dan dokumentasi API terbaru.
Mengapa rute ini bermanfaat bagi tim pengembang
Manfaat langsungnya bersifat operasional, bukan magis. Tim yang sudah menggunakan CometAPI dapat menambahkan alur kerja Kling yang tersedia tanpa membuat integrasi penyedia langsung lain, mendistribusikan kredensial lain, atau membangun jalur manajemen akun terpisah. Ini dapat mengurangi jumlah secret, hubungan penagihan, dan konfigurasi klien khusus penyedia yang harus dipelihara platform Anda.
Manfaat kedua bersifat arsitektural. Aplikasi Anda dapat mengekspos kontrak internal kecil untuk pembuatan videoโprompt, alur kerja, model, opsi, dan status jobโsementara adaptor penyedia menerjemahkan kontrak tersebut ke permintaan Kling sesuai dokumentasi. Jika tim kemudian mengevaluasi model video lain, model job yang menghadap produk dapat tetap stabil meskipun path endpoint, parameter, dan metadata output berbeda.
Batasannya sama pentingnya: lapisan akses yang terkonsolidasi tidak membuat model dasar dapat dipertukarkan. Perilaku prompt, media yang diterima, latensi, harga, kebijakan keselamatan, dan skema hasil dapat bervariasi. Pertahankan perbedaan tersebut terlihat dalam konfigurasi dan pengujian, alih-alih menyembunyikannya di balik asumsi yang tidak didukung.
Apa yang berubah dengan rute akses iniโdan apa yang tidak
Apa yang berubah. Anda membuat dan mengelola kunci CometAPI, mengirim permintaan ke API yang kompatibel dengan Kling milik CometAPI, dan melacak penggunaan dari sisi CometAPI. Ini menghapus langkah onboarding Kling langsung yang terpisah dari jalur akses khusus ini.
Apa yang tidak berubah. Kling tetap menjadi keluarga model yang mendasari. Parameter khusus penyedia, perilaku generasi, aturan penggunaan yang dapat diterima, ketersediaan model, dan karakteristik output tetap penting. Dokumentasi CometAPI juga mencatat bahwa field permintaan dan respons penyedia dapat berbeda, jadi anggap referensi endpoint live sebagai kontrak untuk implementasi Anda.
Apa yang harus Anda verifikasi sebelum berkomitmen. Konfirmasikan bahwa akun Anda dapat mengakses ID model yang diperlukan, tinjau harga dan batas laju saat ini, dan jalankan uji kecil yang diautentikasi. Jangan mendesain alur kerja produksi berdasarkan nama model yang ditemukan di posting blog lama atau contoh yang di-cache.
Sebelum memulai
Anda memerlukan akun CometAPI, kunci API yang disimpan di server Anda, dan backend yang mampu menjalankan job asinkron. Simpan kunci dalam variabel lingkungan seperti COMETAPI_KEY; jangan mengeksposnya di kode browser atau klien seluler.
- Buka katalog model Kling dan konfirmasikan bahwa model yang ingin Anda gunakan saat ini terdaftar untuk akun Anda.
- Tinjau referensi API teks-ke-video Kling terbaru. Pada saat verifikasi, contoh yang didokumentasikan menggunakan
kling-v3. - Buat kunci API sisi server di konsol CometAPI dan atur di lingkungan runtime Anda.
- Putuskan di mana layanan Anda akan menyimpan ID tugas dan video final. Permintaan pembuatan mengembalikan tugas, bukan file video yang sudah selesai.
Pilih alur kerja Kling sebelum Anda merancang permintaan
Mulailah dari aset yang sudah dimiliki produk Anda. Jika pengguna hanya memiliki konsep tertulis, teks-ke-video adalah jalur langsung. Jika pengguna memiliki gambar diam yang harus tetap menjadi jangkar visual, gunakan rute gambar-ke-video yang didokumentasikan terpisah. Jangan menambahkan field gambar ke permintaan teks-ke-video dan mengasumsikan API akan menyimpulkan alur kerja.
| Alur kerja | Path pembuatan saat ini | Gunakan ketika |
|---|---|---|
| Teks ke video | POST /kling/v1/videos/text2video | Inputnya adalah adegan tertulis atau konsep gerak dan tidak ada gambar sumber yang harus dijaga. |
| Gambar ke video | POST /kling/v1/videos/image2video | Input mencakup satu gambar sumber yang harus memandu gerakan yang dihasilkan dan identitas visual. |
Referensi gambar-ke-video saat ini menerima URL gambar publik atau string gambar base64 dan mengembalikan tugas asinkron. Alur Kling yang lebih khusus memiliki halaman dan batasan permintaannya masing-masing. Tambahkan satu per satu hanya ketika kebutuhan produk dan dokumentasi terbaru membenarkan adaptor tambahan.
Untuk pembuktian produksi pertama, gunakan satu alur kerja, satu ID model yang telah diverifikasi, durasi pendek, dan satu set prompt representatif kecil. Ini mengisolasi akses akun dan orkestrasi tugas dari evaluasi output subjektif. Setelah pipeline andal, bandingkan mode atau model dengan set evaluasi tetap alih-alih mengubah beberapa variabel dalam pengujian yang sama.
Buat permintaan teks-ke-video Kling pertama Anda
Endpoint teks-ke-video saat ini menerima JSON dan autentikasi Bearer. Mulailah dengan prompt pendek dan durasi terkecil yang didukung. Permintaan berikut hanya menggunakan field yang ditunjukkan dalam referensi CometAPI terbaru:
curl https://api.cometapi.com/kling/v1/videos/text2video \
-H "Authorization: Bearer $COMETAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A small ceramic cup on a wooden table, steam rising in soft morning light",
"model_name": "kling-v3",
"mode": "std",
"duration": "5",
"sound": "off"
}'
Pengajuan yang berhasil mengembalikan objek yang berisi data.task_id dan status tugas. Simpan ID tugas tersebut bersama catatan job aplikasi Anda. Jangan menjaga koneksi HTTP tetap terbuka saat video dirender.
| Parameter | Nilai yang didokumentasikan | Catatan implementasi |
|---|---|---|
| model_name | Enum saat ini mencakup kling-v3 dan jalur sebelumnya | Konfirmasikan enum live dan ketersediaan akun sebelum penerapan. |
| duration | 5 atau 10 | Mulailah dengan 5 detik untuk memvalidasi alur kerja. |
| aspect_ratio | 16:9, 9:16, 1:1 | Abaikan hanya jika default yang didokumentasikan sesuai permukaan Anda. |
| mode | std atau pro | Referensi menggambarkan pro sebagai kualitas lebih tinggi dan biaya lebih tinggi. |
| sound | on atau off | Ini berlaku hanya untuk jalur model yang mendukung audio yang dihasilkan. |
Tangani tugas asinkron dengan aman
Pembuatan Kling bersifat asinkron. Untuk teks-ke-video, lakukan polling GET /kling/v1/videos/text2video/{task_id}. Referensi tugas CometAPI menyatakan respons dapat mengembalikan tugas secara langsung atau di dalam envelope data, jadi contoh ini menormalkan kedua bentuk tersebut. Contoh ini juga memperlakukan setiap status nonterminal sebagai โtetap menunggu,โ alih-alih mengasumsikan daftar status antara yang tetap.
import os
import time
import requests
API_KEY = os.environ["COMETAPI_KEY"]
BASE_URL = "https://api.cometapi.com/kling/v1/videos/text2video"
HEADERS = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
}
def submit_video(prompt: str) -> str:
response = requests.post(
BASE_URL,
headers=HEADERS,
json={
"prompt": prompt,
"model_name": "kling-v3",
"mode": "std",
"duration": "5",
"sound": "off",
},
timeout=30,
)
response.raise_for_status()
payload = response.json()
return payload["data"]["task_id"]
def wait_for_video(task_id: str, timeout_seconds: int = 600) -> str:
deadline = time.monotonic() + timeout_seconds
poll_url = f"{BASE_URL}/{task_id}"
while time.monotonic() < deadline:
response = requests.get(poll_url, headers=HEADERS, timeout=30)
response.raise_for_status()
payload = response.json()
task = payload.get("data") or payload
status = task.get("task_status")
if status == "succeed":
videos = task.get("task_result", {}).get("videos", [])
if not videos or not videos[0].get("url"):
raise RuntimeError("Task succeeded without a video URL")
return videos[0]["url"]
if status == "failed":
detail = task.get("task_status_msg") or task.get("task_result")
raise RuntimeError(f"Kling task failed: {detail}")
time.sleep(10)
raise TimeoutError(f"Kling task {task_id} exceeded {timeout_seconds}s")
task_id = submit_video(
"A small ceramic cup on a wooden table, steam rising in soft morning light"
)
video_url = wait_for_video(task_id)
print(video_url)
String sukses terminal adalah succeed, bukan succeeded. Saat tugas selesai, salin aset yang dihasilkan ke penyimpanan yang Anda kendalikan jika produk Anda memerlukan retensi. URL pengiriman penyedia tidak boleh dianggap sebagai penyimpanan aplikasi permanen.
Untuk beban kerja yang lebih besar, gunakan antrean atau pekerja alih-alih polling di dalam permintaan web. CometAPI juga mendokumentasikan URL callback untuk tugas Kling. Jika Anda mengadopsi webhook, autentikasi dan deduplikasi event callback, serta pertahankan fallback polling untuk pengiriman yang terlewat.
Rancang siklus hidup job aplikasi sebelum Anda melakukan skala
Perlakukan tugas penyedia sebagai satu bagian dari catatan job Anda sendiri. Simpan ID job aplikasi, alur kerja, model yang diminta, ID tugas penyedia, URL kueri, status saat ini, timestamp pengajuan, waktu polling terakhir, dan lokasi output. Ini memberi tim dukungan dan operasi konteks yang cukup untuk menyelidiki pembuatan yang gagal atau lambat tanpa mencari log permintaan mentah.
Jangan coba ulang permintaan pembuatan hanya karena klien tidak menerima respons. Penyedia mungkin sudah membuat tugas. Persistenkan job lokal Anda sebelum pengajuan, simpan ID tugas segera, dan pisahkan retry pembuatan dari retry kueri status. Referensi teks-ke-video saat ini juga mendokumentasikan external_task_id untuk pelacakan; konfirmasikan perilaku live sebelum mengandalkannya sebagai mekanisme deduplikasi.
const TERMINAL = new Set(["succeed", "failed"]);
function normalizeKlingTask(payload) {
const task = payload?.data ?? payload;
if (!task?.task_id || !task?.task_status) {
throw new Error("Kling response is missing task identity or status");
}
return task;
}
async function refreshVideoJob(job, apiKey) {
const response = await fetch(job.queryUrl, {
headers: { Authorization: `Bearer ${apiKey}` },
});
if (!response.ok) {
throw new Error(`Task query failed with HTTP ${response.status}`);
}
const task = normalizeKlingTask(await response.json());
const outputUrl = task.task_result?.videos?.[0]?.url ?? null;
return {
...job,
providerTaskId: task.task_id,
providerStatus: task.task_status,
terminal: TERMINAL.has(task.task_status),
outputUrl,
failureDetail: task.task_status_msg ?? null,
checkedAt: new Date().toISOString(),
};
}
Contoh ini dengan sengaja tidak menerjemahkan setiap kemungkinan status antara penyedia menjadi janji produk. Pekerja Anda menjaga tugas nonterminal tetap aktif, menangani succeed dan failed secara eksplisit, dan mencatat status penyedia mentah untuk debug. Tambahkan batas waktu aplikasi terpisah agar tugas yang macet tidak tetap terbuka selamanya.
Gunakan polling sebagai baseline karena ID tugas tetap dapat dikueri. Saat endpoint yang dipilih mendukung callback_url, webhook dapat mengurangi permintaan status berulang, namun sebaiknya tidak menjadi satu-satunya mekanisme pemulihan Anda. Panduan polling dan webhook resmi mencatat bahwa payload callback dapat spesifik penyedia. Simpan event mentah, buat pemrosesan idempoten berdasarkan ID tugas, kembalikan respons HTTP sukses dengan cepat, dan rekonsiliasi status terminal melalui polling.
Daftar periksa produksi untuk tim pengembang
- Validasi model saat runtime. Periksa katalog saat ini dan gagal dengan jelas ketika model yang diminta tidak tersedia. Jangan diam-diam mengganti model lain jika perilaku output penting.
- Pisahkan pengajuan dari pengambilan. Simpan ID tugas CometAPI, ID job Anda sendiri, model yang dipilih, dan timestamp sehingga retry tidak membuat pekerjaan duplikat.
- Batasi polling. Gunakan batas waktu, backoff eksponensial atau interval tetap yang wajar, dan jumlah retry maksimum. Tinjau panduan batas laju dan konkurensi CometAPI sebelum meningkatkan paralelisme.
- Klasifikasikan kesalahan. Jangan coba ulang parameter tidak valid atau kegagalan autentikasi. Terapkan backoff untuk kesalahan rate-limit dan platform yang dapat dicoba ulang, mengikuti panduan retry saat ini.
- Lindungi kredensial dan input. Simpan kunci API di sisi server, hindari mencatat secret, dan konfirmasikan bahwa pengguna memiliki hak atas prompt, gambar, atau aset sumber lain yang mereka kirimkan.
- Ukur keseluruhan job. Lacak keberhasilan pengajuan, waktu antre, waktu pembuatan, tingkat kegagalan terminal, tingkat batas waktu, keberhasilan pengambilan output, dan biaya menurut model dan mode.
- Simpan output secara terencana. Unduh aset yang selesai ke penyimpanan yang Anda kendalikan ketika produk Anda memerlukan akses yang tahan lama, lalu terapkan kebijakan retensi dan penghapusan Anda.
FAQ praktis
Apakah saya memerlukan akun pengembang Kling terpisah untuk rute ini?
Tidak ada langkah onboarding pengembang Kling terpisah yang muncul dalam alur integrasi CometAPI. Anda menggunakan akun dan kunci API CometAPI. Akses tetap bergantung pada ketersediaan model untuk akun dan wilayah CometAPI Anda, jadi konfirmasikan hal itu sebelum berkomitmen ke produksi.
Apakah API Kling sepenuhnya kompatibel dengan OpenAI?
Tidak untuk alur video yang ditunjukkan di sini. Alur ini menggunakan rute khusus Kling seperti /kling/v1/videos/text2video dan field khusus Kling. Anda dapat mengelola kredensial melalui CometAPI, tetapi adaptor Anda harus mempertahankan skema khusus penyedia.
ID model Kling mana yang harus saya gunakan?
Referensi teks-ke-video CometAPI saat ini menggunakan kling-v3 dalam contoh berfungsi pertamanya dan mencantumkan beberapa jalur model sebelumnya. Gunakan ID model dari enum endpoint live dan verifikasi bahwa ID tersebut diaktifkan untuk akun Anda. Jangan berasumsi model terbaru tersedia di semua tempat.
Mengapa respons pertama tidak berisi video?
Pembuatan video berjalan sebagai tugas asinkron. Respons awal mengembalikan ID tugas. Lakukan polling rute kueri yang cocok sampai task_status menjadi succeed atau failed, lalu baca metadata hasilnya.
Haruskah saya melakukan polling atau menggunakan URL callback?
Polling lebih mudah untuk integrasi pertama. Callback mengurangi permintaan berulang dalam skala besar tetapi memerlukan penerima yang diautentikasi, idempoten, dan logika pemulihan. Banyak sistem produksi menggunakan callback sebagai jalur utama dan polling sebagai fallback.
Bisakah saya menggunakan gambar-ke-video melalui endpoint yang sama?
Tidak. CometAPI mendokumentasikan gambar-ke-video di rute terpisah, /kling/v1/videos/image2video. Ikuti skema permintaan endpoint tersebut yang terbaru alih-alih menambahkan field gambar ke contoh teks-ke-video.
Haruskah saya memulai dengan mode standar atau profesional?
Gunakan std untuk memvalidasi autentikasi, bentuk permintaan, penyimpanan tugas, polling, dan pengambilan output. Referensi saat ini menggambarkan pro sebagai mode dengan kualitas lebih tinggi dan biaya lebih tinggi. Evaluasi dengan prompt yang representatif hanya setelah alur dasar bekerja, dan bandingkan kualitas output bersama waktu pembuatan dan biaya aktual.
Bagaimana cara menghindari generasi duplikat saat melakukan retry?
Buat catatan job aplikasi sebelum memanggil API dan segera simpan ID tugas penyedia yang dikembalikan. Coba ulang kueri status secara terpisah dari permintaan pembuatan. Jangan berasumsi bahwa mengulangi POST yang sama bersifat idempoten. Endpoint saat ini mendokumentasikan external_task_id untuk pelacakan, tetapi verifikasi semantik terkininya sebelum menganggapnya sebagai jaminan deduplikasi.
Kesimpulan
Untuk tim pengembang di AS yang ingin menguji pembuatan video Kling tanpa menyelesaikan aplikasi pengembang Kling langsung yang terpisah, CometAPI menyediakan rute yang didokumentasikan: verifikasi bahwa model Kling yang diperlukan tersedia untuk akun, autentikasi dengan kunci CometAPI, panggil endpoint khusus alur kerja, dan lacak tugas asinkron hingga status terminal.
Nilai rekayasa praktisnya adalah akses yang terpusat dan model job aplikasi yang dapat digunakan kembaliโbukan asumsi bahwa setiap penyedia video berperilaku sama. Pertahankan adaptor tipis untuk setiap alur kerja, persistenkan identitas tugas dan output secara terencana, dan pertahankan polling sebagai jalur pemulihan bahkan saat callback diaktifkan.
Penerapan yang aman bersifat kecil dan terukur: validasi satu model dan satu alur kerja, kirim job pendek berbiaya rendah, catat tingkat keberhasilan dan kegagalan terminal, verifikasi pengambilan output, dan bandingkan biaya serta latensi aktual dengan kebutuhan produk Anda. Perluas ke gambar-ke-video atau alur Kling tambahan hanya setelah dokumentasi terbaru dan akun target Anda telah diperiksa.
