タスク送信とポーリング
送信系のエンドポイントはすべて非同期タスクです。送信後にtask_id が返り、その後 GET /v1/midjourney/{task_id} を定期的に照会してステータスを取得し、SUCCESS / FAILURE になるまで繰り返します。
- ポーリング間隔:3〜5 秒に 1 回を推奨。これより高頻度にしても意味がなく、クォータの無駄になります。
- web リクエスト内で同期的にブロックしてタスク完了を待たないでください。送信後はすぐに
task_idを返し、フロントエンドで非同期にポーリングさせます。
Prompt 設計
良い prompt:- 主体を先頭に:まず主体、次にシーンの描写、最後に修飾語。
- 構造化パラメータを明示:
--ar/--v/--s(または対応する body フィールド)を使う方が、デフォルト値に依存するよりも制御しやすくなります。 - 曖昧な語を避ける:
photorealisticはrealisticよりも明確です。
niji: true + version: "7" を渡すと、プラットフォームが --niji 7 に正規化し、課金は midjourney@imagine-niji7 になります。
参照画像のベストプラクティス
| ソース | 推奨される方法 | 注意 |
|---|---|---|
| ユーザーアップロード | まず自分の OSS / CDN に保存し、送信時にその URL を渡す | base64 を直接渡さない(帯域の無駄) |
| 公開 URL | そのまま渡す | SSRF(公開ネットワークから到達可能であること)と 12 MiB 制限に注意 |
| サードパーティ / 他の生成物 | まず自分の OSS に保存する | サードパーティの URL は期限切れになる可能性がある |
- 5 MiB 未満に圧縮:プラットフォームの上限は 12 MiB ですが、小さい画像の方が転送・処理ともに高速です。
- 形式は PNG / JPG / WebP のいずれも可。高品質な JPG を推奨します。
- 解像度は 1024〜2048 px で十分。それ以上は無駄になります。
- 参照画像のウェイト
iw(0〜3、既定 1):>1 で元画像に近づき、<1 でより自由になります。
エラー処理とリトライ戦略
| code | 意味 | リトライ戦略 |
|---|---|---|
1 / 200 | 成功 | ✅ |
4 VALIDATION_ERROR | パラメータ誤り | ❌ リトライせず、パラメータを修正 |
3 NOT_FOUND | 利用可能なインスタンスなし / task_id が存在しない | インスタンス利用不可なら後ほどリトライ可。task_id が存在しない場合はリトライしない |
9 FAILURE | サービスによる拒否 / 内部エラー | ⏳ リトライ可、指数バックオフ(1s, 4s, 16s) |
21 MODAL | 非終了状態 | ✅ 引き続き /modal を呼ぶ |
24 BANNED_PROMPT | 禁止ワード | ❌ リトライせず prompt を変更。自動返金済み |
429 | レート制限 | ⏳ 指数バックオフ + jitter |
5xx / ネットワークエラー | サーバ / ネットワーク | ⏳ 指数バックオフ。ネットワークエラーは即時に 1 回リトライ可 |
二次操作のフロー
⚠️ inpaint が MODAL に入った後、30 分以内に /modal を呼ぶ必要があります。そうしないとバックエンドが自動的に CANCEL + 返金します。
video の課金コントロール
- 単一クリップ:
batch_size: 1→ 1 ×midjourney@videoを消費 - バッチ 4 クリップ:
batch_size: 4→ 4 ×midjourney@videoを消費 - 高解像度の単一クリップ:
video_type: "vid_1.1_i2v_720"+batch_size: 1→ 1 ×midjourney@video-720pを消費
batch_size=1 を使い、バッチで比較検討する場合のみ 4 を使ってください。デフォルトで 4 を有効にしないこと(コストが N 倍になります)。
並行処理とスループット
- プラットフォームには 1 分あたりの送信数に上限があり、超過すると
429が返るためバックオフしてリトライしてください。 - 実際の生成の並行数はシステム容量によって決まり、超過分はキューに入ります。タスクが長時間
SUBMITTEDのままの場合、通常はキュー待ちです。 - ポーリングには必ず
sleepを入れ、sleep なしの無限ループにしないでください。
モニタリングの推奨
| 指標 | 参考しきい値 | 意味 |
|---|---|---|
| タスク SUCCESS 率(直近 1h) | > 95% | 低い場合はサービス / ネットワークの異常を示す |
| 平均完了時間 | < 90s | 高い場合はキュー待ちを示す |
| MODAL 滞留タスク数 | 0 に近い | 多い場合はクライアントが /modal を呼んでいないことを示す |
code=24 の比率 | < 5% | 高い場合は prompt が頻繁に禁止ワードに触れていることを示す |
トラブルシューティングチェックリスト
| 現象 | 確認すべき方向 |
|---|---|
タスクが長時間 SUBMITTED | システムでキュー待ち中。後ほど再照会 |
タスクが長時間 NOT_START | プラットフォームが後ほど自動でタイムアウト返金する。手動対応は不要 |
タスクが MODAL で 30 分超過 | クライアントが /modal を呼んでいない。すでに自動 CANCEL + 返金済み |
prompt フィールドが空 | describe タスクのテキスト結果は description フィールドにある |
image_urls が 1 枚足りない | 内容審査で一部の画像がブロックされた。fail_reason を確認 |
| 課金が想定を超える | quota フィールドを確認。video は batch_size を掛けることを忘れずに |