ByteDance: Seedance 2.0 Fast
Seedance 2.0 Fastは、動画の生成・編集・延長に対応するマルチモーダルのFastプロファイルです。テキスト、画像、動画、音声の参照素材を受け付け、同期音声付きまたは無音の出力に対応します。文書上のクリップは4–15秒、480pまたは720pです。
モデルについて
この説明はモデルの機能を紹介するものです。Ailootで利用できる入力、出力、オプションは、選択したメソッドごとに以下に記載されています。
Seedance 2.0 Fastは、doubao-seedance-2-0-fast-260128で選ぶ、別名のFastプロファイルです。テキスト、画像、動画、音声の参照素材を使った動画の生成、編集、延長に対応します。外観の説明だけでは足りないシーンの指示に役立ち、既存メディアで演技、カメラ表現、音も伝えられます。Fastという名前はリクエストで指定するモデルを区別するもので、個々の非同期タスクが一定時間内に終わるという約束ではありません。
新しいショットを決める要素から始めます。テキストだけでも新しいシーンを描写できます。画像は人物、商品、構図を決め、動画は動作や、修正・延長する既存のシーケンスを提供できます。文書化された内容の組み合わせには、画像と音声、動画と音声、画像・動画・音声の併用があり、視覚メディアと一緒に渡すテキストは任意です。これらは音声だけの単独リクエストを説明するものではないため、音の参照素材は、それが導く視覚的な元素材と組み合わせます。
content配列と指示本文で、参照素材の役割を明確にします。image_url、video_url、audio_url項目には、reference_image、reference_video、reference_audioの役割を付けられます。どの画像が被写体を、どの動画がカメラや動作を、どの音声がサウンドトラックを提供するか説明します。商品ショットでは、画像でパッケージを定め、動画で物のそばを通る動きを示すことができます。動作の途中で途切れず、使える終わりの画になるよう、望む結末を指定します。
編集では、元の映像、変更内容、保ちたい連続性を指定します。背景や照明を変更する場合も、意図する被写体と動作は明確に定めておきます。延長では、次に何が起こり、新しい動きが既存のシーンにどうつながるか説明します。参照素材は生成を導くものです。続きが各フレームのあらゆる細部を保つと考えず、実際のつなぎ目とクリップ全体で、外観、動作方向、タイミングを確認します。
文書上の2.0 Fastの範囲は四〜十五秒の整数秒で、範囲内でモデルが長さを選ぶ-1も使えます。既定の長さは五秒です。出力解像度は480pまたは720p、既定値は720pで、1080pは対象外です。固定の16:9、4:3、1:1、3:4、9:16、21:9、またはadaptive(適応型)フレーミングから選びます。adaptiveは、関連するプロンプトや参照素材の内容に従います。最初のフレームを使うショットは冒頭の画像に従い、マルチモーダルでは画像より動画が優先される場合があります。実際の長さと比率は、返されたタスクの項目で確認します。
generate_audioで、生成動画に同期音声を含めるか選びます。文書上の既定値はtrueで、falseは無音を要求します。音声が有効な場合、プロファイルはプロンプトと映像内容から声、効果音、BGMを生成し、ガイドではせりふを二重引用符で囲むことを推奨しています。話者と、音と動作の意図する関係を指定します。言語に堪能な聞き手と発話を確認し、編集・延長した部分も含めて、クリップ全体の音の一致を確認します。
2.0 Fastのガイドでは、従来のframesとcamera_fixedの制御は対象外で、flexのオフライン処理には対応しません。カメラの動作はシーン内で説明し、クリップの長さにはdurationを使います。seedと透かしの設定は引き続き文書化されています。同じseedでも同一の出力は保証されないため、改訂を比較するときは、設定だけに頼らず完成物を保存します。
動画トークンの使用量は、(入力動画の長さ + 出力動画の長さ) × 出力幅 × 出力高さ × 出力フレームレート / 1024で計算します。入力動画を含むリクエストと含まないリクエストは、別の課金区分です。タスクの照会はusage.completion_tokensとusage.total_tokensを報告します。これらの報告値を完成クリップとともに保存します。
完成動画が利用可能になる前に、送信時にタスクIDが返ります。処理状況を追跡し、成功後にcontent.video_urlを取得して、報告された長さ、解像度、比率、フレームレート、使用量を結果とともに保存します。有効期間はタスク作成時から計測され、既定値は172800秒、範囲は3600〜259200秒です。完成クリップを参照素材とプロンプトとともに保存し、シーケンス全体で被写体の同一性、物同士の接触、カメラの連続性、音のタイミングを確認します。
Ailoot Ultra · 動画 POST /v1/videos doubao-seedance-2-0-fast-260128
doubao-seedance-2-0-fast-260128
doubao-seedance-2-0-fast-260128はじめに
Seedance 2.0 Fastは、動画の生成・編集・延長に対応するマルチモーダルのFastプロファイルです。テキスト、画像、動画、音声の参照素材を受け付け、同期音声付きまたは無音の出力に対応します。文書上のクリップは4–15秒、480pまたは720pです。
- 対応する入力
- テキスト · 画像 · 動画 · 音声
- 結果
- 動画
Ailootで利用可能 · 入力とメソッド
Ailoot Ultra · 動画 POST /v1/videos
- 入力の種類
text,image,video,audio- 出力の種類
video
| フィールド | 種類 | 要件 | 値と制限 | デフォルト |
|---|---|---|---|---|
フィールドmodel | 種類string | 要件必須 | 値と制限 doubao-seedance-2-0-fast-260128 | デフォルト— |
フィールドcontent | 種類array | 要件必須 | 値と制限 条件: ネイティブ形式のテキスト/メディアオブジェクト。外側の配列は空にできません。入れ子になったノードの型は、このAiloot汎用コンストラクターでは検証されません。 | デフォルト— |
フィールドgenerate_audio | 種類boolean | 要件任意 | 値と制限 条件: 動画に埋め込まれる同期音声。 | デフォルトtrue |
フィールドduration | 種類integer | 要件任意 | 値と制限 条件: 整数の4–15または-1。実際の出力の長さが返されます。 | デフォルト5 |
フィールドresolution | 種類string | 要件任意 | 値と制限 480p, 720p 条件: 2.0/fastでは1080pが明示的にサポート対象外です。 | デフォルト720p |
フィールドratio | 種類string | 要件任意 | 値と制限 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive 条件: adaptiveは2.0/fast/1.5を対象とすることが明記されています。2.5の例では16:9のみを使用しています。 | デフォルトadaptive |
フィールドwatermark | 種類boolean | 要件任意 | 値と制限 | デフォルトfalse |
フィールドseed | 種類integer | 要件任意 | 値と制限 最小値: -1 最大値: 4,294,967,295 | デフォルト-1 |
フィールドexecution_expires_after | 種類integer | 要件任意 | 値と制限 最小値: 3,600 最大値: 259,200 単位: 秒 | デフォルト172,800 |
フィールドservice_tier | 種類string | 要件任意 | 値と制限 default 条件: 2.0/fastではオフラインのflexは対象外です。2.5での適用範囲は確認されていません。 | デフォルトdefault |
フィールドsafety_identifier | 種類string | 要件任意 | 値と制限 | デフォルト— |
フィールドtools | 種類object | 要件任意 | 値と制限 条件: 2.0/fastのみ。文書に記載されたtype=web_searchを使用します。 | デフォルト— |
入力素材の組み合わせ
メソッドのパラメータとライフサイクル
| パラメータ | 仕様 |
|---|---|
パラメータcontent_type | 仕様application/json |
パラメータrequired | 仕様content, model |
パラメータoptional | 仕様generate_audio, duration, resolution, ratio, watermark, seed, execution_expires_after, service_tier, safety_identifier, tools |
パラメータmaterial_types | 仕様text, image, video, audio |
パラメータadditional_properties | 仕様true |
パラメータvalidation_scope | 仕様Ailootは必須フィールドの型と、model/contentの配列が空でないことを確認します。その他のリクエストフィールドは、選択したモデル向けに保持されます。 |
パラメータmaterial_combinations | 仕様text, image, video, image, audio, image, video, video, audio, image, video, audio |
パラメータoptional_text_with_media | 仕様true |
パラメータreference_media_count_and_size_limits | 仕様null |
メソッドのエイリアス: /v1/videos/generations
ライフサイクル: submit_once_poll_original
GET /v1/videos/{request_id}
GET /v1/videos/generations/{request_id}
GET /v1/videos/{request_id}/content
GET /v1/videos/generations/{request_id}/content
作成は一度だけ行い、返された公開id/polling_urlを保持してください。
元のジョブをポーリングしてください。succeededになったら、実際の所有コンテンツであるcontent.video_urlをダウンロードしてください。
料金
最終料金の計算方法
表示料金は生成前の費用の見積もりです。最終請求額は、元の生成処理に記録された費用から計算されます。実測された出力時間や予測数量が、そのまま最終的な課金数量になるわけではありません。
料金情報はリクエストの機能を追加しません。対応するパラメーターは選択したメソッドに記載されています。
- 高速モード
- 未指定 高速モードが選択されている場合
- Flex モード
- 未指定 flex モードが選択されている場合
- 最大推論量
- 未指定 推論量が最大で、調整に既定値(default)を使用する場合
比較用の推定料金
設定別の価格
各料金を表示された条件と照合してください。選択肢となる設定の各組には、いずれか1つの料金を適用します。
| 設定 | 料金表 | 予測数量 | 課金単位 | 料金 |
|---|---|---|---|---|
| 設定基本トークン料金 | 料金表基本料金 | 予測数量— | 課金単位— | 料金 入力 · 入力トークン · 比較専用の見積もり — / 1K トークン 出力 · 出力トークン · 比較専用の見積もり — / 1K トークン 入力 · キャッシュ読み取り · 比較専用の見積もり — / 1K トークン 入力 · キャッシュ書き込み · 比較専用の見積もり — / 1K トークン 入力 · キャッシュ書き込み、1時間 · 比較専用の見積もり — / 1K トークン |
| 設定入力に動画が含まれます。 | 料金表— | 予測数量— | 課金単位1K動画トークンあたり | 料金 出力 · 比較専用の見積もり $0.007536 1K動画トークンあたり |
| 設定入力に動画は含まれません。 | 料金表— | 予測数量— | 課金単位1K動画トークンあたり | 料金 出力 · 比較専用の見積もり $0.013032 1K動画トークンあたり |
| 設定生成費用の見積もり | 料金表— | 予測数量生成1回分の概算 | 課金単位— | 料金 出力 · 推定生成コスト · 比較専用の見積もり $0.822402 生成前の見積もり この見積もりは追加料金ではなく、完了した生成処理に対する固定料金でもありません。 |
Ailootはリクエスト前に見積額を確保します。結果の取得後、実測使用量に基づいて最終料金を精算します。ストリーミング時の精算には最終の使用量記録を使用します。金額の確保と精算の仕組み →
リクエスト例
Ailoot Ultra · 動画
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
cat > request.json <<'JSON_REQUEST'
{"model":"doubao-seedance-2-0-fast-260128","content":[{"type":"text","text":"女孩抱着狐狸,女孩睁开眼,温柔地看向镜头,狐狸友善地抱着,镜头缓缓拉出,女孩的头发被风吹动"}]}
JSON_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_POLL'
import json
from pathlib import Path
from urllib.parse import quote,urljoin,urlsplit
r=json.loads(Path("result.json").read_text())
i=r.get("id")
if not isinstance(i,str) or not i.startswith("native302_"):raise SystemExit("Keep original response/headers/id; do not resubmit creation.")
u=urljoin("https://api.ailoot.ai",r.get("polling_url") or "/v1/videos/"+quote(i,safe=""))
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or not p.path.startswith("/v1/videos/"):raise SystemExit("Use actual Ailoot lookup path.")
Path("poll-url.txt").write_text(u)
PY_POLL
curl --fail-with-body --silent --show-error "$(cat poll-url.txt)" -H "Authorization: Bearer $AILOOT_API_KEY" -D status-headers.txt -o status.json
set -eu
python3 - <<'PY_ASSETS'
import json
from pathlib import Path
from urllib.parse import urlsplit
r=json.loads(Path("status.json").read_text())
if r.get("status")!="succeeded":raise SystemExit("Poll same original job until an owned result is returned.")
u=r.get("content",{}).get("video_url")
urls=[u] if isinstance(u,str) else u
if not isinstance(urls,list) or not urls:raise SystemExit("No completed video URL.")
for u in urls:
if not isinstance(u,str):raise SystemExit("Invalid returned URL.")
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or not p.path.startswith("/v1/media/assets/") or not p.path.endswith("/content") or not p.query:raise SystemExit("Wait for actual Ailoot-owned signed result.")
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_ASSETS
index=0
while IFS= read -r asset_url; do
curl --fail-with-body --silent --show-error "$asset_url" -o "video-${index}.bin"
index=$((index + 1))
done < asset-urls.txt
結果を受け取って保存
Ailoot Ultra · 動画
公開id/polling_urlを持つネイティブJSON。公開後、content.video_urlにはAilootが所有する署名付きURLが含まれます。公開前は、選択された出力URLは空にされます。
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
完了した結果をすべて保存
完了した動画や返されたファイルをすべて保存し、実際に返されたすべてのアセットURLから取得してください。
content.video_urlに含まれる実際のURLをすべて保持してください。indexは実際に返された出力を識別する必要があります。
元のレスポンスを確認する場合
元のレスポンス/ヘッダー/idを保持し、その操作をポーリングしてください。結果不明の作成リクエストは決して再送信しないでください。
レスポンスのフィールド
| フィールド | 種類 |
|---|---|
フィールドid | 種類string |
フィールドprovider_task_id | 種類string |
フィールドpolling_url | 種類string |
フィールドstatus | 種類string when supplied |
フィールドcontent.video_url | 種類string|string[] |
フィールドusage | 種類object when supplied |
エラーと次の手順
| レスポンス | 条件 | 次の手順 |
|---|---|---|
レスポンス400 · invalid_request_error | 条件JSON/モデル/必須フィールドの型、またはコンテンツのインデックスが無効です。 | 次の手順 |
レスポンス401 · authentication_error | 条件Ailoot APIキーが無効です。 | 次の手順 |
レスポンス404 · not_found_error | 条件タスク/出力が存在しないか、同じユーザー/APIキー/グループの所有物ではありません。 | 次の手順 |
レスポンス502 · result_pending_check | 条件元の送信/ステータスが不完全です。元のIDを保持し、再送信しないでください。 | 次の手順 |
レスポンス503 · result_pending_check | 条件元のメディア/ルート/精算を確認中です。元の操作を継続してください。 | 次の手順 |
エイリアス
モデルのエイリアス
Ailoot Ultra doubao-seedance-2-0-fast-260128
メソッドパスのエイリアス
/v1/videos/generations
関連する呼び出し用ID
FAQ · ByteDance: Seedance 2.0 Fast
- 利用できる入力と結果は何ですか?
POST /v1/videos·doubao-seedance-2-0-fast-260128:text,image,video,audio→video- リクエストはどの項目を使用しますか?
POST /v1/videos·doubao-seedance-2-0-fast-260128:model,content,generate_audio,duration,resolution,ratio,watermark,seed,execution_expires_after,service_tier,safety_identifier,tools- どの制限が適用されますか?
POST /v1/videos·doubao-seedance-2-0-fast-260128:seed.minimum:-1;seed.maximum:4294967295;execution_expires_after.minimum:3600;execution_expires_after.maximum:259200