3D Generation
BytePlus ModelArk を介して Hyper3D または Hitem3D メッシュを非同期生成します。
POST /v1/3d/generations は直ちに job_id を返します。完了まで GET /v1/jobs/{job_id} をポーリングしてください。すべてのリクエストには plm_ API キーが必要です。
POST/v1/3d/generations
ジョブを送信#
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| model | string | 任意 | 3D モデル ID。デフォルトは Hyper3d-Rodin-Gen2。 |
| prompt | string | null | 任意 | テキスト説明。最大 4,000 文字、Hyper3D では最大 400 文字。prompt または images のいずれかが必要です。 |
| images | string[] | 任意 | HTTP(S) 画像参照 URL。全体上限は 5、Hitem3D は 1–4 枚必要です。 |
| generation_mode | standard_white | standard_textured | high_precision_white | high_precision_textured | 任意 | Hitem3D の必須価格モードで、対応する resolution/request_type を原子的に固定します。 |
| mesh_options | object | 任意 | Hyper3D 専用の構造化メッシュ制御です。Hitem3D の generation_mode と組み合わせられません。 |
| output_format | glb | obj | stl | fbx | usdz | 任意 | 希望する結果ファイル形式。 |
| seed | integer | 任意 | Hyper3D 専用の 0–65,535 seed。Hitem3D には送信できません。 |
| charge_amount_krw | integer | null | 任意 | 固定 KRW 精算額。通常 API キーは使用できず、first-party 委任キーのみ利用できます。 |
request
curl https://apirouter.pleum.ai/v1/3d/generations \
-H "Authorization: Bearer $PLEUM_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: product-mesh-001" \
-d '{
"model": "Hitem3d-2.0",
"images": ["https://example.com/product.png"],
"generation_mode": "high_precision_textured",
"output_format": "glb"
}'submit + poll (Python)
import time, requests
BASE = "https://apirouter.pleum.ai/v1"
HEADERS = {"Authorization": "Bearer plm_...", "Content-Type": "application/json"}
# 1. Submit the job — returns job_id immediately.
resp = requests.post(f"{BASE}/3d/generations", headers=HEADERS, json={
"model": "Hitem3d-2.0",
"images": ["https://example.com/product.png"],
"generation_mode": "high_precision_textured",
"output_format": "glb",
})
job_id = resp.json()["job_id"]
# 2. Poll until the job finishes.
while True:
job = requests.get(f"{BASE}/jobs/{job_id}", headers=HEADERS).json()
if job["status"] in ("succeeded", "failed"):
break
time.sleep(5)
print(job["result_url"] if job["status"] == "succeeded" else job["error"])submit + poll (TypeScript)
const BASE = "https://apirouter.pleum.ai/v1";
const HEADERS = { Authorization: "Bearer plm_...", "Content-Type": "application/json" };
// 1. Submit the job — returns job_id immediately.
const submit = await fetch(`${BASE}/3d/generations`, {
method: "POST",
headers: HEADERS,
body: JSON.stringify({
model: "Hitem3d-2.0",
images: ["https://example.com/product.png"],
generation_mode: "high_precision_textured",
output_format: "glb",
}),
});
const { job_id } = await submit.json();
// 2. Poll until the job finishes.
let job: any;
do {
await new Promise((r) => setTimeout(r, 5000));
job = await (await fetch(`${BASE}/jobs/${job_id}`, { headers: HEADERS })).json();
} while (job.status !== "succeeded" && job.status !== "failed");
console.log(job.status === "succeeded" ? job.result_url : job.error);200 OK
{
"job_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"status": "processing",
"model": "Hitem3d-2.0",
"result_url": null,
"cost": null,
"error": null,
"assets": []
}BytePlus ModelArk モデル規則#
モデル固有の入力・形式・価格モードは credit hold 作成前に検証されます。未対応の組み合わせは課金なしで 400 を返します。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| Hyper3D Rodin Gen2 | text-to-3D / image-to-3D | 任意 | prompt または最大 5 枚の画像参照を受け取ります。generation_mode は使えず、Hyper3D mesh_options と seed を利用できます。 |
| Hitem3D 2.0 | image-to-3D | 任意 | 1–4 枚の画像参照と generation_mode が必要です。standard/high-precision × white/textured の選択で公式 variant と価格が一緒に固定されます。 |
ジョブをポーリング#
GET/v1/jobs/{job_id}
POST は最初に processing を返します。GET /v1/jobs/{job_id} は同じ形式を返し、成功時は assets に GLB/OBJ/STL/FBX/USDZ ファイルが含まれることがあり、result_url が代表 URL です。
succeeded
{
"job_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"status": "succeeded",
"model": "Hitem3d-2.0",
"result_url": "https://cdn.pleum.ai/3d/f47ac10b-58cc-4372-a567-0e02b2c3d479.glb",
"cost": {"krw": 2900},
"error": null,
"assets": [
{"type": "3d", "url": "https://cdn.pleum.ai/3d/f47ac10b-58cc-4372-a567-0e02b2c3d479.glb", "format": "glb"}
]
}精算と BYOK#
非同期 3D ジョブは送信時に選択した offering・variant・為替・markup を保存し、完了時にそのスナップショットで精算します。Idempotency-Key は任意(最大 128 文字)で、同じ本文を 24 時間再生します。
3D や動画などの非同期生成は BYOK をサポートしません。BYOK キーのリクエストは
400 を返し、存在しないまたは所有していない job_id は 404 です。