Seedance 2.0 Mini API Pembuatan Video
Parameter Seedance 2.0 Mini, media referensi, tugas asinkron, unduhan terautentikasi, dan penagihan durasi di APIMaster.
Generasi video Seedance 2.0 Mini
Gunakan seedance-2.0-mini untuk teks-ke-video, gambar-ke-video, generasi bingkai pertama/terakhir, serta referensi video atau audio. Mini mendukung 480p dan 720p, dengan durasi keluaran dari 4 hingga 15 detik.
Untuk generasi bingkai pertama/terakhir, atur secara eksplisit
aspect_ratio: "adaptive". Audio referensi harus disertai dengan gambar atau video. Simpan kunci API APIMaster Anda di server Anda.
Endpoint dan autentikasi
URL Dasar: https://apimaster.ai/v1. Kirim Authorization: Bearer YOUR_API_KEY saat mengirimkan, menanyakan, dan mengunduh.
| Operasi | Metode dan jalur |
|---|---|
| Buat video | POST /v1/videos/generations |
| Tanyakan hasil yang kompatibel | GET /v1/video/generations/{task_id} |
| Tanyakan hasil gaya OpenAI | GET /v1/videos/{task_id} |
| Unduh video | GET /v1/videos/{task_id}/content |
| Unduh bingkai terakhir yang diminta | GET /v1/videos/{task_id}/last-frame |
Gunakan task_id publik yang dikembalikan oleh APIMaster. Tugas video dan tugas peninjauan-media adalah sumber daya yang berbeda: gunakan endpoint kueri video di atas untuk video. Permintaan yang diterima membuat satu tugas asinkron; keberhasilan HTTP tidak berarti video telah selesai.
Parameter
| Bidang | Tipe | Diperlukan / default | Deskripsi |
|---|---|---|---|
model |
string | Diperlukan | seedance-2.0-mini |
prompt |
string | Diperlukan | Tidak ada batasan panjang prompt spesifik model yang diberlakukan oleh APIMaster. Jelaskan subjek, gerakan, adegan, kamera, dan audio yang diinginkan; prompt yang ringkas lebih mudah dikendalikan. |
duration |
integer | 5 |
Panjang keluaran, 4–15 detik. -1 tidak didukung. |
resolution |
string | 720p |
480p atau 720p; 1080p dan 4k tidak didukung. |
aspect_ratio |
string | 16:9 |
16:9, 9:16, 1:1, 4:3, 3:4, 21:9, atau adaptive. |
ratio |
string | Sama dengan aspect_ratio |
Alias APIMaster. Jika keduanya muncul, nilainya harus cocok. |
size |
string | Sama dengan aspect_ratio |
Rasio seperti 16:9 atau adaptive. Lebih disarankan menggunakan aspect_ratio dan resolution untuk menyatakan kedua dimensi secara terpisah. Spesifikasi yang bertentangan mengembalikan 400. |
seed |
integer | Dihilangkan | Mengontrol variasi; seed yang cocok tidak menjamin keluaran yang identik. |
generate_audio |
boolean | true |
Hasilkan audio pendamping; gunakan false untuk keluaran tanpa suara. |
image_urls |
string[] | Dihilangkan | Hingga 9 gambar referensi. URL gambar publik atau ID asset:// APIMaster yang disetujui. |
image_with_roles |
object[] | Dihilangkan | Objek gambar dengan url dan role; tidak dapat muncul bersamaan dengan image_urls. Lihat aturan peran di bawah. |
video_urls |
string[] | Dihilangkan | Hingga 3 video referensi, dengan total durasi input yang dapat ditagih maksimal 15 detik. Lihat persyaratan materi. |
audio_urls |
string[] | Dihilangkan | Hingga 3 file audio referensi, durasi gabungan maksimal 15 detik. Memerlukan referensi gambar atau video. |
return_last_frame |
boolean | false |
Pada penyelesaian yang berhasil, kembalikan URL unduhan bingkai terakhir APIMaster yang terautentikasi ketika hasilnya menyertakan bingkai terakhir. |
nsfw_check |
boolean | false |
Minta moderasi konten teks/gambar sebelum generasi. Video dan audio tidak termasuk dalam pemeriksaan moderasi ini. |
tools |
object[] | Dihilangkan | Deklarasi alat pencarian: [{"type":"web_search"}]. |
Generasi draf dan peningkatan draf adalah eksklusif untuk Seedance 2.5. Jangan kirimkan draft: true atau draft_task_id ke model ini.
Bahan referensi
Sediakan URL HTTPS yang dapat diakses publik, atau ID yang disetujui dari pustaka media APIMaster Anda. File yang berada di balik halaman login atau memerlukan header otorisasi Anda sendiri tidak dapat diambil. Unggahan gambar yang berhasil tidak menyiratkan persetujuan konten atau kepatuhan terhadap setiap persyaratan model.
| Material | Persyaratan |
|---|---|
| Gambar referensi | Maksimal 9; gunakan gambar JPEG/PNG RGB yang mudah dibaca. Endpoint unggah-gambar APIMaster memiliki batas 20 MiB sendiri dan menerima JPEG, PNG, GIF, dan WebP. |
| Video referensi | Maksimal 3; video MP4/MOV, H.264/H.265; audio AAC/MP3 jika ada. Gunakan video referensi 480p–720p. Durasi referensi gabungan harus sesuai dalam 15 detik yang dapat ditagih. APIMaster memverifikasi durasi MP4/MOV yang dapat diakses sebelum menagih; durasi klip input dibulatkan ke atas ke detik penuh untuk pemeriksaan dan penagihan ini. |
| Audio referensi | Maksimal 3; WAV atau MP3, paling banyak 20 MB per file, durasi gabungan paling banyak 15 detik. Selalu sertakan gambar atau video referensi. |
Gunakan gambar yang jelas dengan detail yang cukup, hindari file yang rusak atau tidak lengkap, dan jaga gerakan video referensi konsisten dengan prompt Anda. Media dapat gagal dalam tinjauan format atau konten asinkron bahkan ketika pengiriman diterima.
Peran gambar
role |
Arti |
|---|---|
first_frame |
Frame awal; paling banyak satu |
last_frame |
Frame akhir; paling banyak satu, dan memerlukan frame pertama |
reference_image |
Gambar referensi, termasuk aset karakter yang disetujui |
Untuk tugas frame pertama/terakhir, atur aspect_ratio ke adaptive dan hilangkan video_urls dan audio_urls. Gunakan image_with_roles untuk peran eksplisit; jangan juga mengirimkan image_urls.
{
"model": "seedance-2.0-mini",
"prompt": "A paper boat drifts gently from the starting composition to the ending composition",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "adaptive",
"image_with_roles": [
{"url": "https://your-storage.example/start.png", "role": "first_frame"},
{"url": "https://your-storage.example/end.png", "role": "last_frame"}
],
"generate_audio": false
}
Unggahan dan pustaka media
Unggah gambar lokal dengan POST /v1/uploads/images menggunakan bidang multipart file dan otorisasi Bearer. url tingkat atas yang dikembalikan dapat digunakan sebagai input gambar publik.
curl "https://apimaster.ai/v1/uploads/images" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@reference.png"
Untuk materi yang dapat digunakan kembali atau karakter, buat grup dengan POST /v1/seedance2/private-avatar/groups, kirimkan materi dengan POST /v1/seedance2/private-avatar/assets, kueri tinjauan dengan GET /v1/tasks/{asset_task_id}, dan gunakan hanya aset Active sebagai asset://{asset_id}. Sumber daya ini milik akun Anda. Tentukan model: "seedance-2.0-mini" secara eksplisit. ID aset dari platform atau akun lain tidak dapat digunakan di sini.
Lihat alur kerja pustaka-media untuk pembuatan, pengiriman, tinjauan, kegagalan parsial, dan penghapusan. Endpoint unggah dan manajemen aset dibagikan; batas generasi di halaman ini berlaku untuk Mini. Tinjauan yang gagal mungkin tidak mengembalikan alasan terperinci; gunakan materi yang jelas dan sesuai dalam format yang didukung dan kirimkan tinjauan baru. Jangan membuat ulang tugas berulang kali sementara tinjauan yang ada masih diproses.
Kirim video
curl "https://apimaster.ai/v1/videos/generations" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model":"seedance-2.0-mini",
"prompt":"A small paper boat on calm water at sunrise, gentle tracking shot",
"duration":5,
"resolution":"720p",
"aspect_ratio":"16:9",
"generate_audio":true,
"return_last_frame":true
}'
Respons pembuatan:
{"code":200,"data":[{"status":"submitted","task_id":"task_PUBLIC_VIDEO_ID"}]}
Waktu tunggu pengiriman yang ambigu: permintaan mungkin telah diterima. Periksa riwayat tugas Anda sebelum mengirim ulang; pengiriman lain yang berhasil membuat tugas yang dapat ditagih terpisah.
Referensi video dan audio
{
"model": "seedance-2.0-mini",
"prompt": "Follow the reference motion and keep the scene consistent with the image",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "adaptive",
"image_urls": ["https://your-storage.example/reference.png"],
"video_urls": ["https://your-storage.example/reference.mp4"],
"audio_urls": ["https://your-storage.example/reference.mp3"],
"generate_audio": true
}
Kueri dan unduh
Polling setiap 3–5 detik. Berhenti ketika berhasil atau gagal.
curl "https://apimaster.ai/v1/video/generations/task_PUBLIC_VIDEO_ID" \
-H "Authorization: Bearer YOUR_API_KEY"
Keberhasilan kueri yang kompatibel:
{
"code":"success",
"message":"",
"data":{
"error":null,
"format":"mp4",
"metadata":null,
"status":"succeeded",
"task_id":"task_PUBLIC_VIDEO_ID",
"url":"https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID/content",
"actual_time":138,
"last_frame_url":"https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID/last-frame"
}
}
Contoh mencakup bidang penyelesaian opsional. actual_time adalah waktu yang berlalu dari pengiriman hingga penyelesaian dalam detik, bukan durasi video yang dapat ditagih. last_frame_url dihilangkan jika bingkai terakhir tidak diminta atau tidak tersedia. Tugas yang gagal tidak menyertakan bidang waktu yang berlalu atau bingkai terakhir yang hanya untuk keberhasilan.
Kueri gaya OpenAI:
curl "https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID" \
-H "Authorization: Bearer YOUR_API_KEY"
| Arti | data.status yang Kompatibel |
status gaya OpenAI |
|---|---|---|
| Menunggu | queued |
queued |
| Menghasilkan | processing |
in_progress |
| Berhasil | succeeded |
completed |
| Gagal | failed |
failed |
Objek bergaya OpenAI menggunakan id untuk ID tugas publik dan url untuk URL unduhan video. Opsional actual_time dan last_frame_url muncul di tingkat teratas. Pada kegagalan, baca error.message di objek hasil yang sesuai. Respons tidak menyertakan bidang moneter.
Unduh dengan kunci API akun yang sama. Membuka URL hasil tanpa otorisasi tidak cukup. Simpan output dengan segera.
curl -L "https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID/content" \
-H "Authorization: Bearer YOUR_API_KEY" -o output.mp4
curl -L "https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID/last-frame" \
-H "Authorization: Bearer YOUR_API_KEY" -o last-frame.jpg
Alur kerja lengkap Python
import os
import time
import requests
base = "https://apimaster.ai/v1"
headers = {"Authorization": f"Bearer {os.environ['APIMASTER_API_KEY']}"}
response = requests.post(base + "/videos/generations", headers=headers, json={
"model": "seedance-2.0-mini",
"prompt": "A small paper boat on calm water at sunrise",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "16:9",
"generate_audio": True,
"return_last_frame": True,
}, timeout=90)
response.raise_for_status()
task_id = response.json()["data"][0]["task_id"]
for _ in range(240):
response = requests.get(base + "/video/generations/" + task_id,
headers=headers, timeout=30)
response.raise_for_status()
task = response.json()["data"]
if task["status"] == "failed":
raise RuntimeError((task.get("error") or {}).get("message", "Video failed"))
if task["status"] == "succeeded":
print("Elapsed seconds:", task.get("actual_time"))
for field, filename in [("url", "output.mp4"), ("last_frame_url", "last-frame.jpg")]:
if task.get(field):
with requests.get(task[field], headers=headers, stream=True, timeout=120) as result:
result.raise_for_status()
with open(filename, "wb") as out:
for chunk in result.iter_content(1024 * 1024):
out.write(chunk)
break
time.sleep(5)
else:
raise TimeoutError("Task still processing; query the same task_id later")
Penagihan Durasi
Ada empat tingkatan: 480P, 720P, 480P-input, dan 720P-input. Tingkatan yang diberi label "video yang diunggah" berarti permintaan berisi input video referensi. Pilih tingkatan input untuk resolusi output yang diminta meskipun referensi gambar/audio juga ada.
- Tanpa video referensi: detik video yang dihasilkan × harga satuan resolusi yang sesuai.
- Dengan video referensi: (total detik video referensi + detik video yang dihasilkan) × harga satuan tingkatan input yang sesuai.
- Harga satuan dasar yang dikonfigurasi dikalikan dengan koefisien saluran dan akun/grup yang berlaku untuk mendapatkan harga satuan akhir Anda. Periksa kartu model dan catatan konsumsi dompet Anda untuk harga yang berlaku.
Sebagai contoh, video referensi 4 detik dan output 5 detik menggunakan 9 detik yang dapat ditagih pada tingkatan input. Harga satuan tingkatan input dapat berbeda dari tingkatan biasa; jangan hanya menghitung durasi output atau menerapkan tingkatan biasa pada referensi video. Gambar dan audio tidak menambahkan detik video referensi. Audio yang dihasilkan tidak memperkenalkan tingkatan bersuara/bisu terpisah untuk keempat harga yang dikonfigurasi ini.
Pengiriman memesan durasi output yang diminta, ditambah durasi input-video yang terverifikasi jika ada. Durasi output yang dihilangkan memesan 5 detik output. Tugas mempertahankan tarif pada waktu pengiriman; penyelesaian merekonsiliasi durasi aktual. Kegagalan generasi mengembalikan biaya tugas video.
Kesalahan dan Pemecahan Masalah
Permintaan yang tidak valid mengembalikan kesalahan HTTP. Baca pesan kesalahan JSON serta kode statusnya. Validasi parameter menggunakan pembungkus kesalahan APIMaster, contoh:
{"code":"invalid_request","message":"First/last-frame tasks require adaptive aspect_ratio","data":null}
| Masalah | Tindakan |
|---|---|
| Resolusi / durasi tidak didukung | Pilih 480p atau 720p, dan durasi bilangan bulat dari 4 hingga 15. |
| Rasio atau ukuran yang bertentangan | Gunakan aspect_ratio, ratio, size, dan resolution yang konsisten; sebaiknya pertahankan hanya pasangan rasio/resolusi eksplisit. |
| Batasan bingkai pertama/terakhir | Gunakan adaptive, paling banyak satu untuk setiap peran, dan hilangkan referensi video/audio. |
| Video referensi tidak dapat diperiksa | Sediakan MP4/MOV yang lengkap dan dapat diakses dengan durasi yang valid. |
| Audio referensi tanpa gambar/video | Tambahkan referensi gambar/video atau hapus referensi audio. |
| Penolakan moderasi konten | Ubah teks atau gambar dan kirim permintaan baru. Kegagalan layanan moderasi dapat memungkinkan generasi berlanjut; ini bukan jaminan keamanan mutlak. |
FormatUnsupported / Penolakan format/konten asinkron |
Baca error.message dari tugas yang gagal, periksa format dan persyaratan materi, dan ganti sumbernya. |
401 |
Berikan kunci API Bearer yang valid. |
| Saldo tidak mencukupi | Isi ulang atau gunakan kunci dengan kuota yang cukup. |
429 / kesalahan layanan sementara |
Tunggu dan coba lagi dengan backoff; hindari pengiriman duplikat setelah waktu tunggu yang ambigu. |
Permintaan parameter-tidak-valid sinkron tidak membuat tugas video atau menagih generasi. Tugas yang diterima masih dapat gagal secara asinkron; periksa status tugas akhir sebelum menggunakan hasil.
Lihat juga: Ikhtisar generasi video, Seedance 2.0, Seedance 2.0 Fast, dan Seedance 2.5.
