Tukarkan prompt teks atau foto sumber menjadi tudung lampu yang boleh dicetak 3D dalam dua
peringkat: prototaip menjana imej konsep putih kusam yang bergaya, kemudian
binaan menukarkan imej konsep itu menjadi tudung lampu STL berongga (secara pilihan
dipasangkan dengan cakera tapak untuk lekapan sumber cahaya). Kedua-dua peringkat dipautkan
melalui input_task_id.
Jana satu imej konsep putih-mat untuk teduh lampu — sama ada
daripada prompt teks (teks-ke-3D) atau daripada foto rujukan (imej-ke-3D).
ID tugasan yang dikembalikan ialah perkara yang anda hantar sebagai input_task_id kepada endpoint
bina. Rujuk
Objek Tugasan Prototaip lampu
untuk bentuk respons.
Parameter
Tepat satu daripada text atau image_url adalah diperlukan. Menghantar kedua-duanya, atau tiada satu pun, mengembalikan 400.
Name
text
Type
string
Diperlukan
Description
Prompt teks yang menerangkan subjek teduh lampu yang dikehendaki. Diperlukan apabila image_url ditinggalkan. Maksimum 800 aksara.
Name
image_url
Type
string
Diperlukan
Description
Foto sumber yang digunakan oleh Meshy sebagai rujukan visual untuk teduh lampu. Diperlukan apabila text ditinggalkan. Pada masa ini kami menyokong format .jpg, .jpeg, .png, dan .webp.
Terdapat dua cara untuk menyediakan imej:
URL yang boleh diakses secara awam: URL yang boleh diakses daripada internet awam.
Data URI: Data URI imej yang dikodkan base64. Contoh data URI: data:image/jpeg;base64,<your base64-encoded image data>.
Name
image_subject
Type
string
lalai character
Description
Petunjuk kategori subjek untuk laluan imej-ke-3D. Nilai yang tersedia:
character (lalai) — subjek watak / objek tunggal (patung kecil, haiwan, maskot, dsb.).
Nama tugasan pilihan untuk tujuan paparan. Maksimum 100 aksara.
Mengembalikan
Sifat result dalam respons mengandungi id tugasan bagi tugasan prototaip lampu yang baru dicipta. Tinjau endpoint Dapatkan Tugasan atau langgan strim sehingga tugasan mencapai SUCCEEDED, kemudian hantar ID itu kepada endpoint bina sebagai input_task_id.
Mod Kegagalan
Name
400 - Bad Request
Description
Permintaan tidak boleh diterima. Punca lazim:
Parameter hilang: Tepat satu daripada text atau image_url diperlukan.
Kedua-duanya disediakan: Menghantar kedua-dua text dan image_url ditolak — kedua-duanya saling eksklusif.
Format imej tidak sah: image_url yang disediakan bukan format yang disokong (.jpg, .jpeg, .png, .webp).
Dimensi imej di luar julat: Imej terlalu kecil, melebihi saiz fail maksimum, atau melebihi kiraan piksel maksimum.
URL tidak dapat dicapai: image_url tidak dapat dimuat turun (404 atau timeout).
Data URI tidak sah: Rentetan base64 cacat.
Kandungan ditandakan: Imej input ditandakan oleh moderation NSFW atau harta intelek.
Teks terlalu panjang: text melebihi 800 aksara.
image_subject tidak sah: Bukan salah satu daripada character / landscape.
Name
401 - Unauthorized
Description
Pengesahan gagal. Sila semak kunci API anda.
Name
402 - Payment Required
Description
Kredit tidak mencukupi untuk melaksanakan tugasan ini.
Name
429 - Too Many Requests
Description
Anda telah melebihi had kadar anda.
Request
POST
/openapi/creative-lab/lamp/v1/prototype
# Stage 1 (image-to-3D): generate a matte-white lampshade concept imagecurl https://api.meshy.ai/openapi/creative-lab/lamp/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>", "image_subject": "character" }'# Stage 1 (text-to-3D): generate from a text promptcurl https://api.meshy.ai/openapi/creative-lab/lamp/v1/prototype \ -X POST \ -H "Authorization: Bearer ${YOUR_API_KEY}" \ -H 'Content-Type: application/json' \ -d '{ "text": "a stylized owl perched on a tree branch under moonlight" }'
Response
{"result":"018a210d-8ba4-705c-b111-1f1776f7f578"}
Prototype example
Start with a source photo, then generate the prototype image used by the lamp build stage.
Jana tudung lampu akhir yang boleh dicetak 3D daripada tugas prototaip
yang berjaya. Binaan menjalankan pipeline imej-ke-3D pada imej konsep
prototaip, kemudian memproses pasca jejaring melalui pemproses lampu untuk melubangkannya,
meratakan bahagian atas, memotong asas secara pilihan, dan (apabila pratetap lekapan
dipilih) menghasilkan cakera asas berasingan untuk sumber cahaya. Rujuk
Objek Tugas Binaan lampu untuk
bentuk respons.
Parameter
Name
input_task_id
Type
string
Diperlukan
Description
ID tugas bagi tugas prototaip yang dicipta melalui endpoint OpenAPI yang sama ini. Prototaip mesti telah dicipta dengan kunci API yang sama, mesti telah mencapai SUCCEEDED, dan mesti telah menghasilkan tepat satu imej calon.
Tugas prototaip yang dicipta melalui webapp tidak diterima — endpoint binaan hanya menerima tugas prototaip yang dihasilkan oleh POST /openapi/creative-lab/lamp/v1/prototype dan menolak mana-mana sumber lain dengan 404.
Name
name
Type
string
Description
Nama tugas pilihan untuk tujuan paparan. Maksimum 100 aksara.
options
Parameter penalaan pilihan untuk geometri tudung lampu. Setiap medan mempunyai lalai yang munasabah — hantar hanya medan yang ingin anda ganti.
Name
diameter_mm
Type
number
lalai 80
Description
Dimensi maksimum sasaran bagi kotak pembatas tudung lampu, dalam milimeter. Jejaring (mesh) diskalakan secara seragam untuk muat. Julat: [50, 400].
Name
thickness_mm
Type
number
lalai 1.5
Description
Ketebalan dinding tudung lampu berongga, dalam milimeter. Julat: (0, 10].
Name
cut_amount_percent
Type
number
lalai 35
Description
Peratusan ketinggian tudung lampu untuk diratakan di bahagian atas supaya cetakan boleh duduk di atas katil cetakan. Julat: [1, 100].
Name
light_source_preset
Type
string
lalai bambu_mh001_60mm
Description
Pratetap lekapan sumber cahaya yang menentukan sama ada (dan apakah) cakera asas perlu dihasilkan bersama tudung lampu. Nilai tersedia:
bambu_mh001_60mm (lalai) — hasilkan cakera asas 60 mm yang disaizkan untuk lekapan sumber cahaya yang serasi. Hasil termasuk model_urls.base_stl.
none — tiada lekapan, tiada cakera asas. model_urls.base_stl ditinggalkan.
Name
fixture_offset_x_mm
Type
number
lalai 0
Description
Ofset paksi-X mendatar bagi potongan lekapan relatif kepada pusat tudung lampu, dalam milimeter. Hanya bermakna apabila light_source_preset ≠ none. Julat: [-80, 80].
Name
fixture_offset_z_mm
Type
number
lalai 0
Description
Ofset paksi-Z menegak bagi potongan lekapan relatif kepada bahagian bawah tudung lampu, dalam milimeter. Julat: [-80, 80].
Name
rotate_x_deg
Type
number
lalai 0
Description
Putaran mengelilingi paksi X yang digunakan pada jejaring yang diimport sebelum pemprosesan, dalam darjah. Julat: [-360, 360].
Name
rotate_y_deg
Type
number
lalai 0
Description
Putaran mengelilingi paksi Y yang digunakan pada jejaring yang diimport sebelum pemprosesan, dalam darjah. Julat: [-360, 360].
Name
rotate_z_deg
Type
number
lalai 0
Description
Putaran mengelilingi paksi Z yang digunakan pada jejaring yang diimport sebelum pemprosesan, dalam darjah. Julat: [-360, 360].
Name
include_result_json
Type
boolean
lalai false
Description
Apabila true dan output.format ialah zip, sertakan result.json pemproses lampu (mengandungi metrik jejaring yang diukur + set pilihan yang diselesaikan) di dalam berkas. Diabaikan apabila output.format ialah stl.
output
Pemilih format wayar pilihan. Lalai kepada stl.
Name
format
Type
string
lalai stl
Description
Berkas artifak yang dikembalikan oleh binaan. Nilai tersedia:
stl (lalai) — mengembalikan tudung lampu sebagai model_urls.lamp_stl, serta model_urls.base_stl apabila light_source_preset ≠ none.
zip — membungkus setiap artifak yang dihasilkan pemproses (lamp.stl, base.stl pilihan, result.json pilihan) ke dalam satu fail zip dan mengembalikannya di bawah model_urls.bundle_zip.
Pulangan
Sifat result dalam respons mengandungi id tugas bagi tugas binaan lampu yang baru dicipta. Tinjau endpoint Dapatkan Tugas atau langgan strim sehingga tugas mencapai SUCCEEDED, kemudian muat turun artifak daripada model_urls.
Mode Kegagalan
Name
400 - Bad Request
Description
Permintaan tidak boleh diterima. Punca biasa:
Parameter hilang: input_task_id diperlukan.
UUID tidak sah: input_task_id bukan UUID yang sah.
Induk belum berjaya: Tugas prototaip yang dirujuk belum mencapai SUCCEEDED lagi.
Tiada calon: Tugas prototaip berjaya tetapi tidak menghasilkan imej calon.
Pilihan di luar julat: Salah satu medan options berada di luar julat yang dibenarkan atau set enum.
Name
401 - Unauthorized
Description
Pengesahan gagal. Sila semak kunci API anda.
Name
402 - Payment Required
Description
Kredit tidak mencukupi untuk melaksanakan tugas ini.
Name
404 - Not Found
Description
Tugas prototaip yang dirujuk tidak wujud, milik pengguna lain, atau telah dicipta melalui webapp (hanya tugas prototaip mode API boleh dirangkaikan ke binaan).
Dapatkan tugas prototaip atau binaan berdasarkan id tugas yang sah. Laluan URL
mesti sepadan dengan peringkat tugas — tugas binaan yang diambil melalui
/prototype/:id mengembalikan 404, dan begitu juga sebaliknya.
Batalkan tugas lampu. Jika tugas masih PENDING, kredit yang digunakan
pada masa penciptaan akan dikembalikan. Tugas yang sudah IN_PROGRESS akan
dibatalkan tanpa bayaran balik (pekerja mungkin sudah menggunakan sumber).
Tugas yang telah mencapai keadaan terminal (SUCCEEDED, FAILED,
CANCELED) tidak boleh dibatalkan.
Laluan URL mesti sepadan dengan peringkat tugas — DELETE pada
/prototype/:buildId mengembalikan 404.
Parameter Laluan
Name
id
Type
path
Description
Pengecam unik untuk tugas lampu yang hendak dibatalkan.
Pulangan
Mengembalikan 204 No Content apabila berjaya dengan badan kosong.
Mod Kegagalan
Name
400 - Bad Request
Description
Tugas sudah berada dalam keadaan terminal dan tidak boleh dibatalkan.
Name
404 - Not Found
Description
Tugas tidak wujud, milik pengguna yang berbeza, atau peringkatnya tidak sepadan dengan laluan URL.
Strim kemas kini masa nyata untuk tugasan lampu melalui Server-Sent Events (SSE).
Laluan URL mesti sepadan dengan peringkat tugasan — membuka strim di
/prototype/:buildId/stream mengeluarkan satu payload event: error dengan
status_code: 404 dan menutup strim.
Parameter
Name
id
Type
path
Description
Pengecam unik untuk tugasan lampu yang hendak distrim.
Pulangan
Mengembalikan strim objek tugasan Prototaip lampu
atau Binaan lampu sebagai
Server-Sent Events. Untuk tugasan PENDING atau IN_PROGRESS, strim respons
hanya akan merangkumi medan progress dan status yang diperlukan.
// Error event example (wrong stage or task not found)event: errordata: {"status_code": 404,"message": "Task not found"}// Message event examples illustrate task progress.// For PENDING or IN_PROGRESS tasks, the response stream will not include all fields.event: messagedata: {"id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb","progress": 0,"status": "PENDING"}event: messagedata: {"id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb","type": "creative-lab-lamp-build","status": "SUCCEEDED","progress": 100,"created_at": 1729123500000,"started_at": 1729123510000,"finished_at": 1729123535000,"expires_at": 1729382735000,"task_error": null,"consumed_credits": 30,"model_urls": {"lamp_stl":"https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/lamp.stl?Expires=***","base_stl":"https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/base.stl?Expires=***" }}
Dapatkan senarai bernombor halaman bagi tugas lampu anda untuk satu peringkat. Laluan
URL memilih peringkat — /prototype mengembalikan tugas prototaip; /build
mengembalikan tugas binaan. Tugas daripada peringkat lain tidak disertakan dalam mana-mana
respons.
Parameter Laluan
Name
stage
Type
path
Diperlukan
Description
Sama ada prototype atau build. Koleksi hanya mengembalikan tugas
yang peringkatnya sepadan dengan URL — mengambil /prototype tidak akan mengembalikan
tugas binaan dan begitu juga sebaliknya.
Parameter Pertanyaan
Name
page_num
Type
integer
lalai 1
Description
Nombor halaman untuk penomboran halaman.
Name
page_size
Type
integer
lalai 10
Description
Had saiz halaman. Maksimum yang dibenarkan ialah 50 item.
Name
sort_by
Type
string
lalai -created_at
Description
Medan untuk diisih mengikut. Nilai yang tersedia:
+created_at: Isih mengikut masa penciptaan dalam tertib menaik.
-created_at: Isih mengikut masa penciptaan dalam tertib menurun.
Mengembalikan
Mengembalikan senarai bernombor halaman bagi objek tugas mengikut peringkat — sama ada
objek tugas prototaip lampu
apabila menyenaraikan /prototype atau
objek tugas binaan lampu apabila
menyenaraikan /build.
Request
GET
/openapi/creative-lab/lamp/v1/prototype
# List prototype taskscurl https://api.meshy.ai/openapi/creative-lab/lamp/v1/prototype?page_size=10 \ -H "Authorization: Bearer ${YOUR_API_KEY}"# List build taskscurl https://api.meshy.ai/openapi/creative-lab/lamp/v1/build?page_size=10 \ -H "Authorization: Bearer ${YOUR_API_KEY}"
Objek Tugas Prototaip lampu ialah unit kerja yang dijejaki oleh Meshy untuk
menjana imej konsep putih kusam bergaya sama ada daripada prompt teks
atau foto sumber. Output daripada peringkat ini dirantaikan ke
peringkat binaan melalui input_task_id.
Sifat
Name
id
Type
string
Description
Pengecam unik untuk tugasan. Walaupun kami menggunakan UUID k-sortable untuk id tugasan sebagai butiran pelaksanaan, anda tidak harus membuat sebarang andaian tentang format id.
Name
type
Type
string
Description
Jenis tugasan. Nilainya ialah creative-lab-lamp-prototype.
Name
name
Type
string
Description
Nama tugasan yang diberikan apabila tugasan dicipta. Rentetan kosong jika tiada nama diberikan.
Name
status
Type
string
Description
Status tugasan. Nilai yang mungkin ialah salah satu daripada PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
progress tugasan. Jika tugasan belum dimulakan, sifat ini akan menjadi 0. Setelah tugasan berjaya, ini akan menjadi 100.
Name
created_at
Type
timestamp
Description
cap masa apabila tugasan dicipta, dalam milisaat.
cap masa mewakili bilangan milisaat yang berlalu sejak 1 Januari 1970 UTC, mengikut
standard RFC 3339.
Contohnya, Jumaat, 1 September 2023 12:00:00 PM GMT diwakili sebagai 1693569600000. Ini terpakai
kepada semua cap masa dalam Meshy API.
Name
started_at
Type
timestamp
Description
cap masa apabila tugasan dimulakan, dalam milisaat. Jika tugasan belum dimulakan, sifat ini akan menjadi 0.
Name
finished_at
Type
timestamp
Description
cap masa apabila tugasan diselesaikan, dalam milisaat. Jika tugasan belum diselesaikan, sifat ini akan menjadi 0.
Name
expires_at
Type
timestamp
Description
cap masa apabila hasil tugasan tamat tempoh, dalam milisaat.
Name
preceding_tasks
Type
integer
Description
Bilangan tugasan terdahulu.
Nilai medan ini hanya bermakna jika status tugasan ialah PENDING.
Name
task_error
Type
object
Description
Butiran ralat untuk tugasan yang gagal. Lihat Ralat untuk rujukan objek task_error yang lengkap.
Name
consumed_credits
Type
integer
Description
Bilangan kredit yang digunakan oleh tugasan ini. Hadir apabila status tugasan ialah PENDING, IN_PROGRESS, atau SUCCEEDED. Mengembalikan 0 untuk tugasan FAILED (kredit dipulangkan semula apabila gagal).
Name
image_urls
Type
array of strings
Description
URL boleh dimuat turun untuk calon imej konsep yang dijana oleh tugasan prototaip ini. Pada masa ini API sentiasa mengembalikan tepat satu calon; medan ini ialah tatasusunan supaya semakan masa hadapan boleh memaparkan berbilang calon tanpa perubahan yang memecahkan keserasian.
Objek Tugas Binaan lampu ialah unit kerja yang dijejaki oleh Meshy untuk
menjana tudung lampu akhir yang boleh dicetak 3D daripada tugas prototaip SUCCEEDED.
Binaan menjalankan saluran paip draf imej-ke-3D + tekstur pada imej konsep
prototaip, kemudian memproses lanjut jejaring melalui pemproses lampu untuk
mengosongkan, meratakan, dan (secara pilihan) memotong tapak lekapan.
Sifat
Name
id
Type
string
Description
Pengecam unik untuk tugas.
Name
type
Type
string
Description
Jenis tugas. Nilainya ialah creative-lab-lamp-build.
Name
name
Type
string
Description
Nama tugas yang diberikan apabila tugas dicipta. Rentetan kosong jika tiada nama diberikan.
Name
status
Type
string
Description
Status tugas. Nilai yang mungkin ialah salah satu daripada PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Progress tugas. Jika tugas belum dimulakan, sifat ini akan menjadi 0. Setelah tugas berjaya, ini akan menjadi 100.
Name
created_at
Type
timestamp
Description
Cap masa apabila tugas dicipta, dalam milisaat.
Name
started_at
Type
timestamp
Description
Cap masa apabila tugas dimulakan, dalam milisaat.
Name
finished_at
Type
timestamp
Description
Cap masa apabila tugas selesai, dalam milisaat.
Name
expires_at
Type
timestamp
Description
Cap masa apabila keputusan tugas tamat tempoh, dalam milisaat.
Name
preceding_tasks
Type
integer
Description
Bilangan tugas terdahulu. Bermakna hanya apabila status ialah PENDING.
Name
task_error
Type
object
Description
Butiran ralat untuk tugas yang gagal. Lihat Ralat untuk rujukan objek task_error penuh.
Name
consumed_credits
Type
integer
Description
Bilangan kredit yang digunakan oleh tugas ini. Mengembalikan 0 untuk tugas FAILED (kredit dipulangkan apabila gagal).
Name
model_urls
Type
object
Description
URL boleh dimuat turun untuk artifak yang dijana, dengan kunci mengikut nama artifak. Set kunci bergantung pada output.format dan options.light_source_preset:
Name
lamp_stl
Type
string
Description
URL boleh dimuat turun untuk tudung lampu lamp.stl. Hadir apabila output.format ialah stl (lalai).
Name
base_stl
Type
string
Description
URL boleh dimuat turun untuk tapak lekapan base.stl. Hadir apabila output.format ialah stldanoptions.light_source_preset bukan none. Ditinggalkan apabila pratetap lekapan ialah none.
Name
bundle_zip
Type
string
Description
URL boleh dimuat turun untuk himpunan zip bagi setiap artifak yang dipancarkan oleh pemproses (lamp.stl, base.stl pilihan, dan — apabila options.include_result_json ialah true — result.json). Hadir apabila output.format ialah zip. Apabila bundle_zip hadir, lamp_stl / base_stl ditinggalkan.