生成

パーツ分解

POST/v1/images/parts-board

参照画像1枚を、パーツを展開した「パーツボード」、つまり対象をパーツ単位で1枚のキャンバスに分けて配置した画像に分解します。

非同期 idを返却、ポーリングまたはWebhook目安 ~180–240sコスト 80クレジット

画像を1枚指定します。既に所有している assetIdimageUrl、または multipart image アップロードのいずれかです。結果は、対象がパーツに分割された新しい画像アセットです。このボードを 画像 → 3D に渡すと、パーツが空間的に分離されたメッシュが得られます。

エンジン・解像度・プロンプトなし パーツ分解はすべてサーバー側で最適化されています。分類器が対象の種類(メカ・車両・キャラクター・クリーチャーなど)を判別し、それに合った分解方式を適用するため、エンジンを選んだりプロンプトを書いたりする必要はありません。これは意図的な設計です。固定価格1つ・検証済みパイプライン1つに絞ることで、モデレーションやマージンの回避を防ぎます。

パラメーター

パラメーター説明
assetId条件付き
string
分解する、自分が所有している既存の画像アセット。ワークスペースの「パーツに分解」操作と同じ経路です。imageUrl または multipart image ファイルを送らない限り必須です。
imageUrl条件付き
string
ソース画像のURL(http/https)。ローカルファイルは代わりに multipart image パートで送ります。assetId または multipart image を送らない限り必須です。
license任意デフォルト 非公開
string
生成されたボードのライセンス。デフォルトは非公開(all-rights-reserved)です。
画像ソースは正確に1つ assetIdimageUrl、multipart image パートのいずれか1つを送ります。複数指定した場合の優先順位は multipart image > assetId > imageUrl です。

リクエスト

既存アセットを分解
curl -X POST https://api.picoberry.ai/v1/images/parts-board \
  -H "Authorization: Bearer pb_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{"assetId":"019abc…"}'
r = requests.post("https://api.picoberry.ai/v1/images/parts-board", headers=headers,
    json={"assetId": "019abc…"})
board_id = r.json()["data"]["id"]
const res = await fetch(`${BASE}/v1/images/parts-board`, {
  method: "POST", headers: { ...headers, "Content-Type": "application/json" },
  body: JSON.stringify({ assetId: "019abc…" }),
});
const { id } = (await res.json()).data;
画像入力 単一フレームの pngjpegwebp、または gif、最大 20 MB。URL はサーバー側で取得するため、公開されていてアクセス可能である必要があります。単色背景に被写体が1つだけ明確に写っているものが最もよく分解できます。

レスポンス

レスポンス · 200
{ "success": true, "data": { "id": "019…", "taskStatus": 0, "type": "image" } }

呼び出しは即座に返ります。taskStatus2 になるまで GET /v1/assets/{id} をポーリングすると、ボード画像が files.image に、判別された対象の種類が details.partsBoard.category に格納されます。続いてその画像を POST /v1/models/from-image に送ると、パーツが分離されたメッシュが得られます。

アップロードまたは URL

ホスティングされたアセットがない場合は、ローカルファイルを multipart image パートとしてアップロードするか、公開された imageUrl を JSON で渡してください。

ローカルアップロード
curl -X POST https://api.picoberry.ai/v1/images/parts-board \
  -H "Authorization: Bearer pb_live_xxx" \
  -F "image=@./hero.png"
requests.post("https://api.picoberry.ai/v1/images/parts-board", headers=headers,
    files={"image": open("hero.png", "rb")})
const fd = new FormData();
fd.append("image", fileBlob, "hero.png");
await fetch(`${BASE}/v1/images/parts-board`, { method: "POST", headers, body: fd });

または imageUrl でホスティングされた画像を指定します:

curl -X POST https://api.picoberry.ai/v1/images/parts-board \
  -H "Authorization: Bearer pb_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{"imageUrl":"https://…/hero.png"}'

適した入力