{
  "aboutHtml": "<p>Seedance 2.0 は、マルチモーダルな音声・映像制作のための ByteDance Seed の標準モデルです。文字、画像、動画、音声を同時生成アーキテクチャで組み合わせ、参照主体のシーン、動画編集、動画延長をそれぞれ別の制作ワークフローとして提供します。一貫した演技と、準備した素材からの特定の視覚・音情報の両方が必要な制作指示に役立ちます。</p><h4>マルチモーダル参照と演出制御</h4><p>画像は被写体の外観、視覚スタイル、構図を定義できます。動画参照は行動、カメラ移動、効果を、音声は声質、音楽、台詞を導けます。各素材の役割を定義してから、完成すべきシーンを説明してください。メーカーは演技、照明、影、カメラ表現の制御を重視しています。</p><p>製品ストーリーでは、製品写真、カメラ移動の参照、音声の手掛かりを準備します。例えば、「Image 1 の青いガラスの花瓶を保ってください。Video 1 のゆっくりした横移動のトラッキングを使います。花瓶は日差しの当たる棚にあり、Audio 1 を基にした柔らかな器楽曲が流れます」という指示です。意図する出力は、選択した参照情報を組み合わせて新たに演出したシーンです。</p><p>参照入力は、画像と音声、画像と動画、動画と音声、3 種すべてを組み合わせられます。音声だけ、または画像・動画なしの文字と音声には対応しません。従来の文字から動画、最初のフレーム生成、最初と最後のフレーム生成も文書化されています。固定した冒頭・結末の構図が重要なら、専用の終点ワークフローを使ってください。omni-reference プロンプト内で参照画像を終点と名付ける方法は、間接的な誘導にすぎません。</p><h4>映像を編集する</h4><p>モデルは、被写体の置換、物体の追加・削除、要素の変更、動画の部分的な描き直しや修復ができます。具体的な変更と元映像を指定してください。追加には登場時刻と位置を含め、削除・置換では物体を正確に示し、残す内容を名指しします。</p><p>例えば、「Video 1 のデスクランプを Image 1 の真鍮のランプに置き換えてください。カメラ移動、机の配置、照明の方向を保ってください」という指示です。求める結果は、意図した置換を加えたシーンの編集版です。特に遮蔽、移動、ショット変更の途中で、新しい物体と変更しない領域の両方を確認してください。</p><h4>シーケンスを延長・接続する</h4><p>Seedance 2.0 は、動画の前方・後方への延長と、入力クリップ最大 3 本を生成トランジションで接続できます。時間的な方向と新しい出来事を指定してください。橋渡しではクリップを順序付け、あるショットでカメラが戸口に入り、次の環境に到着するなど、各組の間の移行を説明します。</p><p>単純な延長は通常、元映像の周辺に展開する継続部分を返します。最終結果で元区間も繰り返すなら、明確な指示を加えてください。2 本または 3 本のクリップ間の接続を完成させる場合、文書化されたワークフローは元素材と新たな移行内容の両方を含められます。これは、冒頭や結末の展開、つなぎの行動を未指定のままにせず準備済みシーンを接続する作業に役立ちます。</p><h4>標準版の出力と 4K</h4><p>標準版は 24 fps の MP4、4～15 秒の時間を文書化しています。出力は 8 ビット色深度の 480p、720p、1080p に加え、10 ビット色深度の 4K です。対応比率は 21:9、16:9、4:3、1:1、3:4、9:16 です。適応型フレーミングと時間の自動選択も文書化されています。Fast 版には、より限定された独自の 480p/720p 出力仕様があります。</p><p>4K 出力は H.265/HEVC エンコードを使います。10 ビットはより多くの階調と滑らかな色の移行を保ち、繊細な光や色のグラデーションを持つ素材で重要です。目的の再生・編集環境がデコードできるか確認してください。一部のブラウザーや機器は直接再生できません。対応するコンテナだけでは、動画デコードの互換性までは保証しません。</p><p>モデルは同期した音か無音動画を生成でき、次のシーン向けに最後に生成したフレームを返せます。生成音声はモノラルです。2.0 系列は独立した 2 段階 Draft プレビューモードに非対応なので、別の Seedance 版からそのプレビュー機能を推定しないでください。</p><h4>参照の準備と実質的な制限</h4><p>文書化された参照枠は、画像 9 枚、動画 3 本、音声クリップ 3 本です。このメーカー仕様では、実在する人間の顔を含む参照画像・動画の直接アップロードは受け付けず、人物制作には対応する人物アセットのワークフローを使います。動画・音声の各クリップは 2～15 秒です。動画参照すべての合計は 15 秒以内で、音声参照すべてにも独立した合計 15 秒の枠があります。動画は MP4 または MOV、24～60 fps、各最大 200 MB、音声は WAV または MP3、各最大 15 MB です。画像形式は JPEG、PNG、WebP、BMP、TIFF、GIF、HEIC、HEIF です。各画像は 30 MB 未満、リクエストボディは 64 MB 以下です。文書化された参照入力仕様では、画像の幅と高さはそれぞれ 300 ピクセルより大きく 6,000 ピクセル未満、幅と高さの比は 0.4 より大きく 2.5 未満です。参照動画は各辺 300～6,000 ピクセル、比率 0.4～2.5 で、境界値を含み、総画素数は 407,696～8,295,044 です。MP4 または MOV 動画は H.264/AVC または H.265/HEVC 映像、AAC または MP3 音声を使います。</p><p>ファイルを意図して並べ、Image 1、Video 1、Audio 1 のようにメディア種別と番号で参照します。番号はその種別内のファイル順に従います。引き継ぐ特性と、新シーンを定義すべきではない元内容を説明してください。文書化されたプロンプト言語には英語、スペイン語、インドネシア語、ポルトガル語、日本語があります。対話の発話言語を統一します。ガイドは固有名詞を除く言語混在を避けるよう勧めています。音声で誘導する作品では、話者、正確な台詞、話し方の指示を分けてください。</p><p>最初と最後の画像は、互換性のあるフレーミングで準備します。入力画像と出力寸法の不一致は、切り抜きや唐突な見た目の変更を起こす場合があります。寸法の一致と適応型フレーミングが対策として文書化されています。説明は出来事と参照の役割に集中させてください。メーカーは、長いプロンプトが情報を分散させ、細部を無視させる場合があると注意しています。生成された動き、参照の連続性、音声演技、シーン間のつなぎを、制作結果の別々の要素として確認します。</p><h4>ショット計画と文字の指示</h4><p>複雑なシーンでは、指示を Shot 1、Shot 2、Shot 3 に整理し、カメラ、被写体の行動、位置、音を順に指定してください。ガイドはショットごとのカメラ移動を 1 つとし、ゆっくりしたつながりのある行動を優先するよう推奨しています。正確なショット別タイムスタンプは不安定なので、複数の厳密な時間枠を強制するより出来事の順序で制御します。</p><p>モデルはスローガン、字幕、吹き出しなど一般的な文字も生成します。色、視覚表現、位置、登場方法を指示できます。珍しい文字や特殊記号ではなく一般的な文字を使い、動きの中の言葉を確認してください。被写体参照では、各素材を目的のキャラクターや物体に明確に結び付けます。製品の各視点は異なる視覚情報を提供できますが、キャラクターのターンアラウンドコラージュは顔の同一性を混乱させる場合があります。明瞭な顔写真と全身画像を別々に使うことが、文書化されたキャラクター参照の推奨です。</p><h4>編集前に確認する挙動</h4><p>ガイドには、不要な字幕、ロゴ、キャラクターの重複、スタイルの変化が記載されています。明瞭な元素材、一貫したラベル、明示的な制約はリスクを減らしますが、不要な文字や重複人物の消失を保証しません。参照人物が 4 人を超えることは安定性のリスクと報告され、モデルが受け付けるファイル数とは別です。</p><p>動画延長ではつなぎ目が飛んだり巻き戻ったりし、継続を繰り返すと画質低下が累積する場合があります。境界フレームを確認し、延長を重ね過ぎないでください。参照した声が元の声質と異なる場合があり、ナレーションはクリック音や急な途切れで終わることがあります。その対策として音声フェードが文書化されています。中国語の多音字、珍しい文字、似た形の文字は発音を誤る場合があります。カウントダウンなど正確なアニメーション効果では、言葉だけの要求より動きの参照が有益です。これらは、クリップを選ぶ際に同一性、文字、動き、音を別々に確認する具体的な理由です。</p>",
  "aboutText": "Seedance 2.0 は、マルチモーダルな音声・映像制作のための ByteDance Seed の標準モデルです。文字、画像、動画、音声を同時生成アーキテクチャで組み合わせ、参照主体のシーン、動画編集、動画延長をそれぞれ別の制作ワークフローとして提供します。一貫した演技と、準備した素材からの特定の視覚・音情報の両方が必要な制作指示に役立ちます。\n\n### マルチモーダル参照と演出制御\n\n画像は被写体の外観、視覚スタイル、構図を定義できます。動画参照は行動、カメラ移動、効果を、音声は声質、音楽、台詞を導けます。各素材の役割を定義してから、完成すべきシーンを説明してください。メーカーは演技、照明、影、カメラ表現の制御を重視しています。\n\n製品ストーリーでは、製品写真、カメラ移動の参照、音声の手掛かりを準備します。例えば、「Image 1 の青いガラスの花瓶を保ってください。Video 1 のゆっくりした横移動のトラッキングを使います。花瓶は日差しの当たる棚にあり、Audio 1 を基にした柔らかな器楽曲が流れます」という指示です。意図する出力は、選択した参照情報を組み合わせて新たに演出したシーンです。\n\n参照入力は、画像と音声、画像と動画、動画と音声、3 種すべてを組み合わせられます。音声だけ、または画像・動画なしの文字と音声には対応しません。従来の文字から動画、最初のフレーム生成、最初と最後のフレーム生成も文書化されています。固定した冒頭・結末の構図が重要なら、専用の終点ワークフローを使ってください。omni-reference プロンプト内で参照画像を終点と名付ける方法は、間接的な誘導にすぎません。\n\n### 映像を編集する\n\nモデルは、被写体の置換、物体の追加・削除、要素の変更、動画の部分的な描き直しや修復ができます。具体的な変更と元映像を指定してください。追加には登場時刻と位置を含め、削除・置換では物体を正確に示し、残す内容を名指しします。\n\n例えば、「Video 1 のデスクランプを Image 1 の真鍮のランプに置き換えてください。カメラ移動、机の配置、照明の方向を保ってください」という指示です。求める結果は、意図した置換を加えたシーンの編集版です。特に遮蔽、移動、ショット変更の途中で、新しい物体と変更しない領域の両方を確認してください。\n\n### シーケンスを延長・接続する\n\nSeedance 2.0 は、動画の前方・後方への延長と、入力クリップ最大 3 本を生成トランジションで接続できます。時間的な方向と新しい出来事を指定してください。橋渡しではクリップを順序付け、あるショットでカメラが戸口に入り、次の環境に到着するなど、各組の間の移行を説明します。\n\n単純な延長は通常、元映像の周辺に展開する継続部分を返します。最終結果で元区間も繰り返すなら、明確な指示を加えてください。2 本または 3 本のクリップ間の接続を完成させる場合、文書化されたワークフローは元素材と新たな移行内容の両方を含められます。これは、冒頭や結末の展開、つなぎの行動を未指定のままにせず準備済みシーンを接続する作業に役立ちます。\n\n### 標準版の出力と 4K\n\n標準版は 24 fps の MP4、4～15 秒の時間を文書化しています。出力は 8 ビット色深度の 480p、720p、1080p に加え、10 ビット色深度の 4K です。対応比率は 21:9、16:9、4:3、1:1、3:4、9:16 です。適応型フレーミングと時間の自動選択も文書化されています。Fast 版には、より限定された独自の 480p/720p 出力仕様があります。\n\n4K 出力は H.265/HEVC エンコードを使います。10 ビットはより多くの階調と滑らかな色の移行を保ち、繊細な光や色のグラデーションを持つ素材で重要です。目的の再生・編集環境がデコードできるか確認してください。一部のブラウザーや機器は直接再生できません。対応するコンテナだけでは、動画デコードの互換性までは保証しません。\n\nモデルは同期した音か無音動画を生成でき、次のシーン向けに最後に生成したフレームを返せます。生成音声はモノラルです。2.0 系列は独立した 2 段階 Draft プレビューモードに非対応なので、別の Seedance 版からそのプレビュー機能を推定しないでください。\n\n### 参照の準備と実質的な制限\n\n文書化された参照枠は、画像 9 枚、動画 3 本、音声クリップ 3 本です。このメーカー仕様では、実在する人間の顔を含む参照画像・動画の直接アップロードは受け付けず、人物制作には対応する人物アセットのワークフローを使います。動画・音声の各クリップは 2～15 秒です。動画参照すべての合計は 15 秒以内で、音声参照すべてにも独立した合計 15 秒の枠があります。動画は MP4 または MOV、24～60 fps、各最大 200 MB、音声は WAV または MP3、各最大 15 MB です。画像形式は JPEG、PNG、WebP、BMP、TIFF、GIF、HEIC、HEIF です。各画像は 30 MB 未満、リクエストボディは 64 MB 以下です。文書化された参照入力仕様では、画像の幅と高さはそれぞれ 300 ピクセルより大きく 6,000 ピクセル未満、幅と高さの比は 0.4 より大きく 2.5 未満です。参照動画は各辺 300～6,000 ピクセル、比率 0.4～2.5 で、境界値を含み、総画素数は 407,696～8,295,044 です。MP4 または MOV 動画は H.264/AVC または H.265/HEVC 映像、AAC または MP3 音声を使います。\n\nファイルを意図して並べ、Image 1、Video 1、Audio 1 のようにメディア種別と番号で参照します。番号はその種別内のファイル順に従います。引き継ぐ特性と、新シーンを定義すべきではない元内容を説明してください。文書化されたプロンプト言語には英語、スペイン語、インドネシア語、ポルトガル語、日本語があります。対話の発話言語を統一します。ガイドは固有名詞を除く言語混在を避けるよう勧めています。音声で誘導する作品では、話者、正確な台詞、話し方の指示を分けてください。\n\n最初と最後の画像は、互換性のあるフレーミングで準備します。入力画像と出力寸法の不一致は、切り抜きや唐突な見た目の変更を起こす場合があります。寸法の一致と適応型フレーミングが対策として文書化されています。説明は出来事と参照の役割に集中させてください。メーカーは、長いプロンプトが情報を分散させ、細部を無視させる場合があると注意しています。生成された動き、参照の連続性、音声演技、シーン間のつなぎを、制作結果の別々の要素として確認します。\n\n### ショット計画と文字の指示\n\n複雑なシーンでは、指示を Shot 1、Shot 2、Shot 3 に整理し、カメラ、被写体の行動、位置、音を順に指定してください。ガイドはショットごとのカメラ移動を 1 つとし、ゆっくりしたつながりのある行動を優先するよう推奨しています。正確なショット別タイムスタンプは不安定なので、複数の厳密な時間枠を強制するより出来事の順序で制御します。\n\nモデルはスローガン、字幕、吹き出しなど一般的な文字も生成します。色、視覚表現、位置、登場方法を指示できます。珍しい文字や特殊記号ではなく一般的な文字を使い、動きの中の言葉を確認してください。被写体参照では、各素材を目的のキャラクターや物体に明確に結び付けます。製品の各視点は異なる視覚情報を提供できますが、キャラクターのターンアラウンドコラージュは顔の同一性を混乱させる場合があります。明瞭な顔写真と全身画像を別々に使うことが、文書化されたキャラクター参照の推奨です。\n\n### 編集前に確認する挙動\n\nガイドには、不要な字幕、ロゴ、キャラクターの重複、スタイルの変化が記載されています。明瞭な元素材、一貫したラベル、明示的な制約はリスクを減らしますが、不要な文字や重複人物の消失を保証しません。参照人物が 4 人を超えることは安定性のリスクと報告され、モデルが受け付けるファイル数とは別です。\n\n動画延長ではつなぎ目が飛んだり巻き戻ったりし、継続を繰り返すと画質低下が累積する場合があります。境界フレームを確認し、延長を重ね過ぎないでください。参照した声が元の声質と異なる場合があり、ナレーションはクリック音や急な途切れで終わることがあります。その対策として音声フェードが文書化されています。中国語の多音字、珍しい文字、似た形の文字は発音を誤る場合があります。カウントダウンなど正確なアニメーション効果では、言葉だけの要求より動きの参照が有益です。これらは、クリップを選ぶ際に同一性、文字、動き、音を別々に確認する具体的な理由です。",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "155e5bf5b2fa55aec3ba06ef53521befebc7b4a27a029755128fa05854238de1",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "ja",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">ByteDance: Seedance 2.0</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"閉じる\">×</button></div><div class=\"idline\"><span>ByteDance /</span><code>bytedance/seedance-2.0</code><button type=\"button\" id=\"copy-id\">IDをコピー</button></div><nav class=\"card-jump-nav\" aria-label=\"モデルカードのセクション\"><button type=\"button\" data-card-jump=\"overview\">はじめに</button><button type=\"button\" data-card-jump=\"methods\">入力とメソッド</button><button type=\"button\" data-card-jump=\"pricing\">料金</button><button type=\"button\" data-card-jump=\"examples\">例</button><button type=\"button\" data-card-jump=\"results\">結果</button><button type=\"button\" data-card-jump=\"aliases\">エイリアス</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"APIメソッド\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|videos|/v1/videos|bytedance%2Fseedance-2.0\">動画</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">はじめに</h3><p class=\"mdesc-full\">ByteDance Seedance 2.0 は、ネイティブな音声・映像生成と画像、動画、音の参照を組み合わせます。新しいシーンの演出、既存映像の編集、シーケンスの延長ができ、標準版には文書化された 1080p と 10 ビット 4K 出力があります。</p><dl class=\"card-io\" data-card-io><div><dt>対応する入力</dt><dd>テキスト · 画像 · 音声</dd></div><div><dt>結果</dt><dd>動画</dd></div></dl><details class=\"card-about\"><summary>モデルについて</summary><p class=\"note-s\" data-model-method-boundary>この説明はモデルの機能を紹介するものです。Ailootで利用できる入力、出力、オプションは、選択したメソッドごとに以下に記載されています。</p><div class=\"mabout\" id=\"m-about\"><p>Seedance 2.0 は、マルチモーダルな音声・映像制作のための ByteDance Seed の標準モデルです。文字、画像、動画、音声を同時生成アーキテクチャで組み合わせ、参照主体のシーン、動画編集、動画延長をそれぞれ別の制作ワークフローとして提供します。一貫した演技と、準備した素材からの特定の視覚・音情報の両方が必要な制作指示に役立ちます。</p><h4>マルチモーダル参照と演出制御</h4><p>画像は被写体の外観、視覚スタイル、構図を定義できます。動画参照は行動、カメラ移動、効果を、音声は声質、音楽、台詞を導けます。各素材の役割を定義してから、完成すべきシーンを説明してください。メーカーは演技、照明、影、カメラ表現の制御を重視しています。</p><p>製品ストーリーでは、製品写真、カメラ移動の参照、音声の手掛かりを準備します。例えば、「Image 1 の青いガラスの花瓶を保ってください。Video 1 のゆっくりした横移動のトラッキングを使います。花瓶は日差しの当たる棚にあり、Audio 1 を基にした柔らかな器楽曲が流れます」という指示です。意図する出力は、選択した参照情報を組み合わせて新たに演出したシーンです。</p><p>参照入力は、画像と音声、画像と動画、動画と音声、3 種すべてを組み合わせられます。音声だけ、または画像・動画なしの文字と音声には対応しません。従来の文字から動画、最初のフレーム生成、最初と最後のフレーム生成も文書化されています。固定した冒頭・結末の構図が重要なら、専用の終点ワークフローを使ってください。omni-reference プロンプト内で参照画像を終点と名付ける方法は、間接的な誘導にすぎません。</p><h4>映像を編集する</h4><p>モデルは、被写体の置換、物体の追加・削除、要素の変更、動画の部分的な描き直しや修復ができます。具体的な変更と元映像を指定してください。追加には登場時刻と位置を含め、削除・置換では物体を正確に示し、残す内容を名指しします。</p><p>例えば、「Video 1 のデスクランプを Image 1 の真鍮のランプに置き換えてください。カメラ移動、机の配置、照明の方向を保ってください」という指示です。求める結果は、意図した置換を加えたシーンの編集版です。特に遮蔽、移動、ショット変更の途中で、新しい物体と変更しない領域の両方を確認してください。</p><h4>シーケンスを延長・接続する</h4><p>Seedance 2.0 は、動画の前方・後方への延長と、入力クリップ最大 3 本を生成トランジションで接続できます。時間的な方向と新しい出来事を指定してください。橋渡しではクリップを順序付け、あるショットでカメラが戸口に入り、次の環境に到着するなど、各組の間の移行を説明します。</p><p>単純な延長は通常、元映像の周辺に展開する継続部分を返します。最終結果で元区間も繰り返すなら、明確な指示を加えてください。2 本または 3 本のクリップ間の接続を完成させる場合、文書化されたワークフローは元素材と新たな移行内容の両方を含められます。これは、冒頭や結末の展開、つなぎの行動を未指定のままにせず準備済みシーンを接続する作業に役立ちます。</p><h4>標準版の出力と 4K</h4><p>標準版は 24 fps の MP4、4～15 秒の時間を文書化しています。出力は 8 ビット色深度の 480p、720p、1080p に加え、10 ビット色深度の 4K です。対応比率は 21:9、16:9、4:3、1:1、3:4、9:16 です。適応型フレーミングと時間の自動選択も文書化されています。Fast 版には、より限定された独自の 480p/720p 出力仕様があります。</p><p>4K 出力は H.265/HEVC エンコードを使います。10 ビットはより多くの階調と滑らかな色の移行を保ち、繊細な光や色のグラデーションを持つ素材で重要です。目的の再生・編集環境がデコードできるか確認してください。一部のブラウザーや機器は直接再生できません。対応するコンテナだけでは、動画デコードの互換性までは保証しません。</p><p>モデルは同期した音か無音動画を生成でき、次のシーン向けに最後に生成したフレームを返せます。生成音声はモノラルです。2.0 系列は独立した 2 段階 Draft プレビューモードに非対応なので、別の Seedance 版からそのプレビュー機能を推定しないでください。</p><h4>参照の準備と実質的な制限</h4><p>文書化された参照枠は、画像 9 枚、動画 3 本、音声クリップ 3 本です。このメーカー仕様では、実在する人間の顔を含む参照画像・動画の直接アップロードは受け付けず、人物制作には対応する人物アセットのワークフローを使います。動画・音声の各クリップは 2～15 秒です。動画参照すべての合計は 15 秒以内で、音声参照すべてにも独立した合計 15 秒の枠があります。動画は MP4 または MOV、24～60 fps、各最大 200 MB、音声は WAV または MP3、各最大 15 MB です。画像形式は JPEG、PNG、WebP、BMP、TIFF、GIF、HEIC、HEIF です。各画像は 30 MB 未満、リクエストボディは 64 MB 以下です。文書化された参照入力仕様では、画像の幅と高さはそれぞれ 300 ピクセルより大きく 6,000 ピクセル未満、幅と高さの比は 0.4 より大きく 2.5 未満です。参照動画は各辺 300～6,000 ピクセル、比率 0.4～2.5 で、境界値を含み、総画素数は 407,696～8,295,044 です。MP4 または MOV 動画は H.264/AVC または H.265/HEVC 映像、AAC または MP3 音声を使います。</p><p>ファイルを意図して並べ、Image 1、Video 1、Audio 1 のようにメディア種別と番号で参照します。番号はその種別内のファイル順に従います。引き継ぐ特性と、新シーンを定義すべきではない元内容を説明してください。文書化されたプロンプト言語には英語、スペイン語、インドネシア語、ポルトガル語、日本語があります。対話の発話言語を統一します。ガイドは固有名詞を除く言語混在を避けるよう勧めています。音声で誘導する作品では、話者、正確な台詞、話し方の指示を分けてください。</p><p>最初と最後の画像は、互換性のあるフレーミングで準備します。入力画像と出力寸法の不一致は、切り抜きや唐突な見た目の変更を起こす場合があります。寸法の一致と適応型フレーミングが対策として文書化されています。説明は出来事と参照の役割に集中させてください。メーカーは、長いプロンプトが情報を分散させ、細部を無視させる場合があると注意しています。生成された動き、参照の連続性、音声演技、シーン間のつなぎを、制作結果の別々の要素として確認します。</p><h4>ショット計画と文字の指示</h4><p>複雑なシーンでは、指示を Shot 1、Shot 2、Shot 3 に整理し、カメラ、被写体の行動、位置、音を順に指定してください。ガイドはショットごとのカメラ移動を 1 つとし、ゆっくりしたつながりのある行動を優先するよう推奨しています。正確なショット別タイムスタンプは不安定なので、複数の厳密な時間枠を強制するより出来事の順序で制御します。</p><p>モデルはスローガン、字幕、吹き出しなど一般的な文字も生成します。色、視覚表現、位置、登場方法を指示できます。珍しい文字や特殊記号ではなく一般的な文字を使い、動きの中の言葉を確認してください。被写体参照では、各素材を目的のキャラクターや物体に明確に結び付けます。製品の各視点は異なる視覚情報を提供できますが、キャラクターのターンアラウンドコラージュは顔の同一性を混乱させる場合があります。明瞭な顔写真と全身画像を別々に使うことが、文書化されたキャラクター参照の推奨です。</p><h4>編集前に確認する挙動</h4><p>ガイドには、不要な字幕、ロゴ、キャラクターの重複、スタイルの変化が記載されています。明瞭な元素材、一貫したラベル、明示的な制約はリスクを減らしますが、不要な文字や重複人物の消失を保証しません。参照人物が 4 人を超えることは安定性のリスクと報告され、モデルが受け付けるファイル数とは別です。</p><p>動画延長ではつなぎ目が飛んだり巻き戻ったりし、継続を繰り返すと画質低下が累積する場合があります。境界フレームを確認し、延長を重ね過ぎないでください。参照した声が元の声質と異なる場合があり、ナレーションはクリック音や急な途切れで終わることがあります。その対策として音声フェードが文書化されています。中国語の多音字、珍しい文字、似た形の文字は発音を誤る場合があります。カウントダウンなど正確なアニメーション効果では、言葉だけの要求より動きの参照が有益です。これらは、クリップを選ぶ際に同一性、文字、動き、音を別々に確認する具体的な理由です。</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Ailootで利用可能 · 入力とメソッド</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · 動画</b> <code>POST /v1/videos</code></summary><dl class=\"method-capabilities\"><div><dt>入力の種類</dt><dd><code>text</code>, <code>image</code>, <code>audio</code></dd></div><div><dt>出力の種類</dt><dd><code>video</code></dd></div><div><dt>出力形式</dt><dd>元のMP4バイト列（正規化・トランスコードなし）</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>フィールド</th><th>種類</th><th>要件</th><th>値と制限</th><th>デフォルト</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"フィールド\" scope=\"row\"><span class=\"card-cell-label\">フィールド</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"種類\" data-field-type><span class=\"card-cell-label\">種類</span><code>string</code></td><td data-cell-label=\"要件\"><span class=\"card-cell-label\">要件</span>必須</td><td data-cell-label=\"値と制限\"><span class=\"card-cell-label\">値と制限</span><div>bytedance/seedance-2.0</div></td><td data-cell-label=\"デフォルト\" data-default=\"unspecified\"><span class=\"card-cell-label\">デフォルト</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"フィールド\" scope=\"row\"><span class=\"card-cell-label\">フィールド</span><code class=\"card-field-name\">prompt</code></th><td data-cell-label=\"種類\" data-field-type><span class=\"card-cell-label\">種類</span><code>string</code></td><td data-cell-label=\"要件\"><span class=\"card-cell-label\">要件</span>必須</td><td data-cell-label=\"値と制限\"><span class=\"card-cell-label\">値と制限</span></td><td data-cell-label=\"デフォルト\" data-default=\"unspecified\"><span class=\"card-cell-label\">デフォルト</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"フィールド\" scope=\"row\"><span class=\"card-cell-label\">フィールド</span><code class=\"card-field-name\">duration</code></th><td data-cell-label=\"種類\" data-field-type><span class=\"card-cell-label\">種類</span><code>integer</code></td><td data-cell-label=\"要件\"><span class=\"card-cell-label\">要件</span>必須</td><td data-cell-label=\"値と制限\"><span class=\"card-cell-label\">値と制限</span><div>4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15</div><div>最小値: 1</div><div>最大値: 600</div></td><td data-cell-label=\"デフォルト\" data-default=\"unspecified\"><span class=\"card-cell-label\">デフォルト</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"フィールド\" scope=\"row\"><span class=\"card-cell-label\">フィールド</span><code class=\"card-field-name\">resolution</code></th><td data-cell-label=\"種類\" data-field-type><span class=\"card-cell-label\">種類</span><code>string</code></td><td data-cell-label=\"要件\"><span class=\"card-cell-label\">要件</span>任意</td><td data-cell-label=\"値と制限\"><span class=\"card-cell-label\">値と制限</span><div>480p, 720p, 1080p, 4K</div></td><td data-cell-label=\"デフォルト\" data-default=\"unspecified\"><span class=\"card-cell-label\">デフォルト</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"フィールド\" scope=\"row\"><span class=\"card-cell-label\">フィールド</span><code class=\"card-field-name\">aspect_ratio</code></th><td data-cell-label=\"種類\" data-field-type><span class=\"card-cell-label\">種類</span><code>string</code></td><td data-cell-label=\"要件\"><span class=\"card-cell-label\">要件</span>任意</td><td data-cell-label=\"値と制限\"><span class=\"card-cell-label\">値と制限</span><div>1:1, 3:4, 9:16, 4:3, 16:9, 21:9, 9:21</div></td><td data-cell-label=\"デフォルト\" data-default=\"unspecified\"><span class=\"card-cell-label\">デフォルト</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"フィールド\" scope=\"row\"><span class=\"card-cell-label\">フィールド</span><code class=\"card-field-name\">generate_audio</code></th><td data-cell-label=\"種類\" data-field-type><span class=\"card-cell-label\">種類</span><code>boolean</code></td><td data-cell-label=\"要件\"><span class=\"card-cell-label\">要件</span>任意</td><td data-cell-label=\"値と制限\"><span class=\"card-cell-label\">値と制限</span><div>false, true</div><div>条件: 480pと720pでは、generate_audioを省略すると音声ありの料金、falseにすると音声なしの料金が選択されます。1080pと4Kでは、どちらの設定でも解像度に応じた料金が適用されます。返された音声トラックについては、結果のhas_audioを確認してください。</div></td><td data-cell-label=\"デフォルト\" data-default=\"unspecified\"><span class=\"card-cell-label\">デフォルト</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"フィールド\" scope=\"row\"><span class=\"card-cell-label\">フィールド</span><code class=\"card-field-name\">frame_images</code></th><td data-cell-label=\"種類\" data-field-type><span class=\"card-cell-label\">種類</span><code>array</code></td><td data-cell-label=\"要件\"><span class=\"card-cell-label\">要件</span>任意</td><td data-cell-label=\"値と制限\"><span class=\"card-cell-label\">値と制限</span><div>最小項目数: 1</div><div>最大項目数: 2</div><div>入力コンテンツ: フレームオブジェクトの配列。各オブジェクトにはtype=image_url、urlを含むimage_url、およびframe_type=first_frameまたはlast_frameを指定します。各役割はそれぞれ最大一回まで指定できます。公開HTTPS URLを使用してください。</div><div>正確なキー: type, image_url, frame_type</div><div>条件: これらのキーは各フレームオブジェクトに適用されます。テキストのみのリクエストではframe_imagesを省略してください。</div></td><td data-cell-label=\"デフォルト\" data-default=\"unspecified\"><span class=\"card-cell-label\">デフォルト</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"フィールド\" scope=\"row\"><span class=\"card-cell-label\">フィールド</span><code class=\"card-field-name\">input_references</code></th><td data-cell-label=\"種類\" data-field-type><span class=\"card-cell-label\">種類</span><code>array</code></td><td data-cell-label=\"要件\"><span class=\"card-cell-label\">要件</span>任意</td><td data-cell-label=\"値と制限\"><span class=\"card-cell-label\">値と制限</span><div>入力コンテンツ: 画像または音声の参照オブジェクトの配列。typeをimage_urlまたはaudio_urlに設定し、urlを含む対応するURLオブジェクトを指定してください。動画の参照素材については、引き続き料金を算出できません。</div><div>条件: 参照モードを使用する場合はframe_imagesを省略してください。公開HTTPS URLを使用します。</div></td><td data-cell-label=\"デフォルト\" data-default=\"unspecified\"><span class=\"card-cell-label\">デフォルト</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"フィールド\" scope=\"row\"><span class=\"card-cell-label\">フィールド</span><code class=\"card-field-name\">size</code></th><td data-cell-label=\"種類\" data-field-type><span class=\"card-cell-label\">種類</span><code>string</code></td><td data-cell-label=\"要件\"><span class=\"card-cell-label\">要件</span>任意</td><td data-cell-label=\"値と制限\"><span class=\"card-cell-label\">値と制限</span><div>480x480, 480x640, 480x854, 640x480, 854x480, 1120x480, 720x720, 720x960, 720x1280, 720x1680, 960x720, 1280x720, 1680x720, 1080x1080, 1080x1440, 1080x1920, 1440x1080, 1920x1080, 2520x1080, 3840x2160, 2160x3840, 2160x2160, 2880x2160, 2160x2880, 5040x2160</div><div>パターン: ^[1-9][0-9]*x[1-9][0-9]*$</div></td><td data-cell-label=\"デフォルト\" data-default=\"unspecified\"><span class=\"card-cell-label\">デフォルト</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"フィールド\" scope=\"row\"><span class=\"card-cell-label\">フィールド</span><code class=\"card-field-name\">seed</code></th><td data-cell-label=\"種類\" data-field-type><span class=\"card-cell-label\">種類</span><code>integer</code></td><td data-cell-label=\"要件\"><span class=\"card-cell-label\">要件</span>任意</td><td data-cell-label=\"値と制限\"><span class=\"card-cell-label\">値と制限</span><div>最小値: -9,223,372,036,854,775,808</div><div>最大値: 9,223,372,036,854,775,807</div></td><td data-cell-label=\"デフォルト\" data-default=\"unspecified\"><span class=\"card-cell-label\">デフォルト</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"フィールド\" scope=\"row\"><span class=\"card-cell-label\">フィールド</span><code class=\"card-field-name\">callback_url</code></th><td data-cell-label=\"種類\" data-field-type><span class=\"card-cell-label\">種類</span><code>string</code></td><td data-cell-label=\"要件\"><span class=\"card-cell-label\">要件</span>任意</td><td data-cell-label=\"値と制限\"><span class=\"card-cell-label\">値と制限</span><div>パターン: ^https://</div></td><td data-cell-label=\"デフォルト\" data-default=\"unspecified\"><span class=\"card-cell-label\">デフォルト</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"フィールド\" scope=\"row\"><span class=\"card-cell-label\">フィールド</span><code class=\"card-field-name\">session_id</code></th><td data-cell-label=\"種類\" data-field-type><span class=\"card-cell-label\">種類</span><code>string</code></td><td data-cell-label=\"要件\"><span class=\"card-cell-label\">要件</span>任意</td><td data-cell-label=\"値と制限\"><span class=\"card-cell-label\">値と制限</span></td><td data-cell-label=\"デフォルト\" data-default=\"unspecified\"><span class=\"card-cell-label\">デフォルト</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"フィールド\" scope=\"row\"><span class=\"card-cell-label\">フィールド</span><code class=\"card-field-name\">trace</code></th><td data-cell-label=\"種類\" data-field-type><span class=\"card-cell-label\">種類</span><code>object</code></td><td data-cell-label=\"要件\"><span class=\"card-cell-label\">要件</span>任意</td><td data-cell-label=\"値と制限\"><span class=\"card-cell-label\">値と制限</span></td><td data-cell-label=\"デフォルト\" data-default=\"unspecified\"><span class=\"card-cell-label\">デフォルト</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"フィールド\" scope=\"row\"><span class=\"card-cell-label\">フィールド</span><code class=\"card-field-name\">user</code></th><td data-cell-label=\"種類\" data-field-type><span class=\"card-cell-label\">種類</span><code>string</code></td><td data-cell-label=\"要件\"><span class=\"card-cell-label\">要件</span>任意</td><td data-cell-label=\"値と制限\"><span class=\"card-cell-label\">値と制限</span></td><td data-cell-label=\"デフォルト\" data-default=\"unspecified\"><span class=\"card-cell-label\">デフォルト</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>入力素材の組み合わせ</summary><p class=\"note-s\"><b>テキストから動画へ</b> · テキストのプロンプト。 · 必須: model, prompt, duration</p><p class=\"note-s\"><code>テキストのプロンプトと、サポートされている整数の秒数を指定してください。一覧にある正確なサイズ、または一覧の寸法に対応する解像度とアスペクト比を使用します。</code></p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: 種類: string · bytedance/seedance-2.0</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: 種類: string · 最大UTF-8バイト数: 10,000 · 空白以外の文字が必須: はい</p><p class=\"note-s\"><b>画像から動画へ</b> · テキストのプロンプトとフレーム画像。 · 必須: model, prompt, duration, frame_images</p><p class=\"note-s\"><code>frame_imagesはオブジェクトの配列で、各オブジェクトにはtype=image_url、urlを含むimage_url、およびframe_typeを指定します。公開HTTPS画像URLを使用してください。first_frameとlast_frameはそれぞれ一度だけ指定できます。一覧にある出力サイズ、または互換性のある寸法を使用してください。動画の参照素材は追加しないでください。</code></p><p class=\"note-s\">正確なキー: type, image_url, frame_type</p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: 種類: string · bytedance/seedance-2.0</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: 種類: string · 最大UTF-8バイト数: 10,000 · 空白以外の文字が必須: はい</p><p class=\"note-s\"><b>Reference to video</b> · テキストのプロンプトと、画像または音声の参照素材。 · 必須: model, prompt, duration, input_references</p><p class=\"note-s\"><code>input_referencesは配列です。各オブジェクトにはtype=image_urlまたはtype=audio_urlと、urlを含む対応するURLオブジェクトを指定します。公開HTTPSリンクを使用してください。参照モードを選ぶ場合はframe_imagesを省略します。動画の参照素材の料金は算出できません。</code></p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: 種類: string · bytedance/seedance-2.0</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: 種類: string · 最大UTF-8バイト数: 10,000 · 空白以外の文字が必須: はい</p></details><details class=\"note-s\" data-method-contract><summary>メソッドのパラメータとライフサイクル</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>パラメータ</th><th>仕様</th></tr></thead><tbody><tr><th data-cell-label=\"パラメータ\" scope=\"row\"><span class=\"card-cell-label\">パラメータ</span><code>content_type</code></th><td data-cell-label=\"仕様\"><span class=\"card-cell-label\">仕様</span>application/json</td></tr><tr><th data-cell-label=\"パラメータ\" scope=\"row\"><span class=\"card-cell-label\">パラメータ</span><code>required</code></th><td data-cell-label=\"仕様\"><span class=\"card-cell-label\">仕様</span>model, prompt, duration</td></tr><tr><th data-cell-label=\"パラメータ\" scope=\"row\"><span class=\"card-cell-label\">パラメータ</span><code>material_types</code></th><td data-cell-label=\"仕様\"><span class=\"card-cell-label\">仕様</span>text, image, audio</td></tr><tr><th data-cell-label=\"パラメータ\" scope=\"row\"><span class=\"card-cell-label\">パラメータ</span><code>additional_properties</code></th><td data-cell-label=\"仕様\"><span class=\"card-cell-label\">仕様</span>false</td></tr><tr><th data-cell-label=\"パラメータ\" scope=\"row\"><span class=\"card-cell-label\">パラメータ</span><code>optional_controls</code></th><td data-cell-label=\"仕様\"><span class=\"card-cell-label\">仕様</span>resolution, aspect_ratio, generate_audio, frame_images, input_references, size, seed, callback_url, session_id, trace, user</td></tr></tbody></table></div><p>ライフサイクル: <code>submit_once_poll_original</code></p><p class=\"note-s\"><code>GET /v1/videos/{public_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/{public_id}/content</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">料金</h3><div class=\"card-result-process\" data-billing-basis><h5>最終料金の計算方法</h5><p class=\"note-s\">表示料金は生成前の費用の見積もりです。最終請求額は、元の生成処理に記録された費用から計算されます。実測された出力時間や予測数量が、そのまま最終的な課金数量になるわけではありません。</p></div><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>料金情報はリクエストの機能を追加しません。対応するパラメーターは選択したメソッドに記載されています。</p><dl data-price-conditions><dt>高速モード</dt><dd>未指定 <span class=\"note-s\">高速モードが選択されている場合</span></dd><dt>Flex モード</dt><dd>未指定 <span class=\"note-s\">flex モードが選択されている場合</span></dd><dt>最大推論量</dt><dd>未指定 <span class=\"note-s\">推論量が最大で、調整に既定値（default）を使用する場合</span></dd></dl></div><div data-declared-tariff-pricing><h4>比較用の推定料金</h4><h4>設定別の価格</h4><p class=\"note-s\">各料金を表示された条件と照合してください。選択肢となる設定の各組には、いずれか1つの料金を適用します。</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>設定</th><th>料金表</th><th>予測数量</th><th>課金単位</th><th>課金条件</th><th>料金</th></tr></thead><tbody><tr><th data-cell-label=\"設定\" scope=\"row\"><span class=\"card-cell-label\">設定</span>基本トークン料金</th><td data-cell-label=\"料金表\"><span class=\"card-cell-label\">料金表</span>基本料金</td><td data-cell-label=\"予測数量\"><span class=\"card-cell-label\">予測数量</span>—</td><td data-cell-label=\"課金単位\"><span class=\"card-cell-label\">課金単位</span>—</td><td data-cell-label=\"課金条件\"><span class=\"card-cell-label\">課金条件</span>—</td><td data-cell-label=\"料金\"><span class=\"card-cell-label\">料金</span><div><span>入力 · 入力トークン · 比較専用の見積もり</span> <b>—</b> <span class=\"price-unit\">/ 1K トークン</span></div><div><span>出力 · 出力トークン · 比較専用の見積もり</span> <b>—</b> <span class=\"price-unit\">/ 1K トークン</span></div><div><span>入力 · キャッシュ読み取り · 比較専用の見積もり</span> <b>—</b> <span class=\"price-unit\">/ 1K トークン</span></div><div><span>入力 · キャッシュ書き込み · 比較専用の見積もり</span> <b>—</b> <span class=\"price-unit\">/ 1K トークン</span></div><div><span>入力 · キャッシュ書き込み、1時間 · 比較専用の見積もり</span> <b>—</b> <span class=\"price-unit\">/ 1K トークン</span></div></td></tr><tr><th data-cell-label=\"設定\" scope=\"row\"><span class=\"card-cell-label\">設定</span>動画トークン料金</th><td data-cell-label=\"料金表\"><span class=\"card-cell-label\">料金表</span>—</td><td data-cell-label=\"予測数量\"><span class=\"card-cell-label\">予測数量</span>—</td><td data-cell-label=\"課金単位\"><span class=\"card-cell-label\">課金単位</span>1K動画トークンあたり</td><td data-cell-label=\"課金条件\"><span class=\"card-cell-label\">課金条件</span>この価格キーには追加条件が定義されていません。</td><td data-cell-label=\"料金\"><span class=\"card-cell-label\">料金</span><div><span>出力 · 動画トークン料金 · 比較専用の見積もり</span> <b>$0.014</b> <span class=\"price-unit\">1K動画トークンあたり</span></div><p class=\"note-s\">動画トークン単価が主な価格参照値です。見出しに表示される秒単位の概算料金は別の参照値であり、追加料金ではありません。</p></td></tr><tr><th data-cell-label=\"設定\" scope=\"row\"><span class=\"card-cell-label\">設定</span>動画トークン料金</th><td data-cell-label=\"料金表\"><span class=\"card-cell-label\">料金表</span>—</td><td data-cell-label=\"予測数量\"><span class=\"card-cell-label\">予測数量</span>—</td><td data-cell-label=\"課金単位\"><span class=\"card-cell-label\">課金単位</span>1K動画トークンあたり</td><td data-cell-label=\"課金条件\"><span class=\"card-cell-label\">課金条件</span>resolution: 1080p</td><td data-cell-label=\"料金\"><span class=\"card-cell-label\">料金</span><div><span>出力 · 動画トークン料金 · 比較専用の見積もり</span> <b>$0.0154</b> <span class=\"price-unit\">1K動画トークンあたり</span></div><p class=\"note-s\">動画トークン単価が主な価格参照値です。見出しに表示される秒単位の概算料金は別の参照値であり、追加料金ではありません。</p></td></tr><tr><th data-cell-label=\"設定\" scope=\"row\"><span class=\"card-cell-label\">設定</span>動画トークン料金</th><td data-cell-label=\"料金表\"><span class=\"card-cell-label\">料金表</span>—</td><td data-cell-label=\"予測数量\"><span class=\"card-cell-label\">予測数量</span>—</td><td data-cell-label=\"課金単位\"><span class=\"card-cell-label\">課金単位</span>1K動画トークンあたり</td><td data-cell-label=\"課金条件\"><span class=\"card-cell-label\">課金条件</span>入力：with_video_input；解像度：1080p</td><td data-cell-label=\"料金\"><span class=\"card-cell-label\">料金</span><div><span>reference · 動画トークン料金 · 比較専用の見積もり</span> <b>$0.0094</b> <span class=\"price-unit\">1K動画トークンあたり</span></div><p class=\"note-s\">動画トークン単価が主な価格参照値です。見出しに表示される秒単位の概算料金は別の参照値であり、追加料金ではありません。</p></td></tr><tr><th data-cell-label=\"設定\" scope=\"row\"><span class=\"card-cell-label\">設定</span>動画トークン料金</th><td data-cell-label=\"料金表\"><span class=\"card-cell-label\">料金表</span>—</td><td data-cell-label=\"予測数量\"><span class=\"card-cell-label\">予測数量</span>—</td><td data-cell-label=\"課金単位\"><span class=\"card-cell-label\">課金単位</span>1K動画トークンあたり</td><td data-cell-label=\"課金条件\"><span class=\"card-cell-label\">課金条件</span>resolution: 4k</td><td data-cell-label=\"料金\"><span class=\"card-cell-label\">料金</span><div><span>出力 · 動画トークン料金 · 比較専用の見積もり</span> <b>$0.008</b> <span class=\"price-unit\">1K動画トークンあたり</span></div><p class=\"note-s\">動画トークン単価が主な価格参照値です。見出しに表示される秒単位の概算料金は別の参照値であり、追加料金ではありません。</p></td></tr><tr><th data-cell-label=\"設定\" scope=\"row\"><span class=\"card-cell-label\">設定</span>動画トークン料金</th><td data-cell-label=\"料金表\"><span class=\"card-cell-label\">料金表</span>—</td><td data-cell-label=\"予測数量\"><span class=\"card-cell-label\">予測数量</span>—</td><td data-cell-label=\"課金単位\"><span class=\"card-cell-label\">課金単位</span>1K動画トークンあたり</td><td data-cell-label=\"課金条件\"><span class=\"card-cell-label\">課金条件</span>入力：with_video_input；解像度：4k</td><td data-cell-label=\"料金\"><span class=\"card-cell-label\">料金</span><div><span>reference · 動画トークン料金 · 比較専用の見積もり</span> <b>$0.0048</b> <span class=\"price-unit\">1K動画トークンあたり</span></div><p class=\"note-s\">動画トークン単価が主な価格参照値です。見出しに表示される秒単位の概算料金は別の参照値であり、追加料金ではありません。</p></td></tr><tr><th data-cell-label=\"設定\" scope=\"row\"><span class=\"card-cell-label\">設定</span>動画トークン料金</th><td data-cell-label=\"料金表\"><span class=\"card-cell-label\">料金表</span>—</td><td data-cell-label=\"予測数量\"><span class=\"card-cell-label\">予測数量</span>—</td><td data-cell-label=\"課金単位\"><span class=\"card-cell-label\">課金単位</span>1K動画トークンあたり</td><td data-cell-label=\"課金条件\"><span class=\"card-cell-label\">課金条件</span>入力：with_video_input</td><td data-cell-label=\"料金\"><span class=\"card-cell-label\">料金</span><div><span>reference · 動画トークン料金 · 比較専用の見積もり</span> <b>$0.0086</b> <span class=\"price-unit\">1K動画トークンあたり</span></div><p class=\"note-s\">動画トークン単価が主な価格参照値です。見出しに表示される秒単位の概算料金は別の参照値であり、追加料金ではありません。</p></td></tr><tr><th data-cell-label=\"設定\" scope=\"row\"><span class=\"card-cell-label\">設定</span>動画トークン料金</th><td data-cell-label=\"料金表\"><span class=\"card-cell-label\">料金表</span>—</td><td data-cell-label=\"予測数量\"><span class=\"card-cell-label\">予測数量</span>—</td><td data-cell-label=\"課金単位\"><span class=\"card-cell-label\">課金単位</span>1K動画トークンあたり</td><td data-cell-label=\"課金条件\"><span class=\"card-cell-label\">課金条件</span>音声：without_audio</td><td data-cell-label=\"料金\"><span class=\"card-cell-label\">料金</span><div><span>出力 · 動画トークン料金 · 比較専用の見積もり</span> <b>$0.014</b> <span class=\"price-unit\">1K動画トークンあたり</span></div><p class=\"note-s\">動画トークン単価が主な価格参照値です。見出しに表示される秒単位の概算料金は別の参照値であり、追加料金ではありません。</p></td></tr><tr><th data-cell-label=\"設定\" scope=\"row\"><span class=\"card-cell-label\">設定</span>生成費用の見積もり</th><td data-cell-label=\"料金表\"><span class=\"card-cell-label\">料金表</span>—</td><td data-cell-label=\"予測数量\"><span class=\"card-cell-label\">予測数量</span>生成1回分の概算</td><td data-cell-label=\"課金単位\"><span class=\"card-cell-label\">課金単位</span>—</td><td data-cell-label=\"課金条件\"><span class=\"card-cell-label\">課金条件</span>—</td><td data-cell-label=\"料金\"><span class=\"card-cell-label\">料金</span><div><span>出力 · 推定生成コスト · 比較専用の見積もり</span> <b>$0.3024</b> <span class=\"price-unit\">生成前の見積もり</span></div><p class=\"note-s\">この見積もりは追加料金ではなく、完了した生成処理に対する固定料金でもありません。</p></td></tr></tbody></table></div></div><p class=\"note-s\">Ailootはリクエスト前に見積額を確保します。結果の取得後、実測使用量に基づいて最終料金を精算します。ストリーミング時の精算には最終の使用量記録を使用します。<a href=\"/docs/ja/billing/reserve/\">金額の確保と精算の仕組み →</a></p><div data-declared-reference-pricing><h4>参考料金の詳細</h4><p class=\"note-s\">モデル単位の参照料金表は、メソッド選択、見積もり、課金を変更しません。実際の課金には、選択したAilootメソッドの料金を適用します。</p><details class=\"card-price-reference\" data-declared-reference-group data-client-selectable=\"false\"><summary>動画設定の料金参照情報</summary><h4>設定別の価格</h4><p class=\"note-s\">各料金を表示された条件と照合してください。選択肢となる設定の各組には、いずれか1つの料金を適用します。</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>設定</th><th>課金条件</th><th>料金</th></tr></thead><tbody><tr><th data-cell-label=\"設定\" scope=\"row\"><span class=\"card-cell-label\">設定</span>動画トークン料金</th><td data-cell-label=\"課金条件\"><span class=\"card-cell-label\">課金条件</span>この価格キーには追加条件が定義されていません。</td><td data-cell-label=\"料金\"><span class=\"card-cell-label\">料金</span><div><span>出力 · 動画トークン料金</span> <b>$0.014</b> <span class=\"price-unit\">1K動画トークンあたり</span></div><p class=\"note-s\">動画トークン単価が主な価格参照値です。見出しに表示される秒単位の概算料金は別の参照値であり、追加料金ではありません。</p></td></tr><tr><th data-cell-label=\"設定\" scope=\"row\"><span class=\"card-cell-label\">設定</span>動画トークン料金</th><td data-cell-label=\"課金条件\"><span class=\"card-cell-label\">課金条件</span>resolution: 4k</td><td data-cell-label=\"料金\"><span class=\"card-cell-label\">料金</span><div><span>出力 · 動画トークン料金</span> <b>$0.008</b> <span class=\"price-unit\">1K動画トークンあたり</span></div><p class=\"note-s\">動画トークン単価が主な価格参照値です。見出しに表示される秒単位の概算料金は別の参照値であり、追加料金ではありません。</p></td></tr><tr><th data-cell-label=\"設定\" scope=\"row\"><span class=\"card-cell-label\">設定</span>動画トークン料金</th><td data-cell-label=\"課金条件\"><span class=\"card-cell-label\">課金条件</span>resolution: 1080p</td><td data-cell-label=\"料金\"><span class=\"card-cell-label\">料金</span><div><span>出力 · 動画トークン料金</span> <b>$0.0154</b> <span class=\"price-unit\">1K動画トークンあたり</span></div><p class=\"note-s\">動画トークン単価が主な価格参照値です。見出しに表示される秒単位の概算料金は別の参照値であり、追加料金ではありません。</p></td></tr><tr><th data-cell-label=\"設定\" scope=\"row\"><span class=\"card-cell-label\">設定</span>動画トークン料金</th><td data-cell-label=\"課金条件\"><span class=\"card-cell-label\">課金条件</span>音声：without_audio</td><td data-cell-label=\"料金\"><span class=\"card-cell-label\">料金</span><div><span>出力 · 動画トークン料金</span> <b>$0.014</b> <span class=\"price-unit\">1K動画トークンあたり</span></div><p class=\"note-s\">動画トークン単価が主な価格参照値です。見出しに表示される秒単位の概算料金は別の参照値であり、追加料金ではありません。</p></td></tr><tr><th data-cell-label=\"設定\" scope=\"row\"><span class=\"card-cell-label\">設定</span>動画トークン料金</th><td data-cell-label=\"課金条件\"><span class=\"card-cell-label\">課金条件</span>入力：with_video_input</td><td data-cell-label=\"料金\"><span class=\"card-cell-label\">料金</span><div><span>reference · 動画トークン料金</span> <b>$0.0086</b> <span class=\"price-unit\">1K動画トークンあたり</span></div><p class=\"note-s\">動画トークン単価が主な価格参照値です。見出しに表示される秒単位の概算料金は別の参照値であり、追加料金ではありません。</p></td></tr><tr><th data-cell-label=\"設定\" scope=\"row\"><span class=\"card-cell-label\">設定</span>動画トークン料金</th><td data-cell-label=\"課金条件\"><span class=\"card-cell-label\">課金条件</span>入力：with_video_input；解像度：4k</td><td data-cell-label=\"料金\"><span class=\"card-cell-label\">料金</span><div><span>reference · 動画トークン料金</span> <b>$0.0048</b> <span class=\"price-unit\">1K動画トークンあたり</span></div><p class=\"note-s\">動画トークン単価が主な価格参照値です。見出しに表示される秒単位の概算料金は別の参照値であり、追加料金ではありません。</p></td></tr><tr><th data-cell-label=\"設定\" scope=\"row\"><span class=\"card-cell-label\">設定</span>動画トークン料金</th><td data-cell-label=\"課金条件\"><span class=\"card-cell-label\">課金条件</span>入力：with_video_input；解像度：1080p</td><td data-cell-label=\"料金\"><span class=\"card-cell-label\">料金</span><div><span>reference · 動画トークン料金</span> <b>$0.0094</b> <span class=\"price-unit\">1K動画トークンあたり</span></div><p class=\"note-s\">動画トークン単価が主な価格参照値です。見出しに表示される秒単位の概算料金は別の参照値であり、追加料金ではありません。</p></td></tr></tbody></table></div></details></div></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">リクエスト例</h3><h4>Ailoot Ultra · 動画</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"コードの種類\"><button class=\"cg-tab\" id=\"model-code-1131-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1131-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · 動画を作成する</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"コードをコピー\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1131-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1131-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nfrom pathlib import Path\nPath(&#39;request.json&#39;).write_text(&#39;{&quot;model&quot;:&quot;bytedance/seedance-2.0&quot;,&quot;prompt&quot;:&quot;A serene mountain landscape at sunset&quot;,&quot;duration&quot;:4,&quot;resolution&quot;:&quot;480p&quot;,&quot;size&quot;:&quot;480x480&quot;,&quot;generate_audio&quot;:false}&#39;, encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&#39;result.json&#39;).read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint(&#39;Keep the complete JSON and response headers; do not resubmit an unknown creation.&#39;)\nPY_RESULT\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">結果を受け取って保存</h3><h4>Ailoot Ultra · 動画</h4><p class=\"note-s\">所有コンテンツの署名付きURL</p><ul class=\"card-result-paths\"><li><code>GET /v1/videos/{public_id}</code></li><li><code>GET /v1/videos/{public_id}/content</code></li></ul><h5>ジョブのステータスを確認</h5><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"コードの種類\"><button class=\"cg-tab\" id=\"model-code-1132-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1132-panel-0\" aria-selected=\"true\" tabindex=\"0\">GET · 元の処理のステータス取得</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"コードをコピー\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1132-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1132-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_STATUS_URL&#39;\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path(&#39;result.json&#39;).read_text())\nif not isinstance(r.get(&#39;id&#39;),str) or not r[&#39;id&#39;]:raise SystemExit(&#39;Keep the original response and headers for reconciliation; no returned ID&#39;)\nPath(&#39;status-url.txt&#39;).write_text(&#39;https://api.ailoot.ai/v1/videos/&#39;+quote(r[&#39;id&#39;],safe=&#39;&#39;))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error &quot;$(cat status-url.txt)&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -D status-headers.txt -o status.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&#39;status.json&#39;).read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint(&#39;Keep the complete JSON and response headers; do not resubmit an unknown creation.&#39;)\nPY_RESULT\n</code></pre></div></div></div><details class=\"card-about\"><summary>その他のコンテンツ取得</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"コードの種類\"><button class=\"cg-tab\" id=\"model-code-1133-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1133-panel-0\" aria-selected=\"true\" tabindex=\"0\">完了した自分の出力をすべて保存</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"コードをコピー\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1133-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1133-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\nexport AILOOT_API_KEY\npython3 - &lt;&lt;&#39;PY_ASSETS&#39;\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path(&#39;status.json&#39;).read_text())\nif r.get(&#39;status&#39;)!=&#39;completed&#39;:raise SystemExit(&#39;Keep the original ID and read its status; never recreate an unknown job&#39;)\nif not isinstance(r.get(&#39;data&#39;),list) or not r[&#39;data&#39;]:raise SystemExit(&#39;Keep the complete original status; no completed outputs supplied&#39;)\nurls=[]\nfor i,u in enumerate(r.get(&#39;data&#39;,[])):\n    if not isinstance(u,str):raise SystemExit(&#39;Keep the original response; unexpected asset shape&#39;)\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin(&#39;https://api.ailoot.ai&#39;,path);z=urlsplit(u)\n    if z.scheme!=&#39;https&#39; or z.netloc!=&#39;api.ailoot.ai&#39; or z.username or z.password:raise SystemExit(&#39;Use the actual returned Ailoot owned content URL&#39;)\n    target=Path(&#39;owned-&#39;+label+&#39;.bin&#39;)\n    subprocess.run([&#39;curl&#39;,&#39;--fail-with-body&#39;,&#39;--silent&#39;,&#39;--show-error&#39;,u,&#39;-H&#39;,&#39;Authorization: Bearer &#39;+os.environ[&#39;AILOOT_API_KEY&#39;],&#39;-D&#39;,str(target)+&#39;.headers&#39;,&#39;-o&#39;,str(target)],check=True)\nprint(&#39;All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.&#39;)\nPY_ASSETS\n</code></pre></div></div></div></details><div class=\"card-result-process\" data-all-results><h5>完了した結果をすべて保存</h5><p class=\"note-s\">完了した動画や返されたファイルをすべて保存し、実際に返されたすべてのアセットURLから取得してください。</p><p class=\"note-s\">実際に得られた所有出力と、返された実測メタデータをすべて保持してください。</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>元のレスポンスを確認する場合</h5><p class=\"note-s\">503 result_pending_check + 元のid + X-Should-Retry:false；元のリクエストを決して再実行しないでください</p></div><details class=\"card-about\" data-output-fields><summary>レスポンスのフィールド</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>フィールド</th><th>種類</th><th>意味</th></tr></thead><tbody><tr><th data-cell-label=\"フィールド\" scope=\"row\"><span class=\"card-cell-label\">フィールド</span><code class=\"card-field-name\">index</code></th><td data-cell-label=\"種類\" data-field-type><span class=\"card-cell-label\">種類</span>integer</td><td data-cell-label=\"意味\"><span class=\"card-cell-label\">意味</span>出力リスト内での、この動画のゼロ始まりの位置。</td></tr><tr><th data-cell-label=\"フィールド\" scope=\"row\"><span class=\"card-cell-label\">フィールド</span><code class=\"card-field-name\">content_url</code></th><td data-cell-label=\"種類\" data-field-type><span class=\"card-cell-label\">種類</span>string</td><td data-cell-label=\"意味\"><span class=\"card-cell-label\">意味</span>この完了済み動画の署名付きHTTPSダウンロードURL。</td></tr><tr><th data-cell-label=\"フィールド\" scope=\"row\"><span class=\"card-cell-label\">フィールド</span><code class=\"card-field-name\">sha256</code></th><td data-cell-label=\"種類\" data-field-type><span class=\"card-cell-label\">種類</span>string | null</td><td data-cell-label=\"意味\"><span class=\"card-cell-label\">意味</span>元の動画バイト列のSHA-256ダイジェスト。取得できない場合はnullです。</td></tr><tr><th data-cell-label=\"フィールド\" scope=\"row\"><span class=\"card-cell-label\">フィールド</span><code class=\"card-field-name\">size_bytes</code></th><td data-cell-label=\"種類\" data-field-type><span class=\"card-cell-label\">種類</span>integer | null</td><td data-cell-label=\"意味\"><span class=\"card-cell-label\">意味</span>元の動画ファイルのサイズ（バイト）。取得できない場合はnullです。</td></tr><tr><th data-cell-label=\"フィールド\" scope=\"row\"><span class=\"card-cell-label\">フィールド</span><code class=\"card-field-name\">duration_ms</code></th><td data-cell-label=\"種類\" data-field-type><span class=\"card-cell-label\">種類</span>integer | null</td><td data-cell-label=\"意味\"><span class=\"card-cell-label\">意味</span>実測された動画の長さ（ミリ秒）。取得できない場合はnullです。</td></tr><tr><th data-cell-label=\"フィールド\" scope=\"row\"><span class=\"card-cell-label\">フィールド</span><code class=\"card-field-name\">width</code></th><td data-cell-label=\"種類\" data-field-type><span class=\"card-cell-label\">種類</span>integer | null</td><td data-cell-label=\"意味\"><span class=\"card-cell-label\">意味</span>動画の幅（ピクセル）。取得できない場合はnullです。</td></tr><tr><th data-cell-label=\"フィールド\" scope=\"row\"><span class=\"card-cell-label\">フィールド</span><code class=\"card-field-name\">height</code></th><td data-cell-label=\"種類\" data-field-type><span class=\"card-cell-label\">種類</span>integer | null</td><td data-cell-label=\"意味\"><span class=\"card-cell-label\">意味</span>動画の高さ（ピクセル）。取得できない場合はnullです。</td></tr><tr><th data-cell-label=\"フィールド\" scope=\"row\"><span class=\"card-cell-label\">フィールド</span><code class=\"card-field-name\">video_codec</code></th><td data-cell-label=\"種類\" data-field-type><span class=\"card-cell-label\">種類</span>string | null</td><td data-cell-label=\"意味\"><span class=\"card-cell-label\">意味</span>動画コーデックの識別子。記録されていない場合はnullです。</td></tr><tr><th data-cell-label=\"フィールド\" scope=\"row\"><span class=\"card-cell-label\">フィールド</span><code class=\"card-field-name\">has_audio</code></th><td data-cell-label=\"種類\" data-field-type><span class=\"card-cell-label\">種類</span>boolean | null</td><td data-cell-label=\"意味\"><span class=\"card-cell-label\">意味</span>動画に音声トラックが含まれるかどうか。未測定の場合はnullです。</td></tr><tr><th data-cell-label=\"フィールド\" scope=\"row\"><span class=\"card-cell-label\">フィールド</span><code class=\"card-field-name\">audio_codec</code></th><td data-cell-label=\"種類\" data-field-type><span class=\"card-cell-label\">種類</span>string | null</td><td data-cell-label=\"意味\"><span class=\"card-cell-label\">意味</span>音声コーデックの識別子。識別子が記録されていない場合はnullです。</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>エラーと次の手順</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>レスポンス</th><th>条件</th><th>次の手順</th></tr></thead><tbody><tr><th data-cell-label=\"レスポンス\" scope=\"row\"><span class=\"card-cell-label\">レスポンス</span>404 · <code>not_found_error</code></th><td data-cell-label=\"条件\"><span class=\"card-cell-label\">条件</span>動画へのアクセスが利用できないか、この動画IDが見つかりません。</td><td data-cell-label=\"次の手順\"><span class=\"card-cell-label\">次の手順</span>動画へのアクセス権を確認してください。既存の動画には、元の公開IDと同じAPIキーを使用してください。</td></tr><tr><th data-cell-label=\"レスポンス\" scope=\"row\"><span class=\"card-cell-label\">レスポンス</span>401 · <code>authentication_error</code></th><td data-cell-label=\"条件\"><span class=\"card-cell-label\">条件</span>APIキーが認証済みアカウントと一致しません。</td><td data-cell-label=\"次の手順\"><span class=\"card-cell-label\">次の手順</span>送信する前に、APIキーとアカウントのアクセス権を確認してください。</td></tr><tr><th data-cell-label=\"レスポンス\" scope=\"row\"><span class=\"card-cell-label\">レスポンス</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"条件\"><span class=\"card-cell-label\">条件</span>リクエストを読み取れないか、ダウンロードのインデックスが無効です。</td><td data-cell-label=\"次の手順\"><span class=\"card-cell-label\">次の手順</span>リクエスト本文を修正してください。ダウンロードする場合は、元のタスクから返された出力インデックスを選択してください。</td></tr><tr><th data-cell-label=\"レスポンス\" scope=\"row\"><span class=\"card-cell-label\">レスポンス</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"条件\"><span class=\"card-cell-label\">条件</span>選択された動画設定の料金を算出できません。</td><td data-cell-label=\"次の手順\"><span class=\"card-cell-label\">次の手順</span>サポートされている動画設定を選び、必須オプションをすべて指定してから、修正したリクエストを送信してください。</td></tr><tr><th data-cell-label=\"レスポンス\" scope=\"row\"><span class=\"card-cell-label\">レスポンス</span>422 · <code>invalid_request_error</code></th><td data-cell-label=\"条件\"><span class=\"card-cell-label\">条件</span>動画入力、または元の継続タスクが無効です。</td><td data-cell-label=\"次の手順\"><span class=\"card-cell-label\">次の手順</span>有効なHTTPS入力を使用してください。継続する場合は、完了した元の動画の公開IDと、同じAPIキーを使用してください。</td></tr><tr><th data-cell-label=\"レスポンス\" scope=\"row\"><span class=\"card-cell-label\">レスポンス</span>402 · <code>billing_error</code></th><td data-cell-label=\"条件\"><span class=\"card-cell-label\">条件</span>利用可能な残高または上限の制約により、料金を仮押さえできません。</td><td data-cell-label=\"次の手順\"><span class=\"card-cell-label\">次の手順</span>新しいリクエストを送る前に、利用可能な残高と上限を確認してください。</td></tr><tr><th data-cell-label=\"レスポンス\" scope=\"row\"><span class=\"card-cell-label\">レスポンス</span>503 · <code>server_error</code></th><td data-cell-label=\"条件\"><span class=\"card-cell-label\">条件</span>動画の検証、保存領域、またはサービスへのアクセスを一時的に利用できません。</td><td data-cell-label=\"次の手順\"><span class=\"card-cell-label\">次の手順</span>サービスが利用可能になるまでお待ちください。すでに動画IDがある場合は、別の生成を作成せず、その元のタスクを確認してください。</td></tr><tr><th data-cell-label=\"レスポンス\" scope=\"row\"><span class=\"card-cell-label\">レスポンス</span>503 · <code>result_pending_check</code></th><td data-cell-label=\"条件\"><span class=\"card-cell-label\">条件</span>元の動画の結果と請求額を確認する必要があります。</td><td data-cell-label=\"次の手順\"><span class=\"card-cell-label\">次の手順</span>返された動画IDを保持し、そのタスクを確認してください。確認中に、代わりの生成リクエストを送信しないでください。</td></tr><tr><th data-cell-label=\"レスポンス\" scope=\"row\"><span class=\"card-cell-label\">レスポンス</span>503 · <code>owned_result_unavailable</code></th><td data-cell-label=\"条件\"><span class=\"card-cell-label\">条件</span>既存の動画のダウンロードを一時的に利用できません。</td><td data-cell-label=\"次の手順\"><span class=\"card-cell-label\">次の手順</span>後で同じ動画タスクを確認し、その既存の出力をダウンロードしてください。新しい生成を行うと、別の操作が作成されます。</td></tr><tr><th data-cell-label=\"レスポンス\" scope=\"row\"><span class=\"card-cell-label\">レスポンス</span>409 · <code>video_not_ready</code></th><td data-cell-label=\"条件\"><span class=\"card-cell-label\">条件</span>動画コンテンツは公開されていません。</td><td data-cell-label=\"次の手順\"><span class=\"card-cell-label\">次の手順</span>元のタスクのステータスを確認してください。completedと報告されたらダウンロードします。failedと報告された場合は、その料金確認の通知に従ってください。</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">エイリアス</h3><h4>モデルのエイリアス</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=bytedance%2Fseedance-2.0&amp;route=Ultra&amp;caller=bytedance%2Fseedance-2.0&amp;fmt=videos\"><code>bytedance/seedance-2.0</code></a></span></p><h4>メソッドパスのエイリアス</h4><p class=\"note-s\">上記に表示されたメソッドパスを使用してください。</p><h4>関連する呼び出し用ID</h4><p class=\"note-s\"><a href=\"#m=bytedance%2Fseedance-2.0&amp;route=Ultra&amp;caller=bytedance%2Fseedance-2.0&amp;fmt=videos\"><code>bytedance/seedance-2.0</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "bytedance/seedance-2.0",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos",
        "request_model_id": "bytedance/seedance-2.0",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|videos|/v1/videos|bytedance%2Fseedance-2.0",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "表示料金は生成前の費用の見積もりです。最終請求額は、元の生成処理に記録された費用から計算されます。実測された出力時間や予測数量が、そのまま最終的な課金数量になるわけではありません。",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "実際に得られた所有出力と、返された実測メタデータをすべて保持してください。",
            "defaults": {
              "aspect_ratio": null,
              "duration": null,
              "generate_audio": "endpoint capability flag when published; omitted unknown stays unknown; never guarantees audio track",
              "resolution": null,
              "seed": null,
              "size": null,
              "wire_omissions_preserved": true
            },
            "errors": [
              {
                "condition": "動画へのアクセスが利用できないか、この動画IDが見つかりません。",
                "http_status": 404,
                "public_identifier_field": "error.type",
                "recovery": "動画へのアクセス権を確認してください。既存の動画には、元の公開IDと同じAPIキーを使用してください。",
                "type": "not_found_error"
              },
              {
                "condition": "APIキーが認証済みアカウントと一致しません。",
                "http_status": 401,
                "public_identifier_field": "error.type",
                "recovery": "送信する前に、APIキーとアカウントのアクセス権を確認してください。",
                "type": "authentication_error"
              },
              {
                "condition": "リクエストを読み取れないか、ダウンロードのインデックスが無効です。",
                "http_status": 400,
                "public_identifier_field": "error.type",
                "recovery": "リクエスト本文を修正してください。ダウンロードする場合は、元のタスクから返された出力インデックスを選択してください。",
                "type": "invalid_request_error"
              },
              {
                "condition": "選択された動画設定の料金を算出できません。",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "サポートされている動画設定を選び、必須オプションをすべて指定してから、修正したリクエストを送信してください。",
                "type": "price_unavailable"
              },
              {
                "condition": "動画入力、または元の継続タスクが無効です。",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "有効なHTTPS入力を使用してください。継続する場合は、完了した元の動画の公開IDと、同じAPIキーを使用してください。",
                "type": "invalid_request_error"
              },
              {
                "condition": "利用可能な残高または上限の制約により、料金を仮押さえできません。",
                "http_status": 402,
                "public_identifier_field": "error.type",
                "recovery": "新しいリクエストを送る前に、利用可能な残高と上限を確認してください。",
                "type": "billing_error"
              },
              {
                "condition": "動画の検証、保存領域、またはサービスへのアクセスを一時的に利用できません。",
                "http_status": 503,
                "public_identifier_field": "error.type",
                "recovery": "サービスが利用可能になるまでお待ちください。すでに動画IDがある場合は、別の生成を作成せず、その元のタスクを確認してください。",
                "type": "server_error"
              },
              {
                "code": "result_pending_check",
                "condition": "元の動画の結果と請求額を確認する必要があります。",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "返された動画IDを保持し、そのタスクを確認してください。確認中に、代わりの生成リクエストを送信しないでください。",
                "type": "server_error"
              },
              {
                "code": "owned_result_unavailable",
                "condition": "既存の動画のダウンロードを一時的に利用できません。",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "後で同じ動画タスクを確認し、その既存の出力をダウンロードしてください。新しい生成を行うと、別の操作が作成されます。",
                "type": "server_error"
              },
              {
                "condition": "動画コンテンツは公開されていません。",
                "http_status": 409,
                "public_identifier_field": "error.type",
                "recovery": "元のタスクのステータスを確認してください。completedと報告されたらダウンロードします。failedと報告された場合は、その料金確認の通知に従ってください。",
                "type": "video_not_ready"
              }
            ],
            "hints": [
              "No null values or duplicate keys at any JSON object level",
              "No duration/resolution/aspect default is inserted",
              "Prompt required for all21 despite broader official image-only schema",
              "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
              "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
              "No n/output-count/client price fields accepted",
              "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel_endpoint": null,
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}/content",
                  "query": {
                    "index": "actual output index"
                  }
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "mode": "submit_once_poll_original",
              "public_id": "video_<uuid>; owner user/key/group scope",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}"
                }
              ],
              "submit_status": 202,
              "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
              "terminal_provider_states": [
                "failed",
                "cancelled",
                "expired"
              ],
              "unknown": "503 result_pending_check + 元のid + X-Should-Retry:false；元のリクエストを決して再実行しないでください"
            },
            "material_combinations": [
              {
                "mode": "text_to_video",
                "model": {
                  "enum": [
                    "bytedance/seedance-2.0"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "テキストのプロンプトと、サポートされている整数の秒数を指定してください。一覧にある正確なサイズ、または一覧の寸法に対応する解像度とアスペクト比を使用します。",
                "required": [
                  "model",
                  "prompt",
                  "duration"
                ],
                "required_material": "テキストのプロンプト。"
              },
              {
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "mode": "image_to_video",
                "model": {
                  "enum": [
                    "bytedance/seedance-2.0"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "frame_imagesはオブジェクトの配列で、各オブジェクトにはtype=image_url、urlを含むimage_url、およびframe_typeを指定します。公開HTTPS画像URLを使用してください。first_frameとlast_frameはそれぞれ一度だけ指定できます。一覧にある出力サイズ、または互換性のある寸法を使用してください。動画の参照素材は追加しないでください。",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "frame_images"
                ],
                "required_material": "テキストのプロンプトとフレーム画像。"
              },
              {
                "mode": "Reference to video",
                "model": {
                  "enum": [
                    "bytedance/seedance-2.0"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "input_referencesは配列です。各オブジェクトにはtype=image_urlまたはtype=audio_urlと、urlを含む対応するURLオブジェクトを指定します。公開HTTPSリンクを使用してください。参照モードを選ぶ場合はframe_imagesを省略します。動画の参照素材の料金は算出できません。",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "input_references"
                ],
                "required_material": "テキストのプロンプトと、画像または音声の参照素材。"
              }
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video_frame_images",
              "reference_to_video"
            ],
            "outputs": {
              "content_range_supported": true,
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "condition": "Always present for each completed output.",
                  "description": "出力リスト内での、この動画のゼロ始まりの位置。",
                  "field_path": "outputs[].index",
                  "json_schema": {
                    "type": "integer"
                  },
                  "name": "index",
                  "nullable": false,
                  "type": "integer"
                },
                {
                  "condition": "Present after the owned result is available and a signed URL is created.",
                  "description": "この完了済み動画の署名付きHTTPSダウンロードURL。",
                  "field_path": "outputs[].content_url",
                  "json_schema": {
                    "type": "string"
                  },
                  "name": "content_url",
                  "nullable": false,
                  "type": "string"
                },
                {
                  "condition": "A nonempty recorded digest is returned; otherwise null.",
                  "description": "元の動画バイト列のSHA-256ダイジェスト。取得できない場合はnullです。",
                  "field_path": "outputs[].sha256",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "sha256",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when the recorded file size is positive.",
                  "description": "元の動画ファイルのサイズ（バイト）。取得できない場合はnullです。",
                  "field_path": "outputs[].size_bytes",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "size_bytes",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned when the measured duration is positive.",
                  "description": "実測された動画の長さ（ミリ秒）。取得できない場合はnullです。",
                  "field_path": "outputs[].duration_ms",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "duration_ms",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "動画の幅（ピクセル）。取得できない場合はnullです。",
                  "field_path": "outputs[].width",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "width",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "動画の高さ（ピクセル）。取得できない場合はnullです。",
                  "field_path": "outputs[].height",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "height",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned together with positive recorded width and height.",
                  "description": "動画コーデックの識別子。記録されていない場合はnullです。",
                  "field_path": "outputs[].video_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "video_codec",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                  "description": "動画に音声トラックが含まれるかどうか。未測定の場合はnullです。",
                  "field_path": "outputs[].has_audio",
                  "json_schema": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "name": "has_audio",
                  "nullable": true,
                  "type": "boolean | null"
                },
                {
                  "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                  "description": "音声コーデックの識別子。識別子が記録されていない場合はnullです。",
                  "field_path": "outputs[].audio_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "audio_codec",
                  "nullable": true,
                  "type": "string | null"
                }
              ],
              "format": "original MP4 bytes; no normalization/transcode",
              "max_aggregate_seconds": 2400,
              "max_bytes_per_output": 67108864,
              "max_seconds_per_output": 600,
              "result": "所有コンテンツの署名付きURL",
              "unmeasured_fields_nullable": true
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "bytedance/seedance-2.0"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "schema": {
                  "const": "bytedance/seedance-2.0"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minLength": 1,
                "name": "prompt",
                "required": true,
                "schema": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  4,
                  5,
                  6,
                  7,
                  8,
                  9,
                  10,
                  11,
                  12,
                  13,
                  14,
                  15
                ],
                "enum_known": true,
                "maximum": 600,
                "minimum": 1,
                "name": "duration",
                "required": true,
                "schema": {
                  "enum": [
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "480p",
                  "720p",
                  "1080p",
                  "4K"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "schema": {
                  "enum": [
                    "480p",
                    "720p",
                    "1080p",
                    "4K"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "1:1",
                  "3:4",
                  "9:16",
                  "4:3",
                  "16:9",
                  "21:9",
                  "9:21"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "schema": {
                  "enum": [
                    "1:1",
                    "3:4",
                    "9:16",
                    "4:3",
                    "16:9",
                    "21:9",
                    "9:21"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "480pと720pでは、generate_audioを省略すると音声ありの料金、falseにすると音声なしの料金が選択されます。1080pと4Kでは、どちらの設定でも解像度に応じた料金が適用されます。返された音声トラックについては、結果のhas_audioを確認してください。",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  true
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": false,
                "schema": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "これらのキーは各フレームオブジェクトに適用されます。テキストのみのリクエストではframe_imagesを省略してください。",
                "content": "フレームオブジェクトの配列。各オブジェクトにはtype=image_url、urlを含むimage_url、およびframe_type=first_frameまたはlast_frameを指定します。各役割はそれぞれ最大一回まで指定できます。公開HTTPS URLを使用してください。",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "maxItems": 2,
                "max_items": 2,
                "minItems": 1,
                "min_items": 1,
                "name": "frame_images",
                "required": false,
                "schema": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "conditions": "参照モードを使用する場合はframe_imagesを省略してください。公開HTTPS URLを使用します。",
                "content": "画像または音声の参照オブジェクトの配列。typeをimage_urlまたはaudio_urlに設定し、urlを含む対応するURLオブジェクトを指定してください。動画の参照素材については、引き続き料金を算出できません。",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "input_references",
                "required": false,
                "schema": {
                  "items": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "audio_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "480x480",
                  "480x640",
                  "480x854",
                  "640x480",
                  "854x480",
                  "1120x480",
                  "720x720",
                  "720x960",
                  "720x1280",
                  "720x1680",
                  "960x720",
                  "1280x720",
                  "1680x720",
                  "1080x1080",
                  "1080x1440",
                  "1080x1920",
                  "1440x1080",
                  "1920x1080",
                  "2520x1080",
                  "3840x2160",
                  "2160x3840",
                  "2160x2160",
                  "2880x2160",
                  "2160x2880",
                  "5040x2160"
                ],
                "enum_known": true,
                "name": "size",
                "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                "required": false,
                "schema": {
                  "enum": [
                    "480x480",
                    "480x640",
                    "480x854",
                    "640x480",
                    "854x480",
                    "1120x480",
                    "720x720",
                    "720x960",
                    "720x1280",
                    "720x1680",
                    "960x720",
                    "1280x720",
                    "1680x720",
                    "1080x1080",
                    "1080x1440",
                    "1080x1920",
                    "1440x1080",
                    "1920x1080",
                    "2520x1080",
                    "3840x2160",
                    "2160x3840",
                    "2160x2160",
                    "2880x2160",
                    "2160x2880",
                    "5040x2160"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maximum": 9223372036854775807,
                "minimum": -9223372036854775808,
                "name": "seed",
                "required": false,
                "schema": {
                  "maximum": 9223372036854775807,
                  "minimum": -9223372036854775808,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "callback_url",
                "pattern": "^https://",
                "required": false,
                "schema": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "session_id",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "user",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              }
            ],
            "request_schema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "additionalProperties": false,
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "1:1",
                    "3:4",
                    "9:16",
                    "4:3",
                    "16:9",
                    "21:9",
                    "9:21"
                  ]
                },
                "callback_url": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "creativity": false,
                "duration": {
                  "enum": [
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "frame_images": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "generate_audio": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "input_references": {
                  "items": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "audio_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "model": {
                  "const": "bytedance/seedance-2.0"
                },
                "previous_job_id": false,
                "prompt": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "provider": false,
                "resolution": {
                  "enum": [
                    "480p",
                    "720p",
                    "1080p",
                    "4K"
                  ]
                },
                "seed": {
                  "maximum": 9223372036854775807,
                  "minimum": -9223372036854775808,
                  "type": "integer"
                },
                "session_id": {
                  "maxLength": 256,
                  "type": "string"
                },
                "size": {
                  "enum": [
                    "480x480",
                    "480x640",
                    "480x854",
                    "640x480",
                    "854x480",
                    "1120x480",
                    "720x720",
                    "720x960",
                    "720x1280",
                    "720x1680",
                    "960x720",
                    "1280x720",
                    "1680x720",
                    "1080x1080",
                    "1080x1440",
                    "1080x1920",
                    "1440x1080",
                    "1920x1080",
                    "2520x1080",
                    "3840x2160",
                    "2160x3840",
                    "2160x2160",
                    "2880x2160",
                    "2160x2880",
                    "5040x2160"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "trace": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "upscale_factor": false,
                "user": {
                  "maxLength": 256,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt",
                "duration"
              ],
              "title": "Video generation request",
              "type": "object",
              "x-source-global-rules": [
                "No null values or duplicate keys at any JSON object level",
                "No duration/resolution/aspect default is inserted",
                "Prompt required for all21 despite broader official image-only schema",
                "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
                "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
                "No n/output-count/client price fields accepted",
                "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
              ],
              "x-source-material-combinations": [
                "Exact model/card, positive published duration, model resolution/aspect membership and valid frozen quote are all required; independent enum arrays are not proven provider Cartesian combinations.",
                "Use exact published size or compatible resolution/aspect. Omitted options stay omitted; no guessed geometry.",
                "first_frame/last_frame roles each occur at most once; frame_images wins mode precedence over input_references.",
                "provider options are unavailable for this model despite any published passthrough-name allowlist.",
                "Request geometry is required for the pre-generation estimate and reserve. Returned geometry and track time describe the generated output; final charge follows the actual billed configuration.",
                "Video references with *_with_video_input quantity are rejected; image/audio references only where model reference types admit them."
              ]
            },
            "unsupported": [
              "provider",
              "previous_job_id",
              "upscale_factor",
              "creativity"
            ]
          },
          "input": {
            "additional_properties": false,
            "content_type": "application/json",
            "material_types": [
              "text",
              "image",
              "audio"
            ],
            "optional_controls": [
              "resolution",
              "aspect_ratio",
              "generate_audio",
              "frame_images",
              "input_references",
              "size",
              "seed",
              "callback_url",
              "session_id",
              "trace",
              "user"
            ],
            "required": [
              "model",
              "prompt",
              "duration"
            ]
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}/content",
                "query": {
                  "index": "actual output index"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "mode": "submit_once_poll_original",
            "public_id": "video_<uuid>; owner user/key/group scope",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}"
              }
            ],
            "submit_status": 202,
            "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
            "terminal_provider_states": [
              "failed",
              "cancelled",
              "expired"
            ],
            "unknown": "503 result_pending_check + originalid + X-Should-Retry:false; never replay original"
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_video",
            "image_to_video_frame_images",
            "reference_to_video"
          ],
          "output": {
            "content_range_supported": true,
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "condition": "Always present for each completed output.",
                "description": "Zero-based position of this video in the outputs list.",
                "field_path": "outputs[].index",
                "json_schema": {
                  "type": "integer"
                },
                "name": "index",
                "nullable": false,
                "type": "integer"
              },
              {
                "condition": "Present after the owned result is available and a signed URL is created.",
                "description": "Signed HTTPS download URL for this completed video.",
                "field_path": "outputs[].content_url",
                "json_schema": {
                  "type": "string"
                },
                "name": "content_url",
                "nullable": false,
                "type": "string"
              },
              {
                "condition": "A nonempty recorded digest is returned; otherwise null.",
                "description": "SHA-256 digest of the original video bytes; null if unavailable.",
                "field_path": "outputs[].sha256",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "sha256",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when the recorded file size is positive.",
                "description": "Size of the original video file in bytes; null if unavailable.",
                "field_path": "outputs[].size_bytes",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "size_bytes",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned when the measured duration is positive.",
                "description": "Measured video duration in milliseconds; null if unavailable.",
                "field_path": "outputs[].duration_ms",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "duration_ms",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video width in pixels; null if unavailable.",
                "field_path": "outputs[].width",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "width",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video height in pixels; null if unavailable.",
                "field_path": "outputs[].height",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "height",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned together with positive recorded width and height.",
                "description": "Video codec identifier; null if not recorded.",
                "field_path": "outputs[].video_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "video_codec",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                "description": "Whether the video contains an audio track; null if not measured.",
                "field_path": "outputs[].has_audio",
                "json_schema": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "name": "has_audio",
                "nullable": true,
                "type": "boolean | null"
              },
              {
                "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                "description": "Audio codec identifier; null when no identifier is recorded.",
                "field_path": "outputs[].audio_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "audio_codec",
                "nullable": true,
                "type": "string | null"
              }
            ],
            "format": "original MP4 bytes; no normalization/transcode",
            "max_aggregate_seconds": 2400,
            "max_bytes_per_output": 67108864,
            "max_seconds_per_output": 600,
            "result": "signed owned content URLs",
            "unmeasured_fields_nullable": true
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "動画トークン単価が主な価格参照値です。見出しに表示される秒単位の概算料金は別の参照値であり、追加料金ではありません。",
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "動画トークン料金",
            "units": [
              {
                "amount": "0.014000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.000014",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "動画トークン単価が主な価格参照値です。見出しに表示される秒単位の概算料金は別の参照値であり、追加料金ではありません。",
            "dimensions": {
              "conditions": "resolution: 1080p",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "動画トークン料金",
            "units": [
              {
                "amount": "0.0154000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_1080p",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000154",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "動画トークン単価が主な価格参照値です。見出しに表示される秒単位の概算料金は別の参照値であり、追加料金ではありません。",
            "dimensions": {
              "conditions": "input: with_video_input; resolution: 1080p",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "動画トークン料金",
            "units": [
              {
                "amount": "0.0094000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_1080p_with_video_input",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000094",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "reference",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "動画トークン単価が主な価格参照値です。見出しに表示される秒単位の概算料金は別の参照値であり、追加料金ではありません。",
            "dimensions": {
              "conditions": "resolution: 4k",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "動画トークン料金",
            "units": [
              {
                "amount": "0.008000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_4k",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.000008",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "動画トークン単価が主な価格参照値です。見出しに表示される秒単位の概算料金は別の参照値であり、追加料金ではありません。",
            "dimensions": {
              "conditions": "入力：with_video_input；解像度：4k",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "動画トークン料金",
            "units": [
              {
                "amount": "0.0048000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_4k_with_video_input",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000048",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "reference",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "動画トークン単価が主な価格参照値です。見出しに表示される秒単位の概算料金は別の参照値であり、追加料金ではありません。",
            "dimensions": {
              "conditions": "input: with_video_input",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "動画トークン料金",
            "units": [
              {
                "amount": "0.0086000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_with_video_input",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000086",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "reference",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "audio: without_audio",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.014000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_without_audio",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.000014",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "この見積もりは追加料金ではなく、完了した生成処理に対する固定料金でもありません。",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "生成費用の見積もり",
            "units": [
              {
                "amount": "0.3024",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.3024",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nfrom pathlib import Path\nPath('request.json').write_text('{\"model\":\"bytedance/seedance-2.0\",\"prompt\":\"A serene mountain landscape at sunset\",\"duration\":4,\"resolution\":\"480p\",\"size\":\"480x480\",\"generate_audio\":false}', encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('result.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_STATUS_URL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path('result.json').read_text())\nif not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')\nPath('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error \"$(cat status-url.txt)\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('status.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "GET original status",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path('status.json').read_text())\nif r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')\nif not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')\nurls=[]\nfor i,u in enumerate(r.get('data',[])):\n    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)\n    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')\n    target=Path('owned-'+label+'.bin')\n    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)\nprint('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')\nPY_ASSETS\n",
            "label": "Save every completed owned output",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image",
          "audio"
        ],
        "label": "Видео",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.014000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.000014",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "resolution: 1080p",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0154000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_1080p",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000154",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "input: with_video_input; resolution: 1080p",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0094000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_1080p_with_video_input",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000094",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "reference",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "resolution: 4k",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.008000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_4k",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.000008",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "input: with_video_input; resolution: 4k",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0048000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_4k_with_video_input",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000048",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "reference",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "input: with_video_input",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0086000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_with_video_input",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000086",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "reference",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "audio: without_audio",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.014000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_without_audio",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.000014",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.3024",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.3024",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "bytedance/seedance-2.0",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{public_id}",
          "GET /v1/videos/{public_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.014000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.000014",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.0154000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens_1080p",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.0000154",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.0094000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens_1080p_with_video_input",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.0000094",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "reference",
            "unit": "video_token"
          },
          {
            "amount": "0.008000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens_4k",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.000008",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.0048000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens_4k_with_video_input",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.0000048",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "reference",
            "unit": "video_token"
          },
          {
            "amount": "0.0086000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens_with_video_input",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.0000086",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "reference",
            "unit": "video_token"
          },
          {
            "amount": "0.014000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens_without_audio",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.000014",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.3024",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.3024",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    }
  ],
  "model_id": "bytedance/seedance-2.0",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "8896d947464ab1cd9c793073b35b103f7b76d7bf4b2f25067df0d7b08dbe2192",
    "input_html_sha256": "feb4b1468afb1fc7b7c0d1513efda9f5e55c6b632355c298f2baa07ad22dd916",
    "private_audit_sha256": "05337d09376bce71c63306593641f2ad283c0e7069684db36215810ce7747480",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/ja/bytedance-seedance-2-0/",
    "description": "ByteDance Seedance 2.0 は、ネイティブな音声・映像生成と画像、動画、音の参照を組み合わせます。新しいシーンの演出、既存映像の編集、シーケンスの延長ができ、標準版には文書化された 1080p と 10 ビット 4K 出力があります。",
    "locale": "ja",
    "md_url": "https://ailoot.ai/models/ja/bytedance-seedance-2-0/index.md",
    "title": "ByteDance: Seedance 2.0 — Ailoot",
    "url": "https://ailoot.ai/models/ja/bytedance-seedance-2-0/"
  },
  "rawModel": {
    "about": "Seedance 2.0 は、マルチモーダルな音声・映像制作のための ByteDance Seed の標準モデルです。文字、画像、動画、音声を同時生成アーキテクチャで組み合わせ、参照主体のシーン、動画編集、動画延長をそれぞれ別の制作ワークフローとして提供します。一貫した演技と、準備した素材からの特定の視覚・音情報の両方が必要な制作指示に役立ちます。\n\n### マルチモーダル参照と演出制御\n\n画像は被写体の外観、視覚スタイル、構図を定義できます。動画参照は行動、カメラ移動、効果を、音声は声質、音楽、台詞を導けます。各素材の役割を定義してから、完成すべきシーンを説明してください。メーカーは演技、照明、影、カメラ表現の制御を重視しています。\n\n製品ストーリーでは、製品写真、カメラ移動の参照、音声の手掛かりを準備します。例えば、「Image 1 の青いガラスの花瓶を保ってください。Video 1 のゆっくりした横移動のトラッキングを使います。花瓶は日差しの当たる棚にあり、Audio 1 を基にした柔らかな器楽曲が流れます」という指示です。意図する出力は、選択した参照情報を組み合わせて新たに演出したシーンです。\n\n参照入力は、画像と音声、画像と動画、動画と音声、3 種すべてを組み合わせられます。音声だけ、または画像・動画なしの文字と音声には対応しません。従来の文字から動画、最初のフレーム生成、最初と最後のフレーム生成も文書化されています。固定した冒頭・結末の構図が重要なら、専用の終点ワークフローを使ってください。omni-reference プロンプト内で参照画像を終点と名付ける方法は、間接的な誘導にすぎません。\n\n### 映像を編集する\n\nモデルは、被写体の置換、物体の追加・削除、要素の変更、動画の部分的な描き直しや修復ができます。具体的な変更と元映像を指定してください。追加には登場時刻と位置を含め、削除・置換では物体を正確に示し、残す内容を名指しします。\n\n例えば、「Video 1 のデスクランプを Image 1 の真鍮のランプに置き換えてください。カメラ移動、机の配置、照明の方向を保ってください」という指示です。求める結果は、意図した置換を加えたシーンの編集版です。特に遮蔽、移動、ショット変更の途中で、新しい物体と変更しない領域の両方を確認してください。\n\n### シーケンスを延長・接続する\n\nSeedance 2.0 は、動画の前方・後方への延長と、入力クリップ最大 3 本を生成トランジションで接続できます。時間的な方向と新しい出来事を指定してください。橋渡しではクリップを順序付け、あるショットでカメラが戸口に入り、次の環境に到着するなど、各組の間の移行を説明します。\n\n単純な延長は通常、元映像の周辺に展開する継続部分を返します。最終結果で元区間も繰り返すなら、明確な指示を加えてください。2 本または 3 本のクリップ間の接続を完成させる場合、文書化されたワークフローは元素材と新たな移行内容の両方を含められます。これは、冒頭や結末の展開、つなぎの行動を未指定のままにせず準備済みシーンを接続する作業に役立ちます。\n\n### 標準版の出力と 4K\n\n標準版は 24 fps の MP4、4～15 秒の時間を文書化しています。出力は 8 ビット色深度の 480p、720p、1080p に加え、10 ビット色深度の 4K です。対応比率は 21:9、16:9、4:3、1:1、3:4、9:16 です。適応型フレーミングと時間の自動選択も文書化されています。Fast 版には、より限定された独自の 480p/720p 出力仕様があります。\n\n4K 出力は H.265/HEVC エンコードを使います。10 ビットはより多くの階調と滑らかな色の移行を保ち、繊細な光や色のグラデーションを持つ素材で重要です。目的の再生・編集環境がデコードできるか確認してください。一部のブラウザーや機器は直接再生できません。対応するコンテナだけでは、動画デコードの互換性までは保証しません。\n\nモデルは同期した音か無音動画を生成でき、次のシーン向けに最後に生成したフレームを返せます。生成音声はモノラルです。2.0 系列は独立した 2 段階 Draft プレビューモードに非対応なので、別の Seedance 版からそのプレビュー機能を推定しないでください。\n\n### 参照の準備と実質的な制限\n\n文書化された参照枠は、画像 9 枚、動画 3 本、音声クリップ 3 本です。このメーカー仕様では、実在する人間の顔を含む参照画像・動画の直接アップロードは受け付けず、人物制作には対応する人物アセットのワークフローを使います。動画・音声の各クリップは 2～15 秒です。動画参照すべての合計は 15 秒以内で、音声参照すべてにも独立した合計 15 秒の枠があります。動画は MP4 または MOV、24～60 fps、各最大 200 MB、音声は WAV または MP3、各最大 15 MB です。画像形式は JPEG、PNG、WebP、BMP、TIFF、GIF、HEIC、HEIF です。各画像は 30 MB 未満、リクエストボディは 64 MB 以下です。文書化された参照入力仕様では、画像の幅と高さはそれぞれ 300 ピクセルより大きく 6,000 ピクセル未満、幅と高さの比は 0.4 より大きく 2.5 未満です。参照動画は各辺 300～6,000 ピクセル、比率 0.4～2.5 で、境界値を含み、総画素数は 407,696～8,295,044 です。MP4 または MOV 動画は H.264/AVC または H.265/HEVC 映像、AAC または MP3 音声を使います。\n\nファイルを意図して並べ、Image 1、Video 1、Audio 1 のようにメディア種別と番号で参照します。番号はその種別内のファイル順に従います。引き継ぐ特性と、新シーンを定義すべきではない元内容を説明してください。文書化されたプロンプト言語には英語、スペイン語、インドネシア語、ポルトガル語、日本語があります。対話の発話言語を統一します。ガイドは固有名詞を除く言語混在を避けるよう勧めています。音声で誘導する作品では、話者、正確な台詞、話し方の指示を分けてください。\n\n最初と最後の画像は、互換性のあるフレーミングで準備します。入力画像と出力寸法の不一致は、切り抜きや唐突な見た目の変更を起こす場合があります。寸法の一致と適応型フレーミングが対策として文書化されています。説明は出来事と参照の役割に集中させてください。メーカーは、長いプロンプトが情報を分散させ、細部を無視させる場合があると注意しています。生成された動き、参照の連続性、音声演技、シーン間のつなぎを、制作結果の別々の要素として確認します。\n\n### ショット計画と文字の指示\n\n複雑なシーンでは、指示を Shot 1、Shot 2、Shot 3 に整理し、カメラ、被写体の行動、位置、音を順に指定してください。ガイドはショットごとのカメラ移動を 1 つとし、ゆっくりしたつながりのある行動を優先するよう推奨しています。正確なショット別タイムスタンプは不安定なので、複数の厳密な時間枠を強制するより出来事の順序で制御します。\n\nモデルはスローガン、字幕、吹き出しなど一般的な文字も生成します。色、視覚表現、位置、登場方法を指示できます。珍しい文字や特殊記号ではなく一般的な文字を使い、動きの中の言葉を確認してください。被写体参照では、各素材を目的のキャラクターや物体に明確に結び付けます。製品の各視点は異なる視覚情報を提供できますが、キャラクターのターンアラウンドコラージュは顔の同一性を混乱させる場合があります。明瞭な顔写真と全身画像を別々に使うことが、文書化されたキャラクター参照の推奨です。\n\n### 編集前に確認する挙動\n\nガイドには、不要な字幕、ロゴ、キャラクターの重複、スタイルの変化が記載されています。明瞭な元素材、一貫したラベル、明示的な制約はリスクを減らしますが、不要な文字や重複人物の消失を保証しません。参照人物が 4 人を超えることは安定性のリスクと報告され、モデルが受け付けるファイル数とは別です。\n\n動画延長ではつなぎ目が飛んだり巻き戻ったりし、継続を繰り返すと画質低下が累積する場合があります。境界フレームを確認し、延長を重ね過ぎないでください。参照した声が元の声質と異なる場合があり、ナレーションはクリック音や急な途切れで終わることがあります。その対策として音声フェードが文書化されています。中国語の多音字、珍しい文字、似た形の文字は発音を誤る場合があります。カウントダウンなど正確なアニメーション効果では、言葉だけの要求より動きの参照が有益です。これらは、クリップを選ぶ際に同一性、文字、動き、音を別々に確認する具体的な理由です。",
    "alias_of": null,
    "aliases": [],
    "author": "ByteDance",
    "available": null,
    "canonical_model": "bytedance/seedance-2.0",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text",
        "image",
        "video",
        "audio"
      ],
      "manufacturer_output": [
        "video"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.3024",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.3024",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ],
        "summary": "構成の料金情報はすべて詳細で確認できます。"
      }
    ],
    "ctx": null,
    "declared_tariff_references": [
      {
        "client_selectable": false,
        "key": "cb128050bf8483dc92f31388",
        "label": "動画設定の料金参照情報",
        "profiles": [
          {
            "basis": "動画トークン単価が主な価格参照値です。見出しに表示される秒単位の概算料金は別の参照値であり、追加料金ではありません。",
            "dimensions": {
              "conditions": "この価格キーには追加条件が定義されていません。"
            },
            "label": "動画トークン料金",
            "units": [
              {
                "amount": "0.014",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "key": "video_token",
                "label": "Video-token price",
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "rate_role": "typed_video_token_primary_reference",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "動画トークン単価が主な価格参照値です。見出しに表示される秒単位の概算料金は別の参照値であり、追加料金ではありません。",
            "dimensions": {
              "conditions": "resolution: 4k"
            },
            "label": "動画トークン料金",
            "units": [
              {
                "amount": "0.008",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "key": "video_token",
                "label": "Video-token price",
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "rate_role": "typed_video_token_primary_reference",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "動画トークン単価が主な価格参照値です。見出しに表示される秒単位の概算料金は別の参照値であり、追加料金ではありません。",
            "dimensions": {
              "conditions": "resolution: 1080p"
            },
            "label": "動画トークン料金",
            "units": [
              {
                "amount": "0.0154",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "key": "video_token",
                "label": "Video-token price",
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "rate_role": "typed_video_token_primary_reference",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "動画トークン単価が主な価格参照値です。見出しに表示される秒単位の概算料金は別の参照値であり、追加料金ではありません。",
            "dimensions": {
              "conditions": "音声：without_audio"
            },
            "label": "動画トークン料金",
            "units": [
              {
                "amount": "0.014",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "key": "video_token",
                "label": "Video-token price",
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "rate_role": "typed_video_token_primary_reference",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "動画トークン単価が主な価格参照値です。見出しに表示される秒単位の概算料金は別の参照値であり、追加料金ではありません。",
            "dimensions": {
              "conditions": "入力：with_video_input"
            },
            "label": "動画トークン料金",
            "units": [
              {
                "amount": "0.0086",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "key": "video_token",
                "label": "Video-token price",
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "rate_role": "typed_video_token_primary_reference",
                "side": "reference",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "動画トークン単価が主な価格参照値です。見出しに表示される秒単位の概算料金は別の参照値であり、追加料金ではありません。",
            "dimensions": {
              "conditions": "入力：with_video_input；解像度：4k"
            },
            "label": "動画トークン料金",
            "units": [
              {
                "amount": "0.0048",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "key": "video_token",
                "label": "Video-token price",
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "rate_role": "typed_video_token_primary_reference",
                "side": "reference",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "動画トークン単価が主な価格参照値です。見出しに表示される秒単位の概算料金は別の参照値であり、追加料金ではありません。",
            "dimensions": {
              "conditions": "入力：with_video_input；解像度：1080p"
            },
            "label": "動画トークン料金",
            "units": [
              {
                "amount": "0.0094",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "key": "video_token",
                "label": "Video-token price",
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "rate_role": "typed_video_token_primary_reference",
                "side": "reference",
                "unit": "video_token"
              }
            ]
          }
        ]
      }
    ],
    "entity_type": "model",
    "formats": [
      "videos"
    ],
    "id": "bytedance/seedance-2.0",
    "input": [
      "text",
      "image",
      "audio"
    ],
    "kind": "video",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "表示料金は生成前の費用の見積もりです。最終請求額は、元の生成処理に記録された費用から計算されます。実測された出力時間や予測数量が、そのまま最終的な課金数量になるわけではありません。",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "実際に得られた所有出力と、返された実測メタデータをすべて保持してください。",
            "defaults": {
              "aspect_ratio": null,
              "duration": null,
              "generate_audio": "endpoint capability flag when published; omitted unknown stays unknown; never guarantees audio track",
              "resolution": null,
              "seed": null,
              "size": null,
              "wire_omissions_preserved": true
            },
            "errors": [
              {
                "condition": "動画へのアクセスが利用できないか、この動画IDが見つかりません。",
                "http_status": 404,
                "public_identifier_field": "error.type",
                "recovery": "動画へのアクセス権を確認してください。既存の動画には、元の公開IDと同じAPIキーを使用してください。",
                "type": "not_found_error"
              },
              {
                "condition": "APIキーが認証済みアカウントと一致しません。",
                "http_status": 401,
                "public_identifier_field": "error.type",
                "recovery": "送信する前に、APIキーとアカウントのアクセス権を確認してください。",
                "type": "authentication_error"
              },
              {
                "condition": "リクエストを読み取れないか、ダウンロードのインデックスが無効です。",
                "http_status": 400,
                "public_identifier_field": "error.type",
                "recovery": "リクエスト本文を修正してください。ダウンロードする場合は、元のタスクから返された出力インデックスを選択してください。",
                "type": "invalid_request_error"
              },
              {
                "condition": "選択された動画設定の料金を算出できません。",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "サポートされている動画設定を選び、必須オプションをすべて指定してから、修正したリクエストを送信してください。",
                "type": "price_unavailable"
              },
              {
                "condition": "動画入力、または元の継続タスクが無効です。",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "有効なHTTPS入力を使用してください。継続する場合は、完了した元の動画の公開IDと、同じAPIキーを使用してください。",
                "type": "invalid_request_error"
              },
              {
                "condition": "利用可能な残高または上限の制約により、料金を仮押さえできません。",
                "http_status": 402,
                "public_identifier_field": "error.type",
                "recovery": "新しいリクエストを送る前に、利用可能な残高と上限を確認してください。",
                "type": "billing_error"
              },
              {
                "condition": "動画の検証、保存領域、またはサービスへのアクセスを一時的に利用できません。",
                "http_status": 503,
                "public_identifier_field": "error.type",
                "recovery": "サービスが利用可能になるまでお待ちください。すでに動画IDがある場合は、別の生成を作成せず、その元のタスクを確認してください。",
                "type": "server_error"
              },
              {
                "code": "result_pending_check",
                "condition": "元の動画の結果と請求額を確認する必要があります。",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "返された動画IDを保持し、そのタスクを確認してください。確認中に、代わりの生成リクエストを送信しないでください。",
                "type": "server_error"
              },
              {
                "code": "owned_result_unavailable",
                "condition": "既存の動画のダウンロードを一時的に利用できません。",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "後で同じ動画タスクを確認し、その既存の出力をダウンロードしてください。新しい生成を行うと、別の操作が作成されます。",
                "type": "server_error"
              },
              {
                "condition": "動画コンテンツは公開されていません。",
                "http_status": 409,
                "public_identifier_field": "error.type",
                "recovery": "元のタスクのステータスを確認してください。completedと報告されたらダウンロードします。failedと報告された場合は、その料金確認の通知に従ってください。",
                "type": "video_not_ready"
              }
            ],
            "hints": [
              "No null values or duplicate keys at any JSON object level",
              "No duration/resolution/aspect default is inserted",
              "Prompt required for all21 despite broader official image-only schema",
              "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
              "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
              "No n/output-count/client price fields accepted",
              "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel_endpoint": null,
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}/content",
                  "query": {
                    "index": "actual output index"
                  }
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "mode": "submit_once_poll_original",
              "public_id": "video_<uuid>; owner user/key/group scope",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}"
                }
              ],
              "submit_status": 202,
              "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
              "terminal_provider_states": [
                "failed",
                "cancelled",
                "expired"
              ],
              "unknown": "503 result_pending_check + 元のid + X-Should-Retry:false；元のリクエストを決して再実行しないでください"
            },
            "material_combinations": [
              {
                "mode": "text_to_video",
                "model": {
                  "enum": [
                    "bytedance/seedance-2.0"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "テキストのプロンプトと、サポートされている整数の秒数を指定してください。一覧にある正確なサイズ、または一覧の寸法に対応する解像度とアスペクト比を使用します。",
                "required": [
                  "model",
                  "prompt",
                  "duration"
                ],
                "required_material": "テキストのプロンプト。"
              },
              {
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "mode": "image_to_video",
                "model": {
                  "enum": [
                    "bytedance/seedance-2.0"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "frame_imagesはオブジェクトの配列で、各オブジェクトにはtype=image_url、urlを含むimage_url、およびframe_typeを指定します。公開HTTPS画像URLを使用してください。first_frameとlast_frameはそれぞれ一度だけ指定できます。一覧にある出力サイズ、または互換性のある寸法を使用してください。動画の参照素材は追加しないでください。",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "frame_images"
                ],
                "required_material": "テキストのプロンプトとフレーム画像。"
              },
              {
                "mode": "Reference to video",
                "model": {
                  "enum": [
                    "bytedance/seedance-2.0"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "input_referencesは配列です。各オブジェクトにはtype=image_urlまたはtype=audio_urlと、urlを含む対応するURLオブジェクトを指定します。公開HTTPSリンクを使用してください。参照モードを選ぶ場合はframe_imagesを省略します。動画の参照素材の料金は算出できません。",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "input_references"
                ],
                "required_material": "テキストのプロンプトと、画像または音声の参照素材。"
              }
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video_frame_images",
              "reference_to_video"
            ],
            "outputs": {
              "content_range_supported": true,
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "condition": "Always present for each completed output.",
                  "description": "出力リスト内での、この動画のゼロ始まりの位置。",
                  "field_path": "outputs[].index",
                  "json_schema": {
                    "type": "integer"
                  },
                  "name": "index",
                  "nullable": false,
                  "type": "integer"
                },
                {
                  "condition": "Present after the owned result is available and a signed URL is created.",
                  "description": "この完了済み動画の署名付きHTTPSダウンロードURL。",
                  "field_path": "outputs[].content_url",
                  "json_schema": {
                    "type": "string"
                  },
                  "name": "content_url",
                  "nullable": false,
                  "type": "string"
                },
                {
                  "condition": "A nonempty recorded digest is returned; otherwise null.",
                  "description": "元の動画バイト列のSHA-256ダイジェスト。取得できない場合はnullです。",
                  "field_path": "outputs[].sha256",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "sha256",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when the recorded file size is positive.",
                  "description": "元の動画ファイルのサイズ（バイト）。取得できない場合はnullです。",
                  "field_path": "outputs[].size_bytes",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "size_bytes",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned when the measured duration is positive.",
                  "description": "実測された動画の長さ（ミリ秒）。取得できない場合はnullです。",
                  "field_path": "outputs[].duration_ms",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "duration_ms",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "動画の幅（ピクセル）。取得できない場合はnullです。",
                  "field_path": "outputs[].width",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "width",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "動画の高さ（ピクセル）。取得できない場合はnullです。",
                  "field_path": "outputs[].height",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "height",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned together with positive recorded width and height.",
                  "description": "動画コーデックの識別子。記録されていない場合はnullです。",
                  "field_path": "outputs[].video_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "video_codec",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                  "description": "動画に音声トラックが含まれるかどうか。未測定の場合はnullです。",
                  "field_path": "outputs[].has_audio",
                  "json_schema": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "name": "has_audio",
                  "nullable": true,
                  "type": "boolean | null"
                },
                {
                  "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                  "description": "音声コーデックの識別子。識別子が記録されていない場合はnullです。",
                  "field_path": "outputs[].audio_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "audio_codec",
                  "nullable": true,
                  "type": "string | null"
                }
              ],
              "format": "original MP4 bytes; no normalization/transcode",
              "max_aggregate_seconds": 2400,
              "max_bytes_per_output": 67108864,
              "max_seconds_per_output": 600,
              "result": "所有コンテンツの署名付きURL",
              "unmeasured_fields_nullable": true
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "bytedance/seedance-2.0"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "schema": {
                  "const": "bytedance/seedance-2.0"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minLength": 1,
                "name": "prompt",
                "required": true,
                "schema": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  4,
                  5,
                  6,
                  7,
                  8,
                  9,
                  10,
                  11,
                  12,
                  13,
                  14,
                  15
                ],
                "enum_known": true,
                "maximum": 600,
                "minimum": 1,
                "name": "duration",
                "required": true,
                "schema": {
                  "enum": [
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "480p",
                  "720p",
                  "1080p",
                  "4K"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "schema": {
                  "enum": [
                    "480p",
                    "720p",
                    "1080p",
                    "4K"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "1:1",
                  "3:4",
                  "9:16",
                  "4:3",
                  "16:9",
                  "21:9",
                  "9:21"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "schema": {
                  "enum": [
                    "1:1",
                    "3:4",
                    "9:16",
                    "4:3",
                    "16:9",
                    "21:9",
                    "9:21"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "480pと720pでは、generate_audioを省略すると音声ありの料金、falseにすると音声なしの料金が選択されます。1080pと4Kでは、どちらの設定でも解像度に応じた料金が適用されます。返された音声トラックについては、結果のhas_audioを確認してください。",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  true
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": false,
                "schema": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "これらのキーは各フレームオブジェクトに適用されます。テキストのみのリクエストではframe_imagesを省略してください。",
                "content": "フレームオブジェクトの配列。各オブジェクトにはtype=image_url、urlを含むimage_url、およびframe_type=first_frameまたはlast_frameを指定します。各役割はそれぞれ最大一回まで指定できます。公開HTTPS URLを使用してください。",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "maxItems": 2,
                "max_items": 2,
                "minItems": 1,
                "min_items": 1,
                "name": "frame_images",
                "required": false,
                "schema": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "conditions": "参照モードを使用する場合はframe_imagesを省略してください。公開HTTPS URLを使用します。",
                "content": "画像または音声の参照オブジェクトの配列。typeをimage_urlまたはaudio_urlに設定し、urlを含む対応するURLオブジェクトを指定してください。動画の参照素材については、引き続き料金を算出できません。",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "input_references",
                "required": false,
                "schema": {
                  "items": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "audio_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "480x480",
                  "480x640",
                  "480x854",
                  "640x480",
                  "854x480",
                  "1120x480",
                  "720x720",
                  "720x960",
                  "720x1280",
                  "720x1680",
                  "960x720",
                  "1280x720",
                  "1680x720",
                  "1080x1080",
                  "1080x1440",
                  "1080x1920",
                  "1440x1080",
                  "1920x1080",
                  "2520x1080",
                  "3840x2160",
                  "2160x3840",
                  "2160x2160",
                  "2880x2160",
                  "2160x2880",
                  "5040x2160"
                ],
                "enum_known": true,
                "name": "size",
                "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                "required": false,
                "schema": {
                  "enum": [
                    "480x480",
                    "480x640",
                    "480x854",
                    "640x480",
                    "854x480",
                    "1120x480",
                    "720x720",
                    "720x960",
                    "720x1280",
                    "720x1680",
                    "960x720",
                    "1280x720",
                    "1680x720",
                    "1080x1080",
                    "1080x1440",
                    "1080x1920",
                    "1440x1080",
                    "1920x1080",
                    "2520x1080",
                    "3840x2160",
                    "2160x3840",
                    "2160x2160",
                    "2880x2160",
                    "2160x2880",
                    "5040x2160"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maximum": 9223372036854775807,
                "minimum": -9223372036854775808,
                "name": "seed",
                "required": false,
                "schema": {
                  "maximum": 9223372036854775807,
                  "minimum": -9223372036854775808,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "callback_url",
                "pattern": "^https://",
                "required": false,
                "schema": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "session_id",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "user",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              }
            ],
            "request_schema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "additionalProperties": false,
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "1:1",
                    "3:4",
                    "9:16",
                    "4:3",
                    "16:9",
                    "21:9",
                    "9:21"
                  ]
                },
                "callback_url": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "creativity": false,
                "duration": {
                  "enum": [
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "frame_images": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "generate_audio": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "input_references": {
                  "items": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "audio_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "model": {
                  "const": "bytedance/seedance-2.0"
                },
                "previous_job_id": false,
                "prompt": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "provider": false,
                "resolution": {
                  "enum": [
                    "480p",
                    "720p",
                    "1080p",
                    "4K"
                  ]
                },
                "seed": {
                  "maximum": 9223372036854775807,
                  "minimum": -9223372036854775808,
                  "type": "integer"
                },
                "session_id": {
                  "maxLength": 256,
                  "type": "string"
                },
                "size": {
                  "enum": [
                    "480x480",
                    "480x640",
                    "480x854",
                    "640x480",
                    "854x480",
                    "1120x480",
                    "720x720",
                    "720x960",
                    "720x1280",
                    "720x1680",
                    "960x720",
                    "1280x720",
                    "1680x720",
                    "1080x1080",
                    "1080x1440",
                    "1080x1920",
                    "1440x1080",
                    "1920x1080",
                    "2520x1080",
                    "3840x2160",
                    "2160x3840",
                    "2160x2160",
                    "2880x2160",
                    "2160x2880",
                    "5040x2160"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "trace": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "upscale_factor": false,
                "user": {
                  "maxLength": 256,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt",
                "duration"
              ],
              "title": "Video generation request",
              "type": "object",
              "x-source-global-rules": [
                "No null values or duplicate keys at any JSON object level",
                "No duration/resolution/aspect default is inserted",
                "Prompt required for all21 despite broader official image-only schema",
                "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
                "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
                "No n/output-count/client price fields accepted",
                "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
              ],
              "x-source-material-combinations": [
                "Exact model/card, positive published duration, model resolution/aspect membership and valid frozen quote are all required; independent enum arrays are not proven provider Cartesian combinations.",
                "Use exact published size or compatible resolution/aspect. Omitted options stay omitted; no guessed geometry.",
                "first_frame/last_frame roles each occur at most once; frame_images wins mode precedence over input_references.",
                "provider options are unavailable for this model despite any published passthrough-name allowlist.",
                "Request geometry is required for the pre-generation estimate and reserve. Returned geometry and track time describe the generated output; final charge follows the actual billed configuration.",
                "Video references with *_with_video_input quantity are rejected; image/audio references only where model reference types admit them."
              ]
            },
            "unsupported": [
              "provider",
              "previous_job_id",
              "upscale_factor",
              "creativity"
            ]
          },
          "input": {
            "additional_properties": false,
            "content_type": "application/json",
            "material_types": [
              "text",
              "image",
              "audio"
            ],
            "optional_controls": [
              "resolution",
              "aspect_ratio",
              "generate_audio",
              "frame_images",
              "input_references",
              "size",
              "seed",
              "callback_url",
              "session_id",
              "trace",
              "user"
            ],
            "required": [
              "model",
              "prompt",
              "duration"
            ]
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}/content",
                "query": {
                  "index": "actual output index"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "mode": "submit_once_poll_original",
            "public_id": "video_<uuid>; owner user/key/group scope",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}"
              }
            ],
            "submit_status": 202,
            "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
            "terminal_provider_states": [
              "failed",
              "cancelled",
              "expired"
            ],
            "unknown": "503 result_pending_check + originalid + X-Should-Retry:false; never replay original"
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_video",
            "image_to_video_frame_images",
            "reference_to_video"
          ],
          "output": {
            "content_range_supported": true,
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "condition": "Always present for each completed output.",
                "description": "Zero-based position of this video in the outputs list.",
                "field_path": "outputs[].index",
                "json_schema": {
                  "type": "integer"
                },
                "name": "index",
                "nullable": false,
                "type": "integer"
              },
              {
                "condition": "Present after the owned result is available and a signed URL is created.",
                "description": "Signed HTTPS download URL for this completed video.",
                "field_path": "outputs[].content_url",
                "json_schema": {
                  "type": "string"
                },
                "name": "content_url",
                "nullable": false,
                "type": "string"
              },
              {
                "condition": "A nonempty recorded digest is returned; otherwise null.",
                "description": "SHA-256 digest of the original video bytes; null if unavailable.",
                "field_path": "outputs[].sha256",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "sha256",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when the recorded file size is positive.",
                "description": "Size of the original video file in bytes; null if unavailable.",
                "field_path": "outputs[].size_bytes",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "size_bytes",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned when the measured duration is positive.",
                "description": "Measured video duration in milliseconds; null if unavailable.",
                "field_path": "outputs[].duration_ms",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "duration_ms",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video width in pixels; null if unavailable.",
                "field_path": "outputs[].width",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "width",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video height in pixels; null if unavailable.",
                "field_path": "outputs[].height",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "height",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned together with positive recorded width and height.",
                "description": "Video codec identifier; null if not recorded.",
                "field_path": "outputs[].video_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "video_codec",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                "description": "Whether the video contains an audio track; null if not measured.",
                "field_path": "outputs[].has_audio",
                "json_schema": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "name": "has_audio",
                "nullable": true,
                "type": "boolean | null"
              },
              {
                "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                "description": "Audio codec identifier; null when no identifier is recorded.",
                "field_path": "outputs[].audio_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "audio_codec",
                "nullable": true,
                "type": "string | null"
              }
            ],
            "format": "original MP4 bytes; no normalization/transcode",
            "max_aggregate_seconds": 2400,
            "max_bytes_per_output": 67108864,
            "max_seconds_per_output": 600,
            "result": "signed owned content URLs",
            "unmeasured_fields_nullable": true
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "動画トークン単価が主な価格参照値です。見出しに表示される秒単位の概算料金は別の参照値であり、追加料金ではありません。",
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "動画トークン料金",
            "units": [
              {
                "amount": "0.014000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.000014",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "動画トークン単価が主な価格参照値です。見出しに表示される秒単位の概算料金は別の参照値であり、追加料金ではありません。",
            "dimensions": {
              "conditions": "resolution: 1080p",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "動画トークン料金",
            "units": [
              {
                "amount": "0.0154000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_1080p",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000154",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "動画トークン単価が主な価格参照値です。見出しに表示される秒単位の概算料金は別の参照値であり、追加料金ではありません。",
            "dimensions": {
              "conditions": "input: with_video_input; resolution: 1080p",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "動画トークン料金",
            "units": [
              {
                "amount": "0.0094000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_1080p_with_video_input",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000094",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "reference",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "動画トークン単価が主な価格参照値です。見出しに表示される秒単位の概算料金は別の参照値であり、追加料金ではありません。",
            "dimensions": {
              "conditions": "resolution: 4k",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "動画トークン料金",
            "units": [
              {
                "amount": "0.008000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_4k",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.000008",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "動画トークン単価が主な価格参照値です。見出しに表示される秒単位の概算料金は別の参照値であり、追加料金ではありません。",
            "dimensions": {
              "conditions": "入力：with_video_input；解像度：4k",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "動画トークン料金",
            "units": [
              {
                "amount": "0.0048000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_4k_with_video_input",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000048",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "reference",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "動画トークン単価が主な価格参照値です。見出しに表示される秒単位の概算料金は別の参照値であり、追加料金ではありません。",
            "dimensions": {
              "conditions": "input: with_video_input",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "動画トークン料金",
            "units": [
              {
                "amount": "0.0086000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_with_video_input",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000086",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "reference",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "audio: without_audio",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.014000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_without_audio",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.000014",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "この見積もりは追加料金ではなく、完了した生成処理に対する固定料金でもありません。",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "生成費用の見積もり",
            "units": [
              {
                "amount": "0.3024",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.3024",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nfrom pathlib import Path\nPath('request.json').write_text('{\"model\":\"bytedance/seedance-2.0\",\"prompt\":\"A serene mountain landscape at sunset\",\"duration\":4,\"resolution\":\"480p\",\"size\":\"480x480\",\"generate_audio\":false}', encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('result.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_STATUS_URL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path('result.json').read_text())\nif not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')\nPath('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error \"$(cat status-url.txt)\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('status.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "GET original status",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path('status.json').read_text())\nif r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')\nif not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')\nurls=[]\nfor i,u in enumerate(r.get('data',[])):\n    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)\n    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')\n    target=Path('owned-'+label+'.bin')\n    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)\nprint('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')\nPY_ASSETS\n",
            "label": "Save every completed owned output",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image",
          "audio"
        ],
        "label": "Видео",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.014000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.000014",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "resolution: 1080p",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0154000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_1080p",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000154",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "input: with_video_input; resolution: 1080p",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0094000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_1080p_with_video_input",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000094",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "reference",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "resolution: 4k",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.008000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_4k",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.000008",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "input: with_video_input; resolution: 4k",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0048000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_4k_with_video_input",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000048",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "reference",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "input: with_video_input",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0086000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_with_video_input",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000086",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "reference",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "audio: without_audio",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.014000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_without_audio",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.000014",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.3024",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.3024",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "bytedance/seedance-2.0",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{public_id}",
          "GET /v1/videos/{public_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.014000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.000014",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.0154000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens_1080p",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.0000154",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.0094000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens_1080p_with_video_input",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.0000094",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "reference",
            "unit": "video_token"
          },
          {
            "amount": "0.008000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens_4k",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.000008",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.0048000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens_4k_with_video_input",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.0000048",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "reference",
            "unit": "video_token"
          },
          {
            "amount": "0.0086000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens_with_video_input",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.0000086",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "reference",
            "unit": "video_token"
          },
          {
            "amount": "0.014000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens_without_audio",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.000014",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.3024",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.3024",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "bytedance/seedance-2.0",
        "request_model_id": "bytedance/seedance-2.0",
        "route_label": "Ultra"
      }
    ],
    "name": "ByteDance: Seedance 2.0",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.3024,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.3024,
      "varies": false
    },
    "pricing_profiles": [
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "billable_token_source": "usage.completion_tokens",
          "estimated_quantity_formula": "(input_video_duration+output_video_duration)*output_width*output_height*output_fps/1024",
          "image_audio_ref_independent_charge": "not listed separately in this tariff",
          "input_includes_video": false,
          "maker_model_id": "dreamina-seedance-2-0-260128",
          "minimum_token_schedule": "depends on resolution/aspect/output duration; separate official estimate table, actual usage governs",
          "minimum_tokens_when_video_input": false,
          "offline_not_supported": true,
          "quoted_unit": "1000000_video_tokens",
          "resolution": "480p/720p"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.000014",
            "amount_unit": "usd_per_token",
            "conditions": {
              "billable_token_source": "usage.completion_tokens",
              "estimated_quantity_formula": "(input_video_duration+output_video_duration)*output_width*output_height*output_fps/1024",
              "image_audio_ref_independent_charge": "not listed separately in this tariff",
              "input_includes_video": false,
              "maker_model_id": "dreamina-seedance-2-0-260128",
              "minimum_token_schedule": "depends on resolution/aspect/output duration; separate official estimate table, actual usage governs",
              "minimum_tokens_when_video_input": false,
              "offline_not_supported": true,
              "quoted_unit": "1000000_video_tokens",
              "resolution": "480p/720p"
            },
            "key": "base",
            "label": "base",
            "profile_index": 0,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "video_token"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "billable_token_source": "usage.completion_tokens",
          "estimated_quantity_formula": "(input_video_duration+output_video_duration)*output_width*output_height*output_fps/1024",
          "image_audio_ref_independent_charge": "not listed separately in this tariff",
          "input_includes_video": true,
          "maker_model_id": "dreamina-seedance-2-0-260128",
          "minimum_token_schedule": "depends on resolution/aspect/output duration; separate official estimate table, actual usage governs",
          "minimum_tokens_when_video_input": true,
          "offline_not_supported": true,
          "quoted_unit": "1000000_video_tokens",
          "resolution": "480p/720p"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.0000086",
            "amount_unit": "usd_per_token",
            "conditions": {
              "billable_token_source": "usage.completion_tokens",
              "estimated_quantity_formula": "(input_video_duration+output_video_duration)*output_width*output_height*output_fps/1024",
              "image_audio_ref_independent_charge": "not listed separately in this tariff",
              "input_includes_video": true,
              "maker_model_id": "dreamina-seedance-2-0-260128",
              "minimum_token_schedule": "depends on resolution/aspect/output duration; separate official estimate table, actual usage governs",
              "minimum_tokens_when_video_input": true,
              "offline_not_supported": true,
              "quoted_unit": "1000000_video_tokens",
              "resolution": "480p/720p"
            },
            "key": "base",
            "label": "base",
            "profile_index": 1,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "video_token"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "billable_token_source": "usage.completion_tokens",
          "estimated_quantity_formula": "(input_video_duration+output_video_duration)*output_width*output_height*output_fps/1024",
          "image_audio_ref_independent_charge": "not listed separately in this tariff",
          "input_includes_video": false,
          "maker_model_id": "dreamina-seedance-2-0-260128",
          "minimum_token_schedule": "depends on resolution/aspect/output duration; separate official estimate table, actual usage governs",
          "minimum_tokens_when_video_input": false,
          "offline_not_supported": true,
          "quoted_unit": "1000000_video_tokens",
          "resolution": "1080p"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.0000154",
            "amount_unit": "usd_per_token",
            "conditions": {
              "billable_token_source": "usage.completion_tokens",
              "estimated_quantity_formula": "(input_video_duration+output_video_duration)*output_width*output_height*output_fps/1024",
              "image_audio_ref_independent_charge": "not listed separately in this tariff",
              "input_includes_video": false,
              "maker_model_id": "dreamina-seedance-2-0-260128",
              "minimum_token_schedule": "depends on resolution/aspect/output duration; separate official estimate table, actual usage governs",
              "minimum_tokens_when_video_input": false,
              "offline_not_supported": true,
              "quoted_unit": "1000000_video_tokens",
              "resolution": "1080p"
            },
            "key": "base",
            "label": "base",
            "profile_index": 2,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "video_token"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "billable_token_source": "usage.completion_tokens",
          "estimated_quantity_formula": "(input_video_duration+output_video_duration)*output_width*output_height*output_fps/1024",
          "image_audio_ref_independent_charge": "not listed separately in this tariff",
          "input_includes_video": true,
          "maker_model_id": "dreamina-seedance-2-0-260128",
          "minimum_token_schedule": "depends on resolution/aspect/output duration; separate official estimate table, actual usage governs",
          "minimum_tokens_when_video_input": true,
          "offline_not_supported": true,
          "quoted_unit": "1000000_video_tokens",
          "resolution": "1080p"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.0000094",
            "amount_unit": "usd_per_token",
            "conditions": {
              "billable_token_source": "usage.completion_tokens",
              "estimated_quantity_formula": "(input_video_duration+output_video_duration)*output_width*output_height*output_fps/1024",
              "image_audio_ref_independent_charge": "not listed separately in this tariff",
              "input_includes_video": true,
              "maker_model_id": "dreamina-seedance-2-0-260128",
              "minimum_token_schedule": "depends on resolution/aspect/output duration; separate official estimate table, actual usage governs",
              "minimum_tokens_when_video_input": true,
              "offline_not_supported": true,
              "quoted_unit": "1000000_video_tokens",
              "resolution": "1080p"
            },
            "key": "base",
            "label": "base",
            "profile_index": 3,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "video_token"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "billable_token_source": "usage.completion_tokens",
          "estimated_quantity_formula": "(input_video_duration+output_video_duration)*output_width*output_height*output_fps/1024",
          "image_audio_ref_independent_charge": "not listed separately in this tariff",
          "input_includes_video": false,
          "maker_model_id": "dreamina-seedance-2-0-260128",
          "minimum_token_schedule": "depends on resolution/aspect/output duration; separate official estimate table, actual usage governs",
          "minimum_tokens_when_video_input": false,
          "offline_not_supported": true,
          "quoted_unit": "1000000_video_tokens",
          "resolution": "4K"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.000008",
            "amount_unit": "usd_per_token",
            "conditions": {
              "billable_token_source": "usage.completion_tokens",
              "estimated_quantity_formula": "(input_video_duration+output_video_duration)*output_width*output_height*output_fps/1024",
              "image_audio_ref_independent_charge": "not listed separately in this tariff",
              "input_includes_video": false,
              "maker_model_id": "dreamina-seedance-2-0-260128",
              "minimum_token_schedule": "depends on resolution/aspect/output duration; separate official estimate table, actual usage governs",
              "minimum_tokens_when_video_input": false,
              "offline_not_supported": true,
              "quoted_unit": "1000000_video_tokens",
              "resolution": "4K"
            },
            "key": "base",
            "label": "base",
            "profile_index": 4,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "video_token"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "billable_token_source": "usage.completion_tokens",
          "estimated_quantity_formula": "(input_video_duration+output_video_duration)*output_width*output_height*output_fps/1024",
          "image_audio_ref_independent_charge": "not listed separately in this tariff",
          "input_includes_video": true,
          "maker_model_id": "dreamina-seedance-2-0-260128",
          "minimum_token_schedule": "depends on resolution/aspect/output duration; separate official estimate table, actual usage governs",
          "minimum_tokens_when_video_input": true,
          "offline_not_supported": true,
          "quoted_unit": "1000000_video_tokens",
          "resolution": "4K"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.0000048",
            "amount_unit": "usd_per_token",
            "conditions": {
              "billable_token_source": "usage.completion_tokens",
              "estimated_quantity_formula": "(input_video_duration+output_video_duration)*output_width*output_height*output_fps/1024",
              "image_audio_ref_independent_charge": "not listed separately in this tariff",
              "input_includes_video": true,
              "maker_model_id": "dreamina-seedance-2-0-260128",
              "minimum_token_schedule": "depends on resolution/aspect/output duration; separate official estimate table, actual usage governs",
              "minimum_tokens_when_video_input": true,
              "offline_not_supported": true,
              "quoted_unit": "1000000_video_tokens",
              "resolution": "4K"
            },
            "key": "base",
            "label": "base",
            "profile_index": 5,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "video_token"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "no_method_admission_claim": true,
          "scope": "supplier_tariff_reference"
        },
        "dimensions": {},
        "label": "Ailoot Ultra · Tariff components",
        "units": [
          {
            "amount": "0.014000",
            "amount_unit": "usd_per_thousand_tokens",
            "basis": "video token",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.000014",
            "key": "video_tokens",
            "label": "video token",
            "native_amount_usd_per_unit": "0.000014",
            "native_quantity": 1,
            "quantity": 1000,
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.008000",
            "amount_unit": "usd_per_thousand_tokens",
            "basis": "resolution=4k",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.000008",
            "key": "video_tokens_4k",
            "label": "video token",
            "native_amount_usd_per_unit": "0.000008",
            "native_quantity": 1,
            "quantity": 1000,
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.0154000",
            "amount_unit": "usd_per_thousand_tokens",
            "basis": "resolution=1080p",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.0000154",
            "key": "video_tokens_1080p",
            "label": "video token",
            "native_amount_usd_per_unit": "0.0000154",
            "native_quantity": 1,
            "quantity": 1000,
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.014000",
            "amount_unit": "usd_per_thousand_tokens",
            "basis": "audio=false",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.000014",
            "key": "video_tokens_without_audio",
            "label": "video token",
            "native_amount_usd_per_unit": "0.000014",
            "native_quantity": 1,
            "quantity": 1000,
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.0086000",
            "amount_unit": "usd_per_thousand_tokens",
            "basis": "video_reference_present Source-only tariff component.",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.0000086",
            "key": "video_tokens_with_video_input",
            "label": "video token",
            "native_amount_usd_per_unit": "0.0000086",
            "native_quantity": 1,
            "quantity": 1000,
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.0048000",
            "amount_unit": "usd_per_thousand_tokens",
            "basis": "resolution=4k · video_reference_present Source-only tariff component.",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.0000048",
            "key": "video_tokens_4k_with_video_input",
            "label": "video token",
            "native_amount_usd_per_unit": "0.0000048",
            "native_quantity": 1,
            "quantity": 1000,
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.0094000",
            "amount_unit": "usd_per_thousand_tokens",
            "basis": "resolution=1080p · video_reference_present Source-only tariff component.",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.0000094",
            "key": "video_tokens_1080p_with_video_input",
            "label": "video token",
            "native_amount_usd_per_unit": "0.0000094",
            "native_quantity": 1,
            "quantity": 1000,
            "side": "out",
            "unit": "video_token"
          }
        ]
      }
    ],
    "public_id": "bytedance/seedance-2.0",
    "short": "ByteDance Seedance 2.0 は、ネイティブな音声・映像生成と画像、動画、音の参照を組み合わせます。新しいシーンの演出、既存映像の編集、シーケンスの延長ができ、標準版には文書化された 1080p と 10 ビット 4K 出力があります。"
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "ByteDance Seedance 2.0 は、ネイティブな音声・映像生成と画像、動画、音の参照を組み合わせます。新しいシーンの演出、既存映像の編集、シーケンスの延長ができ、標準版には文書化された 1080p と 10 ビット 4K 出力があります。",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_exact_canonical_sha256": "b448527382679858403c2630c55b504340f20b8f5c8ef9ec54a6d6a05a589c2a",
    "raw_model_js_projection_sha256": "990dc6943a176ae746d4bde60e2afb535f5b5e4213b6ceb732282b09cbaafe72",
    "raw_model_json_sha256": "b448527382679858403c2630c55b504340f20b8f5c8ef9ec54a6d6a05a589c2a",
    "renderer_sha256": "b06e5309d3e585ab5fe0535c1a8bd6320bdc357ea8509c2389320e8fa40c36e5"
  },
  "sourceRevision": "b48ea97066f25a6be76a8680382bf160a1005461451a863a15a8c02974f3d03f"
}
