GPT-6 Astra is now live on CometAPI →
technology/Riset CometAPI

Cara menggunakan Seedance 2.0 API

Seedance 2.0 API adalah model AI multimodal generasi video terbaru dari ByteDance (diluncurkan pada 9 April 2026). Model ini menerima teks, gambar, klip video, dan audio dalam satu permintaan untuk menghasilkan video MP4 sinematik berdurasi 4–15 detik dengan sinkronisasi audio native, kendali kamera setingkat sutradara, dan konsistensi gerak yang luar biasa. Cara menggunakannya: daftar di CometAPI.com, dapatkan kunci API, kirim tugas async melalui REST, lakukan polling hingga selesai, dan unduh URL video.

CometAPI
AnnaTim riset model AI dan API
Diperbarui Sep 3, 2026 10 menit baca
Cara menggunakan Seedance 2.0 API
Gunakan pola ini

Lakukan API call pertama.

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_COMETAPI_KEY",
    base_url="https://api.cometapi.com/v1",
)

response = client.chat.completions.create(
    model="gpt-5-mini",
    messages=[{"role": "user", "content": "Build this workflow."}],
)

print(response.choices[0].message.content)

Seedance 2.0, model generasi video multimodal andalan ByteDance, resmi diluncurkan pada 9 April 2026 dan kini tersedia di berbagai platform utama termasuk fal.ai. Alat AI bertenaga ini mengubah teks, gambar, audio, dan referensi video menjadi video sinematik sepanjang 4–15 detik dengan sinkronisasi audio native, kontrol kamera setingkat sutradara, dan fisika dunia nyata—semuanya dalam satu kali proses generasi. Baik Anda pengembang yang membangun alur kerja video otomatis, pemasar yang membuat konten viral, maupun pembuat film yang membuat prototipe adegan, API Seedance 2.0 menghadirkan hasil setara produksi lebih cepat dari sebelumnya.

Apa itu Seedance 2.0? Fitur dan Kapabilitas Utama

Seedance 2.0 adalah model generasi gabungan audio-video multimodal terpadu generasi berikutnya dari ByteDance. Berbeda dengan versi sebelumnya atau kompetitor yang terbatas pada input teks atau satu gambar, model ini secara native mendukung hingga 9 gambar + 3 klip video + 3 klip audio (total 12 aset) dalam satu permintaan.

Kapabilitas inti meliputi:

  • Ko-generasi audio-video native: Musik, dialog, efek suara, dan sinkron bibir dibuat bersamaan dengan video—tanpa perlu pascaproduksi.
  • Kontrol setingkat sutradara: Gerakan kamera presisi (dolly zoom, tracking shot, pergantian POV, handheld), pencahayaan, bayangan, dan fisika.
  • Penceritaan multi-shot: Potongan dan transisi alami dalam klip 4–15 detik.
  • Spesifikasi keluaran: MP4 pada 480p/720p, rasio aspek (16:9, 9:16, 1:1, dll.), resolusi hingga 2K pada beberapa tier.

Tiga mode utama:

  • text_to_video: Murni berbasis prompt.
  • first_last_frames: 1–2 gambar sebagai frame awal/akhir.
  • omni_reference: Multimodal penuh dengan sintaks @reference untuk kontrol presisi.

Benchmark pada SeedVideoBench-2.0 menunjukkan Seedance 2.0 unggul dalam kestabilan gerak, kepatuhan terhadap prompt, dan konsistensi karakter dibanding pendahulunya. Model ini diposisikan sebagai alternatif Sora yang kuat untuk keluaran sinematik dan imersif. Per 15 April 2026, pengembang melaporkan waktu generasi di bawah 2 menit untuk klip 10 detik, dengan fisika dunia nyata dan kualitas audio yang lebih unggul dibanding pendahulunya.

Mulai: Akses API Seedance 2.0 melalui CometAPI

Seedance 2.0 tersedia melalui berbagai penyedia, namun CometAPI.com menonjol bagi pengembang. Sebagai gerbang terpadu ke 500+ model AI (termasuk generator video seperti Sora 2 dan Gemini video), CometAPI menawarkan:

  • Endpoint REST kompatibel OpenAI.
  • Satu kunci API untuk semua model.
  • Harga kompetitif dengan kredit awal gratis.
  • SDK bawaan, penanganan job asinkron, dan dasbor penggunaan.
  • Tanpa penguncian vendor—ganti model hanya dengan mengubah ID model.

Autentikasi API & Alur Kerja Inti

Sebagian besar penyedia menggunakan API REST berbasis job asinkron:

  • POST untuk membuat tugas → mengembalikan task_id.
  • GET /tasks/{task_id} untuk memeriksa status (queued → processing → completed).
  • Ambil video_url saat sukses.

Autentikasi: Header Bearer token atau X-API-Key.

Penyiapan langkah demi langkah di CometAPI

1) Penyiapan di CometAPI

Kunjungi CometAPI.com dan daftar (pengguna baru mendapat kredit gratis).

Masuk ke dasbor → API Tokens → Buat kunci baru.

Salin kunci sk- Anda dan setel sebagai variabel lingkungan (COMETAPI_KEY).

Gunakan endpoint terpadu gaya /v1/chat/completions atau endpoint video khusus untuk Seedance 2.0 (nama model: bytedance/seedance-2.0 atau seedance-2-preview).

Pendekatan ini menghemat waktu berjam-jam dibanding mengelola kunci terpisah untuk fal.ai, PiAPI, dll. CometAPI juga menyediakan rute latensi lebih rendah dan kredit bundel yang ideal untuk penskalaan produksi.

2) Siapkan prompt yang kuat

Seedance 2.0 merespons paling baik saat prompt bertindak seperti brief sutradara mini. Jelaskan subjeknya, apa yang harus dilakukan kamera, gaya visual yang diinginkan, apa yang harus konsisten, dan apa yang tidak boleh berubah. Karena model mendukung banyak referensi, Anda juga dapat melampirkan referensi frame, referensi gerak, dan referensi audio alih-alih memaksa semuanya dalam satu prompt teks.

Formula prompt praktis seperti ini: subjek + aksi + gerakan kamera + gaya visual + pencahayaan + catatan referensi + batasan. Misalnya, alih-alih menulis “iklan mobil yang stylish,” tulislah “sedan listrik mengilap parkir di atap basah pada malam hari, dolly-in lambat, pantulan neon, pencahayaan komersial premium, tanpa guncangan kamera, jaga mobil tetap di tengah, 16:9.” Jenis prompt seperti itu lebih cocok dengan posisi model yang setingkat sutradara.

3) Kirim permintaan generasi asinkron

Berikut contoh curl yang bersih untuk permintaan gaya Seedance 2.0:

import json
import os
import time

import requests

# Dapatkan kunci CometAPI Anda dari https://www.cometapi.com/console/token, lalu tempelkan di sini
BASE_URL = "https://api.cometapi.com"
OUTPUT_DIR = "./output"
POLL_INTERVAL_SECONDS = 10
RETRY_DELAY_SECONDS = 5
MAX_CREATE_ATTEMPTS = 5
MAX_QUERY_ATTEMPTS = 3
TERMINAL_STATUSES = {"success", "completed", "failed", "error"}
SUCCESS_STATUSES = {"success", "completed"}


def is_progress_complete(progress):
    if isinstance(progress, int):
        return progress >= 100
    if isinstance(progress, float):
        return progress >= 100
    if isinstance(progress, str):
        try:
            return float(progress.rstrip("%")) >= 100
        except ValueError:
            return False
    return False


def is_transient_status(status_code):
    return status_code == 429 or 500 <= status_code < 600


def create_task(files):
    for attempt in range(1, MAX_CREATE_ATTEMPTS + 1):
        response = requests.post(
            f"{BASE_URL}/v1/videos",
            headers=headers,
            files=files,
            timeout=30,
        )
        if response.ok:
            return response
        if not is_transient_status(response.status_code) or attempt == MAX_CREATE_ATTEMPTS:
            response.raise_for_status()
        print(f"Permintaan pembuatan mengembalikan {response.status_code}, mencoba lagi...")
        time.sleep(RETRY_DELAY_SECONDS)

    raise SystemExit("Gagal membuat tugas.")


def get_task(task_id):
    for attempt in range(1, MAX_QUERY_ATTEMPTS + 1):
        response = requests.get(
            f"{BASE_URL}/v1/videos/{task_id}",
            headers=headers,
            timeout=15,
        )
        if response.ok:
            return response
        if not is_transient_status(response.status_code) or attempt == MAX_QUERY_ATTEMPTS:
            response.raise_for_status()
        print(f"Permintaan status mengembalikan {response.status_code}, mencoba lagi...")
        time.sleep(RETRY_DELAY_SECONDS)

    raise SystemExit("Gagal mengambil status tugas.")

if COMETAPI_KEY == "<YOUR_COMETAPI_KEY>":
    print("Set COMETAPI_KEY sebelum menjalankan contoh ini.")
    raise SystemExit(0)

headers = {"Authorization": f"Bearer G00igxF5pXVB56lrtvvgn3hGXJA4bsobmX9YMpGukWAwJDiy"}

create_response = create_task(
    {
        "prompt": (None, "Dorongan kamera sinematik lambat melintasi lanskap pesisir saat matahari terbit."),
        "model": (None, "doubao-seedance-2-0"),
        "seconds": (None, "5"),
        "size": (None, "16:9"),
    }
)
create_response.raise_for_status()
create_result = create_response.json()

task_id = create_result.get("id") or create_result.get("task_id")
if not task_id:
    print(json.dumps(create_result, indent=2))
    raise SystemExit("Tidak ada task id yang dikembalikan.")

print(f"Tugas dibuat: {task_id}")
print(f"Status awal: {create_result.get('status')}")

while True:
    task_response = get_task(task_id)
    task_response.raise_for_status()
    task = task_response.json()
    status = str(task.get("status") or "unknown")
    normalized_status = status.lower()
    progress = task.get("progress")
    should_try_download = normalized_status in SUCCESS_STATUSES or (
        normalized_status == "unknown" and is_progress_complete(progress)
    )

    print(f"Status: {status}, progres: {progress}")

    if should_try_download or normalized_status in TERMINAL_STATUSES:
        if should_try_download:
            video_url = task.get("video_url") or ""
            content_url = f"{BASE_URL}/v1/videos/{task_id}/content"
            output_path = os.path.join(OUTPUT_DIR, f"{task_id}.mp4")

            os.makedirs(OUTPUT_DIR, exist_ok=True)
            with requests.get(
                content_url,
                headers=headers,
                timeout=120,
                stream=True,
            ) as video_response:
                video_response.raise_for_status()
                with open(output_path, "wb") as output_file:
                    for chunk in video_response.iter_content(chunk_size=8192):
                        if chunk:
                            output_file.write(chunk)

            print(f"URL video: {video_url}")
            print(f"Endpoint konten: {content_url}")
            print(f"Tersimpan ke {output_path}")
            print(f"Ukuran file: {os.path.getsize(output_path)} byte")
        else:
            print(json.dumps(task, indent=2))
            raise SystemExit(1)
        break

    time.sleep(POLL_INTERVAL_SECONDS)

Panduan Seedance 2.0 milik CometAPI menggunakan pola endpoint yang sama dan menampilkan kontrol output seperti resolution: "1080p" dan duration_s: 12 sebagai bagian dari bentuk permintaan.

4) Poll hingga selesai dan unduh hasilnya

Alur tipikal: kirim job, simpan ID tugas, polling status, lalu ambil URL video. Endpoint tugas mengembalikan ID tugas dan status diperiksa dengan GET /volc/v3/contents/generations/tasks/{task_id} hingga job selesai.

Penjelasan Mode Generasi Seedance 2.0

ModeTerbaik untukContoh InputReferensi Maks
text_to_videoIdeasi cepatHanya prompt teks0
first_last_framesStoryboarding dengan keyframe1–2 gambar + prompt2
omni_referenceKontrol sinematik profesionalGambar + video + audio + teks12

Langkah demi langkah: Text-to-Video dengan Contoh Kode Python

Berikut contoh Python yang bisa Anda adaptasi:

import osimport timeimport requestsAPI_KEY = os.environ["COMETAPI_API_KEY"]BASE_URL = "https://api.cometapi.com/volc/v3/contents/generations/tasks"headers = {    "Authorization": f"Bearer {API_KEY}",    "Content-Type": "application/json",}payload = {    "model": "doubao-seedance-2-pro",    "content": [        {            "type": "text",            "text": (                "Pengambilan gambar drone sinematik di atas jalan neon basah oleh hujan pada malam hari, "                "dorongan lambat, pantulan realistis, gerakan kerumunan halus."            )        },        {            "type": "image",            "url": "https://example.com/reference-frame.jpg"        }    ],    "output": {        "resolution": "1080p",        "duration_s": 12    }}resp = requests.post(BASE_URL, json=payload, headers=headers, timeout=60)resp.raise_for_status()data = resp.json()task_id = data.get("id") or data.get("task_id")if not task_id:    raise RuntimeError(f"Respons tidak terduga, tidak ditemukan task ID: {data}")status_url = f"{BASE_URL}/{task_id}"for _ in range(60):    status_resp = requests.get(status_url, headers=headers, timeout=30)    status_resp.raise_for_status()    status_data = status_resp.json()    status = status_data.get("status")    if status in {"succeeded", "failed"}:        break    time.sleep(5)print("Status akhir:", status)if status == "succeeded":    result = status_data.get("result", {})    print("URL video:", result.get("download_url"))else:    print("Detail tugas:", status_data)

Pola ini sesuai dengan alur kerja asinkron yang didokumentasikan pada halaman Seedance di CometAPI: kirim job, polling tugas, lalu baca payload hasil saat job selesai.

Image-to-Video & First/Last Frames

Tambahkan image_urls atau reference_images ke payload:

payload = {
    "model": MODEL,
    "prompt": "Karakter berbalik dan tersenyum ke kamera, gerakan natural",
    "image_urls": ["https://example.com/start-frame.jpg"],  # frame pertama
    "task_type": "first_last_frames"  # atau omni_reference
}

Contoh Lanjutan Multimodal Omni-Reference

payload = {
    "model": MODEL,
    "prompt": "Seorang chef profesional memasak pasta sambil menjelaskan langkah-langkah. Gunakan @image1 untuk konsistensi wajah chef, @video1 untuk tata letak dapur, @audio1 untuk musik dan voiceover Italia yang upbeat.",
    # Unggah referensi melalui dasbor penyedia atau pre-signed URL
    "references": {  # Field spesifik platform
        "image1": "https://.../chef.jpg",
        "video1": "https://.../kitchen.mp4",
        "audio1": "https://.../music.wav"
    }
}

Praktik Terbaik Prompt Engineering untuk Seedance 2.0

  • Spesifik: “Dolly zoom lambat dari wide shot ke close-up, pencahayaan golden hour, fisika realistis.”
  • Gunakan referensi: Selalu awali dengan @assetN.
  • Bahasa kamera: “Handheld tracking shot, rack focus, orbit halus.”
  • Isyarat audio: “Sinkronkan cut dengan bass drop, dialog jelas dengan lip-sync.”
  • Kontrol durasi: Cantumkan “klip 8 detik, 5 shot.”

Tips pro: Uji prompt di playground penyedia terlebih dahulu (CometAPI menawarkan pengujian sekali klik).

Tabel Perbandingan: Seedance 2.0 vs Kompetitor Teratas (2026)

FiturSeedance 2.0Kling 3.0Runway Gen-4Luma Ray 2 / Sora 2
Audio Native⭐⭐⭐⭐⭐ (terbaik)⭐⭐⭐⭐⭐⭐⭐⭐⭐
Referensi MultimodalHingga 12 fileTerbatasHanya gambarBervariasi
Durasi Maks15 dtk10–15 dtk8–16 dtk8–20 dtk
Kontrol KameraSetingkat sutradaraKuatSangat baikBaik
Konsistensi GerakPuncak industriSangat baikBaikSangat baik
Terbaik untukPenceritaan sinematikKonsistensi karakterPolesan artistikFotorealisme

Seedance 2.0 unggul dalam audio native dan kontrol multimodal.

Use Case Dunia Nyata

  • Pemasaran: Demo produk dengan voiceover tersinkron.
  • Media Sosial: Konten pendek viral dengan potongan berbasis musik.
  • Pra-visualisasi Film: Storyboard-ke-video dengan karakter konsisten.
  • Edukasi: Penjelasan animasi dengan narasi lip-sync.

Pengguna CometAPI melaporkan iterasi 40% lebih cepat dengan beralih antara Seedance 2.0 dan model pelengkap dalam satu codebase.

Praktik Terbaik, Penskalaan & Penanganan Error

  • Terapkan exponential backoff untuk polling.
  • Gunakan kunci idempoten untuk retry.
  • Pantau penggunaan melalui dasbor CometAPI.
  • Penghapusan watermark tersedia pada beberapa tier.
  • Hormati moderasi konten (tidak ada konten ilegal/menyesatkan).

Cuplikan penanganan error Python:

try:
    video_url = generate_seedance_video(...)
except requests.exceptions.HTTPError as e:
    if e.response.status_code == 429:
        print("Batas laju – coba lagi setelah backoff")

Pemecahan Masalah Umum

  • Tugas macet dalam antrean: Periksa status penyedia; gunakan tier cepat.
  • Konsistensi buruk: Tambahkan lebih banyak gambar referensi dengan sintaks @.
  • Audio tidak sinkron: Jelaskan ritme secara eksplisit dalam prompt.
  • Biaya tinggi: Beralih ke model fast-preview untuk pengujian.

Kesimpulan & Langkah Berikutnya

API Seedance 2.0 mewakili lompatan besar dalam generasi video AI yang dapat dikendalikan dan audio-native. Dengan contoh kode di atas dan platform terpadu CometAPI.com, Anda dapat mulai membangun alur kerja video produksi hari ini—sering kali dalam waktu kurang dari 30 menit.

Siap mencoba? Kunjungi CometAPI.com, ambil kredit gratis Anda, dan hasilkan video Seedance 2.0 pertama Anda seketika. Baik Anda kreator solo, agensi, atau tim perusahaan, CometAPI menghadirkan akses bernilai tertinggi dengan friksi terendah ke Seedance 2.0 dan 500+ model lainnya.

Mulailah membangun video AI sinematik hari ini—kampanye viral berikutnya (atau pra-visualisasi film panjang) hanya satu panggilan API saja.

Lanjut belajar

Hubungkan artikel ini ke keputusan berikutnya.

Lihat semua topik
Dipublikasikan pada Apr 17, 2026
Terakhir diperbarui Sep 3, 2026
728 tampilan
Ditinjau untuk kejelasan, atribusi sumber, dan terminologi API terkini.

Siap memangkas biaya pengembangan AI hingga 20%?

Mulai gratis dalam beberapa menit. Kredit uji coba gratis disertakan. Tidak perlu kartu kredit.

Baca Selengkapnya