curl --request POST \
--url https://api.apimart.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling-v4",
"prompt": "A paper boat drifts along a gutter on a rainy night, with the gentle sound of rain",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "9:16"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/videos/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "kling-v4",
"prompt": "A paper boat drifts along a gutter on a rainy night, with the gentle sound of rain",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "9:16"
}
)
response.raise_for_status()
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/videos/generations", {
method: "POST",
headers: {
Authorization: "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "kling-v4",
prompt: "A paper boat drifts along a gutter on a rainy night, with the gentle sound of rain",
duration: 5,
resolution: "720p",
aspect_ratio: "9:16"
})
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
Kling V4
Kling V4 Pembuatan Video
Teks ke video, gambar ke video, pembuatan berbasis referensi, pengeditan, dan perpanjangan video. Hasilkan 3–30 detik pada 720p / 1080p, selalu dengan audio stereo.
POST
/
v1
/
videos
/
generations
curl --request POST \
--url https://api.apimart.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling-v4",
"prompt": "A paper boat drifts along a gutter on a rainy night, with the gentle sound of rain",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "9:16"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/videos/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "kling-v4",
"prompt": "A paper boat drifts along a gutter on a rainy night, with the gentle sound of rain",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "9:16"
}
)
response.raise_for_status()
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/videos/generations", {
method: "POST",
headers: {
Authorization: "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "kling-v4",
prompt: "A paper boat drifts along a gutter on a rainy night, with the gentle sound of rain",
duration: 5,
resolution: "720p",
aspect_ratio: "9:16"
})
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
Endpoint ini bekerja secara asinkron. Setelah mengirim permintaan, gunakan
task_id yang dikembalikan dengan GET /v1/videos/generations/{task_id} untuk memeriksa status dan hasil tugas.curl --request POST \
--url https://api.apimart.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling-v4",
"prompt": "A paper boat drifts along a gutter on a rainy night, with the gentle sound of rain",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "9:16"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/videos/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "kling-v4",
"prompt": "A paper boat drifts along a gutter on a rainy night, with the gentle sound of rain",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "9:16"
}
)
response.raise_for_status()
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/videos/generations", {
method: "POST",
headers: {
Authorization: "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "kling-v4",
prompt: "A paper boat drifts along a gutter on a rainy night, with the gentle sound of rain",
duration: 5,
resolution: "720p",
aspect_ratio: "9:16"
})
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
Pemilihan mode
Kelima mode memakai nama model yang sama,kling-v4. Mode dipilih berdasarkan aset yang diberikan dan omni_reference_task_type.
| Mode | Input |
|---|---|
| Teks ke video | Tanpa aset gambar, video, atau audio |
| Gambar ke video | Satu bingkai awal, dengan bingkai akhir dan hingga 8 bingkai antara sebagai opsi |
| Pembuatan berbasis referensi | Berikan video_urls, audio_urls, atau reference_image dalam image_with_roles; atau tetapkan omni_reference_task_type: "reference" secara eksplisit |
| Pengeditan video | Tetapkan omni_reference_task_type: "edit" dan berikan video input |
| Perpanjangan video | Tetapkan omni_reference_task_type: "extend" dan berikan video input |
omni_reference_task_type adalah auto, sama dengan tidak mengirim kolom ini. Jika secara eksplisit diatur ke reference, gambar dalam image_urls diperlakukan sebagai gambar referensi.
Mengirim hanya
video_url tanpa menentukan edit atau extend menghasilkan HTTP 400. Untuk memakai video sebagai referensi, gunakan video_urls.Header permintaan
string
wajib
Autentikasi Bearer:
Bearer <token>, dengan <token> sebagai API Key APIMart Anda.Parameter permintaan
string
wajib
Harus
kling-v4.string
Jelaskan konten yang akan dibuat atau diedit. Opsional untuk gambar ke video; wajib untuk mode lainnya.Dalam pembuatan berbasis referensi, gunakan
@Image1, @Video1, dan @Audio1 untuk merujuk aset, dengan penomoran mulai dari 1 sesuai urutan setiap array. Dalam pengeditan video, video input adalah @Video1, sedangkan gambar referensi adalah @Image1, @Image2, dan seterusnya.integer
Durasi yang dihasilkan dalam detik, dari
3 hingga 30; default: 5.- Pengeditan video: jika tidak dikirim, durasi output mengikuti video input.
- Perpanjangan video: durasi segmen baru. Video yang dikembalikan menggabungkan video asli dan segmen baru.
string
default:"720p"
Resolusi output:
720p atau 1080p. Gunakan kolom ini untuk memilih resolusi; V4 tidak mendukung mode.string
Mendukung
16:9, 9:16, 1:1, dan 21:9. Pembuatan berbasis referensi juga mendukung auto.| Mode | Perilaku default |
|---|---|
| Teks ke video | 16:9 |
| Gambar ke video | Mengikuti bingkai awal |
| Pembuatan berbasis referensi | auto |
| Pengeditan video | Mengikuti video input |
| Perpanjangan video | Kolom ini tidak didukung; rasio aspek asli dipertahankan |
string[]
Daftar URL gambar, dengan arti sesuai mode:
- Gambar ke video: gambar pertama menjadi bingkai awal dan gambar kedua menjadi bingkai akhir; maksimal 2 gambar.
- Pembuatan berbasis referensi dan pengeditan video: hingga 10 gambar referensi. Untuk membuat video hanya dari gambar referensi, tetapkan
omni_reference_task_type: "reference"secara eksplisit.
object[]
Daftar gambar dengan peran. Setiap item berisi
Untuk gambar ke video, total bingkai awal, akhir, dan antara tidak boleh melebihi 10 gambar.
url dan role.role | Kegunaan |
|---|---|
first_frame | Bingkai awal untuk gambar ke video; wajib tepat 1 |
last_frame | Bingkai akhir untuk gambar ke video, atau bingkai akhir target untuk perpanjangan |
keyframe | Bingkai antara untuk gambar ke video; middle_frame juga diterima. Digunakan sesuai urutan array, hingga 8 gambar |
reference_image | Gambar referensi untuk pembuatan berbasis referensi |
string
URL bingkai awal untuk gambar ke video. Bisa juga diberikan melalui
first_frame dalam image_with_roles, atau sebagai gambar pertama dalam image_urls.string
URL bingkai akhir untuk gambar ke video, atau URL bingkai akhir target untuk perpanjangan.
string[]
Video referensi untuk pembuatan berbasis referensi: hingga 5 klip, dengan total penggunaan maksimal 30 detik.Untuk pengeditan atau perpanjangan, Anda juga dapat memberikan tepat 1 URL video sebagai pengganti
video_url, dengan omni_reference_task_type: "edit" atau "extend".string
URL video input untuk pengeditan atau perpanjangan. Wajib disertai
omni_reference_task_type: "edit" atau "extend".Untuk pengeditan, video input harus berdurasi minimal 3 detik; durasi yang lebih pendek menghasilkan HTTP 400. Jika melebihi 30 detik, hanya 30 detik pertama yang digunakan.string[]
Audio referensi untuk pembuatan berbasis referensi: hingga 3 klip, masing-masing 5–30 detik.Dalam pembuatan berbasis referensi, total gambar, video, dan audio referensi maksimal 15 aset.
string
default:"auto"
Mendukung
auto, reference, edit, dan extend.auto: memilih teks ke video, gambar ke video, atau pembuatan berbasis referensi berdasarkan aset; sama dengan tidak mengirim kolom ini.reference: pembuatan berbasis referensi; gambar dalamimage_urlsdiperlakukan sebagai referensi.edit: pengeditan video; memerlukan video input.extend: perpanjangan video; memerlukan video input.
string
Mendukung
origin (mempertahankan audio video input) dan auto (membuat audio baru). Hanya untuk pengeditan atau pembuatan berbasis referensi yang menyertakan video referensi.- Pengeditan video: secara default mempertahankan audio asli;
automembuat audio baru. - Pembuatan berbasis referensi dengan video referensi: secara default membuat audio baru;
originmempertahankan audio video referensi. - Perpanjangan video: kolom ini tidak didukung. Audio asli dipertahankan, dan audio untuk segmen baru dibuat secara otomatis.
Contoh permintaan
URL aset di bawah hanyalah contoh. Ganti dengan URL asli yang dapat diakses publik.Gambar ke video: bingkai awal dan akhir
{
"model": "kling-v4",
"prompt": "The camera slowly moves closer",
"image_urls": ["https://example.com/start.png", "https://example.com/end.png"]
}
prompt opsional untuk gambar ke video.
Gambar ke video: bingkai awal, antara, dan akhir
{
"model": "kling-v4",
"prompt": "A girl walks from the window to the door, then looks back and smiles",
"image_with_roles": [
{"url": "https://example.com/1.png", "role": "first_frame"},
{"url": "https://example.com/2.png", "role": "keyframe"},
{"url": "https://example.com/3.png", "role": "keyframe"},
{"url": "https://example.com/4.png", "role": "last_frame"}
],
"duration": 10
}
Pembuatan berbasis referensi
{
"model": "kling-v4",
"prompt": "The girl in @Image1 runs along the beach with the camera movement from @Video1 and background music from @Audio1",
"image_with_roles": [
{"url": "https://example.com/girl.png", "role": "reference_image"}
],
"video_urls": ["https://example.com/camera.mp4"],
"audio_urls": ["https://example.com/bgm.mp3"],
"aspect_ratio": "auto",
"duration": 5
}
Pengeditan video
{
"model": "kling-v4",
"prompt": "Change the scene to a snowy winter night",
"omni_reference_task_type": "edit",
"video_url": "https://example.com/in.mp4",
"image_urls": ["https://example.com/style.png"]
}
duration dan aspect_ratio, durasi serta rasio aspek output mengikuti video input. Audio asli dipertahankan secara default; gunakan audio_setting: "auto" untuk membuat audio baru.
Perpanjangan video
{
"model": "kling-v4",
"prompt": "The camera continues moving forward as the sky grows darker",
"omni_reference_task_type": "extend",
"video_url": "https://example.com/in.mp4",
"duration": 5
}
last_frame_image atau last_frame dalam image_with_roles. Perpanjangan tidak mendukung aspect_ratio maupun audio_setting.
Memeriksa tugas
Ganti ID tugas dalam permintaan berikut dengan ID yang dikembalikan saat pengiriman:curl --request GET \
--url 'https://api.apimart.ai/v1/videos/generations/<task_id>' \
--header 'Authorization: Bearer <token>'
Penagihan
Ditagih per detik. Lihat Harga Model untuk tarif.720p dan 1080p memiliki tarif terpisah.
Pengeditan video dan pembuatan berbasis referensi dengan video referensi menggunakan tarif dengan input video. Mode lainnya menggunakan tarif pembuatan standar.
| Mode | Detik yang ditagih |
|---|---|
| Teks ke video, gambar ke video, pembuatan berbasis referensi hanya dengan gambar atau audio | Detik output |
| Perpanjangan video | Detik segmen baru |
| Pengeditan video, pembuatan berbasis referensi dengan video referensi | Detik output + max(detik output, detik video input) |
duration menghasilkan 4 detik, dengan tagihan 4 + 4 = 8 detik.
Untuk pengeditan dan pembuatan berbasis referensi dengan video referensi, durasi video input diperiksa saat pengiriman. Jika pemeriksaan gagal, HTTP 400 dikembalikan tanpa biaya. Pembuatan yang gagal mendapat pengembalian dana penuh.
Parameter yang tidak didukung
Parameter atau nilai berikut menghasilkan HTTP 400:mode: V4 tidak memiliki tingkatstd,pro, atau4k. Gunakanresolution.negative_prompt,watermark: true,audio: false.multi_shot,multi_prompt,element_list,video_list.camera_control,voice_list.
Kesalahan umum
| Kesalahan | Tindakan |
|---|---|
video_url needs omni_reference_task_type edit ... or extend | Tentukan edit atau extend saat memakai video_url; gunakan video_urls untuk video referensi |
image-to-video requires exactly 1 first frame | Berikan tepat 1 bingkai awal; bingkai akhir atau antara saja tidak cukup |
first frame, last frame and keyframes together are at most 10 images | Kurangi total bingkai awal, akhir, dan antara menjadi maksimal 10 |
reference images, videos and audios together are at most 15 files | Kurangi total aset referensi menjadi maksimal 15 |
video edit requires an input video of at least 3 seconds | Gunakan video input minimal 3 detik |
Failed to probe the input video duration | Pastikan URL dapat diakses dan mengarah ke file video yang valid |
has no std/pro/4k mode | Hapus mode dan gunakan resolution |
Could not download the input from ... (HTTP 403) | Gunakan URL aset publik tanpa perlindungan hotlink |