Seedance 2.0
Seedance 2.0 is ByteDance's latest video generation model, supporting text-to-video, image-to-video (first frame or first+last frame), and multi-modal reference generation from combinations of images, videos, and audio. It can produce synchronized audio: matching voice, sound effects, and music, with stable characters, precise detail reproduction, and controllable camera movement across 480p, 720p, and 1080p at 4–15 seconds. Use it for marketing clips, product and brand video, and prompt-driven creative pipelines.
Pricing
Input
$0.84 / video
Output
—
Pay only for what you use. No subscriptions, no minimums.
Specs
- Context
- —
- Max output
- 15s
- Latency
- Slow
- Category
- Video
Constraints & limits
Duration
Up to 30s (linear pricing)
Base price
For 5s clip
Auto-refund
On generation failure
The gateway auto-clamps requests to the model's limits where possible.
Quick start
Video generation is async, the sample submits then polls until done or failed (auto-refund on failure).
import os, time, requests
API = "https://api.thalam.ai/v1"
headers = {"Authorization": f"Bearer {os.environ['THALAM_KEY']}"}
# 1. Submit
submit = requests.post(
f"{API}/videos/generations",
headers=headers,
json={
"model": "bytedance/seedance-2.0",
"prompt": "A drone shot over a desert at golden hour.",
"duration": 5,
},
)
task_id = submit.json()["task_id"]
# 2. Poll until done (or auto-refund on failure)
while True:
poll = requests.get(f"{API}/videos/tasks/{task_id}", headers=headers).json()
status = poll["task"]["status"]
if status == "TASK_STATUS_SUCCEED":
print(poll["videos"][0]["video_url"])
break
if status == "TASK_STATUS_FAILED":
print(f"Failed: {poll['task'].get('reason', 'unknown')}")
break
time.sleep(5)Similar models
MiniMax H3 Max
MiniMax's top video tier. 5 to 15 second clips at 480P or 768P with native audio, driven by a prompt, first and last frames, or up to 9 reference images.
MiniMax H3
MiniMax's newest video model with native audio. 4 to 15 second clips at 768P or 2K, priced per second.