Auto Split API
Pisahkan model 3D menjadi beberapa bagian yang dapat dicetak secara terpisah — secara otomatis, berdasarkan bagian yang Anda beri nama, atau berdasarkan wilayah warna — dengan konektor opsional; wilayah tipis yang tersisa akibat pemotongan selalu diperkuat sehingga setiap bagian tercetak secara padat.
Hasil split tidak mempertahankan tekstur input. Auto Split menerima input yang bertekstur, sehingga Anda tidak perlu membuat ulang model dengan should_texture: false. Fitur ini membangun ulang bagian yang dipotong dan memberikan setiap bagian warna vertex datar; tidak ada peta tekstur input yang dibawa ke format ekspor mana pun.
Buat Tugas Auto Split
Endpoint ini membuat tugas Auto Split baru. Tugas ini memotong model dari tugas sebelumnya menjadi bagian-bagian yang dapat dicetak secara terpisah dan mengembalikan model yang telah tersegmentasi, dengan setiap bagian sebagai objek tersendiri dalam file.
Tugas berjalan di latar belakang. Untuk mengetahui berapa lama biasanya ini berlangsung, lihat Waktu Pemrosesan.
Parameter
- Name
- input_task_id
- Type
- string
- Wajib
- Description
ID dari tugas yang berhasil yang modelnya ingin dipisah. Jenis tugas yang didukung: Gambar ke 3D, Multi-Gambar ke 3D, Teks ke 3D (pratinjau), Remesh, Konversi, dan Ubah ukuran. Tugas tersebut harus memiliki status
SUCCEEDED, dan modelnya harus dihasilkan dengan Meshy 6 atau Meshy 7 (ai_modelmeshy-6,meshy-7,meshy-7.1, ataulatest). Model low-poly dan Smart Topology (meshy-t2,meshy-t2.5) tidak didukung. Model bertekstur dapat diterima, dan teksturnya tidak akan dibawa ke hasil akhir.
- Name
- mode
- Type
- string
- default auto
- Description
Bagaimana model dibagi menjadi beberapa bagian.
Nilai yang tersedia:
auto: Meshy memilih sendiri titik potongnya.promptdiabaikan.by_parts: Potong sesuai bagian struktural yang Anda sebutkan diprompt, seperti kepala, lengan, dan torso.by_color: Potong sesuai wilayah warna yang Anda sebutkan diprompt. Memerlukan input yang dihasilkan dari gambar yang diunggah (Gambar ke 3D atau Multi-Gambar ke 3D); input lainnya akan ditolak dengan400. Batas wilayah warna berasal dari gambar sumber, bukan dari tekstur model input. Untuk Multi-Gambar ke 3D, Auto Split menggunakan gambar sumber pertama.
mode = by_parts or by_color- Name
- prompt
- Type
- string
- Wajib
- Description
Menjelaskan bagian-bagian yang akan dipisahkan, dalam bahasa apa pun. Meshy membaca 1 hingga 10 nama bagian darinya, jadi sebutkan nama bagiannya, bukan mendeskripsikan modelnya, misalnya
split into the figure and the base, atauhead, torso, left arm, right arm, legs. Menyebutkan satu bagian saja juga tidak masalah: semua yang tidak Anda sebutkan akan menjadi satu bagian sisa, jadithe headmemisahkan model menjadi kepala dan sisanya, sama seperti di aplikasi web. Maksimal 600 karakter. Deskripsi yang meminta untuk tidak membagi sama sekali, atau menyebutkan lebih dari 10 bagian, akan ditolak dengan400dan tidak dikenai biaya apa pun. Jika Meshy tidak dapat membaca nama bagian apa pun dari deskripsi tersebut, Meshy akan memisahkan sesuai bagian yang diidentifikasinya dari gambar referensi model, dalam mode yang Anda pilih: tugas tetap berjalan dan dikenai biaya, serta membawaprompt_ignored: true. Jika model tidak memiliki gambar referensi, atau Meshy menemukan kurang dari dua bagian di dalamnya, permintaan tersebut akan ditolak dengan400dan tidak dikenai biaya apa pun.
- Name
- target_formats
- Type
- array
- default ["glb"]
- Description
Format untuk mengekspor model yang telah dipisah. Format yang mendukung objek adegan (
glb,obj,fbx,usdz,blend,3mf) membawa setiap bagian sebagai objek terpisah;stltidak mengenal konsep objek terpisah, sehingga menyatukan setiap bagian menjadi satu benda padat yang disusun berdasarkanlayout(minta3mfuntuk mendapatkan bagian yang dapat dipilih secara terpisah di slicer).glbselalu dihasilkan dan dikembalikan dalammodel_urls; sebutkan format lain yang Anda inginkan sebagai tambahan.Nilai yang tersedia:
glb,obj,fbx,stl,usdz,blend,3mf.
- Name
- layout
- Type
- string
- default assembled
- Description
Bagaimana bagian-bagian disusun di setiap format output, dan di thumbnail.
Nilai yang tersedia:
assembled: Bagian-bagian tetap berada di posisi aslinya seperti pada model sumber.on_plate: Bagian-bagian diletakkan rata dan disebar di atas build plate, siap untuk di-slice — susunan yang sama seperti tampilan On Plate di aplikasi web.
Pada kedua tata letak tersebut, irisan tipis yang kolaps atau potongan seperti titik yang tersisa dari sebuah potongan akan dihapus sebelum diekspor, sehingga setiap bagian yang Anda dapatkan dapat dicetak. Format yang mendukung objek adegan menyimpan satu objek per bagian;
stlmenyatukannya menjadi satu benda padat.
- Name
- connectors
- Type
- boolean
- default false
- Description
Menambahkan konektor mortise-and-tenon di setiap potongan sehingga bagian-bagian hasil cetakan dapat dipasangkan bersama.
connectors = true- Name
- connector_type
- Type
- string
- default cube
- Description
Bentuk konektor pada setiap permukaan potongan.
Nilai yang tersedia:
cube,cylinder.
- Name
- connector_size
- Type
- number
- default 0.5
- Description
Ukuran konektor relatif terhadap permukaan potongan.
Rentang yang valid:
0.1hingga0.8.
- Name
- connector_height
- Type
- number
- default 0.1
- Description
Seberapa jauh konektor memanjang dari permukaan potongan, relatif terhadap permukaan potongan.
Rentang yang valid:
0.1hingga0.8.
Hasil
Properti result pada respons berisi id dari tugas Auto Split yang baru dibuat.
Mode Kegagalan
- Name
400 - Bad Request- Description
Permintaan tidak dapat diterima. Penyebab umum:
- Prompt tidak ada:
promptdiperlukan saatmodebernilaiby_partsatauby_color. - Prompt tidak meminta pemisahan, atau terlalu banyak bagian:
by_parts/by_colormenerima 1 hingga 10 nama bagian. Deskripsi yang meminta model tetap utuh, atau menyebutkan lebih dari 10 bagian, akan ditolak. Tidak ada biaya yang dikenakan. - Tugas input tidak didukung:
input_task_idharus merujuk pada tugas yang berhasil dari jenis yang didukung, yang dihasilkan dengan Meshy 6 atau Meshy 7. - Tidak ada gambar referensi:
by_colormemerlukan input yang dihasilkan dari gambar yang diunggah. - Konektor di luar rentang:
connector_sizeatauconnector_heightberada di luar rentang0.1hingga0.8.
- Prompt tidak ada:
- Name
401 - Unauthorized- Description
Autentikasi gagal. Silakan periksa kunci API Anda.
- Name
402 - Payment Required- Description
Kredit tidak cukup untuk melakukan tugas ini.
- Name
404 - Not Found- Description
input_task_idtidak ada atau tidak termasuk dalam akun Anda.
- Name
429 - Too Many Requests- Description
Anda telah melebihi batas laju Anda. Permintaan
by_partsdanby_colorjuga berbagi batas penguraian prompt sebanyak 12 permintaan per menit per akun.
- Name
503 - Service Unavailable- Description
Pemisahan berbasis prompt (
by_partsdanby_color) untuk sementara tidak tersedia. Coba lagi nanti, atau gunakanmode: "auto", yang tidak terpengaruh. Tidak ada biaya yang dikenakan.
Request
# Simple request: let Meshy choose the cuts
curl https://api.meshy.ai/openapi/v1/print/split \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578"
}'
# Advanced request: name the parts, add connectors, export glb and obj
curl https://api.meshy.ai/openapi/v1/print/split \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"mode": "by_parts",
"prompt": "split into the figure and the base",
"target_formats": ["glb", "obj"],
"layout": "on_plate",
"connectors": true,
"connector_type": "cylinder",
"connector_size": 0.4
}'
Response
{
"result": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}
Mengambil Task Auto Split
Endpoint ini mengambil task Auto Split berdasarkan ID-nya.
Parameter
- Name
- id
- Type
- path
- Description
ID dari task Auto Split yang akan diambil.
Returns
Objek Task Auto Split.
Request
curl https://api.meshy.ai/openapi/v1/print/split/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-split",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
"obj": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***"
},
"thumbnail_url": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/preview.png?Expires=***",
"part_count": 4,
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000082000,
"task_error": null,
"consumed_credits": 10
}
Hapus Tugas Auto Split
Endpoint ini secara permanen menghapus tugas Auto Split, termasuk semua model dan data yang terkait. Tindakan ini tidak dapat dibatalkan.
Parameter Path
- Name
- id
- Type
- path
- Description
ID dari tugas Auto Split yang akan dihapus.
Status Tugas
Tugas yang masih berstatus PENDING akan dihapus dan kredit yang terpakai
saat pembuatan akan dikembalikan.
Tugas yang sudah berstatus IN_PROGRESS tidak dapat dihapus: permintaan
akan ditolak dengan 409 Conflict dan tugas akan tetap berjalan. Kredit untuk
tugas yang sudah mulai dikerjakan oleh worker tidak dapat dikembalikan, sehingga
menghapusnya di tengah proses akan membuat Anda kehilangan kredit sekaligus hasilnya.
Tunggu hingga mencapai status SUCCEEDED, FAILED, atau CANCELED, baru kemudian hapus.
Tugas dengan status akhir (SUCCEEDED, FAILED, atau CANCELED) akan dihapus
tanpa pengembalian kredit.
Returns
Mengembalikan 200 OK jika berhasil, atau 409 Conflict ketika tugas
berstatus IN_PROGRESS.
Request
curl --request DELETE \
--url https://api.meshy.ai/openapi/v1/print/split/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-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 is left 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."
}
List Auto Split Tasks
Endpoint ini memungkinkan Anda mengambil daftar tugas Auto Split.
Parameter
Atribut opsional
- Name
- page_num
- Type
- integer
- Description
Nomor halaman untuk paginasi. Dimulai dan defaultnya adalah
1.
- Name
- page_size
- Type
- integer
- Description
Batas ukuran halaman. Defaultnya adalah
10item. Maksimum yang diizinkan adalah100item; nilai yang lebih besar akan dibatasi menjadi100.
- Name
- sort_by
- Type
- string
- Description
Kolom untuk pengurutan. Nilai yang tersedia:
+created_at: Urutkan berdasarkan waktu pembuatan secara ascending.-created_at: Urutkan berdasarkan waktu pembuatan secara descending.
Returns
Mengembalikan daftar berpaginasi dari The Auto Split Task Objects.
Request
curl https://api.meshy.ai/openapi/v1/print/split?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
[
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-split",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***"
},
"thumbnail_url": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/preview.png?Expires=***",
"part_count": 4,
"progress": 100,
"status": "SUCCEEDED",
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000082000,
"task_error": null,
"consumed_credits": 10
}
]
Stream an Auto Split Task
Endpoint ini menyediakan stream pembaruan secara real-time untuk task Auto Split menggunakan Server-Sent Events (SSE).
Parameter
- Name
- id
- Type
- path
- Description
Pengenal unik untuk task Auto Split yang akan di-stream.
Returns
Mengembalikan stream The Auto Split Task Objects sebagai Server-Sent Events.
Setiap event message membawa objek task secara lengkap seperti yang dikembalikan oleh Retrieve an Auto Split Task, termasuk consumed_credits, timestamp, dan prompt_ignored; selama task berstatus PENDING atau IN_PROGRESS, field yang berubah di setiap frame adalah progress, status, started_at, dan preceding_tasks, sedangkan model_urls, thumbnail_url, dan part_count akan muncul setelah mencapai status SUCCEEDED. Event error hanya membawa status_code dan message, jadi lakukan percabangan berdasarkan nama event sebelum membaca status.
Request
curl -N https://api.meshy.ai/openapi/v1/print/split/a43b5c6d-7e8f-901a-234b-567c890d1e2f/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": "a43b5c6d-7e8f-901a-234b-567c890d1e2f",
"progress": 0,
"status": "PENDING"
}
event: message
data: {
"id": "a43b5c6d-7e8f-901a-234b-567c890d1e2f",
"type": "print-split",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/a43b5c6d-7e8f-901a-234b-567c890d1e2f/output/model.glb?Expires=***"
},
"thumbnail_url": "https://assets.meshy.ai/***/tasks/a43b5c6d-7e8f-901a-234b-567c890d1e2f/output/preview.png?Expires=***",
"part_count": 4,
"progress": 100,
"status": "SUCCEEDED",
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000082000,
"task_error": null,
"consumed_credits": 10
}
The Auto Split Task Object
Sebuah task Auto Split hanya membawa properti di bawah ini. Field prompt-generasi yang dimiliki objek task lain (name, object_prompt, texture_prompt, dan sebagainya), model_url tunggal, dan texture_urls tidak pernah diisi untuk sebuah split dan tidak dikembalikan. Properti yang terisi seiring berjalannya task (thumbnail_url, model_urls, stempel waktu) selalu ada, kosong hingga memiliki nilai, sehingga kumpulan key tidak berubah antara PENDING dan SUCCEEDED.
- Name
- id
- Type
- string
- Description
Pengenal unik untuk task. Meskipun kami menggunakan UUID yang dapat diurutkan secara-k untuk id task sebagai detail implementasi, Anda tidak boleh membuat asumsi apa pun tentang format id tersebut.
- Name
- type
- Type
- string
- Description
Jenis task. Nilainya adalah
print-split.
- Name
- model_urls
- Type
- object
- Description
URL yang dapat diunduh untuk model split, satu per format yang diminta. Format yang mendukung objek adegan menyimpan setiap bagian sebagai objek terpisah;
stlmenyatukannya menjadi satu objek padat. Properti untuk suatu format akan dihilangkan jika format tersebut tidak diminta.- Name
glb- Type
- string
- Description
URL yang dapat diunduh untuk model split dalam format GLB.
- Name
obj- Type
- string
- Description
URL yang dapat diunduh untuk model split dalam format OBJ.
- Name
fbx- Type
- string
- Description
URL yang dapat diunduh untuk model split dalam format FBX.
- Name
stl- Type
- string
- Description
URL yang dapat diunduh untuk model split dalam format STL. Semua bagian disatukan menjadi satu objek padat; minta
3mfuntuk bagian-bagian yang dapat dipilih secara terpisah.
- Name
usdz- Type
- string
- Description
URL yang dapat diunduh untuk model split dalam format USDZ.
- Name
blend- Type
- string
- Description
URL yang dapat diunduh untuk model split dalam format Blender.
- Name
3mf- Type
- string
- Description
URL yang dapat diunduh untuk model split dalam format 3MF.
- Name
- thumbnail_url
- Type
- string
- Description
URL yang dapat diunduh untuk pratinjau render dari model split, dengan setiap bagian dalam warna yang berbeda, dalam
layoutyang diminta.
- Name
- prompt_ignored
- Type
- boolean
- Description
trueketikapromptdari permintaanby_partsatauby_colortidak menyebutkan nama bagian apa pun, sehingga Meshy melakukan split model secara otomatis — nama bagian dalam hasil adalah milik Meshy, bukan milik Anda. Ada sejakPENDING. Dihilangkan untuk taskautodan setiap kali prompt diikuti.
- Name
- part_count
- Type
- integer
- Description
Jumlah bagian yang dapat dicetak yang dihasilkan oleh split. Format yang mendukung objek adegan membawa satu objek per bagian;
stlmenyatukannya menjadi satu objek padat, dan hitungannya tetap melaporkan jumlah bagian. Pecahan kecil yang runtuh yang tidak dapat diubah oleh segmentasi menjadi bagian yang dapat dicetak akan dihapus dari file sebelum diekspor dan tidak dihitung.
- Name
- progress
- Type
- integer
- Description
Progress dari task. Jika task belum dimulai, properti ini akan bernilai
0. Setelah task berhasil, ini akan menjadi100.
- Name
- status
- Type
- string
- Description
Status dari task. Kemungkinan nilainya adalah salah satu dari
PENDING,IN_PROGRESS,SUCCEEDED,FAILED,CANCELED.
- Name
- preceding_tasks
- Type
- integer
- Description
Jumlah task yang mendahului.
Nilai dari field ini hanya bermakna jika status task adalah
PENDING.
- Name
- created_at
- Type
- timestamp
- Description
Stempel waktu saat task dibuat, dalam milidetik.
- Name
- started_at
- Type
- timestamp
- Description
Stempel waktu saat task dimulai, dalam milidetik. Jika task belum dimulai, properti ini akan bernilai
0.
- Name
- finished_at
- Type
- timestamp
- Description
Stempel waktu saat task selesai, dalam milidetik. Jika task belum selesai, properti ini akan bernilai
0.
- Name
- consumed_credits
- Type
- integer
- Description
Jumlah kredit yang dikonsumsi oleh task ini. Selalu ada:
10setelah task diterima, dan0untuk taskFAILEDkarena biaya dikembalikan saat gagal. Menghapus task saat masihPENDINGjuga akan mengembalikan biayanya.
The Auto Split Task Object
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-split",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
"obj": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***"
},
"thumbnail_url": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/preview.png?Expires=***",
"part_count": 4,
"progress": 100,
"status": "SUCCEEDED",
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000082000,
"task_error": null,
"consumed_credits": 10
}