Video & materi
Buat Tugas (Kompatibel dengan Volc)
Buat tugas Seedance dengan API yang kompatibel dengan Volc.
Gambaran Umum
Klien Seedance bergaya Volc yang sudah ada dapat menggunakan TokenLab dengan mengubah alamat API dan kunci.
Contoh menggunakan Seedance 2.0. Endpoint ini juga mendukung Seedance 2.5 dengan perbedaan model di bawah. Contoh URI material TokenLab yang dapat digunakan kembali di halaman ini berlaku untuk Seedance 2.0.
Lihat juga Model Video Seedance 2.0 dan Pembuatan Video.
Autentikasi Dan Endpoint
- Gunakan
Authorization: Bearer <TOKENLAB_API_KEY>. - Penandatanganan AK/SK Volc tidak diterima. Permintaan harus menyertakan kunci Bearer TokenLab.
- Gunakan jalur tugas resmi:
POST /api/v3/contents/generations/tasks.
Aturan Konten
type: "text"adalah teks prompt.type: "image_url"tanparole, atau denganrole: "first_frame", diperlakukan sebagai bingkai pertama.role: "last_frame"harus dipasangkan dengan bingkai pertama.role: "reference_image",reference_video, danreference_audiodigunakan sebagai referensi.image_url.urlmenerima URL gambar publik atau URI material sepertiasset://asset-YYYYMMDDHHMMSS-xxxxx.rolemenentukan apakah material tersebut adalah bingkai pertama, bingkai terakhir, atau gambar referensi.- Jangan mencampur input bingkai pertama/terakhir dengan media referensi dalam satu permintaan.
- Field tingkat atas
material_asset_iddanmaterial_asset_idsditolak. Masukkan URI material TokenLab keimage_url.url.priorityhanya didukung untuk Seedance 2.5.
Catatan Parameter
duration adalah bilangan bulat dalam detik; -1 memilih durasi otomatis. Default dan batas berbeda menurut model:
| Parameter | Seedance 2.0 | Seedance 2.5 |
|---|---|---|
duration | 4–15 / -1 (default: 5) | 4–30 / -1 (default: -1) |
resolution | 480p, 720p, 1080p (default: 720p) | 480p, 720p (default: 720p) |
generate_audio | boolean (default: false) | boolean (default: true) |
priority | Tidak didukung | integer: 0–9 |
seed | integer: -1–4294967295 (default: -1) | Tidak didukung |
Untuk Seedance 2.5, permintaan bingkai pertama, bingkai pertama/terakhir, perpanjangan video, dan video-ke-video memerlukan ratio: "adaptive". Video-ke-video juga memerlukan duration: -1. output_format menerima mp4 atau mov hanya untuk Seedance 2.5.
ratiomenerima16:9,4:3,1:1,3:4,9:16,21:9, atauadaptive.watermark,return_last_frame,seed,execution_expires_after, dansafety_identifierditerima jika valid untuk model yang dipilih.callback_urldapat mengarah ke endpoint HTTP(S) publik.
Pengiriman Callback
Ketika callback_url ada, TokenLab mengirimkan POST HTTP saat status tugas berubah. Status callback adalah queued, running, succeeded, failed, dan expired. Body JSON cocok dengan respons get-task.
Respons 2xx mengakui pengiriman. Untuk succeeded dan failed, pengiriman yang tidak berhasil dalam lima detik akan dicoba kembali hingga tiga kali. Callback hanya memiliki header konten JSON standar dan tidak ada header pengiriman khusus TokenLab. Pengalihan (redirect) tidak diikuti, dan target jaringan pribadi atau yang dicadangkan akan ditolak.
Simpan ID tugas. Jika callback tidak terkirim, Anda masih dapat mengambil hasilnya dengan endpoint get-task.
Persiapan Gambar
URL gambar HTTP(S) publik dan URL data yang didukung digunakan sesuai input, tanpa otomatis disimpan sebagai material yang dapat digunakan kembali. Referensi eksplisit asset://asset-... memakai material TokenLab yang sudah ada. Kepemilikan dan kesiapan diperiksa sebelum pembuatan. Jika material masih disiapkan, tunggu hingga siap lalu coba lagi. Jika pembuatan gagal, periksa error.code dan error.message.
Untuk material yang sudah ada, gunakan ID asset-YYYYMMDDHHMMSS-xxxxx publik, bukan ID aset asli yang dikembalikan oleh sistem lain. TokenLab memverifikasi kepemilikan material sebelum pembuatan.
Respons Pembuatan
{
"id": "cgt-20260102030405-a1b2c"
}Respons pembuatan hanya berisi ID tugas. Simpan agar Anda dapat mengambil status dan hasil kapan saja.
Mencegah Tugas Duplikat
Kirim Idempotency-Key unik dengan permintaan pembuatan. Jika koneksi terputus sebelum respons tiba, coba lagi dengan kunci API, kunci idempotensi, dan body permintaan yang sama:
- Jika tugas asli telah dibuat, TokenLab mengembalikan ID
cgt-...yang sama dan menambahkanIdempotency-Replayed: true. - Jika permintaan asli masih didaftarkan, TokenLab mengembalikan
409 IdempotencyRequestInProgress. Coba lagi nanti dengan kunci dan body yang sama. - Menggunakan kembali kunci dengan body yang berbeda akan mengembalikan
409 IdempotencyConflictdan tidak akan pernah membuat tugas kedua.
Idempotensi berlaku untuk jalur pembuatan REST v3 resmi. Ini tidak mengubah bentuk respons JSON, dan tidak disimpulkan dari X-Request-ID atau dari body permintaan yang identik tanpa kunci.
Contoh
Pembuatan REST
curl https://api.tokenlab.sh/api/v3/contents/generations/tasks \
-H "Authorization: Bearer $TOKENLAB_API_KEY" \
-H "Idempotency-Key: $CLIENT_JOB_ID" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2.0",
"content": [
{"type": "text", "text": "A cinematic forest at sunset"},
{"type": "image_url", "role": "reference_image", "image_url": {"url": "https://example.com/ref.png"}}
],
"ratio": "16:9",
"duration": 5,
"resolution": "720p",
"generate_audio": false,
"callback_url": "https://example.com/webhooks/seedance"
}'Untuk material yang sudah ada, masukkan setiap URI ke dalam item content[] resmi dan nyatakan perannya:
[
{
"type": "image_url",
"role": "first_frame",
"image_url": {"url": "asset://asset-20260720123458-start"}
},
{
"type": "image_url",
"role": "last_frame",
"image_url": {"url": "asset://asset-20260720123459-end01"}
}
]Langkah Berikutnya
Gunakan ID cgt-... yang dikembalikan dengan Dapatkan Tugas (Kompatibel dengan Volc) sampai tugas mencapai status terminal.
curl -X POST "https://example.com/api/v3/contents/generations/tasks" \ -H "Content-Type: application/json" \ -d '{ "model": "doubao-seedance-2-0-260128", "content": [ { "type": "text", "text": "A cinematic forest at sunset" }, { "type": "image_url", "role": "reference_image", "image_url": { "url": "https://example.com/ref.png" } } ], "ratio": "16:9", "duration": 5, "resolution": "720p", "generate_audio": false }'{ "id": "string"}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"
Key yang dibuat klien untuk pembuatan tugas REST yang idempoten. Di bawah kredensial API TokenLab yang sama, menggunakan kembali key yang sama dengan body JSON yang sama akan mengembalikan ID tugas cgt asli; menggunakannya dengan body yang berbeda akan mengembalikan 409. Simpan kredensial, key, dan body permintaan agar tidak berubah saat mencoba kembali setelah timeout atau terputus.
1 <= length <= 255Body permintaan
application/json
Respons
application/json
application/json
application/json
application/json
application/json
application/json