Skip to main content
POST
segmentregion_edit は既存の非同期画像エンドポイントを使用します。返された task_id を保存し、タスクステータスを取得 をポーリングしてください。作成リクエストは最終レイヤーや画像を直接返しません。
API Key をブラウザバンドル、LocalStorage、URL、フロントエンドログに置かないでください。バックエンドまたは BFF から APIMart を呼び出します。

操作の概要

source_task_idimage_id は交換できません。segment は元タスク ID、region_edit は画像アセット ID を使用します。編集後の画像を再分割する場合は、完了した region_edit のタスク ID を次の source_task_id にします。

リクエストヘッダー

Authorization: Bearer <APIMART_API_KEY>Content-Type: application/jsonAccept: application/json を使用します。 Idempotency-Key は任意ですが、有料の region_edit では強く推奨します。1~191 文字の可視 ASCII を使用でき、UUID を推奨します。新しい論理操作ごとに新しい Key を使い、同じリクエストのネットワーク再試行では元の Key と同一の body を再利用してください。結果が不確定な場合、新しい Key で自動再送しないでください。

非同期タスクフロー

作成成功時は HTTP 200data[0].task_id が返ります。GET /v1/tasks/{task_id}?language=ja を 2 秒間隔から最大 5 秒までバックオフし、全体を 10 分で打ち切ります。元画像の切り替え時は古いポーリングを停止します。
タスク照会が HTTP 200 でも data.statusfailed の場合があります。必ず data.status で成否を判断し、data.error を表示してください。

segment

リクエストパラメータ

segmentprompt は不要です。image_idimage_indexbilling_model_namensizeresponse_format を送信しないでください。cache_only=truerefresh=true は同時に使えません。

リクエスト例

キャッシュミスも成功タスクです。cache_status または from_cache を使用し、cached から命中を推測しないでください。

完了レスポンス

segmentdata.result は分割結果そのものであり、images には包まれません。
有効な mask_rle または mask_url がないオブジェクトは、矩形近似編集のみ使用できます。

mask_rle のデコード

mask_rle.counts は COCO 圧縮カウント文字列で、Base64 や zlib ではありません。列優先で展開され、最初が背景、その後は前景と背景が交互になります。 次の TypeScript でブラウザ向けの行優先バイナリマスクへ変換できます。
大きなマスクは Web Worker でデコードしてください。完全な mask_rle.counts をログ、分析、URL、エラー報告へ送らないでください。

マスクを高精度選択範囲へ変換

連結領域と穴の輪郭を抽出して簡略化し、各点を 0–1 に正規化します。各リングは 3 個以上の異なる点、非ゼロ面積、自己交差なしが必要です。1 レイヤー最大 16 領域、1 リング最大 400 点にします。
mask_size[height,width] で、CSS 表示座標ではなく元マスク座標です。object-fit: contain では余白を差し引き、実描画領域で変換して 0–1 に収めます。
元画像や mask_url のピクセル読取には CORS が必要です。src より先に crossOrigin = "anonymous" を設定するか Blob を取得します。mask_rle の直接デコードなら不要です。

範囲編集:region_edit

リクエストパラメータ

selection_regionsboxesobject_indices の少なくとも 1 つを空でない値にします。API は併用可能ですが、フロントエンドでは 1 リクエスト 1 方式を推奨します。
billing_model_namesizeaspect_ratiosource_aspect_ratiosource_sizeimage_urls を送信しないでください。n は省略または 1claim_asset は省略または falseresponse_format は省略または url。Base64 と stream=true は非対応です。

選択方式

points は平坦配列または座標ペアで指定できます。全値は有限な 0–1 で、各リングに 3 ペア以上必要です。

完了レスポンス

result.images[0].items[0] を優先します。旧応答は配列長が一致するときだけ url[0]image_ids[0] を対応付けます。HTTP(S) URL と新しい image_id の両方を得てから続行してください。 URL 期限は expires_at を基準にし、固定時間を実装しないでください。長期利用するアセットは保存します。

連続編集

編集完了後、表示 URL、現在のアセット ID、元タスク ID を同時に更新し、古いレイヤーとポーリング状態を消去します。
  • 再分割:今回の region_edit タスク ID を source_task_id に使用
  • 再編集:新しく返された image_id を使用
  • image_idsegment に渡さず、以前の画像 ID の編集も続けないでください。

エラー処理

課金

  • segment は無料で cost=0credits_cost=0 ですが、認証と有効な元タスクが必要です。
  • region_edit は有料です。完了タスクの costcredits_cost を使い、価格をフロントエンドへ固定しないでください。
  • 内部フィールド billing_model_name は送信しません。

フロントエンド確認事項

  • API Key はバックエンドまたは BFF のみに保存する。
  • segment には source_task_id だけを送り、image_idimage_index は送らない。
  • region_edit には segment の image_id と少なくとも 1 つの選択方式を使う。
  • 高精度編集には selection_regions を使い、object_indices は矩形近似とする。
  • mask_size は常に [height,width] として表示倍率と余白を補正する。
  • 同じネットワーク再試行では元の冪等 Key を再利用し、URL と新しい image_id の両方を検証する。