> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mixroute.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Seedance

> Seedanceの動画生成パラメーター、対応する値、入力制約、およびリクエスト例。

Seedanceは、テキストと対応するメディア入力から動画を生成します。DoubaoとDreaminaのルートプレフィックスは同じパラメーター名を使用しますが、機能と制限は選択したモデルのバージョンによって異なります。

`POST https://api.mixroute.ai/v1/video/generations`

<Info>
  `model`、`prompt`、`asset`はルートに置いてください。`content`、`duration`、`ratio`、`resolution`、`generate_audio`を含む、すべてのプロバイダーフィールドを単一の`metadata`オブジェクト内に配置してください。
</Info>

ルート別ガイド：[Doubao](/ja/api-reference/endpoint/doubao) | [Dreamina](/ja/api-reference/endpoint/dreamina)

## モデルID

| シリーズ | MixRouteのID |
| - | - |
| Seedance 2.5 | `dreamina-seedance-2-5-260628` / `doubao-seedance-2-5-260628` |
| Seedance 2.0 | `dreamina-seedance-2-0-260128` / `doubao-seedance-2-0-260128` |
| Seedance 2.0 Fast | `dreamina-seedance-2-0-fast-260128` / `doubao-seedance-2-0-fast-260128` |
| Seedance 2.0 Mini | `dreamina-seedance-2-0-mini-260615` / `doubao-seedance-2-0-mini-260615` |

モデルの利用可否はアカウントによって異なります。[モデルマーケットプレイス](https://console.mixroute.ai/models)に表示される完全なIDを使用してください。

## トップレベルのフィールド

| フィールド | 型 | 必須 | 説明 |
| - | - | - | - |
| `model` | string | はい | モデル表に記載された、完全なMixRouteモデルID。 |
| `prompt` | string | はい | MixRouteの動画プロンプト。`metadata.content`にテキスト項目が含まれる場合は、両方のテキストの整合性を保ってください。 |
| `asset` | boolean | 条件付き | MixRouteのメディア処理の切り替え設定であり、プロバイダーフィールドではありません。ルートに配置してください。テキストのみの例では`false`を使用します。 |
| `metadata` | object | はい | 以下で説明するプロバイダーフィールドを格納するコンテナ。 |

## 生成パラメータ

| フィールド | 型 | 必須 | 説明 |
| - | - | - | - |
| `metadata.content` | object\[] | はい | 動画の生成に使用する入力。テキスト、画像、動画、音声、または対応するドラフトタスクを指定します。テキストのみの生成ではテキストが必須です。メディア入力を組み合わせる場合、プロバイダーはテキスト項目の省略を認めています。 |
| `metadata.omni_reference_task_type` | string | いいえ | Seedance 2.5のみ。デフォルトは`auto`です。値：`auto`、`reference`、`edit`、`extend`。モードを明示すると、タスク種別を早期に検証できます。宣言されたモードと推定された意図が一致しない場合は、それでも非同期で失敗することがあります。 |
| `metadata.resolution` | string | いいえ | 出力解像度のティアです。対応する値とデフォルトはモデルのバージョンによって異なります。バージョン表を参照してください。値では大文字と小文字が区別されます。 |
| `metadata.ratio` | string | いいえ | 値：`16:9`、`4:3`、`1:1`、`3:4`、`9:16`、`21:9`、`adaptive`。2.5、2.0、1.5 Proのデフォルトは`adaptive`です。1.0では、テキストから動画を生成する場合のデフォルトは`16:9`で、具体的な比率を使用する必要があります。画像から動画を生成する場合のデフォルトは`adaptive`です。 |
| `metadata.duration` | integer | いいえ | リクエストする長さ（秒）。バージョン表を参照してください。対応バージョンでは、`-1`を指定すると長さが自動的に選択されます。Seedance 2.5のデフォルトは`-1`で、動画編集には`-1`が必要です。 |
| `metadata.frames` | integer | いいえ | Seedance 1.0 Pro/Pro Fastのみ。正の整数nについて`25 + 4n`を満たす29〜289の値です。`duration`より優先されます。出力フレームレートは24 fpsです。 |
| `metadata.generate_audio` | boolean | いいえ | 2.5、2.0、1.5 Proに対応しています。デフォルトの`true`では、発話、効果音、音楽などの同期されたモノラル音声を生成します。`false`では無音の動画を生成します。 |
| `metadata.watermark` | boolean | いいえ | デフォルトは`false`です。`true`は右下にAI生成を示す透かしを追加し、`false`は透かしを付けません。 |
| `metadata.output_format` | string | いいえ | Seedance 2.5のみ。デフォルトは`mp4`。値: `mp4`、`mov`。MP4は一般的な再生向けです。MOVはポストプロダクション向けに高い色精度を保持し、対応する再生ソフトウェアが必要です。 |
| `metadata.seed` | integer | いいえ | 1.5 Proと1.0のみ。範囲は-1～2147483647です。デフォルトの-1はランダムシードを意味します。同じシードを再利用すると似た結果が得られる場合がありますが、同一の出力は保証されません。 |
| `metadata.camera_fixed` | boolean | いいえ | 1.5 Proと1.0のみ。参照画像モードでは使用できません。デフォルトは`false`です。`true`はカメラ固定の指示を追加しますが、カメラが完全に静止することを保証するものではありません。 |
| `metadata.return_last_frame` | boolean | いいえ | デフォルトは`false`。`true`を指定すると、生成動画と同じピクセル寸法の、透かしのない最終フレームのPNGがタスク結果に返されます。 |
| `metadata.draft` | boolean | いいえ | デフォルトは`false`です。ドラフトモードはDreamina Seedance 2.5および1.5 Proでサポートされ、`480p`を使用します。Dreamina 2.5の最終生成には`1080p`を使用します。パラメーターの再利用方法はバージョンによって異なります。これらのルールを2.0に適用しないでください。1.5 Proでは、Draftをreturn\_last\_frame=trueまたはオフライン推論と併用できません。 |
| `metadata.service_tier` | string | いいえ | 1.5 Proと1.0のみ。デフォルトの`default`はオンライン推論で、`flex`を指定するとオフライン推論になります。送信後にティアを変更することはできません。2.5および2.0ファミリーは`flex`に対応していません。 |
| `metadata.callback_url` | string | いいえ | タスクステータスのコールバックURL。プロバイダーは、タスク照会レスポンスの構造でPOST通知を送信します。ステータスには`queued`、`running`、`succeeded`、`failed`、`expired`があります。 |
| `metadata.execution_expires_after` | integer | いいえ | 範囲は3600～259200秒、デフォルトは172800（48時間）で、タスクの作成時から計測されます。このしきい値を超えたタスクは、ステータス`expired`で終了します。 |
| `metadata.priority` | integer | いいえ | 2.5および2.0のみ。範囲は0～9、デフォルトは0です。値が大きいタスクは、同じエンドポイントのキューにある優先度の低いタスクより先に処理されます。同じ優先度ではFIFOが維持され、実行中のタスクは中断されません。`flex`との併用はサポートされていません。 |
| `metadata.safety_identifier` | string | いいえ | エンドユーザーを識別する安定した一意の識別子です。英字64文字以内に制限されます。生の個人情報ではなく、ハッシュ化した識別子を使用してください。 |
| `metadata.tools` | object\[] | いいえ | 2.5と2.0のみ。各ツールには`type`が必要で、対応する値は`web_search`です。検索するかどうかはモデルが判断します。照会結果の`usage.tool_usage.web_search`には検索回数が表示されます。 |

## バージョンごとの制限

| バージョン | 解像度 | デフォルトの解像度 | 長さ | 参照の上限（画像 / 動画 / 音声） |
| - | - | - | - | - |
| Seedance 2.5 | `480p` / `720p` / `1080p` | `720p` | 4〜30秒 / -1 | 30 / 10 / 10 |
| Seedance 2.0 | `480p` / `720p` / `1080p` / `4k` | `720p` | 4～15秒 / -1 | 9 / 3 / 3 |
| Seedance 2.0 Fast / Mini | `480p` / `720p` | `720p` | 4～15秒 / -1 | 9 / 3 / 3 |
| Seedance 1.5 Pro | `480p` / `720p` / `1080p` | `720p` | 4〜12秒 / -1 | - |
| Seedance 1.0 Pro / Pro Fast | `480p` / `720p` / `1080p` | `1080p` | 2～12秒 | - |

## コンテンツ項目

| フィールド | 型 | 必須 | 説明 |
| - | - | - | - |
| `metadata.content[].type` | string | はい | モデルの対応状況に応じて、`text`、`image_url`、`video_url`、`audio_url`、`draft_task`のいずれか。 |
| `metadata.content[].text` | string | 条件付き | `type=text`の場合は必須です。生成したい動画を記述します。プロンプトの推奨上限は、中国語で500文字、または英語で1000語です。これは目安であり、入力に対する厳密な上限ではありません。 |
| `metadata.content[].image_url.url` | string | 条件付き | 画像項目には必須です。公開URL、Base64データURLの`data:image/<format>;base64,...`、またはアクセス可能な`asset://` IDを指定します。 |
| `metadata.content[].video_url.url` | string | 条件付き | 動画項目では必須です。公開URLまたはアクセス可能な`asset://` IDを指定します。この入力形式は、動画のBase64データURLには対応していません。 |
| `metadata.content[].audio_url.url` | string | 条件付き | 音声項目では必須。公開URL、`data:audio/<format>;base64,...`、またはアクセス可能な`asset://` ID。 |
| `metadata.content[].draft_task.id` | string | 条件付き | Dreamina Seedance 2.5または1.5 Proで正常に完了した、プロバイダーのDraftタスクID。これはMixRouteのポーリング用タスクIDではありません。Dreamina 2.5のDraft IDは7日後に失効します。 |
| `metadata.content[].role` | string | 条件付き | 最初のフレーム画像1枚の場合、roleを省略するか`first_frame`を指定できます。最初/最後のフレーム間の補間には、`first_frame`と`last_frame`を明示した2つの画像項目が必要です。参照項目には`reference_image`、`reference_video`、または`reference_audio`を使用します。 |

## メディアの制限

| メディア | 制約 |
| - | - |
| 画像 | JPEG/PNG/WebP/BMP/TIFF/GIF。1.5 Pro以降ではHEIC/HEIFもサポートします。画像1枚あたり30 MB未満、各辺300〜6000 px、アスペクト比0.4〜2.5です。最初のフレームの入力には画像1枚、最初/最後のフレームの入力には画像2枚を使用します。 |
| 動画 | MP4/MOV。各ファイルは最大200 MB、24〜60 fps、アスペクト比0.4〜2.5、各辺300〜6000 px、総ピクセル数407696〜8295044です。2.0：各クリップは2〜15秒、合計は最大15秒です。2.5：各クリップは2〜30秒、合計は最大30秒です。編集入力は4〜30秒である必要があります。 |
| 音声 | WAV/MP3。各ファイル最大15 MBです。2.0：各クリップ2〜15秒、合計最大15秒。2.5：各クリップ2〜30秒、合計最大30秒。 |
| リクエスト | JSONリクエスト全体のサイズは、Base64による増加分を含めて最大64 MBです。入力は、モデルのメディア利用許諾要件を満たす必要があります。 |

## シナリオ別の制約

* 最初のフレーム、最初と最後のフレーム、マルチモーダル参照の各ワークフローは併用できません。フレーム用のロールと`reference_*`ロールを混在させないでください。
* Seedance 2.5では、最初/最後のフレームの入力、編集、および延長に`ratio="adaptive"`が必要です。編集には4〜30秒の参照動画が少なくとも1本と`duration=-1`が必要です。延長には参照動画が必要です。任意の`omni_reference_task_type`を使用すると、自動分類の代わりに`edit`または`extend`を明示的に選択できます。
* Seedance 2.0の音声参照には、少なくとも1つの画像または動画の参照が必要です。Seedance 2.5は、音声のみの参照入力もサポートします。
* 旧バージョンは、マルチモーダル参照のワークフロー全体には対応していません。Seedance 1.0 Pro Fastは最初のフレームの入力に対応しますが、最初と最後のフレーム間の補間には対応しません。

## 例

APIを呼び出す前に`MIXROUTE_API_KEY`を設定してください。メディアのプレースホルダーは、アクセス可能な入力に置き換えてください。受け付けられたリクエストは課金対象の生成タスクを作成します。送信がタイムアウトしても自動的に再送信しないでください。

<Tabs>
  <Tab title="テキストから動画を生成">
    ```bash theme={null}
    curl --location "https://api.mixroute.ai/v1/video/generations" \
      --header "Authorization: Bearer $MIXROUTE_API_KEY" \
      --header "Content-Type: application/json" \
      --data '{
      "model": "dreamina-seedance-2-0-260128",
      "prompt": "A professor is teaching a class in a classroom.",
      "asset": false,
      "metadata": {
        "content": [
          {
            "type": "text",
            "text": "A professor is teaching a class in a classroom."
          }
        ],
        "duration": 10,
        "ratio": "16:9",
        "resolution": "720p",
        "generate_audio": false
      }
    }'
    ```
  </Tab>

  <Tab title="最初と最後のフレーム（2.0）">
    ```bash theme={null}
    curl --location "https://api.mixroute.ai/v1/video/generations" \
      --header "Authorization: Bearer $MIXROUTE_API_KEY" \
      --header "Content-Type: application/json" \
      --data '{
      "model": "dreamina-seedance-2-0-260128",
      "prompt": "A professor is teaching a class in a classroom.",
      "asset": true,
      "metadata": {
        "content": [
          {
            "type": "image_url",
            "image_url": {
              "url": "https://static.freebeatfit.com/aiImageEdit/result/L001510027166320955392/1780060289776-1.png"
            },
            "role": "first_frame"
          },
          {
            "type": "image_url",
            "image_url": {
              "url": "https://static.freebeatfit.com/aiImageEdit/result/M1509975287180300288_0004_1780047826.png"
            },
            "role": "last_frame"
          },
          {
            "type": "text",
            "text": "A professor is teaching a class in a classroom."
          }
        ],
        "generate_audio": false,
        "duration": 10,
        "ratio": "16:9"
      }
    }'
    ```
  </Tab>

  <Tab title="最初のフレーム（2.5）">
    ```bash theme={null}
    curl --location "https://api.mixroute.ai/v1/video/generations" \
      --header "Authorization: Bearer $MIXROUTE_API_KEY" \
      --header "Content-Type: application/json" \
      --data '{
      "model": "doubao-seedance-2-5-260628",
      "prompt": "A professor is teaching a class in a classroom.",
      "asset": true,
      "metadata": {
        "content": [
          {
            "type": "text",
            "text": "A professor is teaching a class in a classroom."
          },
          {
            "type": "image_url",
            "image_url": {
              "url": "https://static.freebeatfit.com/aiImageEdit/result/L001510027166320955392/1780060289776-1.png"
            },
            "role": "first_frame"
          }
        ],
        "ratio": "adaptive",
        "duration": 5,
        "resolution": "720p",
        "generate_audio": false
      }
    }'
    ```
  </Tab>

  <Tab title="参照画像と音声">
    ```bash theme={null}
    curl --location "https://api.mixroute.ai/v1/video/generations" \
      --header "Authorization: Bearer $MIXROUTE_API_KEY" \
      --header "Content-Type: application/json" \
      --data '{
      "model": "dreamina-seedance-2-0-fast-260128",
      "prompt": "A professor is teaching a class in a classroom.",
      "asset": true,
      "metadata": {
        "content": [
          {
            "type": "text",
            "text": "A professor is teaching a class in a classroom."
          },
          {
            "type": "image_url",
            "image_url": {
              "url": "https://static.freebeatfit.com/aiImageEdit/result/L001510027166320955392/1780060289776-1.png"
            },
            "role": "reference_image"
          },
          {
            "type": "audio_url",
            "audio_url": {
              "url": "https://example.com/reference.mp3"
            },
            "role": "reference_audio"
          }
        ],
        "duration": 10,
        "ratio": "16:9",
        "generate_audio": true
      }
    }'
    ```
  </Tab>

  <Tab title="動画の編集（2.5）">
    ```bash theme={null}
    curl --location "https://api.mixroute.ai/v1/video/generations" \
      --header "Authorization: Bearer $MIXROUTE_API_KEY" \
      --header "Content-Type: application/json" \
      --data '{
      "model": "doubao-seedance-2-5-260628",
      "prompt": "Change the lighting in Video 1 to sunset and preserve its camera motion.",
      "asset": true,
      "metadata": {
        "content": [
          {
            "type": "text",
            "text": "Change the lighting in Video 1 to sunset and preserve its camera motion."
          },
          {
            "type": "video_url",
            "video_url": {
              "url": "https://example.com/source.mov"
            },
            "role": "reference_video"
          }
        ],
        "omni_reference_task_type": "edit",
        "duration": -1,
        "ratio": "adaptive",
        "output_format": "mov"
      }
    }'
    ```
  </Tab>
</Tabs>

### Python

```python theme={null}
import json
import os
import requests

payload = json.loads(r'''
{
  "model": "dreamina-seedance-2-0-260128",
  "prompt": "A professor is teaching a class in a classroom.",
  "asset": false,
  "metadata": {
    "content": [
      {
        "type": "text",
        "text": "A professor is teaching a class in a classroom."
      }
    ],
    "duration": 10,
    "ratio": "16:9",
    "resolution": "720p",
    "generate_audio": false
  }
}
''')
response = requests.post(
    "https://api.mixroute.ai/v1/video/generations",
    headers={"Authorization": "Bearer " + os.environ["MIXROUTE_API_KEY"]},
    json=payload,
    timeout=60,
)
response.raise_for_status()
print(response.json())
```

## タスクの結果

送信時に返されるMixRouteタスクIDを保存し、[動画タスクの照会](/ja/api-reference/endpoint/query-video-task)をポーリングします。送信が成功するとタスクが作成されます。タスクが成功の終端状態に到達してから結果を読み取ってください。レスポンスエンベロープと結果の格納位置はルートによって異なります。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.