Yeniden ağ API'si
Bir 3D modelin ağını yeni bir topology ve yüz sayısıyla yeniden oluşturun ve seçtiğiniz formatlarda dışa aktarın. Model, Görselden 3D'ye veya Metinden 3D'ye gibi başka bir Meshy görevinden veya bir model dosyasından gelebilir.
Remesh görevi oluştur
Bir Remesh görevi oluşturur. Görev arka planda çalışır. Bir görevin genellikle ne kadar sürdüğü için bkz. İşlem süreleri.
Bir modelin formatını dönüştürmek veya yeniden boyutlandırmak için Convert API veya Resize API kullanın. Bu sayfadaki kullanımdan kaldırılmış parametreler hâlâ çalışır, ancak yeni entegrasyonlar bu uç noktaları kullanmalıdır.
Request
# Basic remesh with custom formats and resize
curl https://api.meshy.ai/openapi/v1/remesh \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"target_formats": ["glb", "fbx"],
"topology": "quad",
"target_polycount": 50000,
"resize_height": 1.0,
"origin_at": "bottom"
}'
# Quad remesh with auto-size
curl https://api.meshy.ai/openapi/v1/remesh \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"target_formats": ["glb", "fbx"],
"topology": "quad",
"target_polycount": 50000,
"auto_size": true
}'
Response
{
"result": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}
Parametreler
- Name
- input_task_id
- Type
- string
- Zorunlu
- Description
model_urlgöndermediğiniz sürece zorunludur. Yeniden ağ oluşturmak istediğiniz modele sahip görevin ID'si; örneğin bir Metinden 3D'ye, Görselden 3D'ye, Yeniden dokulama veya Remesh görevi. Görev, API ile oluşturduğunuz ve durumuSUCCEEDEDolan bir görev olmalıdır.
- Name
- model_url
- Type
- string
- Zorunlu
- Description
input_task_idgöndermediğiniz sürece zorunludur. Yeniden ağ oluşturulacak model; genel bir URL veya bir data URI olarak. Her ikisini de gönderirseniz, Meshyinput_task_id'yi kullanır.Model, bir
httpveyahttpsURL'sinden en fazla 400 MB, ya da data URI olarak en fazla 100 MB boyutunda bir GLB, glTF, OBJ, FBX veya STL dosyası olmalıdır. Data URI içinapplication/octet-streamMIME type'ını kullanın.100 MB'ı aşan bir dosya ayrıca şu kurallara uymalıdır:
- Bir GLB, glTF, FBX veya OBJ dosyası en fazla 10.000.000 yüze sahip olabilir. Meshy yüzleri üçgen olarak sayar, bu nedenle bir dörtgen 2 olarak sayılır ve birden fazla kez çizilen bir ağ, her kopya için bir kez sayılır.
- Bir FBX dosyası, ikili (binary) FBX 7.1 veya daha yenisi olmalıdır.
- Bir GLB veya glTF dosyası Draco sıkıştırması kullanmamalıdır.
- Name
- target_formats
- Type
- string[]
- varsayılan ["glb"]
- Description
Oluşturulacak dosya formatları.
Kullanılabilir değerler:
glbfbxobjusdzblendstl3mf
- Name
- topology
- Type
- string
- varsayılan triangle
- Description
Yeniden ağ oluşturulan modelin yüz türü.
Kullanılabilir değerler:
quad: dörtgen ağırlıklı bir ağtriangle: küçültülmüş (decimated) bir üçgen ağ
- Name
- target_polycount
- Type
- integer
- varsayılan 30000
- Description
Hedeflenen yüz sayısı,
100ile300000arasında. Sonuç, modelin geometrisine bağlı olarak hedeften farklı olabilir. Aralık dışındaki bir değer400döndürür.
- Name
- decimation_mode
- Type
- integer
- Description
Seviyeye göre uyarlanabilir yüz sayısı. Bunu ayarladığınızda Meshy
target_polycount'u yok sayar.Kullanılabilir değerler:
1: ultra2: yüksek3: orta4: düşük
- Name
- resize_height
- Type
- number
- ⚠ kullanımdan kaldırıldı
- varsayılan 0
- Description
Bunun yerine Resize API kullanın. Modelin yeniden boyutlandırılacağı yükseklik, metre cinsinden.
resize_height,resize_longest_sideveauto_size'dan en fazla birini gönderin.
- Name
- resize_longest_side
- Type
- number
- ⚠ kullanımdan kaldırıldı
- varsayılan 0
- Description
Bunun yerine Resize API kullanın. Modelin sınırlayıcı kutusunun en uzun kenarının yeniden boyutlandırılacağı uzunluk, metre cinsinden.
resize_height,resize_longest_sideveauto_size'dan en fazla birini gönderin.
- Name
- auto_size
- Type
- boolean
- ⚠ kullanımdan kaldırıldı
- varsayılan false
- Description
Bunun yerine Resize API kullanın. Nesnenin gerçek dünyadaki yüksekliğinin AI görüşüyle tahmin edilip modelin buna göre yeniden boyutlandırılıp boyutlandırılmayacağı.
resize_height,resize_longest_sideveauto_size'dan en fazla birini gönderin.
- Name
- origin_at
- Type
- string
- ⚠ kullanımdan kaldırıldı
- varsayılan bottom
- Description
Bunun yerine Resize API kullanın. Modelin orijininin nereye konulacağı,
bottomveyacenter. Varsayılan değer,resize_height,resize_longest_sideveyaauto_sizegönderdiğinizde uygulanır. Bunlardan biri olmadan, Meshy orijini yalnızcaorigin_atgönderirseniz taşır.
- Name
- convert_format_only
- Type
- boolean
- ⚠ kullanımdan kaldırıldı
- Description
Bunun yerine Convert API kullanın. Modelin yalnızca
target_formats'a dönüştürülüp dönüştürülmeyeceği.trueolduğunda Meshytopology,target_polycount,decimation_mode,resize_height,resize_longest_sideveauto_size'ı yok sayar, ancak yine de değerlerini kontrol eder, bu nedenle geçersiz bir değer400döndürür.convert_format_only: trueile boş veyanullbirtarget_formatsdeğeri400döndürür.
- Name
- alpha_thumbnail
- Type
- boolean
- varsayılan false
- Description
Görevi aldığınızda
alpha_thumbnail_urliçinde döndürülen, şeffaf arka planlı (RGBA) bir önizlemenin de oluşturulup oluşturulmayacağı.thumbnail_urldeğişmez.
Dönüş değerleri
Yanıtın result alanı, yeni Remesh görevinin ID'sini tutar.
Hata modları
- Name
400 - Bad Request- Description
İstek çalıştırılamıyor. Hata mesajı hangi sorunu bulduğunu belirtir. Örneğin:
- Eksik parametre: Ne
model_urlne deinput_task_idgönderildi. - Geçersiz giriş görevi:
input_task_idbaşarılı bir API görevi değil veya AI modeli yeniden ağ oluşturmayı desteklemiyor. - Geçersiz model formatı:
model_urldosyasının desteklenmeyen bir uzantısı var. - Erişilemeyen URL: Meshy
model_urldosyasını indiremiyor. - Model dosyası çok büyük:
model_urldosyası, birhttpveyahttpsURL'sinden 400 MB'ın üzerinde, ya da data URI olarak 100 MB'ın üzerinde. - Çok fazla yüz:
model_urldosyası 100 MB'ın üzerinde ve 10.000.000'dan fazla yüze sahip. Yüz sayısını azaltın, sonra dosyayı tekrar gönderin. - 100 MB üzeri ASCII FBX:
model_urldosyası 100 MB'ın üzerinde bir ASCII FBX. Bunu ikili (binary) FBX veya GLB olarak gönderin. - Okunamayan model dosyası:
model_urldosyası 100 MB'ın üzerinde ve Meshy başlığını okuyamıyor. Örneğin, Draco sıkıştırmalı bir GLB veya glTF, ya da 7.1'den eski bir ikili FBX. - Model başlığı çok karmaşık:
model_urldosyası 100 MB'ın üzerinde ve başlığında kontrol edilecek çok fazla ağ, düğüm veya kayıt var. Dosyadaki nesne sayısını azaltın, sonra tekrar gönderin. - Geçersiz topology:
topology,quadveyatriangledeğil. - Birbirini dışlayan parametreler: İstekte
auto_size,resize_heightveresize_longest_side'dan birden fazlası var. Yalnızca birini gönderin.
İsteği düzeltin, sonra tekrar gönderin. Bkz. Hatalar.
- Eksik parametre: Ne
- Name
401 - Unauthorized- Description
API anahtarı eksik veya geçersiz.
Authorizationbaşlığını kontrol edin.
- Name
402 - Payment Required- Description
Örneğin:
- Yetersiz kredi: Hesapta bu görev için yeterli kredi yok, veya hesap bir kredi sınırına ulaştı. Kredi bakiyenizi kontrol edin, sonra tekrar deneyin.
- Ücretsiz plan: Görev oluşturmak ücretli bir plan gerektirir. abonelik ayarlarınızdan planınızı yükseltin, sonra tekrar deneyin.
- Name
403 - Forbidden- Description
input_task_id, bu uç noktanın yeniden ağ oluşturamadığı bir kabartma (bas-relief) modeli. MesajThis model type does not support this operationşeklindedir. Farklı bir model gönderin.
- Name
404 - Not Found- Description
input_task_id, görevlerinizden hiçbiriyle eşleşmiyor. Görev ID'sini kontrol edin, sonra isteği tekrar gönderin.
- Name
429 - Too Many Requests- Description
Hız sınırınızı aştınız. Bekleyin, sonra tekrar deneyin. Bkz. Hız sınırları.
Bir Yeniden ağ görevi alın
Kimliğine göre bir Yeniden ağ görevi döndürür.
Request
curl https://api.meshy.ai/openapi/v1/remesh/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "remesh",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
"fbx": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.fbx?Expires=***",
"obj": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***",
"usdz": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.usdz?Expires=***",
"blend": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.blend?Expires=***",
"stl": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.stl?Expires=***"
},
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null
}
Parametreler
- Name
- id
- Type
- path
- Description
Oluşturma yanıtından alınan görev kimliği.
Döndürülenler
Bir Yeniden ağ görevini sil
Bir Yeniden ağ görevini, modelleri ve verileri dahil olmak üzere kalıcı olarak siler. Bir silme işlemini geri alamazsınız.
Request
curl --request DELETE \
--url https://api.meshy.ai/openapi/v1/remesh/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 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."
}
Yol parametreleri
- Name
- id
- Type
- path
- Description
Silinecek görevin kimliği.
Görev durumu
PENDING durumundaki bir görevi silmek, oluşturduğunuzda kullanılan kredileri iade eder.
IN_PROGRESS durumundaki bir görev silinemez. İstek 409 Conflict döndürür
ve görev çalışmaya devam eder. Meshy, başlamış olan bir görev için iade yapmaz,
bu yüzden onu silmek size hem kredileri hem de sonucu kaybettirir. Görevin
SUCCEEDED, FAILED veya CANCELED durumuna ulaşmasını bekleyin, ardından silin.
Son bir durumdaki (SUCCEEDED, FAILED veya CANCELED) bir görevi silmek
kredilerini iade etmez.
Döndürülenler
Görev silindiğinde 200 OK, görev IN_PROGRESS durumundayken
409 Conflict döner.
Yeniden ağ görevlerini listele
Yeniden ağ görevlerinizin bir listesini döndürür.
Request
curl https://api.meshy.ai/openapi/v1/remesh?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
[
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "remesh",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
"fbx": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.fbx?Expires=***",
"obj": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***",
"usdz": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.usdz?Expires=***",
"blend": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.blend?Expires=***",
"stl": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.stl?Expires=***"
},
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null
}
]
Parametreler
- Name
- page_num
- Type
- integer
- varsayılan 1
- Description
Döndürülecek sayfa numarası, en fazla
255. Daha büyük bir değer400döndürür.
- Name
- page_size
- Type
- integer
- varsayılan 10
- Description
Sayfa başına görev sayısı, en fazla
100.
- Name
- sort_by
- Type
- string
- Description
Sıralama düzeni.
Kullanılabilir değerler:
+created_at: en eskiden en yeniye-created_at: en yeniden en eskiye
Döndürülenler
Yeniden ağ görev nesnelerinin sayfalanmış bir listesi.
Bir Yeniden ağ görevini akış olarak alma
Bir Yeniden ağ görevinin güncellemelerini Server-Sent Events (SSE) olarak akış halinde sunar.
Request
curl -N https://api.meshy.ai/openapi/v1/remesh/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.
// These examples are shortened. Each event holds the full task object.
event: message
data: {
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"progress": 0,
"status": "PENDING"
}
event: message
data: {
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "remesh",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
"fbx": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.fbx?Expires=***",
"obj": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***",
"usdz": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.usdz?Expires=***",
"blend": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.blend?Expires=***",
"stl": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.stl?Expires=***"
},
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null,
}
Parametreler
- Name
- id
- Type
- path
- Description
Oluşturma yanıtından alınan görev ID'si.
Dönüş Değerleri
Server-Sent Events olarak Yeniden ağ görevi nesnelerinin bir akışı.
Her etkinlik, Get uç noktasının döndürdüğü ile aynı biçimde tam görev nesnesini taşır. Görev PENDING veya IN_PROGRESS durumundayken, sonuç alanlarının henüz değerleri yoktur.
Yeniden ağ görev nesnesi
Bir Yeniden ağ görev nesnesi, bir 3D modelin tek bir yeniden ağ işlemini tanımlar. Durumu, ilerlemeyi ve görev başarılı olduğunda model dosyalarını tutar.
Özellikler
Example Remesh Task Object
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "remesh",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
"fbx": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.fbx?Expires=***",
"obj": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***",
"usdz": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.usdz?Expires=***",
"blend": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.blend?Expires=***",
"stl": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.stl?Expires=***"
},
"progress": 100,
"status": "SUCCEEDED",
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": {
"message": ""
},
"consumed_credits": 5
}
- Name
- id
- Type
- string
- Description
Görev kimliği. Bunu anlamsız bir dize olarak değerlendirin ve biçimine güvenmeyin.
- Name
- type
- Type
- string
- Description
Görev türü, her zaman
remesh.
- Name
- model_urls
- Type
- object
- Description
Yeniden ağı oluşturulmuş model için indirme URL'leri, her dosya biçimi için bir tane. Görevin oluşturmadığı bir biçimin, boş bir dize yerine hiç anahtarı yoktur.
- Name
glb- Type
- string
- Description
GLB dosyası.
- Name
fbx- Type
- string
- Description
FBX dosyası.
- Name
obj- Type
- string
- Description
OBJ dosyası.
- Name
usdz- Type
- string
- Description
USDZ dosyası.
- Name
blend- Type
- string
- Description
Blender dosyası.
- Name
stl- Type
- string
- Description
STL dosyası.
- Name
3mf- Type
- string
- Description
3MF dosyası. Yalnızca
target_formatsiçinde3mfbulunduğunda mevcuttur.
- Name
- thumbnail_url
- Type
- string
- Description
Yeniden ağı oluşturulmuş modelin önizleme görseli için indirme URL'si.
- Name
- alpha_thumbnail_url
- Type
- string
- Description
thumbnail_urladresinin saydam arka planlı (RGBA) bir sürümü için indirme URL'si. Yalnızca görevialpha_thumbnail: trueile oluşturduğunuzda ve Meshy saydam önizlemeyi render ettiğinde mevcuttur.
- Name
- progress
- Type
- integer
- Description
Görevin ne kadarının tamamlandığı, yüzde olarak. Görev başlayana kadar
0, başarılı olduğunda100değerindedir.
- Name
- status
- Type
- string
- Description
Görev durumu,
PENDING,IN_PROGRESS,SUCCEEDED,FAILEDveyaCANCELEDdeğerlerinden biri.
- Name
- preceding_tasks
- Type
- integer
- Description
Kuyrukta bu görevden önce gelen görev sayısı. Bu değer yalnızca görev
PENDINGdurumundayken anlamlıdır.
- Name
- created_at
- Type
- timestamp
- Description
Görevin oluşturulduğu zaman, Unix milisaniye cinsinden.
- Name
- started_at
- Type
- timestamp
- Description
Görevin başladığı zaman, Unix milisaniye cinsinden. Görev başlayana kadar
0değerindedir.
- Name
- finished_at
- Type
- timestamp
- Description
Görevin bittiği zaman, Unix milisaniye cinsinden. Görev bitene kadar
0değerindedir.
- Name
- expires_at
- Type
- timestamp
- Description
Görevin indirme URL'lerinin süresinin dolduğu zaman, Unix milisaniye cinsinden. Görev bitene kadar
0değerindedir.
- Name
- texture_urls
- Type
- array
- Description
Görev başarılı olduğunda, modelin doku haritaları için indirme URL'leri: her doku seti için bir tane olmak üzere nesnelerden oluşan bir dizi. Her nesnede bir
base_colorURL'si bulunur ve ayrıcametallic,roughness,normal,emissionvemetallic_roughnessURL'leri de bulunabilir. Görev başarılı olana kadarnulldeğerindedir ve modelin doku haritası yoksa boş bir dizidir.
- Name
- task_error
- Type
- object
- Description
Görev başarısız olduğunda hata ayrıntıları. Bkz. Hatalar.
- Name
- consumed_credits
- Type
- integer
- Description
Görevin kullandığı kredi sayısı. Durum
PENDING,IN_PROGRESSveyaSUCCEEDEDolduğunda mevcuttur.FAILEDbir görev için0değerindedir, çünkü Meshy bir görev başarısız olduğunda kredileri iade eder.