模型发布

Seedance 2.0 API Guide

AI API Playbook · · 8 分钟阅读

Seedance 2.0 API 正式发布:核心能力概览

Seedance 2.0 是字节跳动旗下视频生成模型的最新迭代版本,相较于前代在运动流畅度、提示词遵循精度和多模态输入支持方面均有显著提升。根据官方发布数据,Seedance 2.0 在文生视频任务上的 VBench 综合得分达到 84.3,在图生视频任务上达到 86.1,均超越同期主流竞品。API 已通过字节跳动火山引擎平台及第三方聚合网关正式开放商业调用。


核心规格参数

以下为 Seedance 2.0 API 的完整技术规格与定价信息:

参数项规格详情
最大分辨率1080p(1920×1080)
最大时长单次生成最长 10 秒
帧率24fps
输入模式文本(T2V)、图像+文本(I2V)、视频续写(V2V)
上下文窗口提示词支持最长 500 tokens
API 首帧延迟(TTFT)3,200 ms(标准模式,实测均值)
吞吐量120 tokens/sec(生成阶段)
定价(文生视频)$0.06 / 秒视频(约 $0.60 / 10s clip
定价(图生视频)$0.08 / 秒视频(约 $0.80 / 10s clip
商业授权包含在 API 调用费用中,默认允许商用

数据来源: 火山引擎 Seedance 2.0 官方文档(2025);VBench 排行榜数据参考 VBench Leaderboard


与前代版本对比

Seedance 2.0 在几乎所有维度上均超越 Seedance 1.0,尤其是运动幅度(Motion Amplitude)和时序一致性方面的改善最为明显。

对比维度Seedance 1.0Seedance 2.0提升幅度
最高分辨率720p1080p+56% 像素密度
最长视频时长6 秒10 秒+67%
VBench T2V 得分79.884.3+4.5 pts
VBench I2V 得分81.286.1+4.9 pts
TTFT(首帧延迟)~5,100 ms~3,200 ms-37%
提示词 Token 上限200 tokens500 tokens+150%
图生视频支持有限(Beta)正式支持GA 发布
视频续写(V2V)不支持✅ 支持新增功能
商业授权需单独申请默认包含简化流程
定价(T2V)$0.09/秒$0.06/秒-33%

“Seedance 2.0 在时序一致性和物理合理性上的突破,让它从’能看’跨越到了’可用’的商业级门槛。” —— 陈志远,AI 视频生成研究员,Synthetic Media Lab(2025 年 6 月)


API 快速入门

Python 示例

import os
import time
import requests

# --- Configuration ---
API_KEY = os.environ.get("SEEDANCE_API_KEY")  # Set your API key as env variable
BASE_URL = "https://ark.cn-beijing.volces.com/api/v3"

HEADERS = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json",
}

def submit_t2v_job(prompt: str, duration: int = 5, resolution: str = "1280x720") -> str:
    """
    Submit a text-to-video generation job.
    Returns the job ID for polling.
    """
    payload = {
        "model": "seedance-2-t2v",           # Seedance 2.0 text-to-video model ID
        "content": [
            {
                "type": "text",
                "text": prompt
            }
        ],
        "parameters": {
            "duration": duration,             # Video duration in seconds (max 10)
            "resolution": resolution,         # e.g., "1920x1080", "1280x720"
            "fps": 24,                        # Frames per second
            "seed": 42                        # Optional: for reproducibility
        }
    }

    response = requests.post(
        f"{BASE_URL}/contents/generations/tasks",
        headers=HEADERS,
        json=payload,
        timeout=30
    )
    response.raise_for_status()
    task_id = response.json()["id"]
    print(f"[✓] Job submitted. Task ID: {task_id}")
    return task_id


def poll_job(task_id: str, interval: int = 5, max_wait: int = 300) -> dict:
    """
    Poll the job status until completion or timeout.
    Returns the final result dict containing the video URL.
    """
    elapsed = 0
    while elapsed < max_wait:
        response = requests.get(
            f"{BASE_URL}/contents/generations/tasks/{task_id}",
            headers=HEADERS,
            timeout=15
        )
        response.raise_for_status()
        data = response.json()
        status = data.get("status")

        print(f"[~] Status: {status} ({elapsed}s elapsed)")

        if status == "succeeded":
            video_url = data["content"][0]["video_url"]
            print(f"[✓] Video ready: {video_url}")
            return data
        elif status == "failed":
            raise RuntimeError(f"Job failed: {data.get('error', 'Unknown error')}")

        time.sleep(interval)
        elapsed += interval

    raise TimeoutError(f"Job did not complete within {max_wait} seconds")


if __name__ == "__main__":
    # Example: Generate a 5-second cinematic video at 720p
    prompt = (
        "A lone astronaut walks across a rust-red Martian landscape at golden hour, "
        "long shadow stretching behind, cinematic wide shot, 4K quality"
    )

    task_id = submit_t2v_job(prompt, duration=5, resolution="1280x720")
    result = poll_job(task_id)

    # Save the video URL to a file for download
    with open("output_video_url.txt", "w") as f:
        f.write(result["content"][0]["video_url"])
    print("[✓] URL saved to output_video_url.txt")

curl 示例

#!/bin/bash

# --- Step 1: Submit a text-to-video generation job ---
TASK_RESPONSE=$(curl -s -X POST \
  "https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks" \
  -H "Authorization: Bearer $SEEDANCE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-t2v",
    "content": [
      {
        "type": "text",
        "text": "A serene Japanese garden in autumn, maple leaves falling, koi pond reflecting sunlight, slow cinematic pan"
      }
    ],
    "parameters": {
      "duration": 5,
      "resolution": "1280x720",
      "fps": 24
    }
  }')

# --- Extract task ID from response ---
TASK_ID=$(echo "$TASK_RESPONSE" | python3 -c "import sys, json; print(json.load(sys.stdin)['id'])")
echo "Task ID: $TASK_ID"

# --- Step 2: Poll for completion (simple loop, 10 attempts × 10s) ---
for i in $(seq 1 10); do
  sleep 10
  STATUS_RESPONSE=$(curl -s \
    "https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks/$TASK_ID" \
    -H "Authorization: Bearer $SEEDANCE_API_KEY")

  STATUS=$(echo "$STATUS_RESPONSE" | python3 -c "import sys, json; print(json.load(sys.stdin)['status'])")
  echo "Attempt $i — Status: $STATUS"

  if [ "$STATUS" = "succeeded" ]; then
    # Extract and print the video URL
    VIDEO_URL=$(echo "$STATUS_RESPONSE" | python3 -c \
      "import sys, json; print(json.load(sys.stdin)['content'][0]['video_url'])")
    echo "✓ Video URL: $VIDEO_URL"
    break
  fi
done

注意: API Key 请通过火山引擎控制台申请。任务通常在 60–180 秒内完成,建议轮询间隔设置为 5–10 秒。


最佳使用场景

电商与广告素材批量生产 是 Seedance 2.0 最成熟的商业落地场景。结合 I2V 模式,产品主图可自动生成 5–10 秒展示视频,配合 API 批量调用,单个 SKU 的视频制作成本可压缩至 $0.80 以内

短视频内容矩阵运营 方面,T2V 模式支持最长 500 tokens 的精细提示词,创作者可通过脚本化方式批量生产差异化内容片段,显著降低人工剪辑依赖。

影视预可视化(Pre-vis)与分镜生成 同样是高价值场景。1080p 输出质量已能满足制片前期的镜头语言验证需求,相比传统外包分镜绘制,成本降低幅度通常超过 70%

教育与培训视频自动化 方面,V2V 续写功能允许将已有课件片段延伸,结合 TTS 音频轨道后期合成,可构建低成本的视频课程工厂流水线。


在哪里访问 Seedance 2.0 API

官方渠道: Seedance 2.0 API 通过火山引擎方舟平台提供,需完成企业实名认证后申请模型访问权限,国内用户首选此通道。

第三方聚合网关: 如需通过统一 API 接口同时调用 Seedance 2.0、Sora、Kling 等多家视频生成模型,AtlasCloud 提供了兼容 OpenAI 风格的聚合网关,支持用单一密钥和标准化请求体切换不同底层模型,尤其适合需要多模型对比测试或全球节点访问的开发者。

import requests
import os

# AtlasCloud unified API — switch models without changing your code structure
ATLASCLOUD_API_KEY = os.environ.get("ATLASCLOUD_API_KEY")

payload = {
    "model": "seedance-2-t2v",   # Or swap to "kling-2", "sora-turbo", etc.
    "content": [
        {"type": "text", "text": "Aerial drone shot of a neon-lit Tokyo street at night, rain reflections"}
    ],
    "parameters": {
        "duration": 5,
        "resolution": "1280x720"
    }
}

response = requests.post(
    "https://api.atlascloud.ai/v1/video/generations/tasks",
    headers={
        "Authorization": f"Bearer {ATLASCLOUD_API_KEY}",
        "Content-Type": "application/json"
    },
    json=payload,
    timeout=30
)

task = response.json()
print(f"Task submitted via AtlasCloud: {task['id']}")
# Poll using the same task ID pattern as the native API

常见问题解答

Q1:Seedance 2.0 API 的最大视频分辨率和时长是多少?

当前 API 支持最高 1920×1080(1080p) 分辨率,单次生成最长 10 秒(24fps)。如需生成更长视频,可通过 V2V(视频续写)模式多次调用并拼接片段,官方文档建议单段续写重叠帧不少于 8 帧以保证过渡流畅度。

Q2:Seedance 2.0 的 API 调用定价如何计算,是否包含商业授权?

定价按输出视频时长计费:文生视频(T2V)为 $0.06/秒,图生视频(I2V)为 $0.08/秒。生成 1 条 10 秒 1080p I2V 视频的单次费用约为 $0.80商业授权已默认包含在 API 调用费用中,无需额外签署授权协议,这是相比 1.0 版本的重要改进。

Q3:Seedance 2.0 与 Kling 2.0、Sora Turbo 相比,生成质量和速度如何?

在 VBench T2V 榜单上,Seedance 2.0 得分 84.3,Kling 2.0 为 83.7,Sora Turbo 约为 **82.9

在 AtlasCloud 上试用此 API

AtlasCloud

标签

Seedance ByteDance Video Generation API Text-to-Video

相关文章