動画生成
TENSORAXIS を通じて動画生成タスクを送信し、タスクステータスをポーリングし、Seedance/Doubao の高度なパラメータを渡します。
動画生成は非同期です。タスクを送信して task_id を取得し、タスクステータスをポーリングし、完了後に動画URLを読み取ります。
Seedance/Doubao 動画モデルの場合、TENSORAXIS のリクエストフィールド prompt、images、metadata を使用してください。アップストリームの Volcengine 形式のトップレベル content[] ボディを直接 /v1/video/generations に送信しないでください。TENSORAXIS は prompt フィールドを見つけられず、400 prompt is required を返します。
モデル別ページ
このページでは、共通の送信・取得・ポーリングのフローを説明します。各動画ファミリーの機能マトリクス、リクエストフィールド、機能ごとの例、パラメータ表については、専用ページを参照してください。
- SeeDance 動画生成 — Volcengine Ark Doubao Seedance(テキスト/画像から動画、開始/終了フレーム、動画参照/継続)
- HappyHorse 動画生成 — Alibaba Cloud Bailian DashScope(テキスト/画像/参照から動画、動画編集)
エンドポイント
| メソッド | パス | 目的 | 推奨用途 |
|---|---|---|---|
POST | /v1/video/generations | 動画生成タスクを送信 | Seedance/Doubao 向けの共通 TENSORAXIS 動画タスクエントリ |
GET | /v1/video/generations/{task_id} | 動画生成タスクを取得 | 上記の送信エンドポイントとペアで使用 |
POST | /v1/videos | OpenAI/Sora 形式のタスク送信 | Sora/OpenAI 互換クライアント |
GET | /v1/videos/{task_id} | OpenAI/Sora 形式のタスク取得 | Sora/OpenAI 互換クライアント |
GET | /v1/videos/{task_id}/content | 動画コンテンツのプロキシダウンロード | 完了した動画コンテンツの取得 |
新規の Seedance/Doubao 連携では、/v1/video/generations の使用を推奨します。
リクエストボディ
POST /v1/video/generations
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
model | string | はい | 呼び出すモデル名 |
prompt | string | はい | 動画プロンプト。空の値は 400 prompt is required を返す |
image | string | いいえ | 単一の参照画像URL。サーバー側で images に正規化される |
images | string[] | いいえ | 画像から動画生成のための参照画像URL |
metadata | object | いいえ | モデル固有またはプロバイダー固有のパラメータ。Seedance/Doubao の高度なパラメータはここに指定する |
seconds | string | いいえ | 互換用フィールド。正の整数は Doubao/Seedance のアップストリーム duration にマッピングされる |
duration | integer | いいえ | 共通タスクフィールド。Seedance/Doubao では metadata.duration の使用を推奨 |
size | string | いいえ | 一部の動画モデルで使用されるサイズフィールド |
mode | string | いいえ | 一部の動画モデルで使用されるモードフィールド |
input_reference | string | いいえ | 一部の OpenAI/Sora 互換フローで使用される入力参照。Seedance/Doubao の例では使用されない |
正しい例と誤った例
誤り: アップストリームのトップレベル content[] ボディを直接 TENSORAXIS に送信する。
{
"model": "doubao-seedance-2-0-260128",
"content": [
{
"type": "text",
"text": "An old man wearing a hat smiles and walks forward"
}
]
}正しい: TENSORAXIS のリクエストフィールドを使用し、リレーに変換させる。
{
"model": "doubao-seedance-2-0-260128",
"prompt": "An old man wearing a hat smiles and walks forward",
"images": ["https://example.com/reference.jpg"],
"metadata": {
"resolution": "1080p",
"ratio": "16:9",
"duration": 5,
"camera_fixed": true,
"watermark": false
}
}タスクの送信
curl https://api.tensoraxis.ai/v1/video/generations \
-H "Authorization: Bearer $TENSORAXIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2-0-260128",
"prompt": "An old man wearing a hat smiles and walks forward",
"images": ["https://example.com/reference.jpg"],
"metadata": {
"resolution": "1080p",
"ratio": "16:9",
"duration": 5,
"camera_fixed": true,
"watermark": false
}
}'送信が成功すると、公開タスクIDが返されます。フィールドは動画チャンネルによって多少異なりますが、通常は以下が含まれます。
{
"id": "task_xxxxx",
"task_id": "task_xxxxx",
"object": "video",
"model": "doubao-seedance-2-0-260128",
"status": "queued",
"progress": 0,
"created_at": 1760000000
}ポーリングのために id または task_id を保存してください。
タスクの取得
共通の動画タスクエンドポイントで送信した場合は、以下でポーリングします。
curl https://api.tensoraxis.ai/v1/video/generations/task_xxxxx \
-H "Authorization: Bearer $TENSORAXIS_API_KEY"共通の取得レスポンスは、タスクラッパー形式を使用します。
{
"code": "success",
"message": "",
"data": {
"task_id": "task_xxxxx",
"status": "SUCCESS",
"progress": "100%",
"result_url": "https://example.com/video.mp4",
"fail_reason": ""
}
}一般的なステータスの意味:
| ステータス | 意味 |
|---|---|
SUBMITTED / QUEUED | 送信済みまたはキュー待ち |
IN_PROGRESS | 生成中 |
SUCCESS | 完了。result_url を読み取る |
FAILURE | 失敗。fail_reason を読み取る |
OpenAI/Sora 形式の取得パスは次のとおりです。
curl https://api.tensoraxis.ai/v1/videos/task_xxxxx \
-H "Authorization: Bearer $TENSORAXIS_API_KEY"このパスは object: "video" というレスポンスを返し、成功時には動画URLを url、video_url、metadata.url として公開します。
Seedance/Doubao の metadata
Doubao/Seedance チャンネルの場合、TENSORAXIS は prompt、images、metadata を Volcengine のコンテンツ生成タスク形式に変換します。
| TENSORAXIS リクエストフィールド | アップストリームへの転送先 |
|---|---|
prompt | content[].text |
images[] | content[].image_url.url |
seconds | duration |
metadata.resolution | resolution |
metadata.ratio | ratio |
metadata.duration | duration |
metadata.frames | frames |
metadata.seed | seed |
metadata.camera_fixed | camera_fixed |
metadata.watermark | watermark |
metadata.generate_audio | generate_audio |
metadata.draft | draft |
metadata.service_tier | service_tier |
metadata.return_last_frame | return_last_frame |
metadata.execution_expires_after | execution_expires_after |
metadata.callback_url | callback_url |
metadata.tools | tools |
注記:
metadata.modelは除去され、課金対象モデルを上書きすることはできません。- 現在のアダプター構造にマッピングされない
metadataフィールドは、通常アップストリームに転送されません。 metadata.contentは高度な内部互換用フィールドであり、imagesから生成されるコンテンツリストを上書きする場合があります。公開向けの連携ではこれを使用すべきではありません。- 有効な値、列挙値、実際のアップストリームの挙動は、選択したモデルの Volcengine 公式ドキュメントで定義されています。このページでは、現在の TENSORAXIS リレーがフィールドをどのように受け取り転送するかのみを説明します。
ポーリングに関する推奨事項
- 送信後、最初のポーリングまで2〜5秒待機してください。
- タスクが生成中の間は、5〜10秒ごとにポーリングしてください。
- コールバックの代替として高頻度なポーリングを使用しないでください。大量のバッチはアプリケーション側でキューイングしてください。
429を受け取った場合は、並行数を減らし、指数バックオフでリトライしてください。