Bir kaynak fotoğrafı iki aşamada 3D baskıya uygun bir lamba abajuruna dönüştürün:
prototip stilize edilmiş mat beyaz bir konsept görsel üretir ve bunu içi boş
bir 3D modele (GLB) dönüştürür, ardından üretim bu model üzerinde lamba
işlemcisini çalıştırarak basılabilir STL parçalarını üretir — ışık kaynağı
armatürü için bir taban plakasına sahip, alt kısmı açık bir lamba abajuru ile
armatür montaj parçasının kendisi. İki aşama input_task_id aracılığıyla
birbirine bağlanır.
Bir referans fotoğraftan tek bir mat beyaz konsept görsel oluşturun ve
bunu içi boş bir 3D lamba abajuru modeline dönüştürün. Yanıt hem
konsept görseli (image_urls) hem de 3D modeli (bir thumbnail_url
içeren model_urls.glb) taşır. Döndürülen görev kimliği, build
uç noktasına input_task_id olarak geçirdiğiniz kimliktir. Yanıt
şekli için Lamp Prototip Görev Nesnesi
bölümüne bakın.
Parametreler
Name
image_url
Type
string
Zorunlu
Description
Meshy'nin lamba abajuru için görsel referans olarak kullandığı kaynak fotoğraf. Şu anda .jpg, .jpeg, .png ve .webp formatlarını destekliyoruz.
Görseli sağlamanın iki yolu vardır:
Herkese açık erişilebilir URL: Genel internetten erişilebilen bir URL.
Data URI: Görselin base64 ile kodlanmış bir data URI'si. Data URI örneği: data:image/jpeg;base64,<base64 ile kodlanmış görsel verisi>.
Name
image_subject
Type
string
varsayılan character
Description
Stylization promptunu seçen konu kategorisi ipucu. Kullanılabilir değerler:
character (varsayılan) — tekli karakter / nesne konusu (figürin, hayvan, maskot vb.).
landscape — dış mekan sahnesi / panorama konusu (dağ, şehir manzarası, orman vb.).
Name
name
Type
string
Description
Görüntüleme amaçlı isteğe bağlı görev adı. En fazla 100 karakter.
Name
remove_background
Type
boolean
varsayılan false
Description
true olarak ayarlandığında, prototip görseli arka planı kaldırılmış, şeffaf RGBA PNG olarak döndürülür; böylece konuyu istediğiniz herhangi bir arka plan üzerine yerleştirebilirsiniz.
Dönen Değerler
Yanıtın result özelliği, yeni oluşturulan lamba prototip görevinin id bilgisini içerir. Bir Görev Alma uç noktasını yoklayın veya stream aboneliği yapın; görev SUCCEEDED durumuna ulaştığında bu kimliği build uç noktasınainput_task_id olarak geçirin.
Hata Durumları
Name
400 - Bad Request
Description
İstek kabul edilemedi. Yaygın nedenler:
Eksik parametre: image_url zorunludur.
Geçersiz görsel formatı: Sağlanan image_url desteklenen bir format değil (.jpg, .jpeg, .png, .webp).
Görsel boyutları aralık dışında: Görsel çok küçük, maksimum dosya boyutunu aşıyor veya maksimum piksel sayısını aşıyor.
Erişilemeyen URL: image_url indirilemedi (404 veya timeout).
Geçersiz Data URI: Base64 dizesi hatalı biçimlendirilmiş.
İçerik işaretlendi: Girdi görseli NSFW veya fikri mülkiyet moderation tarafından işaretlendi.
Geçersiz image_subject: character / landscape değerlerinden biri değil.
Name
401 - Unauthorized
Description
Kimlik doğrulama başarısız oldu. Lütfen API anahtarınızı kontrol edin.
Name
402 - Payment Required
Description
Bu görevi gerçekleştirmek için yetersiz kredi.
Name
429 - Too Many Requests
Description
Hız sınırınızı aştınız.
Request
POST
/openapi/creative-lab/lamp/v1/prototype
# Stage 1: concept image + hollow 3D lampshade model from a source photocurlhttps://api.meshy.ai/openapi/creative-lab/lamp/v1/prototype \-XPOST \-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" }'
Response
{"result":"018a210d-8ba4-705c-b111-1f1776f7f578"}
Prototip örneği
Bir kaynak fotoğrafla başlayın; prototip, build aşamasının işleyeceği konsept görseli ve içi boş bir 3D modeli döndürür.
Başarılı bir prototip görevinden nihai 3D baskıya uygun parçaları oluşturun.
Yapı işlemi, lamba işlemcisini prototipin 3D modeli üzerinde çalıştırır: modeli
diameter_mm değerine ölçeklendirir, alt kısmı cut_amount_percent oranında
düzleştirir, thickness_mm değerine kadar içini boşaltır, alt kısmı açar ve —
bir fikstür ön ayarı seçildiğinde — fikstür deliği bulunan bir taban plakası ile
ışık kaynağı için ayrı bir montaj ekler. Yanıt şekli için
Lamba Yapı Görevi Nesnesi bölümüne bakın.
Parametreler
Name
input_task_id
Type
string
Zorunlu
Description
Aynı OpenAPI uç noktası üzerinden oluşturulmuş bir prototip görevinin görev kimliği. Prototip aynı API anahtarı ile oluşturulmuş olmalı, SUCCEEDED durumuna ulaşmış olmalı ve bir 3D model üretmiş olmalıdır.
Webapp üzerinden oluşturulan prototip görevleri kabul edilmez — build uç noktası yalnızca POST /openapi/creative-lab/lamp/v1/prototype tarafından üretilen prototip görevlerini kabul eder ve başka herhangi bir kaynağı 404 ile reddeder.
Name
name
Type
string
Description
Görüntüleme amaçlı isteğe bağlı görev adı. En fazla 100 karakter.
options
Lampshade geometrisi için isteğe bağlı ayarlama parametreleri. Her alanın makul bir varsayılan değeri vardır — yalnızca geçersiz kılmak istediklerinizi gönderin.
Name
diameter_mm
Type
number
varsayılan 150
Description
Lampshade sınırlayıcı kutusunun hedef maksimum boyutu, milimetre cinsinden. Ağ, sığacak şekilde eşit oranda ölçeklendirilir. Aralık: [50, 400].
Name
thickness_mm
Type
number
varsayılan 1
Description
İçi boş lampshade'in duvar kalınlığı, milimetre cinsinden. Aralık: (0, 10].
Name
cut_amount_percent
Type
number
varsayılan 1
Description
Model yüksekliğinin alt kısmında düz olarak kesilen yüzdesi; böylece lampshade baskı tablasına oturur ve fikstür için bir açıklığa sahip olur. Aralık: [1, 100].
Name
light_source_preset
Type
string
varsayılan bambu_mh001_60mm
Description
Alt kısmın nasıl oluşturulacağını belirleyen ışık kaynağı fikstürü ön ayarı. Kullanılabilir değerler:
bambu_mh001_60mm (varsayılan) — 60 mm'lik fikstür deliği taşıyan bir taban plakasıyla birlikte alt tarafı açık lampshade; her ikisi de model_urls.lamp_stl içinde, fikstür montajı ise model_urls.base_stl olarak yer alır.
none — model_urls.lamp_stl içinde tek, kapalı bir lampshade; model_urls.base_stl atlanır.
Name
fixture_offset_x_mm
Type
number
varsayılan 0
Description
Taban plakasındaki fikstür deliğinin lampshade merkezine göre X ekseni ofseti, milimetre cinsinden. Yalnızca light_source_preset ≠ none olduğunda anlamlıdır. Aralık: [-80, 80].
Name
fixture_offset_z_mm
Type
number
varsayılan 0
Description
Taban plakasındaki fikstür deliğinin lampshade merkezine göre Z ekseni (derinlik) ofseti, milimetre cinsinden. Yalnızca light_source_preset ≠ none olduğunda anlamlıdır. Aralık: [-80, 80].
Name
rotate_x_deg
Type
number
varsayılan 0
Description
İşlemden önce modele uygulanan X ekseni etrafındaki dönüş, derece cinsinden. Üç dönüş, modelin merkezi etrafında XYZ Euler açıları olarak uygulanır. Aralık: [-360, 360].
Name
rotate_y_deg
Type
number
varsayılan 0
Description
İşlemden önce içe aktarılan ağa uygulanan Y ekseni etrafındaki dönüş, derece cinsinden. Aralık: [-360, 360].
Name
rotate_z_deg
Type
number
varsayılan 0
Description
İşlemden önce içe aktarılan ağa uygulanan Z ekseni etrafındaki dönüş, derece cinsinden. Aralık: [-360, 360].
Name
include_result_json
Type
boolean
varsayılan false
Description
true olduğunda ve output.format değeri zip olduğunda, lamba işlemcisinin result.json dosyasını (pipeline adı, uyarılar ve artefakt yolları) paket içine dahil eder. output.format değeri stl olduğunda göz ardı edilir.
output
İsteğe bağlı çıktı biçimi seçici. Varsayılan olarak stl.
Name
format
Type
string
varsayılan stl
Description
Yapı tarafından döndürülen artefakt paketi. Kullanılabilir değerler:
stl (varsayılan) — model_urls.lamp_stl değerini döndürür (bir fikstür ön ayarı ayarlandığında taban plakasıyla birlikte lampshade), ayrıca light_source_preset ≠ none olduğunda model_urls.base_stl değerini döndürür.
zip — işlemcinin ürettiği her artefaktı (lamp.stl, isteğe bağlı base.stl, isteğe bağlı result.json) tek bir zip dosyasına paketler ve model_urls.bundle_zip altında döndürür.
Dönüş Değerleri
Yanıtın result özelliği, yeni oluşturulan lamba yapı görevinin id değerini içerir. Görev SUCCEEDED durumuna ulaşana kadar Bir Görevi Al uç noktasını sorgulayın veya stream aboneliği yapın, ardından artefaktları model_urls üzerinden indirin.
Hata Modları
Name
400 - Bad Request
Description
İstek kabul edilemedi. Yaygın nedenler:
Eksik parametre: input_task_id zorunludur.
Geçersiz UUID: input_task_id geçerli bir UUID değildir.
Üst görev başarılı değil: Referans verilen prototip görevi henüz SUCCEEDED durumuna ulaşmadı.
Model yok: Prototip görevi başarılı oldu ancak 3D model üretmedi.
Seçenekler aralık dışında: options alanlarından biri izin verilen aralığın veya numaralandırma kümesinin dışına düştü.
Name
401 - Unauthorized
Description
Kimlik doğrulama başarısız oldu. Lütfen API anahtarınızı kontrol edin.
Name
402 - Payment Required
Description
Bu görevi gerçekleştirmek için yetersiz kredi.
Name
404 - Not Found
Description
Referans verilen prototip görevi mevcut değil, farklı bir kullanıcıya ait veya webapp üzerinden oluşturulmuş (yalnızca API modundaki prototip görevleri build ile zincirlenebilir).
Geçerli bir görev id değeri verildiğinde bir prototip veya derleme (build) görevini alır. URL yolu görevin aşamasıyla eşleşmelidir — /prototype/:id üzerinden alınan bir derleme görevi 404 döndürür ve bunun tersi de geçerlidir.
Bir lamba görevini iptal edin. Görev hâlâ PENDING durumundaysa,
oluşturma sırasında harcanan krediler iade edilir. Zaten IN_PROGRESS
durumunda olan görevler iade yapılmadan iptal edilir (işçi zaten kaynak
tüketiyor olabilir). Zaten bir sonlanma durumuna ulaşmış görevler
(SUCCEEDED, FAILED, CANCELED) iptal edilemez.
URL yolu, görevin aşamasıyla eşleşmelidir — /prototype/:buildId
üzerinde DELETE işlemi 404 döndürür.
Sunucu Tarafından Gönderilen Olaylar (SSE) aracılığıyla bir lamba görevi için gerçek zamanlı güncellemeleri akışla alın.
URL yolu, görevin aşamasıyla eşleşmelidir — /prototype/:buildId/stream
adresinde bir akış açmak, status_code: 404 içeren tek bir event: error
yükü yayınlar ve akışı kapatır.
Parametreler
Name
id
Type
path
Description
Akışla alınacak lamba görevi için benzersiz tanımlayıcı.
Dönüş Değerleri
Sunucu Tarafından Gönderilen Olaylar olarak Lamp Prototype
veya Lamp Build görev nesnelerinin bir akışını döndürür.
Her çerçeve, ilgili aşamanın tam görev nesnesini taşır — bu, Get
uç noktasının döndürdüğü aynı yapıdır — bu nedenle görev PENDING veya IN_PROGRESS
durumundayken çıktı alanları henüz doldurulmamıştır (null, [] veya {}) ve
finished_at değeri null olur.
// Error event example (wrong stage or task not found)event: errordata: {"status_code": 404,"message": "Task not found"}// Message event examples illustrate task progress.// Every frame is the full task object; fields not yet populated are null / empty.// The PENDING frame below is abbreviated to the fields that change.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": 6,"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=***" }}
Tek bir aşamaya ait lamba görevlerinizin sayfalanmış bir listesini alın. URL
yolu aşamayı seçer — /prototype prototip görevlerini döndürür; /build
ise derleme görevlerini döndürür. Diğer aşamaya ait görevler her iki yanıta
da dahil edilmez.
Yol Parametreleri
Name
stage
Type
path
Zorunlu
Description
prototype veya build değerlerinden biri. Koleksiyon yalnızca
aşaması URL ile eşleşen görevleri döndürür — /prototype çağırmak
asla derleme görevlerini döndürmez, tersi de geçerlidir.
Sorgu Parametreleri
Name
page_num
Type
integer
varsayılan 1
Description
Sayfalama için sayfa numarası.
Name
page_size
Type
integer
varsayılan 10
Description
Sayfa boyutu sınırı. İzin verilen maksimum 100 öğedir.
Name
sort_by
Type
string
varsayılan -created_at
Description
Sıralama yapılacak alan. Kullanılabilir değerler:
+created_at: Oluşturulma zamanına göre artan sırada sırala.
-created_at: Oluşturulma zamanına göre azalan sırada sırala.
Lamp Prototype Task nesnesi, Meshy'nin bir kaynak fotoğraftan stilize edilmiş, mat beyaz bir konsept görsel oluşturmak ve bunu oyuk bir 3D modele dönüştürmek için takip ettiği bir iş birimidir. Bu aşamanın çıkışı, input_task_id aracılığıyla derleme aşamasına zincirlenir.
Özellikler
Name
id
Type
string
Description
Görev için benzersiz tanımlayıcı. Uygulama detayı olarak görev id'leri için k-sıralanabilir bir UUID kullansak da, id'nin biçimi hakkında hiçbir varsayımda bulunmamalısınız.
Name
type
Type
string
Description
Görevin türü. Değer creative-lab-lamp-prototype'tır.
Name
name
Type
string
Description
Görev oluşturulduğunda verilen görev adı. Eğer bir ad belirtilmemişse boş dizedir.
Name
status
Type
string
Description
Görevin durumu. Olası değerler PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED'dan biridir.
Name
progress
Type
integer
Description
Görevin progress'i. Görev henüz başlamadıysa bu özellik 0 olur. Görev başarılı olduğunda bu değer 100 olur.
Name
created_at
Type
timestamp
Description
Görevin oluşturulduğu zamanın milisaniye cinsinden zaman damgası.
Bir zaman damgası, RFC 3339 standardını izleyerek 1 Ocak 1970 UTC'den itibaren geçen milisaniye sayısını temsil eder.
Örneğin, 1 Eylül 2023 Cuma, GMT 12:00:00 1693569600000 olarak temsil edilir. Bu, Meshy API'deki
tüm zaman damgaları için geçerlidir.
Name
started_at
Type
timestamp
Description
Görevin başladığı zamanın milisaniye cinsinden zaman damgası. Görev henüz başlamadıysa bu özellik 0 olur.
Name
finished_at
Type
timestamp
Description
Görevin tamamlandığı zamanın milisaniye cinsinden zaman damgası. Görev henüz tamamlanmadıysa bu özellik 0 olur.
Name
expires_at
Type
timestamp
Description
Görev sonucunun süresinin dolduğu zamanın milisaniye cinsinden zaman damgası.
Name
preceding_tasks
Type
integer
Description
Önceki görevlerin sayısı.
Bu alanın değeri yalnızca görev durumu PENDING olduğunda anlamlıdır.
Name
task_error
Type
object
Description
Başarısız görevler için hata ayrıntıları. Tam task_error nesne referansı için Hatalar bölümüne bakın.
Name
consumed_credits
Type
integer
Description
Bu görev tarafından tüketilen kredi sayısı. Görev durumu PENDING, IN_PROGRESS veya SUCCEEDED olduğunda mevcuttur. FAILED görevler için 0 döner (kredi, başarısızlık durumunda geri ödenir).
Name
model_urls
Type
object
Description
Konsept görselden oluşturulan 3D model için indirilebilir URL'ler. Görev başarılı olduğunda mevcuttur; öncesinde {} olur.
Name
glb
Type
string
Description
GLB formatındaki oyuk, mat beyaz lambanın gölgeliği modeline indirilebilir URL. Bu, derleme aşamasının işlediği modeldir.
Name
thumbnail_url
Type
string
Description
3D modelin render edilmiş bir önizlemesine indirilebilir URL. Görev başarılı olana kadar boş dizedir.
Name
image_urls
Type
array of strings
Description
Bu prototip görevi tarafından oluşturulan konsept görsel adayları için indirilebilir URL'ler. Şu anda API her zaman tam olarak bir aday döndürür; alan bir dizi olduğundan, gelecekteki revizyonlar kırıcı bir değişiklik yapmadan birden fazla aday sunabilir.
Lamp Build Görevi nesnesi, Meshy'nin başarılı olmuş bir prototip görevinden 3D baskıya uygun nihai lambanın gövdesini üretmek için takip ettiği bir iş birimidir. Build işlemi, lamp processor'ı prototipin 3D modeli üzerinde çalıştırarak modeli içi boş hale getirir, altını düzleştirip açar ve (bir fixture ön ayarıyla birlikte) taban plakasını ve fixture montaj parçasını ekler.
Özellikler
Name
id
Type
string
Description
Görev için benzersiz tanımlayıcı.
Name
type
Type
string
Description
Görevin türü. Değeri creative-lab-lamp-build şeklindedir.
Name
name
Type
string
Description
Görev oluşturulurken verilen görev adı. Eğer bir ad belirtilmediyse boş dize olur.
Görevin ilerlemesi. Görev henüz başlamadıysa bu özellik 0 olacaktır. Görev başarıyla tamamlandığında bu değer 100 olur.
Name
created_at
Type
timestamp
Description
Görevin oluşturulduğu zamanın milisaniye cinsinden zaman damgası.
Name
started_at
Type
timestamp
Description
Görevin başladığı zamanın milisaniye cinsinden zaman damgası.
Name
finished_at
Type
timestamp
Description
Görevin tamamlandığı zamanın milisaniye cinsinden zaman damgası.
Name
expires_at
Type
timestamp
Description
Görev sonucunun süresinin dolacağı zamanın milisaniye cinsinden zaman damgası.
Name
preceding_tasks
Type
integer
Description
Önündeki görevlerin sayısı. Yalnızca durum PENDING olduğunda anlamlıdır.
Name
task_error
Type
object
Description
Başarısız görevler için hata ayrıntıları. task_error nesnesinin tam referansı için bkz. Hatalar.
Name
consumed_credits
Type
integer
Description
Bu görev tarafından tüketilen kredi sayısı. FAILED görevler için 0 döner (başarısızlık durumunda krediler iade edilir).
Name
model_urls
Type
object
Description
Üretilen çıktılar için, çıktı adına göre anahtarlanmış indirilebilir URL'ler. Anahtar kümesi output.format ve options.light_source_preset değerlerine bağlıdır:
Name
lamp_stl
Type
string
Description
lamp.stl dosyasına indirilebilir URL: fixture deliğini taşıyan taban plakasıyla birlikte altı açık lamba gövdesi, ya da options.light_source_preset değeri none olduğunda tek parça kapalı bir lamba gövdesi. output.format değeri stl (varsayılan) olduğunda mevcuttur.
Name
base_stl
Type
string
Description
base.stl dosyasına indirilebilir URL, ışık kaynağı fixture montaj parçası. output.format değeri stlveoptions.light_source_preset değeri none olmadığında mevcuttur. Fixture ön ayarı none olduğunda atlanır.
Name
bundle_zip
Type
string
Description
Processor'ın ürettiği her çıktının (lamp.stl, isteğe bağlı base.stl ve — options.include_result_json değeri true olduğunda — result.json) bulunduğu bir zip paketine indirilebilir URL. output.format değeri zip olduğunda mevcuttur. bundle_zip mevcut olduğunda lamp_stl / base_stl atlanır.