Pro API: 画像の生成とレタッチ
モードを問わず、画像1枚につき1クレジットです。プロンプトからの生成も、アップロード画像のレタッチも、同じエンドポイントを使います。
画像を送信する
POST /images
{ "prompt": "portrait of a woman in a rainy street at night, neon reflections, cinematic",
"width": 832, "height": 1216 }
| フィールド | 型 | デフォルト | 説明 |
|---|---|---|---|
prompt | string | 必須 | シーンの内容。英語を使うと最も精度が上がります。 |
width, height | int | 1024 x 1024 | ピクセルサイズ。推奨サイズ: 1024 x 1024 (正方形)、832 x 1216 (縦)、1216 x 832 (横)。 |
mode | string | generation | edit、img2img、または inpaint(詳細は後述)。省略するとプロンプトから生成します。 |
image_b64 | string | base64エンコードされたソース画像 (PNG または JPEG)。3つのレタッチモードすべてで必須。デコード後最大12MB。 | |
mask_b64 | string | base64エンコードされたマスク。inpaint では必須、edit では任意。レタッチしたい領域をソース画像と同じサイズで赤く塗ってください。 | |
lora | string | アカウントに登録済みのキャラクター。GET /loras が返す name を指定します。プロンプトにその trigger を入れてください。 | |
lora2, lora2_strength | string, number | 2人のシーン用の2人目のキャラクターと強度 (0~1、デフォルト1)。 | |
steps | int | エンジン依存 | 空のままにしてください。エンジンが最適な値を自動で設定します。 |
レスポンス:
{ "jobId": "test-79634842-4586-46d4-ad52-d9ea236ae00d", "seed": 178078967, "cost": 1 }
seed はエンジンが生成して返します。参考情報として確認できますが、このバージョンでは入力時に固定することはできません。
3つのレタッチモード
3つのモードはすべて同じ命令ベースの編集エンジンで動作し、ソース画像の外観を維持します。ソース画像を指定した場合、width と height は画像自体から読み取られるため、送信する必要はありません。
mode | 入力 | エンジンの動作 |
|---|---|---|
edit | image_b64 + prompt (+ mask_b64 は任意) | 画像全体に命令を適用します (「サングラスを追加」「雪を降らせる」など)。マスクを指定すると、変更は赤い領域に集中します。 |
inpaint | image_b64 + mask_b64 + prompt | マスクの赤い領域だけを命令に従って再生成します。それ以外の部分はピクセル単位でそのまま保持されます。 |
img2img | image_b64 + prompt | 構図と雰囲気を維持しながら、プロンプトに沿って画像全体を再構成します。バリエーション生成に最適です。 |
IMG=$(base64 -w0 photo.png)
curl -s $B/images -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d "{\"mode\":\"edit\",\"prompt\":\"add a red scarf, keep everything else identical\",\"image_b64\":\"$IMG\"}"
ポーリング
GET /images/{jobId}
| レスポンス | 意味 |
|---|---|
{ "status": "pending", "phase": "IN_QUEUE" } | キュー待ち |
{ "status": "pending", "phase": "IN_PROGRESS" } | レンダリング中 |
{ "status": "completed", "cost": 1, "file_url": "/pro/v1/images/{jobId}/file", ... } | 完了、ファイル準備完了 |
{ "status": "failed", "detail": "..." } | 失敗。課金はされません |
キューは共有されているため、ポーリングは3秒以上の間隔で行ってください。
ダウンロード
GET /images/{jobId}/file
レスポンスボディとしてPNG画像そのもの (Content-Type: image/png) が返されます。ステータスが completed になった直後から取得可能ですが、レンダリングデータが削除されると 404 media_indisponible が返されます。データは保存されないため、すぐにダウンロードしてください。
キャンセル
POST /images/{jobId}/cancel
キュー待ちまたは実行中のレンダリングをキャンセルします。{ "ok": true } が返されます。課金はされず、キーの1日あたりの上限に対して確保されていたコストも返却されます。