パーツ分解
POST/v1/images/parts-board
参照画像1枚を、パーツを展開した「パーツボード」、つまり対象をパーツ単位で1枚のキャンバスに分けて配置した画像に分解します。
画像を1枚指定します。既に所有している assetId、imageUrl、または 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つ
assetId、imageUrl、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;画像入力 単一フレームの
png、jpeg、webp、または gif、最大 20 MB。URL はサーバー側で取得するため、公開されていてアクセス可能である必要があります。単色背景に被写体が1つだけ明確に写っているものが最もよく分解できます。レスポンス
レスポンス · 200
{ "success": true, "data": { "id": "019…", "taskStatus": 0, "type": "image" } }呼び出しは即座に返ります。taskStatus が 2 になるまで 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"}'適した入力
- パーツ構造がはっきりした対象、たとえばロボット・メカ・車両・装甲キャラクターは最もよく分解できます。
- 単色背景に被写体は1つだけ。背景が複雑だったりオブジェクトが複数あったりすると、分解の精度が下がります。
- 正面または3/4ビューが適しています。極端すぎるアングルではパーツを見分けにくくなります。