APIMaster.ai

Seedance 2.0 Fast API Pembuatan Video

Parameter Seedance 2.0 Fast, media referensi, tugas asinkron, unduhan terautentikasi, dan penagihan durasi di APIMaster.

Pembuatan video Seedance 2.0 Fast

Gunakan seedance-2.0-fast untuk teks-ke-video, gambar-ke-video, pembuatan bingkai pertama/terakhir, serta referensi video atau audio. Fast mendukung 480p dan 720p, dengan durasi keluaran dari 4 hingga 15 detik.

Untuk pembuatan bingkai pertama/terakhir, atur aspect_ratio: "adaptive" secara eksplisit. 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 tinjauan 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

Kolom Tipe Diperlukan / default Deskripsi
model string Diperlukan seedance-2.0-fast
prompt string Diperlukan Maksimal 4000 karakter. 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 disukai aspect_ratio dan resolution untuk menyatakan dua 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 Maksimal 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 bersama dengan image_urls. Lihat aturan peran di bawah.
video_urls string[] Dihilangkan Maksimal 3 video referensi, dengan total durasi input yang dapat ditagih maksimal 15 detik. Lihat persyaratan materi.
audio_urls string[] Dihilangkan Maksimal 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 pembuatan. Video dan audio tidak termasuk dalam pemeriksaan moderasi ini.
tools object[] Dihilangkan Deklarasi alat pencarian: [{"type":"web_search"}].

Pembuatan draf dan peningkatan draf eksklusif untuk Seedance 2.5. Jangan kirim 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 mengirim image_urls.

{
  "model": "seedance-2.0-fast",
  "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-fast" 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 Fast. Tinjauan yang gagal mungkin tidak mengembalikan alasan detail; 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-fast",
    "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 ambigu: permintaan mungkin telah diterima. Periksa riwayat tugas Anda sebelum mengirim ulang; pengiriman berhasil lainnya membuat tugas yang dapat ditagih terpisah.

Referensi video dan audio

{
  "model": "seedance-2.0-fast",
  "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"

Kueri berhasil 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":118,
    "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 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-fast",
    "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 berlabel "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 reguler; jangan hanya menghitung durasi output atau menerapkan tingkatan reguler pada referensi video. Gambar dan audio tidak menambahkan detik video referensi. Audio yang dihasilkan tidak memperkenalkan tingkatan suara/diam terpisah untuk empat harga yang dikonfigurasi ini.

Pengajuan 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 pengajuan; penyelesaian merekonsiliasi durasi aktual. Generasi yang gagal 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, contohnya:

{"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.
Referensi audio 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 pengajuan duplikat setelah batas waktu 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 Mini, dan Seedance 2.5.