13. 非同期タスク(動画 / Midjourney)#
動画生成や Midjourney 画像生成などの時間のかかるタスクは非同期方式です。まずタスクを送信してすぐにタスク id を受け取り、その後ポーリングして結果を確認します。
13.1 動画タスクの送信#
POST /v1/video/create(エイリアス:POST /v1/videos)
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
model | string | はい | 動画モデル名(sora / veo / wan / doubao などのシリーズ) |
prompt | string | いいえ | テキストによる説明(content と排他。同時指定は不可) |
content | array | いいえ | マルチモーダル内容配列。テキスト要素は {"type":"text","text":"…"}、参照要素は {"type":"image_url","image_url":{"url":"…"}}(video_url・audio_url も同様、フィールド名は type と一致)。参照には role を指定可能(reference_image・reference_video・reference_audio。音声駆動では参照音声を渡す)。URL は http(s)・asset:・data: に対応 |
input | object | いいえ | Sora 形式のネストされた入力 |
parameters | object | いいえ | Wan 形式のパラメータブロック(同名のトップレベルフィールドが parameters 内の値より優先) |
images | array | いいえ | 参照画像 URL のリスト(画像から動画へ。http/https URL である必要があります) |
aspect_ratio / ratio | string | いいえ | アスペクト比。例:16:9(両者は等価。ratio が優先) |
resolution | string | いいえ | 解像度。例:720p / 1080p |
duration | integer | いいえ | 動画の長さ(秒)。1–15。Seedance シリーズは 4–15 |
generate_audio | boolean | いいえ | 音声付き動画を生成するか。音声出力に対応したモデル(Veo 3、Seedance 音声版など)のみ有効。非対応モデルは上流でエラーになります。未指定時はチャネルのデフォルトに従います |
watermark | boolean | いいえ | ウォーターマークを付けるか |
seed | integer | いいえ | ランダムシード(0–4294967295)。結果の再現用 |
return_last_frame | boolean | いいえ | 結果に動画の最終フレームを含めるか |
enhance_prompt | boolean | いいえ | 上流にプロンプトの拡張を任せるか |
enable_upsample | boolean | いいえ | アップサンプリングを有効にするか |
execution_expires_after | integer | いいえ | タスク保持時間(秒)。1–172800。経過後タスクは失効 |
Shell
# 基本的なテキストから動画
curl http://183.240.79.21:52099/v1/video/create \
-H "Authorization: Bearer sk-你的YiTuoToken-Key" \
-H "Content-Type: application/json" \
-d '{
"model": "sora-2",
"prompt": "一只在草地上奔跑的柯基犬,阳光明媚",
"aspect_ratio": "16:9"
}'
# 音声付き動画を生成(対応モデルには generate_audio: true を渡す)
curl http://183.240.79.21:52099/v1/video/create \
-H "Authorization: Bearer sk-你的YiTuoToken-Key" \
-H "Content-Type: application/json" \
-d '{
"model": "veo-3",
"prompt": "海浪拍打礁石,伴随海鸥鸣叫",
"resolution": "1080p",
"generate_audio": true
}'
送信に成功するとタスク
idが返るので、それでタスク状態をポーリングします(13.3 参照)。generate_audioは上流へそのまま渡されます。対象モデルが音声非対応の場合、上流でタスク内エラーとなり、13.3 の照会結果のerrorフィールドに原因が表示されます。
13.2 Midjourney タスクの送信#
| エンドポイント | 説明 |
|---|---|
POST /v1/mj/submit/imagine | テキストから画像へ |
POST /v1/mj/submit/blend | 複数画像のブレンド |
POST /v1/mj/submit/action | 既存タスクへのアップスケール / バリエーションなどの操作 |
cURL
curl http://183.240.79.21:52099/v1/mj/submit/imagine \
-H "Authorization: Bearer sk-你的YiTuoToken-Key" \
-H "Content-Type: application/json" \
-d '{
"model": "midjourney",
"prompt": "a cute corgi astronaut, digital art --ar 16:9"
}'
13.3 タスクステータスの照会#
GET /v1/tasks/{id} — 送信時に返された id で照会します。タスクの所有者が検証され、他人のタスクを照会すると 404 が返ります(列挙対策)。?fresh=true を付けると、上流へのリアルタイムポーリングが 1 回実行されます。
cURL
curl http://183.240.79.21:52099/v1/tasks/0000019f-... \
-H "Authorization: Bearer sk-你的YiTuoToken-Key"
13.4 タスクリスト#
GET /v1/tasks — 自分のタスクを一覧表示します(作成時刻の降順)。
| クエリパラメータ | 説明 |
|---|---|
task_type | タイプで絞り込み(例:video、mj) |
status | ステータスで絞り込み |
offset | オフセット。デフォルトは 0 |
limit | 1 ページあたりの件数。デフォルトは 50、最大は 200 |
cURL
curl "http://183.240.79.21:52099/v1/tasks?task_type=video&limit=20" \
-H "Authorization: Bearer sk-你的YiTuoToken-Key"
13.5 タスクのキャンセル#
POST /v1/tasks/{id}/cancel — 実行中のタスクをキャンセルし、事前に凍結されたクォータを解除します。タスクが存在しない場合、または既に終了状態にある場合は 404 が返ります。
cURL
curl -X POST http://183.240.79.21:52099/v1/tasks/0000019f-.../cancel \
-H "Authorization: Bearer sk-你的YiTuoToken-Key"