0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Seedance 2.5 API入門:公式エンドポイントと詰まりやすい6点

0
Posted at

「Seedance 2.5 API」へのアクセスを販売しているサイトは3つありますが、ByteDance公式のものは1つだけです。本記事では、公式エンドポイント、モデルID、そして開発時に実際に詰まった6つのポイントを解説します。

公式エンドポイント

ByteDanceは公式APIをBytePlus ModelArk上でホストしています。どのサイトが実際にByteDanceのものかを確認したい場合は、コードを書く前にエンドポイントのドメインをチェックしてください。それ以外で「Seedance API」を謳っているサービスは、すべてこのAPIの前段に位置するリセラーです。

タスクを開始するには、Authorization BearerトークンとJSONボディが必要です。

curl -X POST https://ark.ap-southeast.bytepluses.com/api/v3/contents/generations/tasks \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ARK_API_KEY" \
  -d '{
    "model": "dreamina-seedance-2-5-260628",
    "content": [
      { "type": "text", "text": "A slow push-in on a red door at the end of a corridor, matching the light in @Image1." },
      { "type": "image_url", "image_url": { "url": "https://example.com/door.png" }, "role": "reference_image" }
    ],
    "generate_audio": true,
    "ratio": "16:9",
    "duration": 15
  }'

Seedance 2.5のモデルIDは dreamina-seedance-2-5-260628 です。旧バージョンのSeedance 2.0のIDを指定する場合は dreamina-seedance-2-0-260128 を使います。両方のIDおよびルーティングは、ByteDanceのModelArkドキュメントで直接確認できます。

リクエストボディ

APIは単一のJSONペイロードを受け取ります。フィールド名は以下をそのまま使用してください。

フィールド デフォルト値 説明
model string required モデルID
content object[] required 入力リスト:テキスト、画像、動画
omni_reference_task_type string auto タスクタイプのヒント(ドキュメントで新規追加と記載)
resolution string 出力解像度
ratio string アスペクト比
duration integer 秒数
frames integer フレーム数
generate_audio boolean true 同一パスで音声を生成
watermark boolean false
output_format string mp4 ドキュメントで新規追加と記載
seed integer -1
camera_fixed boolean false
return_last_frame boolean false
draft boolean false
service_tier string default
callback_url string
execution_expires_after integer 172800 秒単位(48 hours)
priority integer 0
safety_identifier string エンドユーザー識別子

このスキーマにおいて、事前に把握していないと想定外の挙動になりやすいデフォルト値が3つあります。

  • generate_audio のデフォルト値は true です。無音の動画クリップのみが必要な場合でも、デフォルトでは音声トラックが生成されます。
  • execution_expires_after のデフォルト値は 172800 です。ドキュメントにはタスクの失効しきい値と記載されており、48 hoursに相当します。
  • omni_reference_task_type のデフォルト値は auto です。実行するタスクを明示的に指定しない限り、システムが参照モードを推測します。

詰まりやすい点1: 参照ファイルはプロンプト文字列内でバインドされる

content 配列には、テキスト、参照画像、参照動画を格納します。このモデルは1回の呼び出しで、最大30枚の画像、10本の動画クリップ、10本の音声クリップを受け付けます。

キャラクターのカットやモーションガイド用に個別のフィールドを渡すのではなく、プロンプト文字列内で @Image1@Video1@Video2 を使って直接ファイルを指定します。ByteDanceの公式サンプルプロンプトには、"The strawberry flavor refers to @Image1"(イチゴ味は@Image1を参照)、"referring to the composition of @Video1"(@Video1の構図を参照)、"referring to the impact of @Video3"(@Video3のインパクトを参照)といった記述が含まれています。

@Video@Image の後ろに続く数字は、content 配列内のアイテムの順序に対応しています。この仕様はパラメータ一覧表には記載されておらず、ドキュメントのサンプルコード内のみに登場します。content 内のアイテムの順序を入れ替えると、@Video1 が意図せずまったく別のクリップにバインドされてしまいます。

テキストプロンプトと画像参照を組み合わせる最小の構成は以下の通りです。

[
  { "type": "text", "text": "A slow push-in on a red door at the end of a corridor, matching the light in @Image1." },
  { "type": "image_url", "image_url": { "url": "https://example.com/door.png" }, "role": "reference_image" }
]

詰まりやすい点2: 生成結果のURLは24 hoursで失効する

ジョブが完了すると、APIは content.video_url に署名付きURL(クエリ文字列に有効期限と署名が含まれるリンク)を返します。

そのURLのクエリパラメータを確認すると、X-Tos-Expires=86400 という記述があります。これは86,400秒を意味しており、24 hoursでリンクが無効になり、コピーしていなかったデータは失われます。ファイルをコピーせずにURLをデータベースにそのまま保存してしまうと、翌日にはプロダクトのライブラリ内にあるすべての動画がリンク切れになりますが、API側からはその通知は一切行われません。そのため、生成完了したファイルは必ず独自のストレージにコピーする必要があります。

詰まりやすい点3: 明示的にオフにしない限り音声が生成される

generate_audio 設定のデフォルト値は true です。これは、モデルが動画フレームと同時に同期音声を生成することを意味します。

そのため、アプリケーション側で背景動画のみを求めている場合でも、音声トラックが生成されます。プロダクト側で独自のサウンドトラックを追加する場合や、無音の動画が必要な場合は、リクエストボディに "generate_audio": false を渡す必要があります。このフィールドを設定しないままにすると、無音にはなりません。

詰まりやすい点4: 2.5には4Kティアが存在しない

Seedance 2.5向けにUIを作る際、4Kの選択肢を組み込まないでください。ModelArkの公式料金表において、dreamina-seedance-2-5-260628 には480p/720pティアと1080pティアしか記載されていません。

4KはSeedance 2.0(dreamina-seedance-2-0-260128)には存在しますが、2.5では利用できません。一部のプラットフォームでは2.5での4K対応を宣伝しているケースがあります。例えば、"Seedance 2.5 API Now Available - 30s 4K AI Video on Kie.ai"(Kie.aiでSeedance 2.5 APIが利用可能に - 30秒 4K AI動画)というタイトルのページではタイトルに4Kと記載されていますが、そのページの料金表には480P、720P、1080Pのみが掲載されています。

解像度は480p、720p、1080pのいずれかに設定してください。2.5で4Kリクエストを送信した場合の挙動は未検証ですが、請求対象となるティアが存在しないため、本番環境で試すのは避けるべきです。

詰まりやすい点5: 完全非同期で、レスポンスはIDのみ

タスク作成は完全に非同期で行われます。動画の生成が完了するまでAPIがHTTP接続を維持することはありません。

作成リクエストを送信した際、返されるのはタスクIDのみです。

{ "id": "cgt-2026******-****" }

ステータスを確認するには、タスクエンドポイントをポーリングする必要があります。

curl -X GET "https://ark.ap-southeast.bytepluses.com/api/v3/contents/generations/tasks?page_size=3&filter.status=succeeded" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ARK_API_KEY"

タスクが完了すると、レスポンスとして完全な状態が返されます。

{
  "id": "cgt-2026******-****",
  "model": "dreamina-seedance-2-5-260628",
  "status": "succeeded",
  "content": { "video_url": "https://ark-content-generation-ap-southeast-1.tos-ap-southeast-1.volces.com/...?X-Tos-Expires=86400&X-Tos-Signature=***" },
  "usage": { "completion_tokens": 108900, "total_tokens": 108900 },
  "resolution": "720p",
  "ratio": "16:9",
  "duration": 5,
  "framespersecond": 24
}

完了したタスクオブジェクトには複数のフィールドが含まれますが、アプリケーションにおいて特に重要なのは以下の3点です。

  • status — ジョブが succeeded、失敗、あるいは実行中であるかを示します。
  • content.video_url — 生成されたMP4ファイルの一時ストレージリンクです。
  • usage.completion_tokens — 課金対象となる正確なトークン数です(例: 108900)。

課金は100万トークン単位で行われ、ByteDanceからの請求は usage.completion_tokens に基づいて算出されます。

詰まりやすい点6: 初回フレーム・最終フレーム指定はドキュメント化されたモード

タスク作成のドキュメントには、7つの異なるモードのタブが用意されています。

  • multimodal reference (takes text, images, video and audio together)
  • edit video
  • extend video
  • audio video first frame
  • audio video first and last frames
  • image to video from base64
  • text to video

ラッパーライブラリは開発者が実装したモードしか公開しないため、この仕様を知っておくことは有用です。2つの状態間のクリーンなトランジションが必要な場合、first-and-last-frameモードはByteDance自身のエンドポイントタブにそのまま記載されています。利用しているAPIがそのパラメータをパススルーしているか確認してください。

自分でAPI統合を実装したくない場合

タスクキュー、ストレージへのコピー、ポーリング処理を自前で管理せずにブラウザ上でSeedance 2.5を実行したい場合は、Seadanseを利用できます。参照画像や参照クリップを入力として受け付け、480p、720p、1080pでの5秒、10秒、15秒、20秒、25秒、または30秒のクリップ生成に対応しています。なお、参照音声には非対応で、動画延長モードはなく、最大1080pおよび最大30秒に制限されています。クリップの利用料金は価格ページで直接確認できます。

出典

本記事に記載したすべてのパラメータ、エンドポイントパス、モデル名はByteDanceの公式ドキュメントに基づいています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?