# Seedance 2.0 (https://wanapi.app/ja/docs/seedance-2-0)





Seedance 2.0 は、テキスト、開始・終了フレーム、画像・動画・音声の参照素材に対応し、480p、720p、1080p、4K で出力できます。1 回のリクエストで最長 15 秒の動画を生成します。[モデルの詳細と Playground](/ja/models/seedance-2-0)。

## Wan API に接続する [#wan-api-に接続する]

API のベース URL は `https://api.wanapi.app` です。[API キー設定](/ja/settings/apikeys)で **Seedance** モデルファミリーのキーを作成し、`Authorization: Bearer YOUR_API_KEY` ヘッダーで送信してください。キーはサーバー側で保管します。Playground はウェブサイトのログインセッションを使い、同じアカウントの残高から課金します。ブラウザーにキーを貼り付ける必要はありません。

利用には、有効なアカウントと十分な残高が必要です。`GET /v1/models` で、そのキーから利用できるモデルを取得できます。Seedance モデルには `POST /v1/videos` を使い、JSON 本文でモデルを指定してください。

| 設定              | Seedance 2.0                                                      |
| --------------- | ----------------------------------------------------------------- |
| モデル ID          | `bytedance/seedance-2.0`                                          |
| `resolution`    | `480p`、`720p`、`1080p`、`4k`。既定値：`720p`。                            |
| `duration`      | 出力の長さは 4–15 秒。`-1` は自動設定。既定値：`5`。                                 |
| `aspectRatio`   | `adaptive`、`16:9`、`4:3`、`1:1`、`3:4`、`9:16`、`21:9`。既定値：`adaptive`。 |
| `generateAudio` | 既定値は `true`。`false` にしてもトークン単価は下がりません。                            |
| 出力              | 1 リクエストにつき動画 1 本、24 fps。                                          |

13 個すべてのトップレベルフィールドを[リクエストフィールド](#request-fields)に記載しています。`aspectRatio` と `generateAudio` を含め、ここに示したフィールド名を使ってください。

## Seedance 2.0 のタスクを送信する [#seedance-20-のタスクを送信する]

この例では、テキストから 720p の 4 秒動画を生成します。サーバー側で `WAN_API_KEY` に Seedance のキーを設定してください。一度だけ送信し、返された `id` を保存します。

```bash
curl https://api.wanapi.app/v1/videos \
  -H "Authorization: Bearer $WAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "bytedance/seedance-2.0",
  "prompt": "A paper boat floats through a sunlit stream. Slow tracking shot.",
  "resolution": "720p",
  "aspectRatio": "16:9",
  "duration": 4,
  "generateAudio": true
}'
```

## Seedance 2.0 のタスクを確認する [#seedance-20-のタスクを確認する]

返された `id` を `TASK_ID` として保存し、同じキーで状態を確認します。送信時のレスポンスはタスクの受付結果です。動画は完了後に利用できます。最初は 5 秒間隔で状態を確認してください。[タスクの状態とダウンロード](#poll-and-download-the-video)も参照してください。

```bash
curl "https://api.wanapi.app/v1/videos/$TASK_ID" \
  -H "Authorization: Bearer $WAN_API_KEY"
```

## Seedance 2.0 の料金 [#seedance-20-の料金]

単価は動画 100 万トークンあたりの USD 建てで表示しています。最終費用は入力・出力の動画トークン数で決まります。解像度、長さ、参照動画の入力によって使用量が変わるため、参照動画の有無に対応する単価を使ってください。音声に別の料金区分はありません。

<SeedanceModelPricing model="findSeedanceModel('seedance-2-0')" />

[Seedance 2.0 の料金と見積もりを見る](/ja/models/seedance-2-0#pricing)。送信前に [Playground](/ja/models/seedance-2-0#playground) で見積もりをご確認ください。

## リクエストフィールド [#request-fields]

JSON オブジェクトを送信します。`model` に加え、空でないプロンプトまたは一つ以上のメディア入力が必要です。その他のフィールドは任意です。未定義のフィールドは受け付けません。

| フィールド             | 型                  | 仕様                                                                                                                                    |
| ----------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------- |
| `model`           | 文字列                | 必須：`bytedance/seedance-2.0`。                                                                                                          |
| `prompt`          | 文字列                | 文章による指示。このサービスでは 20,000 文字まで。プロンプトまたはメディア入力が必要です。                                                                                     |
| `image`           | URL または URL オブジェクト | 開始フレームの画像 URL、または `type: "url"`、`url`、任意の `mediaType` を持つオブジェクト。`image` と `frameImages` は、いずれか一方を使ってください。                             |
| `frameImages`     | 配列                 | `first_frame` 一つと、任意の `last_frame`。各要素に `frameType` と `image` を指定します。下のフレームの例を参照してください。                                               |
| `inputReferences` | 配列                 | 画像 9 枚、動画 3 本まで。各要素に `type: "url"`、`url`、`mediaType` を指定します。`data`/`mediaType` の URL 形式にも対応します。                                       |
| `aspectRatio`     | 文字列                | `adaptive`（既定値）、`16:9`、`4:3`、`1:1`、`3:4`、`9:16`、`21:9`。                                                                               |
| `resolution`      | 文字列                | `480p`、`720p`、`1080p`、`4k`。既定値：`720p`。解像度の区分として `854x480`、`1280x720`、`1920x1080`、`3840x2160` も指定できます。形状は `aspectRatio` で選びます。         |
| `duration`        | 整数                 | 出力の長さは 4–15 秒。`-1` は自動設定。既定値：`5`。                                                                                                     |
| `fps`             | 整数                 | `24` 固定。省略するか、`24` を送信してください。                                                                                                         |
| `seed`            | 整数                 | 任意。`-1` から `2147483647`。再現性は保証しません。`providerOptions.bytedance.seed` との重複指定はできません。                                                     |
| `generateAudio`   | 真偽値                | 音声を生成します。既定値：`true`。無効にしてもトークン単価は変わりません。                                                                                              |
| `n`               | 整数                 | `1` 固定。1 リクエストにつき動画 1 本です。                                                                                                            |
| `providerOptions` | オブジェクト             | 任意の `bytedance` オブジェクト：`referenceAudio`（HTTP(S) URL を 3 個まで）、`seed`（トップレベルの `seed` と同じ範囲）。`draft: true` には対応していません。未定義のオプションは受け付けません。 |

### 入力の組み合わせとメディアの制限 [#入力の組み合わせとメディアの制限]

* 開始フレームには `image`、開始フレームと任意の終了フレームには `frameImages` を使います。終了フレームだけの指定と、同じフレーム種別の重複は受け付けません。

* フレームは `inputReferences` または `providerOptions.bytedance.referenceAudio` と併用できません。

* 参照モードでは、画像 9 枚、動画 3 本、音声 3 本まで、合計 15 個までの参照素材を指定できます。

* メディア入力には公開 HTTP(S) URL が必要です。ファイルのバイト列のアップロードと、認証情報を含む URL は受け付けません。

* 画像：JPEG、PNG、WebP、BMP、TIFF、GIF。30 MB 未満、各辺 300–6000 ピクセル、アスペクト比 0.4–2.5。

* 動画：MP4 または MOV。1 ファイル 50 MB 以下。各動画は 2–15 秒、合計 15 秒以内。各辺 300–6000 ピクセル、アスペクト比 0.4–2.5、24–60 fps。

* 音声：MP3 または WAV。1 ファイル 15 MB 以下。各音声は 2–15 秒、合計 15 秒以内。少なくとも一つの参照画像または参照動画が必要です。

* URL 先のメディアのサイズ、エンコード、長さは処理中に検証します。URL の検証だけでは、ファイルを使用できることは保証できません。

* このエンドポイントでは、過去のドラフトタスクからの最終レンダリングや、任意のネイティブタスクオプションは提供していません。

## フレームと参照素材のリクエスト例 [#フレームと参照素材のリクエスト例]

以下の本文を、同じ `POST /v1/videos` エンドポイントに送信します。送信前に、すべての `example.com` の URL を、ご自身の直接アクセス可能なメディア URL に置き換えてください。タスクが完了するまで、入力 URL にアクセスできる状態を保ってください。

### 開始・終了フレーム [#開始終了フレーム]

開始フレームだけを指定する場合は、`image: "https://example.com/first-frame.jpg"` を使い、`frameImages` を省略します。動画の始点と終点を指定する場合は、次のようにします。

```json
{
  "model": "bytedance/seedance-2.0",
  "prompt": "The camera slowly moves from the opening scene to the closing scene.",
  "frameImages": [
    {
      "frameType": "first_frame",
      "image": "https://example.com/first-frame.jpg"
    },
    {
      "frameType": "last_frame",
      "image": "https://example.com/last-frame.jpg"
    }
  ],
  "aspectRatio": "adaptive",
  "resolution": "720p",
  "duration": 4
}
```

### 画像・動画・音声の参照素材 [#画像動画音声の参照素材]

画像と動画は、MIME タイプを明示して `inputReferences` に指定します。音声 URL は `providerOptions.bytedance.referenceAudio` に指定してください。このリクエストにフレーム入力を加えることはできません。

```json
{
  "model": "bytedance/seedance-2.0",
  "prompt": "Use the character from the image and the camera movement from the video.",
  "inputReferences": [
    {
      "type": "url",
      "url": "https://example.com/character.jpg",
      "mediaType": "image/jpeg"
    },
    {
      "type": "url",
      "url": "https://example.com/motion.mp4",
      "mediaType": "video/mp4"
    }
  ],
  "providerOptions": {
    "bytedance": {
      "referenceAudio": [
        "https://example.com/sound.wav"
      ]
    }
  },
  "resolution": "720p",
  "duration": 4
}
```

## 状態を確認して動画をダウンロードする [#poll-and-download-the-video]

受け付けたタスクには、次のようなオブジェクトを返します。ID とタイムスタンプは例示です。

```json
{
  "id": "task_EXAMPLE",
  "object": "video",
  "model": "bytedance/seedance-2.0",
  "status": "queued",
  "progress": 0,
  "created_at": 1792022400
}
```

API キーを使って `GET /v1/videos/{task_id}` をポーリングします。確認時には、同じ公開タスク ID とモデルが返されます。ポーリングを終了するタイミングは `status` で判断してください。`progress` は残り時間の見積もりではありません。

| 状態            | 意味           | 次の操作                            |
| ------------- | ------------ | ------------------------------- |
| `queued`      | タスクを受け付けました。 | ポーリングを続けます。                     |
| `in_progress` | 生成中です。       | ポーリングを続けます。                     |
| `completed`   | 動画が完成しました。   | `videos[0].url` を取得してダウンロードします。 |
| `failed`      | 生成に失敗しました。   | ポーリングを終了し、`error` を確認します。       |

完了したタスクの確認結果には、`url` と `mediaType` を持つオブジェクトの配列 `videos` が含まれます。タイムスタンプは Unix 秒です。完了が記録されると `completed_at` が含まれます。

```json
{
  "id": "task_EXAMPLE",
  "object": "video",
  "model": "bytedance/seedance-2.0",
  "status": "completed",
  "progress": 100,
  "created_at": 1792022400,
  "completed_at": 1792022460,
  "videos": [
    {
      "url": "/v1/tasks/task_EXAMPLE/artifacts/video/content",
      "mediaType": "video/mp4"
    }
  ]
}
```

返された URL が相対パスの場合は、`https://api.wanapi.app` を基準に解決し、API キーで認証してください。上の例では、次のように取得します。

```bash
curl "https://api.wanapi.app/v1/tasks/$TASK_ID/artifacts/video/content" \
  -H "Authorization: Bearer $WAN_API_KEY" \
  -o video.mp4
```

署名付き HTTPS メディア URL が返された場合は、そのホストに API キーを送らず、URL を直接使用してください。結果の URL には有効期限がある場合があります。残したい動画は、ご自身のストレージに保存してください。既存の結果の状態確認やダウンロードで、新たな生成が作成されることはありません。

失敗したタスクには、`code` と `message` を持つ `error` オブジェクトが含まれます。例：

```json
{
  "id": "task_EXAMPLE",
  "object": "video",
  "model": "bytedance/seedance-2.0",
  "status": "failed",
  "error": {
    "code": "generation_failed",
    "message": "Video generation failed"
  }
}
```

## 課金とエラー処理 [#課金とエラー処理]

最終費用は、実際の動画トークン使用量とモデルの現在の単価に基づきます。Playground の見積もりは上限の見積もりであり、固定料金ではありません。動画が長い場合や出力解像度が高い場合、トークン使用量が増えることがあります。失敗したリクエストには課金されません。

* **無効なパラメーター：** 再送信する前に、フィールドや入力の組み合わせを修正してください。URL の構文に加え、メディア形式と制限も確認します。
* **認証またはモデルへのアクセス：** 指定したモデルを利用できる、有効な Seedance のキーを使ってください。
* **残高不足：** 新しい有料リクエストの前にチャージしてください。キーの利用上限を設定しても、アカウントの残高は増えません。
* **一時的な状態確認の失敗：** 再試行間隔を延ばし、待機時間の上限を設けて GET を再試行してください。状態確認の失敗は、生成の失敗を意味しません。
* **送信のタイムアウトやタスク ID の欠落：** 結果が不明な場合があります。二つ目の有料タスクが作成される可能性があるため、POST を自動で繰り返さないでください。
* **ダウンロードの失敗：** 新しい生成を始める前に、既存の結果の取得を再試行してください。

送信結果が不明で調査が必要な場合は、タスク ID を保管し、[サポート](/ja/contact)にお問い合わせください。

[Seedance 2.0 の OpenAPI スキーマをダウンロード](https://wanapi.app/models/seedance-2-0/openapi.json)。
