Doubao
curl --request POST \
--url https://api.mixroute.ai/v1/video/generationsimport requests
url = "https://api.mixroute.ai/v1/video/generations"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://api.mixroute.ai/v1/video/generations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.mixroute.ai/v1/video/generations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.mixroute.ai/v1/video/generations"
req, _ := http.NewRequest("POST", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.mixroute.ai/v1/video/generations")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mixroute.ai/v1/video/generations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_body動画シリーズ
Doubao
Doubaoの動画生成パラメーター、対応する値、入力の制約、およびリクエスト例。
Doubao
curl --request POST \
--url https://api.mixroute.ai/v1/video/generationsimport requests
url = "https://api.mixroute.ai/v1/video/generations"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://api.mixroute.ai/v1/video/generations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.mixroute.ai/v1/video/generations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.mixroute.ai/v1/video/generations"
req, _ := http.NewRequest("POST", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.mixroute.ai/v1/video/generations")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mixroute.ai/v1/video/generations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_bodyこのページでは
別のテキスト・チャット用ルートについては、Dola-Seed-SCを参照してください。このページでは動画生成を説明します。
モデルの利用可否はアカウントによって異なります。モデルマーケットプレイスに表示される完全なIDを使用してください。
ネストされたcontentフィールドとメディアのサイズ/形式の制約は、Seedanceに定義されています。
doubao-seedance-*の動画ルートを説明します。Doubaoはルート/製品のプレフィックスで、Seedanceは動画モデルファミリーです。プレフィックスを置き換えるのではなく、完全なモデルIDを使用してください。
POST https://api.mixroute.ai/v1/video/generations
model、prompt、assetはルートに置いてください。content、duration、ratio、resolution、generate_audioを含む、すべてのプロバイダーフィールドを単一のmetadataオブジェクト内に配置してください。モデルID
| バージョン | MixRouteモデルID |
|---|---|
| Seedance 2.5 | doubao-seedance-2-5-260628 |
| Seedance 2.0 | doubao-seedance-2-0-260128 |
| Seedance 2.0 Fast | doubao-seedance-2-0-fast-260128 |
| Seedance 2.0 Mini | doubao-seedance-2-0-mini-260615 |
トップレベルのフィールド
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
model | string | はい | モデル表に記載された、完全なMixRouteモデルID。 |
prompt | string | はい | MixRouteの動画プロンプト。metadata.contentにテキスト項目が含まれる場合は、両方のテキストの整合性を保ってください。 |
asset | boolean | 条件付き | MixRouteのメディア処理の切り替え設定であり、プロバイダーフィールドではありません。ルートに配置してください。テキストのみの例ではfalseを使用します。 |
metadata | object | はい | 以下で説明するプロバイダーフィールドを格納するコンテナ。 |
生成パラメータ
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
metadata.content | object[] | はい | 動画の入力:テキスト、画像、動画、および対応する音声参照。テキストのみから生成する場合はtext項目が必須です。プロバイダーのメディア入力を組み合わせる場合、テキストは任意です。 |
metadata.omni_reference_task_type | string | いいえ | Seedance 2.5のみ。デフォルトはautoです。値:auto、reference、edit、extend。モードを明示すると、タスク種別を早期に検証できます。宣言されたモードと推定された意図が一致しない場合は、それでも非同期で失敗することがあります。 |
metadata.resolution | string | いいえ | 出力解像度のティアです。対応する値とデフォルトはモデルのバージョンによって異なります。バージョン表を参照してください。値では大文字と小文字が区別されます。 |
metadata.ratio | string | いいえ | デフォルトはadaptive。値: 16:9、4:3、1:1、3:4、9:16、21:9、adaptive。利用場面ごとの制約は以下に記載しています。 |
metadata.duration | integer | いいえ | リクエストする長さ(秒)。バージョン表を参照してください。対応バージョンでは、-1を指定すると長さが自動的に選択されます。Seedance 2.5のデフォルトは-1で、動画編集には-1が必要です。 |
metadata.generate_audio | boolean | いいえ | デフォルトのtrueでは、発話、効果音、音楽などの同期されたモノラル音声を生成します。falseでは無音の動画を生成します。 |
metadata.watermark | boolean | いいえ | デフォルトはfalseです。trueは右下にAI生成を示す透かしを追加し、falseは透かしを付けません。 |
metadata.output_format | string | いいえ | Seedance 2.5のみ。デフォルトはmp4。値: mp4、mov。MP4は一般的な再生向けです。MOVはポストプロダクション向けに高い色精度を保持し、対応する再生ソフトウェアが必要です。 |
metadata.return_last_frame | boolean | いいえ | デフォルトはfalse。trueを指定すると、生成動画と同じピクセル寸法の、透かしのない最終フレームのPNGがタスク結果に返されます。 |
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 |
シナリオ別の制約
- 最初のフレーム、最初と最後のフレーム、マルチモーダル参照の各ワークフローは併用できません。フレーム用のロールと
reference_*ロールを混在させないでください。 - Seedance 2.5では、最初/最後のフレームの入力、編集、および延長に
ratio="adaptive"が必要です。編集には4〜30秒の参照動画が少なくとも1本とduration=-1が必要です。延長には参照動画が必要です。任意のomni_reference_task_typeを使用すると、自動分類の代わりにeditまたはextendを明示的に選択できます。 - Seedance 2.0の音声参照には、少なくとも1つの画像または動画の参照が必要です。Seedance 2.5は、音声のみの参照入力もサポートします。
例
APIを呼び出す前にMIXROUTE_API_KEYを設定してください。メディアのプレースホルダーは、アクセス可能な入力に置き換えてください。受け付けられたリクエストは課金対象の生成タスクを作成します。送信がタイムアウトしても自動的に再送信しないでください。
curl --request POST "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 red cube slowly rotates on a white background. Static camera.",
"asset": false,
"metadata": {
"content": [
{
"type": "text",
"text": "A red cube slowly rotates on a white background. Static camera."
}
],
"duration": 4,
"ratio": "9:16",
"resolution": "480p",
"generate_audio": false
}
}'
Python
import json
import os
import requests
payload = json.loads(r'''
{
"model": "doubao-seedance-2-5-260628",
"prompt": "A red cube slowly rotates on a white background. Static camera.",
"asset": false,
"metadata": {
"content": [
{
"type": "text",
"text": "A red cube slowly rotates on a white background. Static camera."
}
],
"duration": 4,
"ratio": "9:16",
"resolution": "480p",
"generate_audio": false
}
}
''')
response = requests.post(
"https://api.mixroute.ai/v1/video/generations",
headers={"Authorization": "Bearer " + os.environ["MIXROUTE_API_KEY"]},
json=payload,
timeout=120,
)
response.raise_for_status()
result = response.json()
print(result)