API Ukiran timbul
Tukar satu foto menjadi model 3D ukiran timbul dan peta kedalaman 16-bit, untuk pencetakan 3D, pengukiran laser, dan pengukiran CNC.
Create a Relief task
Mencipta tugas Ukiran timbul. Tugas ini menukarkan foto kepada model bas-relief. Apabila berjaya, tugas ini menghasilkan model sebagai fail GLB dan fail STL, peta kedalaman skala kelabu 16-bit, dan imej pratonton. Untuk mendapatkan hanya peta kedalaman, tetapkan should_generate_model kepada false.
Tugas ini berjalan di latar belakang.
Tugas Ukiran timbul tidak boleh menjadi input bagi endpoint lain, seperti Remesh, Tukar, atau Auto Split. Permintaan tersebut mengembalikan 403.
Request
# Simple request: a low relief, 60 mm on its longer side
curl https://api.meshy.ai/openapi/v1/relief \
-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>"
}'
# Advanced request: a deep 120 mm relief with a thicker base, curved from side to side
curl https://api.meshy.ai/openapi/v1/relief \
-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>",
"variant": "high",
"size_mm": 120,
"carving_depth_mm": 10,
"base_thickness_mm": 3,
"bend_mode": "convex",
"bend_angle": 90
}'
Response
{
"result": "0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20"
}
Parameter
- Name
- image_url
- Type
- string
- Diperlukan
- Description
Foto untuk ditukar menjadi ukiran timbul, sebagai URL awam atau Data URI (
data:image/png;base64,...).Imej mestilah fail JPG, JPEG, PNG, atau WebP bersaiz maksimum 20 MB, dan sekurang-kurangnya 32 × 32 piksel. Sisi lebih panjangnya boleh menjadi paling banyak kira-kira 16 kali sisi lebih pendeknya. Imej lain mengembalikan
400. Meshy mengisi kawasan lut sinar dengan warna hitam sebelum membina ukiran timbul.
- Name
- variant
- Type
- string
- lalai low
- Description
Gaya ukiran timbul. Ia membentuk peta kedalaman dan menetapkan
carving_depth_mmlalai.Nilai yang tersedia:
high: ukiran lebih dalam, untuk kepingan cetak 3D.low: ukiran cetek, untuk ukiran laser, ukiran CNC, dan plak nipis.
Menghantar
nullatau""adalah sama seperti meninggalkannya. Sebarang nilai lain mengembalikan400.
- Name
- should_generate_model
- Type
- boolean
- lalai true
- Description
Sama ada untuk membina model ukiran timbul. Tetapkan kepada
falseuntuk tugas peta-kedalaman-sahaja, tanpa model dan tanpa imej pratonton. Meshy tetap menyemak parameter saiz, ukiran, asas, lengkungan, dan resolusi, tetapi tidak menggunakannya. Ia tidak mengubah kos kredit.
- Name
- size_mm
- Type
- number
- lalai 60
- Description
Panjang sisi lebih panjang foto pada model, diukur rata sebelum sebarang lengkungan, dari
20hingga250milimeter. Denganremove_base, model boleh menjadi lebih kecil.
- Name
- carving_mode
- Type
- string
- lalai emboss
- Description
Sama ada subjek menonjol dari plat atau diukir ke dalamnya.
Nilai yang tersedia:
emboss: bahagian yang lebih dekat pada foto menonjol.engrave: kedalaman diterbalikkan, jadi bahagian yang lebih dekat diukir ke dalam.
Peta kedalaman adalah sama dalam kedua-dua mod.
- Name
- carving_depth_mm
- Type
- number
- lalai 6 (high), 3 (low)
- Description
Seberapa dalam ukiran timbul diukir, dari
0hingga60milimeter. Denganremove_baseditetapkan kepadatrue,0meninggalkan model kosong. Tugas tetap berjaya dan dikenakan 20 kredit, dan fail GLB serta STL-nya tidak mempunyai geometri.
- Name
- remove_base
- Type
- boolean
- lalai false
- Description
Sama ada untuk memotong latar belakang dan tidak membina plat asas. Apabila
true,removal_thresholdmenetapkan apa yang dikira sebagai latar belakang. Meshy menyemakremoval_thresholddalam kedua-dua keadaan.
remove_base = true- Name
- removal_threshold
- Type
- number
- lalai 0.01
- Description
Kedalaman di bawah mana Meshy memotong latar belakang, dari
0.01hingga1, di mana peta kedalaman berjalan dari0hingga1. Nilai yang tinggi boleh memotong keseluruhan ukiran timbul dan meninggalkan model kosong, yang tetap berjaya dan dikenakan caj.
- Name
- base_thickness_mm
- Type
- number
- lalai 1, or 0 with remove_base
- Description
Ketebalan plat asas, dari
0.1hingga10milimeter. Apabilaremove_baseialahtrue, tinggalkan atau hantar0.
- Name
- bend_mode
- Type
- string
- lalai off
- Description
Sama ada untuk melengkungkan ukiran timbul, dan ke arah mana. Apabila bukan
off,bend_axisdanbend_anglemembentuk lengkungan tersebut. Meshy menyemaknya dalam kedua-dua keadaan.Nilai yang tersedia:
off: ukiran timbul rata.convex: bahagian hadapan menonjol ke luar.concave: bahagian hadapan melengkung ke dalam.
bend_mode = convex or concave- Name
- bend_axis
- Type
- string
- lalai xz
- Description
Tepi mana yang dilengkungkan.
Nilai yang tersedia:
xz: tepi kiri dan kanan.yz: tepi atas dan bawah.
- Name
- bend_angle
- Type
- number
- lalai 60
- Description
Lengkok yang dirangkumi oleh lengkungan, dari
0hingga360darjah. Di bawah1, ukiran timbul kekal rata.
- Name
- mesh_resolution
- Type
- integer
- lalai 1024
- Description
Bilangan titik jejaring sepanjang sisi lebih panjang foto, dari
512hingga2048. Nilai yang lebih tinggi mengekalkan perincian yang lebih halus dan menghasilkan fail yang lebih besar. Pada lalai1024, fail GLB adalah kira-kira 40 hingga 50 MB dan fail STL kira-kira 80 hingga 105 MB. Foto berbentuk segi empat sama memberikan saiz yang lebih besar. Pada2048, ia kira-kira 150 MB dan 300 MB. Lengkungan menjadikannya lebih besar: fail STL boleh mencapai kira-kira 800 MB pada2048.
Pulangan
202 Accepted, dengan ID tugas Ukiran timbul baharu dalam result.
Mod kegagalan
- Name
400 - Bad Request- Description
Permintaan tidak dapat dijalankan. Mesej ralat menyatakan masalah yang ditemui. Contohnya:
- Parameter hilang:
image_urltidak dihantar. - Parameter tidak sah: Satu parameter mempunyai jenis yang salah, berada di luar julatnya, atau bukan salah satu nilai yang tersedia. Contohnya,
variantbukanhighataulow, ataumesh_resolutionbukan integer dari512hingga2048. - Ketebalan asas:
base_thickness_mmbukan0denganremove_baseditetapkan kepadatrue, atau di bawah0.1tanpanya. - URL tidak dapat dicapai: Meshy tidak dapat memuat turun imej
image_url, contohnya kerana URL mengembalikan404atau tamat masa. - Imej tidak sah: Imej bukan fail JPG, JPEG, PNG, atau WebP, melebihi 20 MB, lebih kecil daripada 32 × 32 piksel, mempunyai terlalu banyak piksel, atau tidak dapat dibaca.
- Nisbah bidang melampau: Sisi lebih panjang imej lebih daripada kira-kira 16 kali sisi lebih pendeknya.
Betulkan permintaan, kemudian hantar semula. Meshy tidak mengenakan caj untuknya. Lihat Ralat.
- Parameter hilang:
- Name
401 - Unauthorized- Description
Kunci API hilang atau tidak sah. Semak header
Authorization.
- Name
402 - Payment Required- Description
Contohnya:
- Kredit tidak mencukupi: Akaun tidak mempunyai kredit yang mencukupi untuk tugas ini, atau akaun telah mencapai had kredit. Semak baki kredit anda, kemudian cuba semula.
- Pelan percuma: Mencipta tugas memerlukan pelan berbayar. Naik taraf pelan anda dalam tetapan langganan anda, kemudian cuba semula.
- Name
403 - Forbidden- Description
Moderation kandungan menyekat imej tersebut. Meshy tidak mengenakan caj untuk permintaan ini. Hantar imej lain.
- Name
429 - Too Many Requests- Description
Salah satu had berikut telah dicapai:
- Anda menghantar terlalu banyak permintaan. Tunggu, kemudian cuba semula. Lihat Had kadar.
- Terlalu banyak tugas anda sedang dalam baris gilir atau berjalan. Tunggu sehingga sesetengahnya selesai, kemudian cuba semula.
- Pada pelan tanpa had tanpa baki kredit, anda telah mencapai bilangan tugas yang boleh berjalan tanpa kredit. Tunggu sehingga satu tugas selesai, atau tambah kredit.
Jika semakan keselamatan menolak imej semasa tugas berjalan, tugas gagal dengan task_error.type ditetapkan kepada invalid_input dan task_error.code ditetapkan kepada provider_content_refused. Meshy memulangkan semula kredit tugas tersebut. Hantar imej lain. Lihat Ralat.
Dapatkan tugas Ukiran timbul
Mengembalikan tugas Ukiran timbul mengikut ID-nya.
Request
curl https://api.meshy.ai/openapi/v1/relief/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
{
"id": "0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20",
"type": "relief",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/model.glb?Expires=***",
"stl": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/model.stl?Expires=***"
},
"depth_map_url": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/depth.png?Expires=***",
"thumbnail_url": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/preview.png?Expires=***",
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000060000,
"expires_at": 1700259260000,
"task_error": null,
"consumed_credits": 20
}
Parameter
- Name
- id
- Type
- path
- Description
ID tugas daripada respons pembuatan (create).
Hasil Kembali
Padam tugas Ukiran timbul
Memadam tugas Ukiran timbul secara kekal, termasuk model, peta kedalaman, dan datanya. Anda tidak boleh membatalkan pemadaman.
Request
curl --request DELETE \
--url https://api.meshy.ai/openapi/v1/relief/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
// 200 OK on success, with an empty body.
//
// 409 Conflict when the task is IN_PROGRESS. The task keeps running:
{
"message": "Task is IN_PROGRESS and cannot be deleted. Credits for a task the worker has already started are not refundable; wait for it to reach SUCCEEDED, FAILED or CANCELED, then delete it."
}
Parameter laluan
- Name
- id
- Type
- path
- Description
ID tugas yang hendak dipadam.
Status tugas
Memadam tugas PENDING akan memulangkan kredit yang digunakan semasa anda membuatnya.
Tugas IN_PROGRESS tidak boleh dipadam. Permintaan itu akan mengembalikan 409 Conflict,
dan tugas itu terus berjalan. Meshy tidak memulangkan kredit untuk tugas yang telah bermula,
jadi memadamnya akan membuat anda rugi kedua-dua kredit dan hasilnya. Tunggu sehingga ia
mencapai SUCCEEDED atau FAILED, kemudian padamkannya.
Memadam tugas SUCCEEDED tidak memulangkan kreditnya. Tugas FAILED sudah dipulangkan kreditnya apabila ia gagal.
Pemulangan
200 OK apabila tugas dipadam, atau 409 Conflict apabila tugas
sedang IN_PROGRESS.
Senaraikan tugas Ukiran timbul
Mengembalikan senarai tugas Ukiran timbul anda.
Request
curl https://api.meshy.ai/openapi/v1/relief?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
[
{
"id": "0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20",
"type": "relief",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/model.glb?Expires=***",
"stl": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/model.stl?Expires=***"
},
"depth_map_url": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/depth.png?Expires=***",
"thumbnail_url": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/preview.png?Expires=***",
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000060000,
"expires_at": 1700259260000,
"task_error": null,
"consumed_credits": 20
}
]
Parameter
- Name
- page_num
- Type
- integer
- Description
Nombor halaman yang hendak dikembalikan. Bermula pada dan lalai kepada
1.
- Name
- page_size
- Type
- integer
- Description
Bilangan tugas setiap halaman, sehingga
100. Lalai kepada10. Meshy menganggap nilai dari101hingga255sebagai100, dan nilai yang lebih besar akan mengembalikan400.
- Name
- sort_by
- Type
- string
- Description
Susunan isihan.
Nilai yang tersedia:
+created_at: paling lama dahulu-created_at: paling baharu dahulu
Mengembalikan
Senarai berhalaman objek tugas Ukiran timbul.
Strim tugas Ukiran timbul
Menstrim kemas kini tugas Ukiran timbul sebagai Server-Sent Events (SSE).
Request
curl -N https://api.meshy.ai/openapi/v1/relief/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response Stream
// Error event example
event: error
data: {
"status_code": 404,
"message": "Task not found"
}
// Message event examples illustrate task progress (other task fields omitted here for brevity;
// each frame is the full task object).
event: message
data: {
"id": "0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20",
"progress": 0,
"status": "PENDING"
}
event: message
data: {
"id": "0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20",
"type": "relief",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/model.glb?Expires=***",
"stl": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/model.stl?Expires=***"
},
"depth_map_url": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/depth.png?Expires=***",
"thumbnail_url": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/preview.png?Expires=***",
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000060000,
"expires_at": 1700259260000,
"task_error": null,
"consumed_credits": 20
}
Parameter
- Name
- id
- Type
- path
- Description
ID tugas daripada respons penciptaan.
Hasil
Satu strim objek tugas Ukiran timbul sebagai Server-Sent Events.
Setiap acara message mengandungi objek tugas penuh, sama seperti yang dikembalikan oleh Dapatkan tugas Ukiran timbul. Semasa tugas berstatus PENDING atau IN_PROGRESS, medan yang berubah antara acara ialah progress, status, started_at, dan preceding_tasks (hanya wujud semasa terdapat tugas lain yang mendahului tugas ini). model_urls, depth_map_url, dan thumbnail_url akan mendapat nilainya apabila tugas mencapai status SUCCEEDED. Tugas yang hanya menghasilkan peta kedalaman (depth-map-only) akan mengekalkan model_urls sebagai {} dan thumbnail_url yang kosong.
Acara error hanya mengandungi status_code dan message, jadi semak nama acara sebelum anda membaca status.
Objek tugas Ukiran timbul
Objek tugas Ukiran timbul menerangkan satu ukiran timbul yang dihasilkan daripada foto. model_urls, depth_map_url, dan thumbnail_url sentiasa hadir, dan kosong sehingga tugas berjaya.
The Relief Task Object
{
"id": "0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20",
"type": "relief",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/model.glb?Expires=***",
"stl": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/model.stl?Expires=***"
},
"depth_map_url": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/depth.png?Expires=***",
"thumbnail_url": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/preview.png?Expires=***",
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000060000,
"expires_at": 1700259260000,
"task_error": null,
"consumed_credits": 20
}
Depth map only
{
"id": "0199c3d2-6b8f-7c25-8f3a-4d9e2b7c5a31",
"type": "relief",
"model_urls": {},
"depth_map_url": "https://assets.meshy.ai/***/tasks/0199c3d2-6b8f-7c25-8f3a-4d9e2b7c5a31/output/depth.png?Expires=***",
"thumbnail_url": "",
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000030000,
"expires_at": 1700259230000,
"task_error": null,
"consumed_credits": 20
}
- Name
- id
- Type
- string
- Description
ID tugas. Anggapnya sebagai rentetan legap, dan jangan bergantung pada formatnya.
- Name
- type
- Type
- string
- Description
Jenis tugas, sentiasa
relief.
- Name
- model_urls
- Type
- object
- Description
URL muat turun untuk model ukiran timbul. Fail boleh menjadi besar;
mesh_resolutionmenyenaraikan saiz biasa.- Name
glb- Type
- string
- Description
Fail GLB, tanpa tekstur. Unitnya adalah meter. Tiada bagi tugas khusus peta kedalaman sahaja.
- Name
stl- Type
- string
- Description
Model yang sama sebagai fail STL binari. Unitnya adalah milimeter, jadi ia dibuka pada saiz sebenar ukiran timbul, dengan Z menghala ke atas. Tiada bagi tugas khusus peta kedalaman sahaja.
- Name
- depth_map_url
- Type
- string
- Description
URL muat turun untuk peta kedalaman skala kelabu 16-bit yang menjadi asas ukiran timbul. Piksel yang lebih cerah adalah lebih tinggi. Nilai tersebut adalah ketinggian relatif, bukan milimeter. Perisian ukiran laser dan CNC boleh menggunakannya sebagai peta ketinggian. Saiz fail adalah kira-kira 1 hingga 2 MB. Kosong jika tiada.
- Name
- thumbnail_url
- Type
- string
- Description
URL muat turun untuk imej pratonton model ukiran timbul. Kosong jika tiada yang dirender, termasuk bagi tugas khusus peta kedalaman sahaja.
- Name
- progress
- Type
- integer
- Description
Sejauh mana tugas telah selesai, dalam peratusan. Ia adalah
0sehingga tugas bermula dan100apabila ia berjaya.
- Name
- status
- Type
- string
- Description
Status tugas, salah satu daripada
PENDING,IN_PROGRESS,SUCCEEDED, atauFAILED.
- Name
- preceding_tasks
- Type
- integer
- Description
Bilangan tugas yang mendahului tugas ini dalam baris gilir. Medan ini ditinggalkan apabila nilainya
0, jadi ia hanya muncul semasa terdapat tugas yang mendahului tugas ini.
- Name
- created_at
- Type
- timestamp
- Description
Masa tugas dicipta, dalam milisaat Unix.
- Name
- started_at
- Type
- timestamp
- Description
Masa tugas bermula, dalam milisaat Unix. Ia adalah
0sehingga tugas bermula.
- Name
- finished_at
- Type
- timestamp
- Description
Masa tugas selesai, dalam milisaat Unix. Ia adalah
0sehingga tugas selesai.
- Name
- expires_at
- Type
- timestamp
- Description
Masa keputusan tugas tamat tempoh, dalam milisaat Unix. Ia adalah
0sehingga tugas selesai.
- Name
- task_error
- Type
- object
- Description
Butiran ralat apabila tugas gagal. Lihat Ralat.
- Name
- consumed_credits
- Type
- integer
- Description
Bilangan kredit yang digunakan oleh tugas:
20, atau0untuk tugasFAILED, yang akan dikembalikan semula oleh Meshy.