クイックスタート
動画生成は常に非同期です。例ではwan2.6-t2v と秒単位の整数 duration を使用します。
非同期メディアモデルを見つけて Schema を取得する方法
ディスカバリーは 2 段階です。まず、公開モデルカタログから非同期 API に対応する画像生成または動画生成モデルを取得します。次に、モデルのmodel_id を使って、そのエンドポイントのリクエスト Schema を取得します。
非同期 API 対応モデルの一覧を取得する
モデルカタログは Playground と同じデータソースを使用します。画像生成モデルにはtype=image_generation、動画生成モデルには type=video を指定します。schema_checked=true を追加すると、リクエスト Schema が公開され、確認済みのモデルだけが返されます。
type フィルターは 1 つの値を受け付けるため、モデルタイプごとにリクエストしてください。
レスポンスの形は {success, message, data} です。非同期メディア連携に関連する data のフィールドは次のとおりです。
1 つのモデルのリクエスト Schema を取得する
対応するフィールド、列挙値、数値範囲はモデルごとに異なります。画像または動画のリクエストを送信する前に、次の公開 API で対象モデルの利用可能なエンドポイントとリクエスト JSON Schema を取得してください。modality は image または video です。endpoints 配列の各項目が、利用可能な呼び出しプロトコルを示します。
同じモデルで
/ai/v1 エンドポイントと OpenAI 互換の /v1 エンドポイントが返される場合があります。OpenAI 互換エンドポイントは最新モデルにまだ対応していない可能性があるため、/ai/v1 エンドポイントを優先してください。非同期タスク API では、path が /ai/v1/images/generations または /ai/v1/videos の項目を選び、その request.schema を使用してください。endpoints 配列内の位置には依存しないでください。
次のコマンドで、各非同期タスクエンドポイントのリクエスト Schema を直接抽出できます。
404 model_not_found が返されます。エンドポイントデータを一時的に取得できない場合は 500 endpoints_unavailable が返されます。
動画タスクを作成する方法
動画リクエストは常に非同期であり、Prefer: wait を使用して同期待機に変更することはできません。標準プロトコルでは、整数の duration で秒数を指定します。
動画の標準フィールド
input_references 項目の構造:
type には image_url、video_url、audio_url のいずれかを指定できます。
frame_images 項目の構造:
frame_type には first_frame または last_frame を指定できます。
メディアタスクオブジェクト
画像と動画の専用 API は、次の構造を返します。
メディアの
output 項目:
ステータスの説明
クライアントは、ステータスが
completed、failed、cancelled のいずれかになるまで、15 秒ごとに照会できます。15 秒はクライアント側の推奨ポーリング間隔であり、サーバープロトコルの制限ではありません。
メディアタスクを照会する方法
メディア詳細の照会
メディア一覧の照会
作成レスポンスを失った場合は、該当するメディア一覧からタスク ID を取得できます。統一タスク API を使用する方法
統一タスク API では、次の条件で絞り込めます。
統一タスクの詳細:
output 項目:
/ai/v1/tasks/{id}/content を直接リクエストします。複数成果物のタスクでは /ai/v1/tasks/{id}/content/{result_id} をリクエストする必要があり、結果 ID を指定しない場合は 400 result_id_required が返されます。
統一タスクの一覧、詳細、コンテンツ API は、タスク作成時の Bearer Token
ごとに分離されています。同じアカウントの別の API Key
からは、このタスクを読み取れません。
メディア結果をダウンロードする方法
動画のダウンロード
Webhook を使用する方法
非同期画像と動画は、タスク単位の Webhook に対応しています。webhook_url は最大 512 文字で、ローカルホスト、プライベートネットワーク、その他の制限対象アドレスを指定することはできません。webhook_events_filter を省略すると、プラットフォームは completed、failed、cancelled を配信します。明示的に渡す場合、配列は空にできず、重複も許可されません。また、webhook_url と一緒に使用する必要があります。
リクエストで webhook_url を渡さなかった場合、非同期画像と動画ではアカウントに設定されたデフォルトのコールバック URL が使用されます。アカウントのデフォルト URL が無効な場合は無視され、タスクの作成は妨げられません。
コールバックリクエスト
results は結果がアーカイブ済みの場合にのみ含まれ、ダウンロードには引き続き Bearer Token が必要です。
リトライと重複排除
プラットフォームは少なくとも 1 回の配信を行うため、同じイベントが複数回届く場合があります。- HTTP
2xxは受信成功を示します。 - HTTP
5xx、ネットワークエラー、タイムアウトの場合は再試行します。 - HTTP
3xxと4xxの場合は再試行しません。 - 配信は最大 6 回で、再試行間隔は順に 1、4、16、64、256 秒です。
event_id を保存し、同じイベントを再度受信した場合はそのまま 2xx を返してください。
エラーレスポンスとエラーコード
この節は/ai/v1/videos/* と動画タスクに適用されます。画像のエラーは画像 APIをご覧ください。
- 現在のリクエストの失敗:HTTP が 2xx 以外の場合、今回の作成、照会、ダウンロードに失敗しています。HTTP リクエストの失敗をご覧ください。
- タスク実行の失敗:照会は HTTP 200 を返しますが、タスクが
status=failedとなり、理由はタスク内のerrorに記録されます。タスク実行の失敗をご覧ください。 - 一覧の個別結果の読み取り失敗:一覧は HTTP 200 を返しますが、一部のタスクに
output_errorが含まれます。一覧の個別結果の読み取り失敗をご覧ください。
message 列は API が返す英語のメッセージ、説明列は意味と対処方法を示します。パラメータ検証エラーには一般的なメッセージを掲載しており、実際のレスポンスではフィールドや制約が具体的に示される場合があります。エラーの種類は code で判定し、message 全文の完全一致に依存しないでください。
HTTP 5xx エラーの報告
リクエストが HTTP
5xx を返した場合は、error.tid を添えて報告してください。HTTP リクエストの失敗
動画の作成後はタスクの状態を通じて生成結果が返されます。以下の HTTP ステータスは現在のリクエスト自体が失敗した場合に適用されます。リクエストパラメータとメディア入力
- メディアサイズ:動画タスクで上限を超えると
media_too_largeが返されます。参照画像のアップロードでも同じコードです。具体的な上限はエラーメッセージまたはerror.details.max_bytesを確認してください。 - リクエスト全体のサイズ:
request_too_largeは、テキスト、パラメータ、インラインのエンコード済みメディアを含む HTTP 本文が 32 MiB を超えたことを示します。URL のみを送信する場合、リンク自体が本文に含まれます。リンク先のファイルには引き続きモデルのメディア制限が適用されます。 - 実際のサイズ:
error.details.actual_bytesは全体のサイズが確認できた場合にのみ含まれます。URL からの読み取りが上限に達して停止した場合、このフィールドが省略されることがあります。
error.details.allowed_mime_types またはエラーメッセージの形式一覧を確認してください。一覧がない場合はモデルの Schema を参照してください。
メッセージ内のプレースホルダー
{media_kind}:実際のメディアの種類。種類が確認できている場合、invalid_media_dataとmedia_url_unreachableのメッセージでもimageまたはvideoが使われます。{max_bytes}:バイト単位の上限。{allowed_formats}:許可される形式の一覧。形式エラーのメッセージにUse one of: {allowed_formats}.が追加される場合があります。
生成リクエストと返された結果
アカウントと権限
サービスの可用性とレート制限
provider_unavailable は、モデルプロバイダーの障害が明確に確認されたことを示します。一般的な 429 や 4xx だけでは、利用枠、コンテンツ審査、パラメータの問題を特定できません。
タスクの照会と結果のダウンロード
タスク実行の失敗
タスク作成後の生成失敗はstatus=failed とタスク内の error で示されます。照会が成功した場合の HTTP ステータスは 200 のままです。
message は submit a new task. で終わり、メディアを縮小して新しいタスクを送信するよう案内します。
provider_empty_output は利用可能な動画結果がないことを確認した状態です。result_delivery_failed は生成結果が存在するものの保存または配信に失敗した状態です。後者では、まずサポートに連絡して既存の結果を調査してください。
一覧の個別結果の読み取り失敗
画像・動画タスク一覧の一部の行にoutput_error が含まれる場合があります。
output=[] になります。元の id、status、error とページネーションは変わらず、正常に読み取れる他のタスクに影響しません。status=completed でも output_error を確認し、結果を読み取れるか判断してください。
output_error.tid を添えてサポートに連絡してください。tid がない場合は今回のレスポンスヘッダーのリクエスト ID を提供できます。このエラーはタスクの状態や料金を変更せず、Webhook も発生させません。
画像・動画の一覧では取得済みの expires_at が保持されます。統一 /ai/v1/tasks 一覧の読み取り失敗行は expires_at=null を返す場合がありますが、元の保存期間は引き続き適用されます。
この処理は、個別の行の結果を読み取れず、利用できる代替手段がない場合に限ります。統一 tasks API で一覧全体の照会が失敗すると HTTP エラーが返され、詳細取得で同じ障害が起きた場合は HTTP 500 が返されます。
関連ドキュメント:画像 API · 動画 API · 非同期タスク