Video & materi
Buat video
Membuat tugas generasi video
Ringkasan
Generasi video berjalan secara asinkron. Anda mengirim permintaan, menerima task_id dan poll_url, lalu memeriksa status secara berkala sampai hasil akhirnya siap.
Perilaku polling
Untuk perilaku pengecekan status yang paling andal, gunakan poll_url yang dikembalikan oleh respons pembuatan secara persis.
Jika respons create mengembalikan poll_url, panggil URL tersebut secara persis. Saat URL itu mengarah ke /v1/tasks/{id}, perlakukan itu sebagai endpoint status tetap yang kanonik.
Perilaku model dan media
Perilaku audio bergantung pada model dan operasi. Video dapat memiliki suara meskipun tidak menyediakan sakelar audio. Menghilangkan parameter berbeda dengan mengirim false.
veo3.1danveo3.1-fastselalu menghasilkan audio sesuai kontrak Gemini API. Pembuatan videowan-2.6danwan-2.7juga tidak mendukung penonaktifan suara. Hilangkanoutput_audioatau gunakantruejika diizinkan detail model.hailuo-h3dan model video Grok menghasilkan audio native. Jangan menambahkan sakelar yang tidak tercantum pada detail model.- Seedance 1.5/2.x dan
viduq3-pro/viduq3-turbomengaktifkan audio secara default dan mendukung keluaran tanpa suara. PixVerse C1/V5.6/V6 menonaktifkannya secara default. Gunakanoutput_audiohanya untuk operasi yang mencantumkannya; Vidu juga menerima kolom booleanaudioyang dinyatakan dalam kontraknya. audio_url/audio_urlsmenyediakan audio masukan atau referensi, bukan sakelar keluaran. Pengeditan video, transfer gerakan, dan transfer gaya dapat mempertahankan trek asli. Mempertahankan audio asli tidak berarti membisukannya.
Lihat detail model untuk nilai yang diizinkan dan harga audio. Alias yang didukung outputAudio, generate_audio, dan boolean audio harus sama dengan output_audio jika digabungkan. Kontrol dapat berbeda antarversi dan operasi.
Untuk integrasi produksi, sebaiknya gunakan URL https publik untuk gambar, video, dan audio. Model yang kompatibel masih menerima URL data:, tetapi muatan base64 yang besar lebih sulit untuk dicoba ulang, diinspeksi, dan di-debug.
Isi permintaan
veo3.1ID model video. Gunakan ID model yang ditampilkan TokenLab seperti veo3.1, wan-2.7, happyhorse-1.0, viduq3, pixverse-v6, atau kling-3.0-video; pilih text-to-video, image-to-video, reference-to-video, atau varian lain dengan operation. Lihat panduan video dan Models API.
PixVerse
- Model:
pixverse-c1,pixverse-v6,pixverse-v5.6 - Operasi:
text-to-video,image-to-video,start-end-to-video,reference-to-video - Pemilih audio:
output_audio, defaultfalse
Di TokenLab, model-model PixVerse di atas tidak mendukung operation=video-extension.
HappyHorse
- Model:
happyhorse-1.0 - Operasi:
text-to-video,image-to-video,reference-to-video,video-to-video - Pemilih audio: Jangan kirim
output_audio
Deskripsi teks video yang ingin Anda hasilkan. Field ini wajib untuk sebagian besar model video publik.
Operasi video yang akan dijalankan. Kontrak publik mendukung text-to-video, image-to-video, reference-to-video, start-end-to-video, video-to-video, video-extension, audio-to-video, dan motion-control. TokenLab bisa menebak operasi berdasarkan input yang Anda kirim, tetapi untuk traffic produksi sebaiknya operation dikirim secara eksplisit.
URL publik dari gambar awal untuk alur image-to-video. Untuk kompatibilitas lintas-model yang paling luas, sebaiknya gunakan image_url.
Gambar inline dalam bentuk URL data: (misalnya data:image/jpeg;base64,...). Model yang kompatibel mendukung format ini, tetapi dalam praktik produksi image_url biasanya lebih stabil.
Gambar referensi untuk alur dengan conditioning khusus. Jumlah yang didukung bergantung pada model. Untuk seedance-2.0 dan seedance-2.0-fast, TokenLab saat ini mendukung hingga 9 gambar referensi, ditambah hingga 3 video referensi dan 3 audio referensi. Untuk pilihan model, batas 4K, dan catatan Mini, lihat panduan model video Seedance 2.0. URL publik https lebih disarankan; model yang kompatibel juga menerima URL data:. Untuk grok-imagine-video, reference-to-video menerima hingga 7 referensi gambar dan duration dibatasi maksimal 10 detik. grok-imagine-video-1.5-preview hanya mendukung image-to-video dan tidak menerima referensi gambar.
ID material Seedance TokenLab yang dikembalikan oleh Membuat Aset Material. Gunakan setelah material menjadi ACTIVE dengan model Seedance yang dapat menggunakan pustaka material TokenLab.
Beberapa ID material Seedance TokenLab. ID ini berbagi batas referensi gambar Seedance yang sama dengan reference_images; model yang dipilih harus dapat menggunakan pustaka material TokenLab.
URL gambar biasa digunakan sebagai input dan tidak otomatis membuat material yang dapat dipakai ulang. Buat material melalui API material, lalu gunakan ID TokenLab atau URI asset://asset-YYYYMMDDHHMMSS-xxxxx. Jika material eksplisit mengembalikan 409 seedance_material_preparing, periksa inactive_asset_ids dan coba lagi setelah material menjadi ACTIVE.
Field opsional untuk model yang membedakan referensi asset dan style.
Gunakan kling_elements hanya jika detail publik model saat ini mencantumkannya. Sertakan gambar dan 1–3 elemen dengan name, description opsional, serta 2–4 element_input_urls; rujuk melalui @name di prompt. Jangan gabungkan dengan output_audio=true.
URL publik video sumber. Diperlukan untuk alur video-to-video berbasis URL video dan untuk motion-control; beberapa alur turunan menggunakan task_id sebagai gantinya.
Input video referensi tambahan untuk model yang mendukung conditioning referensi multimodal. Jumlah yang didukung bergantung pada model. Untuk seedance-2.0 dan seedance-2.0-fast, TokenLab saat ini mendukung hingga 3 video referensi.
URL audio publik untuk operasi berbasis audio atau referensi audio yang didukung model.
Input audio referensi tambahan untuk model yang mendukung conditioning referensi multimodal. Jumlah yang didukung bergantung pada model. Untuk seedance-2.0 dan seedance-2.0-fast, TokenLab saat ini mendukung hingga 3 audio referensi.
ID tugas yang digunakan oleh beberapa alur lanjutan, ekstensi, atau turunan.
Offset awal khusus model yang dipakai oleh beberapa alur video-extension.
Pengali atau jumlah pengulangan khusus model yang dipakai oleh beberapa alur video-extension.
Durasi video output yang dihasilkan dalam detik. Untuk model Seedance 1.5/2.0, jika field ini dihilangkan nilainya adalah 5; mengirim -1 membuat model memilih dalam rentang yang didukung, dan penagihan diperkirakan secara konservatif sampai tugas selesai.
Alias kompatibilitas untuk duration. Jika seconds dan duration dikirim bersama, nilainya harus sama. Untuk Seedance, seconds=-1 memiliki arti durasi otomatis yang sama dengan duration=-1.
Rasio aspek kanonis, misalnya adaptive, 16:9, 9:16, 1:1, 4:3, 3:4, atau 21:9. Seedance menggunakan adaptive secara default jika dihilangkan.
Resolusi output bergantung pada model. Seedance default ke 720p; seedance-2.0 mendukung 480p, 720p, 1080p, dan 4k, sedangkan seedance-2.0-fast dan seedance-2.0-mini dibatasi ke 480p dan 720p.
Selektor audio untuk operasi yang mendeklarasikannya. Jika dihilangkan, default model berlaku; false meminta keluaran tanpa suara hanya jika didukung. Lihat penjelasan di atas dan detail model.
Flag alur Draft Seedance 1.5 Pro. Gunakan draft=true dengan model Seedance yang mendukung tugas draft. Jangan kirim bersama draft_task_id.
ID tugas draft Seedance 1.5 Pro untuk promosi. Kirim ID tugas draft sebelumnya untuk membuat video final; ini bukan field video generik.
Alias kompatibilitas untuk aspect_ratio. Jika ratio dan aspect_ratio dikirim bersama, nilainya harus identik.
Alias kompatibilitas untuk output_audio. Jika generate_audio, output_audio, dan outputAudio muncul bersama, semua nilai harus sama.
Waktu kedaluwarsa eksekusi opsional dalam detik untuk model video yang kompatibel. Seedance default ke 172800 detik jika dihilangkan.
Prioritas tugas opsional dari 0 sampai 9 untuk model video yang kompatibel. Jangan gabungkan priority dengan service_tier=flex.
Pengenal keamanan end-user opsional untuk model video yang kompatibel. Jika dihilangkan untuk Seedance, TokenLab menggunakan user jika tersedia.
default diterima sebagai no-op kompatibilitas untuk model Seedance 2.0. flex hanya boleh digunakan jika model yang dipilih mendukungnya.
Jumlah frame opsional untuk model video yang kompatibel. Model Seedance 2.0 dan Seedance 1.5 Pro tidak mendukung field ini.
Selector kamera tetap opsional untuk model video yang kompatibel. Model Seedance 2.0 tidak mendukung field ini.
Frame per detik (1-120). Hanya berlaku pada model yang mengekspos kontrol FPS.
Elemen yang ingin dihindari dalam video yang dihasilkan.
Seed acak untuk generasi yang dapat direproduksi. Seedance menggunakan -1 sebagai seed acak jika dihilangkan.
Kekuatan kepatuhan terhadap prompt (0-20) pada model yang mengekspos kontrol ini.
Intensitas gerakan (0-1) pada model yang mengekspos kontrol ini.
URL gambar frame pertama, atau input gambar yang kompatibel, untuk start-end-to-video.
URL gambar frame terakhir, atau input gambar yang kompatibel, untuk start-end-to-video.
Tingkat ukuran khusus model untuk model video yang kompatibel.
Toggle watermark opsional untuk model yang menyediakannya. Seedance default ke false jika dihilangkan.
Pemilih efek khusus model untuk alur efek atau editing tertentu.
Pengenal unik untuk end-user. Untuk Seedance, TokenLab juga menggunakan nilai ini sebagai safety_identifier ketika field tersebut dihilangkan.
Catatan kompatibilitas
- Field publik kanonis menggunakan snake_case:
reference_images,reference_image_type, danoutput_audio. - Field publik kanonis tetap menggunakan snake_case:
aspect_ratio,output_audio,reference_images, danreference_image_type. - Untuk kompatibilitas, TokenLab juga menerima
ratio,generate_audio,outputAudio,seconds,referenceImages, danreferenceImageType. - Jika field kanonis dan alias dikirim bersama, nilainya harus sama; alias yang bertentangan ditolak sebelum tugas dibuat.
Praktik terbaik untuk input media
- Untuk
image_url,reference_images,video_url, danaudio_url, sebaiknya gunakan URLhttpspublik. - Jika memungkinkan, hindari mencampur base64 inline dan URL jarak jauh dalam permintaan yang sama.
- Pastikan URL media jarak jauh tetap berlaku cukup lama untuk menutupi coba ulang dan pembuatan tugas asinkron.
Parameter Seedance
Untuk model Seedance 1.5/2.0, endpoint terpadu mengikuti nama field TokenLab sambil menerima alias kompatibel seconds, ratio, dan generate_audio. Selector Seedance yang dihilangkan memakai default berikut: duration=5, resolution=720p, aspect_ratio=adaptive, output_audio=true, watermark=false, return_last_frame=false, execution_expires_after=172800, priority=0, dan seed=-1.
duration=-1 atau seconds=-1 membuat Seedance memilih durasi output dalam rentang yang didukung model. TokenLab memperkirakan biaya secara konservatif sebelum tugas selesai, lalu melakukan penyelesaian berdasarkan usage tugas selesai jika tersedia. service_tier=default diterima sebagai no-op kompatibilitas untuk Seedance 2.0; service_tier=flex, frames, dan camera_fixed ditolak jika model yang dipilih tidak mendukungnya.
Contoh Seedance
curl -X POST "https://api.tokenlab.sh/v1/videos/generations" \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.5",
"prompt": "A sleek product reveal with cinematic camera movement",
"operation": "text-to-video",
"duration": -1,
"aspect_ratio": "adaptive",
"resolution": "720p",
"output_audio": true
}'Respons
Field hasil, error, timestamp, dan model dikembalikan jika tersedia untuk task.
Identifier tugas asinkron kanonik. Saat id dan task_id sama-sama ada, perlakukan keduanya sebagai identitas tugas yang sama.
Pengidentifikasi tugas unik untuk pengecekan status.
URL pengecekan status yang direkomendasikan untuk tugas ini. Gunakan path ini secara persis saat memeriksa status.
ID transaksi billing TokenLab saat settlement sudah selesai. Ini adalah identitas transaksi untuk dashboard/rekonsiliasi dan terpisah dari id / task_id async.
Status tugas: pending, processing, completed, failed.
Unix timestamp saat tugas dibuat.
Model yang digunakan.
Objek video tunggal dengan url, duration, width, dan height saat tersedia.
Array video saat tugas pembuatan mengembalikan lebih dari satu output.
Pesan kesalahan (jika gagal).
Permintaan
curl -X POST "https://api.tokenlab.sh/v1/videos/generations" \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "veo3.1",
"prompt": "A cat walking through a garden, cinematic lighting",
"operation": "text-to-video",
"duration": 4,
"aspect_ratio": "16:9"
}'Respons
{
"id": "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"task_id": "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"poll_url": "/v1/tasks/ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"status": "pending",
"model": "veo3.1",
"created": 1706000000
}Image to video
response = requests.post(
"https://api.tokenlab.sh/v1/videos/generations",
headers={"Authorization": "Bearer sk-your-api-key"},
json={
"model": "hailuo-2.3-standard",
"prompt": "The scene begins from the provided image and adds gentle natural motion.",
"operation": "image-to-video",
"image_url": "https://example.com/image.jpg",
"duration": 6,
"resolution": "768p"
}
)Elemen Kling 3.0
Gunakan kling_elements hanya jika detail publik model saat ini mencantumkannya. Sertakan gambar dan 1–3 elemen dengan name, description opsional, serta 2–4 element_input_urls; rujuk melalui @name di prompt. Jangan gabungkan dengan output_audio=true.
Reference to video
Gunakan operation=reference-to-video ketika model mendukung conditioning referensi khusus. Dalam detail model TokenLab, referensi gambar menggunakan reference_images, sedangkan video dan audio referensi multimodal menggunakan video_urls dan audio_urls. Untuk seedance-2.0 dan seedance-2.0-fast, TokenLab saat ini mendukung hingga 9 gambar referensi, ditambah hingga 3 video referensi dan 3 audio referensi. Untuk pilihan model, batas 4K, dan catatan Mini, lihat panduan model video Seedance 2.0. duration hanya mengatur panjang output yang dihasilkan; field ini tidak menetapkan batas terpisah untuk durasi input video referensi. Untuk grok-imagine-video, reference-to-video menerima hingga 7 referensi gambar (reference_images atau image_urls) dan duration dibatasi maksimal 10 detik. Jangan gabungkan referensi gambar dengan input frame awal image_url / image. grok-imagine-video-1.5-preview hanya mendukung image-to-video.
response = requests.post(
"https://api.tokenlab.sh/v1/videos/generations",
headers={"Authorization": "Bearer sk-your-api-key"},
json={
"model": "veo3.1",
"prompt": "Keep the same subject identity, palette, and framing while adding subtle natural motion.",
"operation": "reference-to-video",
"reference_images": [
"https://example.com/ref-a.jpg",
"https://example.com/ref-b.jpg"
],
"reference_image_type": "asset",
"duration": 8,
"resolution": "720p",
"aspect_ratio": "9:16"
}
)Kontrol frame awal dan akhir
Gunakan start_image dan end_image untuk mengontrol frame pertama dan frame terakhir.
response = requests.post(
"https://api.tokenlab.sh/v1/videos/generations",
headers={"Authorization": "Bearer sk-your-api-key"},
json={
"model": "viduq2-pro",
"operation": "start-end-to-video",
"start_image": "https://example.com/day.jpg",
"end_image": "https://example.com/night.jpg",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "16:9"
}
)Video to video
Untuk video-to-video dengan grok-imagine-video, kirim URL HTTPS publik .mp4 di video_url. Anda dapat mengatur resolution ke 480p atau 720p; duration dan aspect_ratio tidak diterima untuk alur edit ini.
Jika model menerima video yang sudah ada sebagai input utama, gunakan operation=video-to-video.
response = requests.post(
"https://api.tokenlab.sh/v1/videos/generations",
headers={"Authorization": "Bearer sk-your-api-key"},
json={
"model": "grok-imagine-video",
"operation": "video-to-video",
"video_url": "https://example.com/source.mp4",
"prompt": "Enhance the clip while preserving the original motion."
}
)Motion control
Jika model membutuhkan gambar subjek sekaligus video referensi gerakan, gunakan operation=motion-control. TokenLab akan menormalkan bentuk publik image_url + video_url menjadi input kontrol gerakan yang kompatibel.
response = requests.post(
"https://api.tokenlab.sh/v1/videos/generations",
headers={"Authorization": "Bearer sk-your-api-key"},
json={
"model": "kling-3.0-motion-control",
"operation": "motion-control",
"prompt": "Keep the subject stable while following the motion reference.",
"image_url": "https://example.com/subject.png",
"video_url": "https://example.com/motion.mp4",
"resolution": "720p"
}
)Penemuan model
Inventaris video publik dan operasi yang didukung berubah dari waktu ke waktu. Gunakan Models API sebagai sumber kebenaran sebelum mengintegrasikan alur khusus model:
curl "https://api.tokenlab.sh/v1/models?recommended_for=video"
curl "https://api.tokenlab.sh/v1/models/veo3.1"Baca respons detail model sebelum bergantung pada operasi atau field khusus model. Operasi seperti audio-to-video dan video-extension bersifat khusus model; konfirmasi ketersediaan terbarunya di sana, bukan dari contoh statis di halaman ini.
Otorisasi
BearerAuth Autentikasi API Key. Buat atau kelola API key di Dashboard > API > API Keys.
Lokasi: header
Header
Kebijakan Pengiriman per-permintaan. Menggantikan default API key dan Workspace. Secara otomatis mencoba TokenLab Verified terlebih dahulu dan dapat beralih satu kali ke Official saja sebelum output, penerimaan permintaan, atau pembuatan sumber daya persisten.
Nilai yang tersedia
- "auto"
- "verified"
- "official"
Body permintaan
application/json
Respons
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json