Creative Lab — ビニールフィギュアAPI
ソース写真をもとに大頭のビニールコレクション用3Dフィギュアを2段階で作成します。プロトタイプでは入力写真からスタイル化されたコンセプトイメージを生成し、ビルドではそのコンセプトイメージを3Dモデルに変換します。2つの段階はinput_task_idを通じて結び付けられています。
POST /openapi/creative-lab/vinyl-figure/v1/prototypePOST /openapi/creative-lab/vinyl-figure/v1/build
ビニールフィギュアプロトタイプタスクの作成
ソース写真からビニールフィギュアスタイルのコンセプト画像を1枚生成します。返されるタスクIDはビルドエンドポイントにinput_task_idとして渡します。
レスポンス形式についてはビニールフィギュアプロトタイプタスクオブジェクトを参照してください。
パラメータ
- Name
- image_url
- Type
- string
- 必須
- Description
Meshyが大きな頭のビニールフィギュアとしてスタイライズするためのソース写真です。現在、
.jpg、.jpeg、.png、.webp形式をサポートしています。画像を提供する方法は2つあります:
- パブリックアクセス可能なURL:インターネットからアクセス可能なURL。
- Data URI:画像のbase64エンコードされたData URI。Data URIの例:
data:image/jpeg;base64,<your base64-encoded image data>。
- Name
- name
- Type
- string
- Description
表示用のオプションのタスク名。最大100文字。
戻り値
レスポンスのresultプロパティには、新しく作成されたビニールフィギュアプロトタイプタスクのタスクidが含まれています。このタスクがSUCCEEDEDに達するまで、タスクの取得エンドポイントをポーリングするか、ストリームに購読してください。その後、そのIDをビルドエンドポイントにinput_task_idとして渡します。
失敗モード
- Name
400 - Bad Request- Description
リクエストが受け入れられませんでした。一般的な原因:
- パラメータの欠如:
image_urlが必要です。 - 無効な画像形式:提供された
image_urlがサポートされていない形式です(.jpg、.jpeg、.png、.webp)。 - 画像寸法が範囲外:画像が小さすぎる、最大ファイルサイズを超えている、または最大ピクセル数を超えている。
- アクセスできないURL:
image_urlがダウンロードできませんでした(404またはtimeout)。 - 無効なData URI:base64文字列が不正です。
- コンテンツのフラグ:入力画像がNSFWまたは知的財産のmoderationでフラグされました。
- パラメータの欠如:
- Name
401 - Unauthorized- Description
認証に失敗しました。APIキーを確認してください。
- Name
402 - Payment Required- Description
このタスクを実行するためのクレジットが不足しています。
- Name
429 - Too Many Requests- Description
レート制限を超えました。
Request
# ステージ1: ビニールフィギュアスタイルのコンセプト画像を生成
curl https://api.meshy.ai/openapi/creative-lab/vinyl-figure/v1/prototype \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"image_url": "<your publicly accessible image url or base64-encoded data URI>"
}'
Response
{
"result": "019c8a2e-4b7d-7c3a-8d21-3f2987a1c4de"
}


ビニールフィギュアビルドタスクを作成する
成功したプロトタイプタスクから最終的なテクスチャ付き3Dビニールフィギュアを生成します。ビルドは 画像から3D と同じパイプラインを実行するため、応答オブジェクトのフォーマットと出力URLのリストは正確に一致します。応答の形状については ビニールフィギュアビルドタスクオブジェクト を参照してください。
パラメータ
- Name
- input_task_id
- Type
- string
- 必須
- Description
同じOpenAPIエンドポイントを介して作成されたプロトタイプタスクのタスクIDです。プロトタイプは同じAPIキーで作成され、
SUCCEEDEDに到達し、正確に1つの候補画像を生成したものである必要があります。Webアプリケーションを通じて作成されたプロトタイプタスクは受け付けられません — ビルドエンドポイントは
POST /openapi/creative-lab/vinyl-figure/v1/prototypeによって生成されたプロトタイプタスクのみを受け入れ、他のソースは404で拒否します。
- Name
- name
- Type
- string
- Description
表示目的のための任意のタスク名です。最大100文字。
戻り値
応答の result プロパティには、新しく作成されたビニールフィギュアビルドタスクのタスク id が含まれます。タスクが SUCCEEDED に到達するまで タスクを取得する エンドポイントにポーリングするか、ストリーム にサブスクライブしてください。その後、model_urls.glb からテクスチャ付きGLBをダウンロードするか、下流のパイプラインがOBJを好む場合は model_urls.obj と model_urls.mtl のペアをダウンロードします。
失敗モード
- Name
400 - Bad Request- Description
リクエストは受け入れられませんでした。一般的な原因:
- パラメータ欠如:
input_task_idは必須です。 - 無効なUUID:
input_task_idが有効なUUIDではありません。 - 親が成功していない: 参照されたプロトタイプタスクはまだ
SUCCEEDEDに達していません。 - 候補なし: プロトタイプタスクは成功しましたが、候補画像を生成しませんでした。
- パラメータ欠如:
- Name
401 - Unauthorized- Description
認証に失敗しました。APIキーを確認してください。
- Name
402 - Payment Required- Description
このタスクを実行するためのクレジットが不足しています。
- Name
404 - Not Found- Description
参照されたプロトタイプタスクが存在しない、異なるユーザーに属している、またはWebアプリケーションを通じて作成された(ビルドにチェーンするのはAPIモードのプロトタイプタスクのみ)。
- Name
429 - Too Many Requests- Description
レート制限を超えました。
Request
# ステージ2:成功したプロトタイプタスクからチェーンビルド
curl https://api.meshy.ai/openapi/creative-lab/vinyl-figure/v1/build \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"input_task_id": "019c8a2e-4b7d-7c3a-8d21-3f2987a1c4de"
}'
Response
{
"result": "019c8a31-6e2f-7b4d-9a55-4c3098b2d5ef"
}
ビニールフィギュアタスクを取得する
有効なタスクのidを指定してプロトタイプまたはビルドタスクを取得します。URLパスはタスクのステージに一致している必要があります。例えば、プロトタイプのタスクを/build/:idで取得しようとすると404が返されます。その逆も同様です。
応答形式についてはビニールフィギュアプロトタイプタスクオブジェクトとビニールフィギュアビルドタスクオブジェクトを参照してください。
パラメーター
- Name
- id
- Type
- path
- Description
取得するビニールフィギュアタスクのユニーク識別子。
戻り値
応答にはビニールフィギュアタスクオブジェクトが含まれます。要求されたステージによって構造が異なります。
リクエスト
# プロトタイプ
curl https://api.meshy.ai/openapi/creative-lab/vinyl-figure/v1/prototype/019c8a2e-4b7d-7c3a-8d21-3f2987a1c4de \
-H "Authorization: Bearer ${YOUR_API_KEY}"
# ビルド
curl https://api.meshy.ai/openapi/creative-lab/vinyl-figure/v1/build/019c8a31-6e2f-7b4d-9a55-4c3098b2d5ef \
-H "Authorization: Bearer ${YOUR_API_KEY}"
プロトタイプ応答
{
"id": "019c8a2e-4b7d-7c3a-8d21-3f2987a1c4de",
"type": "creative-lab-vinyl-figure-prototype",
"name": "",
"status": "SUCCEEDED",
"progress": 100,
"created_at": 1752969600000,
"started_at": 1752969604000,
"finished_at": 1752969630000,
"expires_at": 1753228830000,
"preceding_tasks": 0,
"task_error": null,
"consumed_credits": 6,
"image_urls": [
"https://assets.meshy.ai/***/concept.png?Expires=***"
]
}
ビルド応答
{
"id": "019c8a31-6e2f-7b4d-9a55-4c3098b2d5ef",
"type": "creative-lab-vinyl-figure-build",
"name": "",
"status": "SUCCEEDED",
"progress": 100,
"created_at": 1752969700000,
"started_at": 1752969710000,
"finished_at": 1752969735000,
"expires_at": 1753228935000,
"preceding_tasks": 0,
"task_error": null,
"consumed_credits": 30,
"prompt": "",
"negative_prompt": "",
"texture_prompt": "",
"texture_image_url": "",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/019c8a31-6e2f-7b4d-9a55-4c3098b2d5ef/output/model.glb?Expires=***",
"obj": "https://assets.meshy.ai/***/tasks/019c8a31-6e2f-7b4d-9a55-4c3098b2d5ef/output/model.obj?Expires=***",
"mtl": "https://assets.meshy.ai/***/tasks/019c8a31-6e2f-7b4d-9a55-4c3098b2d5ef/output/model.mtl?Expires=***"
},
"thumbnail_url": "https://assets.meshy.ai/***/tasks/019c8a31-6e2f-7b4d-9a55-4c3098b2d5ef/output/preview.png?Expires=***",
"texture_urls": [
{
"base_color": "https://assets.meshy.ai/***/tasks/019c8a31-6e2f-7b4d-9a55-4c3098b2d5ef/output/texture_0.png?Expires=***"
}
]
}
ビニールフィギュアタスクの削除
ビニールフィギュアタスクをキャンセルします。タスクがまだPENDINGの場合、作成時に消費されたクレジットが返金されます。すでにIN_PROGRESSのタスクは、返金なしでキャンセルされます(作業員がすでにリソースを使用している可能性があります)。すでに終端状態に達しているタスク(SUCCEEDED、FAILED、CANCELED)はキャンセルできません。
URLパスはタスクのステージと一致する必要があります — /prototype/:buildIdでのDELETEは404を返します。
パスパラメーター
- Name
- id
- Type
- path
- Description
キャンセルするビニールフィギュアタスクのユニーク識別子。
戻り値
成功時には空のボディで204 No Contentを返します。
失敗時のモード
- Name
400 - Bad Request- Description
タスクがすでに終端状態にあり、キャンセルできません。
- Name
404 - Not Found- Description
タスクが存在しない、別のユーザーに属している、またはそのステージがURLパスと一致しません。
Request
curl --request DELETE \
--url https://api.meshy.ai/openapi/creative-lab/vinyl-figure/v1/prototype/019c8a2e-4b7d-7c3a-8d21-3f2987a1c4de \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
// 成功時には204 No Contentを返します(ボディは空です)。
ビニールフィギュアタスクのストリーム
Server-Sent Events (SSE)を通じてビニールフィギュアタスクのリアルタイム更新をストリームします。URLパスはタスクのステージと一致する必要があります。/prototype/:buildId/streamでストリームを開くと、event: errorという単一のペイロードがstatus_code: 404で送信され、ストリームが閉じられます。
パラメータ
- Name
- id
- Type
- path
- Description
ストリームするビニールフィギュアタスクの一意の識別子。
戻り値
Vinyl Figure PrototypeまたはVinyl Figure Buildタスクオブジェクトのストリームが返されます。PENDINGまたはIN_PROGRESSのタスクでは、レスポンスストリームには必要なprogressおよびstatusフィールドのみが含まれます。
リクエスト
curl -N https://api.meshy.ai/openapi/creative-lab/vinyl-figure/v1/build/019c8a31-6e2f-7b4d-9a55-4c3098b2d5ef/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"
レスポンスストリーム
// エラーイベント例(間違ったステージまたはタスクが見つからない)
event: error
data: {
"status_code": 404,
"message": "Task not found"
}
// メッセージイベントの例ではタスクの進行を示します。
// PENDINGまたはIN_PROGRESSのタスクでは、レスポンスストリームにはすべてのフィールドは含まれません。
event: message
data: {
"id": "019c8a31-6e2f-7b4d-9a55-4c3098b2d5ef",
"progress": 0,
"status": "PENDING"
}
event: message
data: {
"id": "019c8a31-6e2f-7b4d-9a55-4c3098b2d5ef",
"type": "creative-lab-vinyl-figure-build",
"status": "SUCCEEDED",
"progress": 100,
"created_at": 1752969700000,
"started_at": 1752969710000,
"finished_at": 1752969735000,
"expires_at": 1753228935000,
"task_error": null,
"consumed_credits": 30,
"prompt": "",
"negative_prompt": "",
"texture_prompt": "",
"texture_image_url": "",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/019c8a31-6e2f-7b4d-9a55-4c3098b2d5ef/output/model.glb?Expires=***",
"obj": "https://assets.meshy.ai/***/tasks/019c8a31-6e2f-7b4d-9a55-4c3098b2d5ef/output/model.obj?Expires=***",
"mtl": "https://assets.meshy.ai/***/tasks/019c8a31-6e2f-7b4d-9a55-4c3098b2d5ef/output/model.mtl?Expires=***"
},
"thumbnail_url": "https://assets.meshy.ai/***/tasks/019c8a31-6e2f-7b4d-9a55-4c3098b2d5ef/output/preview.png?Expires=***",
"texture_urls": [
{
"base_color": "https://assets.meshy.ai/***/tasks/019c8a31-6e2f-7b4d-9a55-4c3098b2d5ef/output/texture_0.png?Expires=***"
}
]
}
ビニールフィギュアタスクを一覧表示
単一のステージのビニールフィギュアタスクのページネーションされたリストを取得します。
URLパスはステージを選択します — /prototype はプロトタイプタスクを返し、
/build はビルドタスクを返します。他のステージのタスクは
いずれのレスポンスにも含まれません。
パスパラメータ
- Name
- stage
- Type
- path
- 必須
- Description
prototypeまたはbuildのいずれか。コレクションはURLに一致する ステージのタスクのみを返します —/prototypeを取得すると ビルドタスクは決して返されず、その逆も同様です。
クエリパラメータ
- Name
- page_num
- Type
- integer
- デフォルト 1
- Description
ページネーションのためのページ番号。
- Name
- page_size
- Type
- integer
- デフォルト 10
- Description
ページサイズ制限。最大許可数は
50アイテムです。
- Name
- sort_by
- Type
- string
- デフォルト -created_at
- Description
ソートするフィールド。利用可能な値:
+created_at: 作成時刻で昇順にソートします。-created_at: 作成時刻で降順にソートします。
戻り値
ステージごとのタスクオブジェクトのページネーションされたリストを返します —
/prototype をリストする際は
ビニールフィギュアプロトタイプタスクオブジェクトを、
/build をリストする際は
ビニールフィギュアビルドタスクオブジェクトを返します。
Request
# プロトタイプタスクを一覧表示
curl https://api.meshy.ai/openapi/creative-lab/vinyl-figure/v1/prototype?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
# ビルドタスクを一覧表示
curl https://api.meshy.ai/openapi/creative-lab/vinyl-figure/v1/build?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response (List Prototype Tasks)
[
{
"id": "019c8a2e-4b7d-7c3a-8d21-3f2987a1c4de",
"type": "creative-lab-vinyl-figure-prototype",
"name": "",
"status": "SUCCEEDED",
"progress": 100,
"created_at": 1752969600000,
"started_at": 1752969604000,
"finished_at": 1752969630000,
"expires_at": 1753228830000,
"preceding_tasks": 0,
"task_error": null,
"consumed_credits": 6,
"image_urls": [
"https://assets.meshy.ai/***/concept.png?Expires=***"
]
}
]
ビニールフィギュア プロトタイプタスクオブジェクト
ビニールフィギュア プロトタイプタスクオブジェクトは、Meshyが追跡する作業単位で、
ソース写真からビニールフィギュアスタイルのコンセプトイメージを生成します。
この段階の出力は input_task_id を通じて
ビルド段階を作成する に連携されます。
プロパティ
- Name
- id
- Type
- string
- Description
タスクのユニーク識別子です。タスクIDにはkソート可能なUUIDを使用していますが、IDの形式について推測するべきではありません。
- Name
- type
- Type
- string
- Description
タスクのタイプです。値は
creative-lab-vinyl-figure-prototypeです。
- Name
- name
- Type
- string
- Description
タスクが作成されたときに提供されたタスク名です。名前が提供されていない場合、空の文字列です。
- Name
- status
- Type
- string
- Description
タスクのステータスです。可能な値は
PENDING、IN_PROGRESS、SUCCEEDED、FAILED、CANCELEDのいずれかです。
- Name
- progress
- Type
- integer
- Description
タスクの進捗状況です。タスクがまだ開始されていない場合、このプロパティは
0になります。タスクが成功すると、このプロパティは100になります。
- Name
- created_at
- Type
- timestamp
- Description
タスクが作成された日時のタイムスタンプ(ミリ秒単位)です。
タイムスタンプは 1970年1月1日UTCからの経過ミリ秒数を表し、RFC 3339
規格に従います。例えば、2023年9月1日金曜日12:00:00 GMTは1693569600000として表されます。これはMeshy APIにおける全てのタイムスタンプに適用されます。
- Name
- started_at
- Type
- timestamp
- Description
タスクが開始された日時のタイムスタンプ(ミリ秒単位)です。タスクがまだ開始されていない場合、このプロパティは
0になります。
- Name
- finished_at
- Type
- timestamp
- Description
タスクが終了した日時のタイムスタンプ(ミリ秒単位)です。タスクがまだ終了していない場合、このプロパティは
0になります。
- Name
- expires_at
- Type
- timestamp
- Description
タスク結果の有効期限のタイムスタンプ(ミリ秒単位)です。
- Name
- preceding_tasks
- Type
- integer
- Description
先行するタスクの数です。
このフィールドの値はタスクのステータスが
PENDINGの場合にのみ意味があります。
- Name
- task_error
- Type
- object
- Description
失敗したタスクのエラー詳細です。完全な
task_errorオブジェクトの参照については エラー を参照してください。
- Name
- consumed_credits
- Type
- integer
- Description
このタスクによって消費されたクレジットの数です。タスクのステータスが
PENDING、IN_PROGRESS、SUCCEEDEDの場合に存在します。FAILEDタスクの場合は0を返します(失敗時にはクレジットが返金されます)。
- Name
- image_urls
- Type
- array of strings
- Description
このプロトタイプタスクによって生成されたコンセプトイメージ候補のダウンロード可能なURLです。現在、APIは常に正確に1つの候補を返しますが、このフィールドは将来の改訂で複数の候補を表示できるように配列として提供されています。
Example Vinyl Figure Prototype Task Object
{
"id": "019c8a2e-4b7d-7c3a-8d21-3f2987a1c4de",
"type": "creative-lab-vinyl-figure-prototype",
"name": "",
"status": "SUCCEEDED",
"progress": 100,
"created_at": 1752969600000,
"started_at": 1752969604000,
"finished_at": 1752969630000,
"expires_at": 1753228830000,
"preceding_tasks": 0,
"task_error": null,
"consumed_credits": 6,
"image_urls": [
"https://assets.meshy.ai/***/concept.png?Expires=***"
]
}
ビニールフィギュアビルドタスクオブジェクト
ビニールフィギュアビルドタスクオブジェクトは、Meshy が追跡する作業単位であり、SUCCEEDED プロトタイプタスクからテクスチャ付き3Dビニールフィギュアを生成します。画像から3Dで使用されるのと同じ画像から3Dパイプラインを実行するため、出力フィールドはそのエンドポイントのタスクオブジェクトを反映します。
Properties
- Name
- id
- Type
- string
- Description
タスクのユニークな識別子。
- Name
- type
- Type
- string
- Description
タスクのタイプ。値は
creative-lab-vinyl-figure-buildです。
- Name
- name
- Type
- string
- Description
タスクが作成されたときに提供されたタスク名。名前が提供されていない場合は空文字列。
- Name
- status
- Type
- string
- Description
タスクのステータス。可能な値は
PENDING、IN_PROGRESS、SUCCEEDED、FAILED、CANCELEDのいずれかです。
- Name
- progress
- Type
- integer
- Description
タスクの進捗状況。タスクがまだ開始されていない場合、このプロパティは
0になります。タスクが成功したら、100になります。
- Name
- created_at
- Type
- timestamp
- Description
タスクが作成された時点のタイムスタンプ(ミリ秒単位)。
- Name
- started_at
- Type
- timestamp
- Description
タスクが開始された時点のタイムスタンプ(ミリ秒単位)。
- Name
- finished_at
- Type
- timestamp
- Description
タスクが終了した時点のタイムスタンプ(ミリ秒単位)。
- Name
- expires_at
- Type
- timestamp
- Description
タスク結果が期限切れになる時点のタイムスタンプ(ミリ秒単位)。
- Name
- preceding_tasks
- Type
- integer
- Description
前のタスクの数。ステータスが
PENDINGのときのみ意味があります。
- Name
- task_error
- Type
- object
- Description
失敗したタスクのエラー詳細。完全な
task_errorオブジェクトの参照については、Errors を参照してください。
- Name
- consumed_credits
- Type
- integer
- Description
このタスクで消費されたクレジットの数。
FAILEDタスクの場合は0を返します(失敗時にクレジットは返金されます)。
- Name
- prompt
- Type
- string
- Description
ビニールフィギュアビルドでは常に空です。画像から3D で使用される共通の
V2ImageTo3DTaskResponse形状とのクロスエンドポイント互換性のために存在します。
- Name
- negative_prompt
- Type
- string
- Description
ビニールフィギュアビルドでは常に空です。クロスエンドポイント互換性のために存在します。
- Name
- texture_prompt
- Type
- string
- Description
ビニールフィギュアビルドでは常に空です。クロスエンドポイント互換性のために存在します。
- Name
- texture_image_url
- Type
- string
- Description
ビニールフィギュアビルドでは常に空です。クロスエンドポイント互換性のために存在します。
- Name
- model_urls
- Type
- object
- Description
生成された3Dモデルのダウンロード可能なURL。ビニールフィギュアビルドは、テクスチャ付きGLBとWavefront OBJを好むパイプライン用のOBJ + MTLペアを生成します。フィールドの形状は、将来のフォーマット追加により破損することなくスロットインできるように、画像から3Dのmodel_urls オブジェクトに一致します。
- Name
glb- Type
- string
- Description
テクスチャ付きGLBファイルのダウンロード可能なURL。
- Name
obj- Type
- string
- Description
Wavefront OBJファイル(ジオメトリ + UV)のダウンロード可能なURL。
- Name
mtl- Type
- string
- Description
OBJの伴うMTLマテリアルファイルのダウンロード可能なURL。
objとtexture_urls[0].base_colorのエントリーと対にしてください。
- Name
- thumbnail_url
- Type
- string
- Description
モデルファイルのサムネイル画像のダウンロード可能なURL。
- Name
- texture_urls
- Type
- array
- Description
このタスクによって生成されたテクスチャURLオブジェクトの配列。現在はベースカラーマップを含む単一のオブジェクトを含みます。
- Name
base_color- Type
- string
- Description
ベースカラーマップ画像のダウンロード可能なURL。
Example Vinyl Figure Build Task Object
{
"id": "019c8a31-6e2f-7b4d-9a55-4c3098b2d5ef",
"type": "creative-lab-vinyl-figure-build",
"name": "",
"status": "SUCCEEDED",
"progress": 100,
"created_at": 1752969700000,
"started_at": 1752969710000,
"finished_at": 1752969735000,
"expires_at": 1753228935000,
"preceding_tasks": 0,
"task_error": null,
"consumed_credits": 30,
"prompt": "",
"negative_prompt": "",
"texture_prompt": "",
"texture_image_url": "",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/019c8a31-6e2f-7b4d-9a55-4c3098b2d5ef/output/model.glb?Expires=***",
"obj": "https://assets.meshy.ai/***/tasks/019c8a31-6e2f-7b4d-9a55-4c3098b2d5ef/output/model.obj?Expires=***",
"mtl": "https://assets.meshy.ai/***/tasks/019c8a31-6e2f-7b4d-9a55-4c3098b2d5ef/output/model.mtl?Expires=***"
},
"thumbnail_url": "https://assets.meshy.ai/***/tasks/019c8a31-6e2f-7b4d-9a55-4c3098b2d5ef/output/preview.png?Expires=***",
"texture_urls": [
{
"base_color": "https://assets.meshy.ai/***/tasks/019c8a31-6e2f-7b4d-9a55-4c3098b2d5ef/output/texture_0.png?Expires=***"
}
]
}