tutorial10 分鐘閱讀

Seedance 2.0 影片生成 API 快速入門:Python 與 Node.js 極簡呼叫指南

全面掌握字節跳動 Seedance 2.0 影片大模型 API 的生產級串接方案。涵蓋基於 Python 與 Node.js 的非同步任務輪詢、Webhook 回呼架構、解析度適配、429 指數退避重試與降本測算。

ToAPIs 研發評測組
TL;DR - 核心要點
  • Seedance 2.0 影片大模型 API 原生支援基於文字 Prompt 與首影格參考圖(R2V/I2V)生成 720p 與 1080p 電影級動態影片。
  • 任務執行嚴格採用分散式非同步模型:發送生成請求取得 task_id,隨後按 3 秒間隔輪詢狀態或接收 Webhook 事件回呼。
  • 透過 ToAPIs 統一閘道器,開發者可徹底免除國內企業對公資質審核,享受透明的按秒計費模式,相比官方合約價直接降低 37% 成本。
  • 生產級管線必須配置帶隨機抖動的指數退避重試以消除 429 並發限流,並整合 Kling 3.0 或 MiniMax H3 自動平滑降級容災策略。

Seedance 2.0 影片生成 API 快速入門:Python 與 Node.js 極簡呼叫指南

目標端點 (Target Endpoint): https://api.toapis.com/v1/videos/generations
任務查詢端點 (Task Status): https://api.toapis.com/v1/tasks/video-status?task_id={task_id}
模型識別碼 (Model Identifier): doubao-seedance-2-0 / seedance-2.0
鑑權請求頭 (Auth Header): Authorization: Bearer $TOAPIS_API_KEY
支援協議: REST、Server-Sent Events (SSE)、Webhook 非同步回呼


⚡ TL;DR: 架構師與研發極速摘要

  • 核心模態支援:原生支援文生影片(Text-to-Video, T2V)與圖生影片(Image-to-Video / Reference-to-Video R2V),輸出 24fps / 30fps 高畫質動態畫面。
  • 解析度矩陣:720p 寬螢幕 (1280x720)、720p 直式 (720x1280,適配 TikTok/Reels/Shorts)、1080p 全高清 (1920x1080) 及 1:1 正方形。
  • 非同步調度模型:派發請求至 POST /v1/videos/generations 立即取得 task_id,建議每隔 3 秒輪詢一次 /v1/tasks/video-status 或配置 Webhook 回呼。
  • 按秒計費成本:按實際成片秒數計費(720p 為 $0.028/秒,1080p 為 $0.048/秒),相比官方企業合約零售價直接降低 37%,零月度最低消費限制。
  • 工程容災機制:內建帶隨機抖動的指數退避重試防範 429 限流,支援在底層 GPU 擁塞時無感平滑故障轉移降級至 Kling 3.0 Omni 或 MiniMax H3。

1. 痛點剖析:為什麼直接串接 Seedance 官方企業介面充滿摩擦?

字節跳動推出的 Seedance 2.0 影片生成大模型在 2026 年的生成式 AI 領域樹立了全新的技術標竿。其創新的 Diffusion-Transformer (DiT) 混合架構結合大容量時空分詞器,在畫面的時空連貫性、多角色複雜動態、以及複雜物理動力學模擬(如流體運動、布料皺褶、體積光透射)上,全面超越了上一代影片模型。

然而,企業研發團隊在嘗試透過官方對公管道串接 Seedance 2.0 影片生成 API 時,普遍面臨以下四大嚴峻的工程與商務瓶頸:

  1. 企業資質審核與高昂門檻:官方直連通常強制要求境內企業法人資質、線下對公銷售合約簽署,且首年充值承諾最低消費通常在 $5,000 美元以上,中小團隊與獨立開發者難以承受。
  2. 非標鑑權協議與 SDK 碎片化:官方介面使用專屬的 HMAC-SHA256 簽名機制與特定時區時間戳請求頭,無法直接融入社群標準的 OpenAI 用戶端及自動化工作流程。
  3. HTTP 504 長連線閘道器逾時:生成一段 5~10 秒的高畫質影片需要 20 至 50 秒的高密度 GPU 運算。傳統同步 HTTP 請求極易被 Cloudflare、反向代理伺服器或負載平衡器強制中斷。
  4. 並發限流與錯誤處理黑盒:官方入門級帳戶的並發上限極低(通常僅支援 1~2 個並發),高頻呼叫瞬間觸發未捕獲的 429 Too Many Requests 報錯,缺乏彈性排隊機制。

透過 ToAPIs 統一模型閘道器,開發者只需標準 Bearer Token 鑑權即可直接調度 Seedance 2.0,享受全自動非同步狀態維護、彈性任務佇列與每秒精準計費優勢。


2. 系統架構:非同步任務生命週期與狀態流轉

由於生成式影片涉及在 GPU 叢集上進行數十億參數的張量運算,Seedance 2.0 影片生成 API 嚴格採用分散式非同步佇列模型運行:

text
┌─────────────────┐             ┌─────────────────────┐             ┌─────────────────────────┐
│ 用戶端服務      │             │ ToAPIs 統一聚合閘道 │             │ 底層 GPU 運算叢集       │
│ (業務後端 / App)│             │ (api.toapis.com)    │             │ (Seedance 2.0 渲染引擎) │
└────────┬────────┘             └──────────┬──────────┘             └────────────┬────────────┘
         │                                 │                                     │
         │ 1. POST /v1/videos/generations  │                                     │
         │────────────────────────────────>│ 2. 鑑權校驗 & 派發排隊任務          │
         │                                 │────────────────────────────────────>│
         │ 3. HTTP 202: 回傳 task_id       │                                     │
         │<────────────────────────────────│                                     │
         │                                 │                                     │
         │ 4. GET /v1/tasks/video-status   │                                     │
         │    (間隔 3s 發起輪詢)           │                                     │
         │────────────────────────────────>│ 5. 查詢任務佇列與渲染進度           │
         │                                 │────────────────────────────────────>│
         │ 6. 回傳進度: "PROCESSING" (35%) │<────────────────────────────────────│
         │<────────────────────────────────│                                     │
         │                                 │                                     │
         │ 7. GET /v1/tasks/video-status   │                                     │
         │    (間隔 3s 發起輪詢)           │                                     │
         │────────────────────────────────>│ 8. 影片渲染完畢,CDN 快取就緒       │
         │                                 │────────────────────────────────────>│
         │ 9. 回傳成功: "SUCCESS" + MP4 URL│<────────────────────────────────────│
         │<────────────────────────────────│                                     │
         │                                 │                                     │
         │ 10. 轉存 MP4 至私有雲端儲存(S3) │                                     │
         │─────────────────────────────────┴─────────────────────────────────────┘

該生命週期主要涵蓋三大階段:

  • 階段 A(任務派發 Dispatch):用戶端提交提示詞、畫幅比例、成片秒數與可選首影格圖片。閘道器校驗參數後立即回傳 HTTP 202 Accepted 狀態碼及唯一的 task_id。
  • 階段 B(佇列合成 Synthesize):底層渲染節點執行潛在時空擴散運算。在此期間查詢狀態將回傳 QUEUED(排隊中)或 PROCESSING(渲染中,附帶百分比進度)。
  • 階段 C(CDN 交付 Delivery):任務完成後,原始影片流被編碼為 H.264/MP4 容器並分發至全球 CDN 節點,回傳有效期限為 24 小時的安全下載連結。

3. 程式碼實戰:生產級完整串接方案

3.1 60秒極速上手:cURL 提交與狀態輪詢

首先在終端機匯出您的 API 金鑰,執行以下標準 cURL 命令提交生成任務:

bash
export TOAPIS_API_KEY="sk-toapis-your-active-api-key"

# 步驟 1: 提交影片生成任務
curl -X POST "https://api.toapis.com/v1/videos/generations" \
  -H "Authorization: Bearer $TOAPIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "doubao-seedance-2-0",
    "prompt": "電影級航拍鏡頭,晨曦霧氣中的蘇格蘭古堡,金色廷得耳光線穿透薄霧,8k超清解析度 24fps",
    "aspect_ratio": "16:9",
    "duration": 5,
    "quality": "standard"
  }'

閘道器回傳範例(HTTP 202 Accepted):

json
{
  "code": 0,
  "message": "Task submitted successfully",
  "data": {
    "task_id": "task_seedance_9f81a7b03c4e4d8a",
    "status": "QUEUED",
    "created_at": 1761037200,
    "model": "doubao-seedance-2-0",
    "estimated_seconds": 32
  }
}
bash
# 步驟 2: 攜帶回傳的 task_id 查詢渲染狀態
curl -X GET "https://api.toapis.com/v1/tasks/video-status?task_id=task_seedance_9f81a7b03c4e4d8a" \
  -H "Authorization: Bearer $TOAPIS_API_KEY"

3.2 生產級 Python 非同步輪詢與容災指令碼

在企業後端服務中,輪詢邏輯必須具備逾時保護與 429 隨機退避。以下是完整的生產級 Python 用戶端:

python
"""
Seedance 2.0 影片生成 API 生產級用戶端 (透過 ToAPIs 閘道器)
核心特性:
- 強型別參數建構與資料校驗
- 具備逾時安全防護的智慧狀態輪詢
- 針對 HTTP 429 並發限流的指數抖動退避演算法
- 自動將生成的 MP4 檔案流下載至本機儲存
"""

import os
import time
import random
import logging
from typing import Optional, Dict, Any
import requests

logging.basicConfig(level=logging.INFO, format="%(asctime)s [%(levelname)s] %(message)s")
logger = logging.getLogger("Seedance2Client")

class SeedanceAPIError(Exception):
    """Seedance API 業務操作例外基類"""
    pass

class SeedanceClient:
    def __init__(self, api_key: Optional[str] = None, base_url: str = "https://api.toapis.com/v1"):
        self.api_key = api_key or os.getenv("TOAPIS_API_KEY")
        if not self.api_key:
            raise ValueError("未找到 API Key。請設定 TOAPIS_API_KEY 環境變數或顯式傳入。")
        self.base_url = base_url.rstrip("/")
        self.headers = {
            "Authorization": f"Bearer {self.api_key}",
            "Content-Type": "application/json",
            "User-Agent": "ToAPIs-Seedance-SDK/2.0"
        }

    def submit_video_task(
        self,
        prompt: str,
        aspect_ratio: str = "16:9",
        duration: int = 5,
        quality: str = "standard",
        seed: Optional[int] = None,
        image_url: Optional[str] = None
    ) -> str:
        """
        向 Seedance 2.0 提交影片生成任務,成功後回傳 task_id
        """
        url = f"{self.base_url}/videos/generations"
        payload: Dict[str, Any] = {
            "model": "doubao-seedance-2-0",
            "prompt": prompt,
            "aspect_ratio": aspect_ratio,
            "duration": duration,
            "quality": quality
        }
        if seed is not None:
            payload["seed"] = seed
        if image_url:
            payload["image_url"] = image_url

        logger.info(f"正在提交 Seedance 2.0 影片任務: 比例={aspect_ratio}, 時長={duration}s...")
        response = requests.post(url, json=payload, headers=self.headers, timeout=30)
        
        if response.status_code == 429:
            raise SeedanceAPIError("任務提交觸發並發限制 (429),請在呼叫層啟用排隊退避。")
        response.raise_for_status()
        
        data = response.json()
        task_id = data.get("data", {}).get("task_id")
        if not task_id:
            raise SeedanceAPIError(f"閘道器回應格式不符合預期: {data}")
            
        logger.info(f"任務已進入生成佇列,Task ID: {task_id}")
        return task_id

    def poll_until_complete(
        self,
        task_id: str,
        initial_interval: float = 3.0,
        max_timeout: float = 180.0
    ) -> str:
        """
        輪詢任務狀態直至 SUCCESS 或 FAILED,回傳最終的 CDN 影片下載位址
        """
        url = f"{self.base_url}/tasks/video-status"
        params = {"task_id": task_id}
        start_time = time.time()
        current_interval = initial_interval

        while time.time() - start_time < max_timeout:
            time.sleep(current_interval)
            elapsed = int(time.time() - start_time)

            try:
                res = requests.get(url, params=params, headers=self.headers, timeout=15)
            except requests.RequestException as req_err:
                logger.warning(f"網路臨時抖動,查詢任務 {task_id} 異常: {req_err},正在重試...")
                continue

            if res.status_code == 429:
                backoff = current_interval * 1.5 + random.uniform(0.5, 1.5)
                logger.warning(f"收到 HTTP 429 限流通知,休眠退避 {backoff:.1f} 秒...")
                time.sleep(backoff)
                continue

            if res.status_code != 200:
                logger.warning(f"狀態介面回傳 HTTP {res.status_code}: {res.text}")
                continue

            body = res.json().get("data", {})
            status = body.get("status")
            progress = body.get("progress", 0)
            logger.info(f"[已耗時 {elapsed}s] 當前狀態: {status} ({progress}%)")

            if status == "SUCCESS":
                video_url = body.get("video_url")
                if not video_url:
                    raise SeedanceAPIError("任務已標記 SUCCESS 但缺失 video_url 欄位。")
                logger.info(f"影片渲染成功! 總耗時: {elapsed}s,下載連結: {video_url}")
                return video_url
            elif status in ("FAILED", "CANCELED"):
                error_msg = body.get("error_message", "上游 GPU 叢集未知渲染故障。")
                raise SeedanceAPIError(f"Seedance 任務 {task_id} 終止失敗: {error_msg}")

        raise TimeoutError(f"任務 {task_id} 超過設定的最大逾時閾值 ({max_timeout}s)。")

    def download_video(self, video_url: str, output_path: str) -> None:
        """串流下載影片檔案並持久化儲存至本機"""
        logger.info(f"開始從 CDN 下載影片串流並儲存至 {output_path}...")
        with requests.get(video_url, stream=True, timeout=60) as r:
            r.raise_for_status()
            with open(output_path, "wb") as f:
                for chunk in r.iter_content(chunk_size=8192):
                    f.write(chunk)
        logger.info(f"影片儲存完畢: {output_path} (檔案大小: {os.path.getsize(output_path)} 位元組)")

if __name__ == "__main__":
    client = SeedanceClient()
    prompt_text = "特寫微距鏡頭:液態紅銅緩緩注入精密齒輪模具中,火花飛濺,暗色機械車間氛圍,光線追蹤質感,1080p 30fps"
    
    try:
        t_id = client.submit_video_task(prompt=prompt_text, aspect_ratio="16:9", duration=5)
        cdn_url = client.poll_until_complete(t_id)
        client.download_video(cdn_url, "seedance_render_output.mp4")
    except Exception as exc:
        logger.error(f"管線執行失敗: {exc}")

3.3 Node.js / TypeScript 生產級用戶端與 Webhook 整合

對於基於 Next.js、NestJS 或 Express 建構的企業 Web 應用,可直接引入以下 TypeScript 實作:

typescript
import axios, { AxiosInstance } from 'axios';

export interface SeedanceGenerateOptions {
  prompt: string;
  aspectRatio?: '16:9' | '9:16' | '1:1' | '4:3' | '21:9';
  duration?: 5 | 10;
  quality?: 'standard' | 'high';
  seed?: number;
  imageUrl?: string;
  webhookUrl?: string;
}

export interface TaskStatusResponse {
  taskId: string;
  status: 'QUEUED' | 'PROCESSING' | 'SUCCESS' | 'FAILED';
  progress?: number;
  videoUrl?: string;
  errorMessage?: string;
}

export class SeedanceVideoService {
  private client: AxiosInstance;

  constructor(apiKey?: string, baseURL = 'https://api.toapis.com/v1') {
    const token = apiKey || process.env.TOAPIS_API_KEY;
    if (!token) {
      throw new Error('缺失 TOAPIS_API_KEY 環境變數');
    }

    this.client = axios.create({
      baseURL,
      headers: {
        Authorization: `Bearer ${token}`,
        'Content-Type': 'application/json',
      },
      timeout: 20000,
    });
  }

  /**
   * 提交 Seedance 2.0 影片生成任務
   */
  async submitTask(options: SeedanceGenerateOptions): Promise<string> {
    const payload = {
      model: 'doubao-seedance-2-0',
      prompt: options.prompt,
      aspect_ratio: options.aspectRatio || '16:9',
      duration: options.duration || 5,
      quality: options.quality || 'standard',
      seed: options.seed,
      image_url: options.imageUrl,
      webhook_url: options.webhookUrl,
    };

    const res = await this.client.post('/videos/generations', payload);
    const taskId = res.data?.data?.task_id;
    if (!taskId) {
      throw new Error('閘道器回應未回傳有效的 task_id');
    }
    return taskId;
  }

  /**
   * 輪詢任務狀態直至完成或失敗
   */
  async waitForCompletion(
    taskId: string,
    intervalMs = 3000,
    maxWaitMs = 180000
  ): Promise<string> {
    const startTime = Date.now();

    while (Date.now() - startTime < maxWaitMs) {
      await new Promise((resolve) => setTimeout(resolve, intervalMs));

      const res = await this.client.get('/tasks/video-status', {
        params: { task_id: taskId },
      });

      const data = res.data?.data;
      const status = data?.status;

      if (status === 'SUCCESS') {
        return data.video_url;
      }
      if (status === 'FAILED') {
        throw new Error(`Seedance 任務失敗: ${data.error_message || '未知錯誤'}`);
      }
    }

    throw new Error(`Seedance 任務 ${taskId} 超過最大等待時間 (${maxWaitMs / 1000}秒)`);
  }
}

4. 架構進階:生產級容災與避坑指南

在面向使用者的 SaaS 平臺中調度影片大模型,存在許多不同於低延遲文字 LLM 的特殊工程挑戰:

4.1 輪詢 vs Webhook 架構選型矩陣

對於日生成量低於 500 支的中小型業務,用戶端採用 3秒步長輪詢 足以滿足需求。但當日調用量超過 5,000 支時,持續的 HTTP 輪詢會對閘道器和應用層連線池造成巨大壓力:

text
┌─────────────────────────────────────────────────────────────────────────────────┐
│ 輪詢與 Webhook 架構決策選型對照表                                                │
├──────────────────┬─────────────────────────────┬────────────────────────────────┤
│ 評估維度         │ 用戶端狀態輪詢 (/status)    │ Webhook 事件回呼 (POST /hook)  │
├──────────────────┼─────────────────────────────┼────────────────────────────────┤
│ 適配日任務規模   │ < 500 支影片 / 天           │ > 500 支影片 / 天              │
│ 應用伺服器開銷   │ 較高 (單任務產生 10~20 次請求)│ 極低 (僅一次單向推播通知)      │
│ 閘道器 QPS 峰值負載│ 突發並發時顯著升高          │ 幾乎無額外輪詢頻寬開銷         │
│ 網路環境要求     │ 支援內網 NAT / Localhost 本地│ 必須具備公網可訪問 HTTPS 介面  │
│ 故障自我修復能力 │ 迴圈內建重試邏輯            │ 需配置無效信件佇列與冪等機制   │
└──────────────────┴─────────────────────────────┴────────────────────────────────┘

當請求體包含 webhook_url 時,ToAPIs 閘道器將在影片渲染為 SUCCESS 或 FAILED 時,攜帶簽名標頭 X-ToAPIs-Signature 主動向您的回呼介面派發事件,徹底釋放用戶端輪詢執行緒。

4.2 消除 429 限流:帶隨機抖動的指數退避算式

如果業務瞬時發起 20 個以上的批次影片渲染任務,容易觸發上游排隊限流。必須在重試機制中引入隨機抖動:

WaitTime=min⁡(MaxWait,BaseInterval×2attempt)+Uniform(0,1)\text{WaitTime} = \min(\text{MaxWait}, \text{BaseInterval} \times 2^{\text{attempt}}) + \text{Uniform}(0, 1)

該算式可有效打散並發重試峰值,避免「驚群效應(Thundering Herd)」。

4.3 故障轉移降級梯隊 (Disaster Recovery Matrix)

生產級系統絕不能將業務穩定性綁定在單一廠商模型上。當 Seedance 2.0 底層叢集遇到週期性維護或排隊延遲驟升(P95 > 90秒)時,應用層應執行無感動態路由降級:

python
FALLBACK_CASCADE = [
    {"model": "doubao-seedance-2-0", "timeout_sec": 45},
    {"model": "kling-3-omni", "timeout_sec": 60},
    {"model": "minimax-h3", "timeout_sec": 45}
]

由於 ToAPIs 對所有影片大模型統一抽象為相同的 /v1/videos/generations 協議,動態降級只需在請求體中替換 "model" 字串即可無縫完成。

4.4 核心參數規範矩陣

請求參數資料類型是否必填預設值允許取值範圍與約束說明
promptString是-1 到 1,000 個字元。支援中文與英文,英文提示詞控制力更佳。
aspect_ratioString否"16:9"候選值:"16:9", "9:16", "1:1", "4:3", "21:9"。
durationInteger否5支援 5 秒或 10 秒。
qualityString否"standard""standard" 對應 720p,"high" 對應 1080p。
seedInteger否隨機取值 1 到 2147483647,用於可重現的畫面確定性輸出。
image_urlString否null公網 HTTPS 圖片連結,作為圖生影片(I2V/R2V)的首影格參考。
camera_motionString否null支援 "pan_left", "pan_right", "zoom_in", "zoom_out" 等運鏡指令。

Seedance 2.0 影片生成 API - 720p 與 1080p 畫質參數與幀率實測對比 (2026)

5. 成本帳單與降本測算:官方直連 vs 統一閘道器

影片大模型的計費核心在於**成片渲染時長(按秒計費)**而非 Token 數量。掌握這一點對團隊的 FinOps 成本控制至關重要。

5.1 官方企業直連 vs ToAPIs 聚合閘道器費率對比

考核維度 / 資費指標官方對公企業直連ToAPIs 統一聚合閘道器綜合節省與採購優勢
最低開通與保底門檻$500 ~ $2,000 / 月承諾額$0 (1美元起充,按需計費)零資金沉澱與試錯成本
支付結算管道僅限特定對公銀行電匯信用卡、Stripe、支付寶、加密貨幣出海與多幣別無縫支援
720p 影片費率 (每秒)$0.045 / 秒$0.028 / 秒立省 37.7%
1080p 影片費率 (每秒)$0.075 / 秒$0.048 / 秒立省 36.0%
5秒單支影片成片成本$0.225$0.140單條淨省 $0.085
10秒單支影片成片成本$0.450$0.280單條淨省 $0.170
失敗任務計費規則請求發起即扣款$0.00 (成功才扣費保證)規避 GPU 超時壞帳

5.2 月度規模化呼叫 ROI 測算模型 (以每月 5,000 支 5秒短影音為例)

以一家自動化社群影音行銷矩陣公司為例,每月需批量渲染 5,000 支 5 秒的 720p 短影音素材:

月度總計算秒數=5,000 支×5 秒=25,000 秒\text{月度總計算秒數} = 5,000 \text{ 支} \times 5 \text{ 秒} = 25,000 \text{ 秒}

官方直連支出=25,000 秒×0.045 USD=1,125.00 USD / 月\text{官方直連支出} = 25,000 \text{ 秒} \times 0.045 \text{ USD} = 1,125.00 \text{ USD / 月}

ToAPIs 閘道器支出=25,000 秒×0.028 USD=700.00 USD / 月\text{ToAPIs 閘道器支出} = 25,000 \text{ 秒} \times 0.028 \text{ USD} = 700.00 \text{ USD / 月}

每月直接節省金額=1,125.00 USD−700.00 USD=425.00 USD / 月\text{每月直接節省金額} = 1,125.00 \text{ USD} - 700.00 \text{ USD} = 425.00 \text{ USD / 月}

年度累計淨省=425.00 USD×12=5,100.00 USD / 年\text{年度累計淨省} = 425.00 \text{ USD} \times 12 = 5,100.00 \text{ USD / 年}

若進一步將部分高階商業片升級為 1080p 全高清渲染,年度直接節省預算更將躍升至 $8,100.00 USD,為技術團隊向上彙報提供了極其硬核的降低成本數據支援。


6. 技術問答 (FAQ) 與行動轉化

技術 FAQ

Q1: Seedance 2.0 影片生成是否包含原生配樂與音訊?

目前 Seedance 2.0 核心專注於極致畫質與物理運鏡渲染,暫不直接合成音訊軌道。在商業廣告與短劇管線中,通常將生成的 MP4 影片與 Suno API 或 ElevenLabs 音訊流水線串接,在後製階段完成影音合成。

Q2: 生成的影片下載連結有效期限為多久?

任務完成後回傳的 CDN 影片連結有效期限為 24 小時。在生產管線中,建議在接收到狀態為 SUCCESS 的回呼後,立即透過後台非同步任務轉存至團隊自己的 AWS S3、Cloudflare R2 或 Google Cloud Storage 中。

Q3: 如何渲染適配 TikTok、Reels 和 Shorts 的 9:16 直式影片?

在請求 JSON 中將 "aspect_ratio" 指定為 "9:16" 即可。模型將直接以原生直式比例渲染輸出,徹底杜絕後製強制裁切所造成的畫面主體變形與像素損失。

Q4: 單次請求支援的最長成片時間是多少?

Seedance 2.0 原生支援 5 秒或 10 秒 的單次任務時長。若需生成更長的連續影視片段,可透過將前序片段的尾影格抽取出來,作為下一段請求的 image_url,進行連續鏡頭遞進生成。


立即開啟 Seedance 2.0 影片生成之旅

本文提及的模型與介面

ByteDanceVIDEO

Seedance 2.0

當前費率:Input 1,314.29 credits/1M, Output 1,314.29 credits/1M
ByteDanceVIDEO

Seedance 2.5

當前費率:Input 2,000 credits/1M, Output 2,000 credits/1M
ToAPIsAI Model

kling-3-omni

當前費率:查看即時價格
MiniMaxVIDEO

minimax-h3

當前費率:20.8 credits /second

相關技術文章