Image to 3D Model APIは、1枚の写真を数秒で本番環境対応の3Dモデルに変換します。手動でのモデリングは不要です。すべてのアセットを手作業でモデリングするのは時間とコストがかかり、ゲームスタジオ、ARアプリ、Eコマースチームにとっては、ローンチを遅らせるボトルネックになりがちです。MeshyのImage to 3D Model APIはその摩擦を取り除きます。画像を送信し、数秒で3Dモデルに変換し、GLB、FBX、OBJなどの形式で完全にテクスチャリングされたメッシュをダウンロードできます。このガイドでは、APIキーの作成から最初のモデルのダウンロードまでの全ワークフローを、数分で実行できるコピペ可能なコードとともに説明します。
Image to 3D Model APIとは?
その核となるのは、Image to 3D Model APIは、Meshyの画像から3DモデルへのAIを搭載したRESTエンドポイントです。1枚の画像(JPG、JPEG、またはPNG)を公開URLまたはbase64文字列として送信すると、APIはテクスチャリングされた3Dモデル(ジオメトリとベースカラーテクスチャを含む)を、GLB、FBX、OBJ、USDZ、STL、3MFなどの標準形式で返します。オプションのアドオンとして、PBRマップ、最大4Kテクスチャ、マルチアングルプレビューサムネイルがあります。
最新のMeshy 6モデルを搭載したこのAPIでは、トポロジーとポリゴン数を設定し、ポーズモードを指定し、テキストプロンプトや参照画像でテクスチャリングをガイドできます。ゲーム、AR/VR、3Dプリント、プロダクトビジュアライゼーション向けのアセット生成に最適です。
Image to 3D APIを使用するために必要なものは?
このガイドに従うために必要なものは多くありません。以下のものを用意してください。
-
Meshyアカウント — お持ちでない場合は無料でサインアップしてください。ステップ1でダッシュボードからAPIキーを生成します。
-
APIキー — すべてのリクエストを認証するために使用します。作成方法を説明します。また、クレジットを消費せずに試せる無料のテストモードキーも使用できます。
-
入力画像 — 公開アクセス可能なURL(またはbase64エンコード)でホストされた、鮮明な
.jpg、.jpeg、または.png画像。背景がクリーンで被写体がはっきり見えるものが最良の結果をもたらします。 -
HTTPリクエストを行う手段 —
curl(以下の例で使用)、Postman、または任意の言語のHTTPライブラリ。REST APIとJSONの基本的な知識があれば役立ちますが、必須ではありません。
以上です。3Dモデリングの経験は必要ありません。始めましょう。
APIを使用して画像を3Dモデルに変換する方法(ステップバイステップガイド)
ステップ1:API設定を行う
構築を開始するために必要なものはすべて、API設定ページにあります。ここがMeshy APIのコントロールセンターであり、3つの主要なセクションがあります。
-
API Keys — リクエストを認証するキーを生成および管理します。
-
Webhooks — タスクが完了したときに自動的に通知を受け取ります。
-
Usage — 残りのクレジット残高とAPI消費量をリアルタイムで追跡します。
それぞれを見ていきましょう。
APIキーを取得する
リクエストを行う前に、安全に認証するためのAPIキーが必要です。API設定ページで、Generate API Keyをクリックします。すべてのキーはmsy-<ランダム文字列>の形式に従います。
ヒント: 生成したら、APIキーは安全な場所(パスワードマネージャーや環境変数など)に保存してください。パスワードのように扱い、ソース管理にコミットしたり、クライアントサイドコードで公開したりしないでください。
![]()
テストモードAPIキー
開発とテスト中は、テストモードAPIキーを使用して、クレジットを消費せずにAPIを試すことができます。
msy_dummy_api_key_for_test_mode_12345678この特別なキーには以下の特性があります。
-
すべてのMeshy APIエンドポイントへのリクエストに使用できます。
-
このキーを使用してもクレジットは消費されません。
-
入力パラメータに関係なく、すべての有効なリクエストは同じサンプルタスク結果を返します。
-
レスポンスデータ構造は本番APIと完全に一致します。
そのため、実際のAPIキーに切り替える前に、統合をテストするのに最適です。
Webhookを設定する(オプション)
3Dモデルの生成には時間がかかるため、タスクの完了を確認するためにAPIを繰り返しポーリングする代わりに、Meshyから完了時に通知を受け取ることができます。それがWebhookの役割です。
設定ページのWebhooksセクションで、Meshyがイベント通知を送信するエンドポイントURLを追加します。タスクのステータスが変更されると(例えば、完了または失敗した場合)、Meshyはペイロードにタスクの詳細を含むHTTP POSTリクエストをあなたのURLに送信します。
ヒント: Webhookは本番環境で推奨される方法です。不要なAPI呼び出しを減らし、アプリケーションが結果にリアルタイムで反応できるようにします。簡単なテストにはポーリングでも問題ありません。Webhookコードをローカルでテストするには、smee.ioのようなサービスのプロキシURLを指定してください。
コードなしで試す — API Playground(オプション)
![]()
すでにAPIキーをお持ちですか?コードを書く前に、ブラウザ上で実際のImage to 3Dタスクを実行できます。
meshy.ai/api-playgroundを開き、左パネルからImage to 3Dを選択し、以下の3つを入力します。
-
Authorization — APIキー(
msy-xxxxxxxxxx)を貼り付けます -
Image — コンピュータから
.jpg、.jpeg、または.pngファイルをアップロードします -
Sendを押します
Playgroundはタスクを送信し、自動的に結果をポーリングします。完了すると、ブラウザ上で3Dモデルのプレビューとダウンロードリンクが表示されます。コードは不要です。
プロのヒント: 右側の生のリクエスト/レスポンスパネルには、APIが送受信する内容が正確に表示されます。内容を直接コピーできます。レスポンスから
task_idを取得し、タスク完了時にmodel_urlsを取得してください。次のステップで両方を使用します。
ステップ2:Image to 3Dタスクを送信する
APIキーの準備ができたら、1回のPOSTリクエストでタスクを開始します。
curl -X POST https://api.meshy.ai/openapi/v1/image-to-3d \
-H "Authorization: Bearer $MESHY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"image_url": "https://example.com/your-image.png"
}'次のようなレスポンスが返ってきます。
{
"result": "018a210d-8ba4-705c-b111-1f1776f7f578"
}このresultの値があなたのtask_idです。保存しておいてください。次のステップで進捗を確認し、モデルを取得するために必要になります。
オプション: タスク完了時に自動的に通知を受け取るには、JSONボディに
webhook_urlフィールドを追加します。例:"webhook_url": "https://yourapp.com/webhooks/meshy"。仕組みについてはステップ3のオプションBを参照してください。
ステップ3:結果を取得する
タスクはすぐには完了しません。Meshyがバックグラウンドで処理します。結果を取得するには2つの方法があります。
オプションA:ステータスをポーリングする(最も簡単)
statusがSUCCEEDEDに変わるまで、5秒ごとにGETリクエストを送信します。
curl https://api.meshy.ai/openapi/v1/image-to-3d/{task_id} \
-H "Authorization: Bearer $MESHY_API_KEY"レスポンスは次のようになります。
{
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"status": "SUCCEEDED",
"progress": 100,
"model_url": "https://assets.meshy.ai/.../model.glb",
"model_urls": {
"glb": "https://assets.meshy.ai/.../model.glb",
"fbx": "https://assets.meshy.ai/.../model.fbx",
"obj": "https://assets.meshy.ai/.../model.obj",
"usdz": "https://assets.meshy.ai/.../model.usdz",
"stl": "https://assets.meshy.ai/.../model.stl",
"mtl": "https://assets.meshy.ai/.../model.mtl"
},
"thumbnail_url": "https://assets.meshy.ai/.../thumbnail.png",
"consumed_credits": 30
}知っておくと便利ないくつかのフィールド:
-
model_urlsには、生成されたすべての形式のダウンロードリンクが含まれます。デフォルトでは、glb、fbx、obj、usdz、stl、およびmtl(objとペアになるマテリアルファイル)が含まれます。 -
model_urlはGLBリンクへのショートカットです。GLBだけで十分な場合に便利です。 -
consumed_creditsは、タスクが使用したクレジット数を示します(失敗したタスクの場合は0です。クレジットは返金されるためです)。 -
thumbnail_urlは常に存在し、正面図のサムネイルを指します。 -
thumbnail_urlsはmulti_view_thumbnails: trueの場合にのみ表示され、正面、右、背面、左のビューが含まれます。 -
alpha_thumbnail_urlはalpha_thumbnail: trueの場合にのみ表示され、透明な背景のサムネイルが含まれます。
可能なstatus値:PENDING → IN_PROGRESS → SUCCEEDED / FAILED / CANCELED
オプションB:Webhook(本番環境推奨)
ステップ2でwebhook_urlを設定した場合、Meshyは完了したタスクオブジェクトを自動的にあなたのURLにPOSTします。ポーリングは不要です。
{
"image_url": "https://example.com/your-image.png",
"webhook_url": "https://yourapp.com/webhooks/meshy"
}💡 どちらを使うべきですか? プロトタイピングや1回限りのタスクにはポーリングで十分です。本番環境ではWebhookを使用してください。より信頼性が高く、API呼び出しを節約できます。
![]()
ステップ4:3Dモデルをダウンロードする
statusがSUCCEEDEDになったら、model_urlsからダウンロードURLを取得し、必要な形式をダウンロードします。
curl -o model.glb "https://assets.meshy.ai/.../model.glb"-o model.glbフラグは、ファイルを現在の作業ディレクトリにその名前で保存します。フルパス(例:-o /path/to/model.glb)を使用して別の場所に保存することもできます。
デフォルトでは、すべてのタスクはGLB、FBX、OBJ、USDZ、STL、およびMTL(OBJ用のマテリアルファイル)を返します。3MFはオプトインです。target_formatsで明示的にリクエストした場合にのみ取得できます(以下のパラメータテーブルを参照)。
⚠️ リンクの有効期限は3日間です(エンタープライズプランでは永続リンクが利用可能です)。モデルは速やかにダウンロードして保存してください。期限が切れるとリンクは機能しなくなり、タスクを再実行する必要があります。
![]()
このモデルをDCCツールで使用する準備はできましたか?Bridge to Blenderガイドを参照してください。Meshyには、Unity、Unreal、Maya、その他向けのブリッジもあります。
最良の画像から3Dへの結果を得るには?
-
単一で、はっきりと見える被写体を使用してください。 1つの主要なオブジェクトが中央にあり、フレームに完全に収まっていると、AIに最もクリーンな参照が与えられます。込み入ったシーン、過度なトリミング、極端なアングルは避けてください。
-
クリーンで、すっきりとした背景を選んでください。 無地またはシンプルな背景は、モデルが被写体を周囲から分離するのに役立ちます。
-
均一で拡散した照明を使用してください。 強い影や強いハイライトは、生成されたテクスチャに誤解を招くディテールを焼き付ける可能性があります。
-
高解像度でシャープな画像から始めてください。 入力のディテールが多いほど、出力のディテールも多くなります。ぼやけた画像や低解像度の入力は、よりソフトなモデルを生成します。
Image to 3D APIではどのプログラミング言語を使用できますか?
HTTPリクエストを行える任意の言語です。JSONでPOSTを送信し、GETでポーリングします。一般的なオプションは次のとおりです。
-
Python —
requestsまたはhttpxライブラリを使用 -
JavaScript / TypeScript —
fetch(組み込み)またはaxiosを使用 -
Go — 標準ライブラリの
net/httpを使用 -
cURL — ターミナルからの簡単なテストに最適
これら4つすべてのコピー可能なコードサンプルは、API Playgroundにもあります。
Image to 3Dタスクのクレジットコストはいくらですか?
コストはモデルバージョンとテクスチャを生成するかどうかによって異なります。デフォルトの設定(テクスチャリングありのmeshy-6)は、タスクあたり30クレジットです。
| 設定 | クレジット |
|---|---|
| meshy-6 / latest、テクスチャあり(デフォルト) | 30 |
| meshy-6 / latest、テクスチャなし | 20 |
| meshy-5、テクスチャあり | 15 |
| meshy-5、テクスチャなし | 5 |
失敗したタスクは自動的に返金されます。consumed_creditsは0を返します。最新の料金については、常にPricingを確認してください。
Image to 3D APIはどのようなパラメータを受け入れますか?
以下のパラメータを使用して、/openapi/v1/image-to-3dにPOSTを送信します。
必須(いずれか1つ):
| パラメータ | タイプ | 説明 |
|---|---|---|
| image_url | string | ソース画像のURL(JPGまたはPNG) |
| input_task_id | string | 以前のText to ImageまたはImage to ImageタスクのID。APIで生成されたものである必要があり(Workspaceで作成されたものではない)、SUCCEEDEDステータスであり、正確に1つの画像を生成する必要があります |
オプション:
| パラメータ | タイプ | デフォルト | 説明 |
|---|---|---|---|
| ai_model | string | latest | モデルバージョン:meshy-5、meshy-6、またはlatest |
| model_type | string | standard | standard または lowpoly |
| should_texture | boolean | TRUE | テクスチャを生成する |
| enable_pbr | boolean | FALSE | ベースカラーに加えてPBRマップ(メタリック、ラフネス、ノーマル)を生成する。ai_modelがmeshy-6またはlatestの場合、エミッションマップも含まれます |
| hd_texture | boolean | FALSE | ベースカラーテクスチャを4K(4096×4096)で生成する。meshy-6/latestでのみサポート。PBRマップは常に2Kです |
| texture_prompt | string | — | テクスチャリングをガイドするテキストプロンプト(最大600文字) |
| texture_image_url | string | — | テクスチャリングをガイドする参照画像(URLまたはbase64;.jpg/.jpeg/.png)。texture_promptとは相互に排他的です。両方が送信された場合、texture_promptが優先されます |
| image_enhancement | boolean | TRUE | 入力画像をAIで強化する。元の外観を維持するにはfalseに設定します。meshy-6/latestでのみサポート |
| remove_lighting | boolean | TRUE | ベースカラーテクスチャから焼き付いたハイライトと影を除去し、カスタム照明下での結果を向上させます。meshy-6/latestでのみサポート |
| auto_size | boolean | FALSE | オブジェクトの現実世界の高さを自動推定し、モデルをスケーリングします。3Dプリントに便利です |
| origin_at | string | bottom | モデルの原点:bottom または center。auto_sizeが有効な場合にのみ適用されます |
| multi_view_thumbnails | boolean | FALSE | 4つの基本方位のサムネイル(正面、右、背面、左)をレンダリングし、thumbnail_urlsとして返します。既存のthumbnail_url(正面図)は影響を受けません。タスク時間が約3秒追加されます |
| alpha_thumbnail | boolean | FALSE | サムネイルの透明背景バージョンを生成し、alpha_thumbnail_urlとして返します |
| target_formats | array | 3mf以外すべて | 出力形式:glb、obj、fbx、stl、usdz、3mf。リクエストされた形式のみが生成されるため、タスク時間を短縮できます。3mfはオプトインです。取得するには明示的にリストに含めてください |
| webhook_url | string | — | タスク完了時にMeshyが完了したタスクオブジェクトをPOSTするURL |
Image to 3D APIの次のステップ
これで完全なワークフローを習得しました。APIキーを作成し、画像を送信し、結果をポーリングまたはWebhookで取得し、モデルをダウンロードします。同じ4つのステップは、簡単なプロトタイプから、数千の画像を自動的に3Dアセットに変換する本番パイプラインまで拡張できます。API設定ページからキーを取得し、今日最初のモデルをリリースしましょう。写真ではなくプロンプトから始めたいですか?Text to 3D Model APIを使用してください。
よくある質問
APIを介して画像を3Dモデルに変換するにはどうすればよいですか?
image_urlとAPIキーを指定して/openapi/v1/image-to-3dにPOSTリクエストを送信し、statusがSUCCEEDEDになるまでタスクをポーリング(またはWebhookを使用)します。レスポンスには、生成されたモデルのダウンロードリンクが含まれます。キー、送信、取得、ダウンロードの完全な4ステップフローは、上記のステップバイステップガイドで説明されています。
APIはどのような出力形式(STL、GLB、OBJ)をサポートしていますか?
すべてのタスクはデフォルトでGLB、FBX、OBJ、USDZ、STL、およびMTLを返し、3MFはtarget_formatsを介してリクエストに応じて利用可能です。GLBはWebとARに、FBXとOBJはDCCツールとゲームエンジンに、USDZはiOS ARに、STLは3Dプリントに最適です。
どのような画像形式をアップロードできますか?
Image to 3D APIは、最大100 MBのJPG、JPEG、およびPNG画像をサポートしています。これはMeshy Workspace UIの20 MB制限よりも大きいです。最も正確な結果を得るには、透明またはクリーンな白い背景のPNGを使用してください。これにより、APIが被写体を分離し、高品質の3Dモデルを生成するのに役立ちます。
APIからテクスチャリングされた3Dモデルを取得できますか?
はい。テクスチャリングはデフォルトで有効です("should_texture": true)。PBRマップ(メタリック、ラフネス、ノーマル)を追加するには、"enable_pbr": trueを設定します。meshy-6/latestでは、これにはエミッションマップも含まれます。4Kベースカラーテクスチャの場合は、"hd_texture": trueを設定します(meshy-6/latestでのみサポート。PBRマップは2Kのままです)。texture_promptまたはtexture_image_urlを使用してテクスチャスタイルを指定することもできます。
3Dプリント(STL)に対応した3Dモデルを生成できますか?
はい。STLはデフォルトで生成されます。そのため、画像から3D STLへの変換には追加のパラメータは必要ありません。タスクが完了したら、model_urls.stlを取得するだけです。STLはスライサーが期待する標準形式であるため、画像から3Dプリントへのワークフローが簡単になります。STLのみが必要な場合は、"target_formats": ["stl"]を設定して他の形式をスキップし、生成時間を短縮できます。
APIアクセスが含まれるプランはどれですか?
APIアクセスはPro、Studio、およびEnterpriseプランで利用可能です。Pro以上向けの機能です。無料のStarterプランにはAPIアクセスは含まれていません。詳細はPricingを参照してください。
ダウンロードリンクの有効期間はどのくらいですか?
ダウンロードリンクの有効期限は、ProおよびStudioプランでは3日間です。エンタープライズのお客様は永続リンクを利用できます。ファイルは速やかに保存してください。期限切れのリンクは復元できず、タスクを再実行する必要があります。
複数のタスクを同時に実行できますか?
はい、同時リクエストはサポートされています。429 Too Many Requestsエラーが発生した場合、アカウントがレート制限に達しています。指数バックオフを実装して再試行してください。お使いのプランの制限については、Rate Limitsページを参照してください。
タスクがFAILEDと表示されます。どうすればよいですか?
task_error.messageを確認して原因を特定してください。一般的なものは次のとおりです。
| エラー | 修正方法 |
|---|---|
| Image URL not accessible | URLが公開アクセス可能であることを確認してください(認証不要) |
| moderation_blocked | 画像がフラグされました。別の画像を試してください |
| image_too_complex | 背景を簡素化するか、被写体をトリミングしてください |
| Unsupported format | JPGまたはPNGのみを使用してください |
問題が解決しない場合は、Meshyサポートにお問い合わせください。







