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örüntü oluşturur ve bunu
içi boş bir 3D modele (GLB) dönüştürür, ardından yapım, bu model üzerinde lamba
işlemcisini çalıştırarak baskıya uygun STL parçalarını üretir — ışık kaynağı
armatürü için bir taban plakasına sahip, alt kısmı açık bir lamba abajuru ve
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şturur ve
bunu içi boş bir 3D lamba şemsiyesi modeline dönüştürür. Yanıt hem konsept
görseli (image_urls) hem de 3D modeli (thumbnail_url içeren model_urls.glb)
içerir. Dönen görev ID'si, build uç noktasına input_task_id olarak
geçireceğiniz değerdir. Yanıt biçimi için
Lamba Prototip Görev Nesnesi
bölümüne bakın.
Parametreler
Name
image_url
Type
string
Zorunlu
Description
Meshy'nin lamba şemsiyesi 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 URL: Herkese açık 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 verileriniz>.
Name
image_subject
Type
string
varsayılan character
Description
Stylization prompt'unu seçen konu kategorisi ipucu. Kullanılabilir değerler:
character (varsayılan) — tek bir 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ı. Maksimum 100 karakter.
Name
remove_background
Type
boolean
varsayılan false
Description
true olarak ayarlandığında, prototip görseli arka planı kaldırılmış, saydam bir RGBA PNG olarak döndürülür; böylece konuyu herhangi bir arka plana yerleştirebilirsiniz.
Dönüş Değerleri
Yanıtın result özelliği, yeni oluşturulan lamba prototip görevinin id değerini içerir. Görev SUCCEEDED durumuna ulaşana kadar Bir Görev Alma uç noktasını yoklayın veya stream'e abone olun, ardından bu ID'yi 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 formatta 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, konsept görseli ve build aşamasının işlediği içi boş bir 3D model döndürür.
Başarılı bir prototip görevinden nihai 3D baskıya uygun parçaları oluşturur.
Build işlemi, lamba işlemcisini prototipin 3D modeli üzerinde çalıştırır: modeli
diameter_mm değerine göre ölçeklendirir, altını cut_amount_percent oranında
düzleştirir, thickness_mm değerine göre içini oyar, altını 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 parçası ekler. Yanıt şekli için
The Lamp Build Task Object bölümüne bakın.
Parametreler
Name
input_task_id
Type
string
Zorunlu
Description
Aynı OpenAPI uç noktası aracılığıyla oluşturulmuş bir prototip görevinin görev ID'si. Prototip, aynı API anahtarıyla 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ı. Maksimum 100 karakter.
options
Lampa şeması geometrisi için isteğe bağlı ince ayar 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
Lamba şapkasının sınırlayıcı kutusunun hedef maksimum boyutu, milimetre cinsinden. Ağ, sığacak şekilde tekdüze olarak ölçeklendirilir. Aralık: [50, 400].
Modelin altında düz olarak kesilen yükseklik yüzdesi; böylece lamba şapkası baskı tablasına oturur ve fikstür için bir açıklık bulunur. Aralık: [1, 100].
Name
light_source_preset
Type
string
varsayılan bambu_mh001_60mm
Description
Altın nasıl oluşturulacağını belirleyen ışık kaynağı fikstür ön ayarı. Kullanılabilir değerler:
bambu_mh001_60mm (varsayılan) — hem model_urls.lamp_stl içinde 60 mm'lik bir fikstür deliği taşıyan taban plakası bulunan alt kısmı açık bir lamba şapkası, hem de model_urls.base_stl olarak fikstür montaj parçası.
none — model_urls.lamp_stl içinde tek bir kapalı lamba şapkası; model_urls.base_stl alanı bulunmaz.
Name
fixture_offset_x_mm
Type
number
varsayılan 0
Description
Taban plakasındaki fikstür deliğinin, lamba şapkasının merkezine göre X eksenindeki 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, lamba şapkasının merkezine göre Z eksenindeki (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
İşleme öncesinde modele uygulanan, X ekseni etrafındaki döndürme, derece cinsinden. Üç döndürme, 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
İşleme öncesinde içe aktarılan ağa uygulanan, Y ekseni etrafındaki döndürme, derece cinsinden. Aralık: [-360, 360].
Name
rotate_z_deg
Type
number
varsayılan 0
Description
İşleme öncesinde içe aktarılan ağa uygulanan, Z ekseni etrafındaki döndürme, 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 ise, lamba işlemcisinin result.json dosyasını (pipeline adı, uyarılar ve çıktı yolları) paketin 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 stl şeklindedir.
Name
format
Type
string
varsayılan stl
Description
Build tarafından döndürülen çıktı paketi. Kullanılabilir değerler:
stl (varsayılan) — model_urls.lamp_stl (lamba şapkası, bir fikstür ön ayarı ayarlandığında taban plakasıyla birlikte) döndürür, ayrıca light_source_preset ≠ none olduğunda model_urls.base_stl da döndürülür.
zip — işlemcinin ürettiği her çıktıyı (lamp.stl, isteğe bağlı base.stl, isteğe bağlı result.json) tek bir zip içine paketler ve bunu model_urls.bundle_zip altında döndürür.
Dönüş Değerleri
Yanıtın result özelliği, yeni oluşturulan lamba build görevinin görev id değerini içerir. Görev SUCCEEDED durumuna ulaşana kadar Get a Task uç noktasını yoklayın veya stream'e abone olun, ardından çıktıları model_urls üzerinden indirin.
Hata Durumları
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ğil.
Üst görev başarıya ulaşmadı: Referans verilen prototip görevi henüz SUCCEEDED durumuna ulaşmadı.
Model yok: Prototip görevi başarılı oldu ancak bir 3D model üretmedi.
Seçenekler aralık dışında: options alanlarından biri izin verilen aralığın veya numaralandırma kümesinin dışında kaldı.
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, başka bir kullanıcıya ait veya webapp üzerinden oluşturulmuş (yalnızca API modundaki prototip görevleri build'e zincirlenebilir).
Geçerli bir görev id değeri verildiğinde bir prototip veya build görevini getirir. URL yolu,
görevin aşamasıyla eşleşmelidir — /prototype/:id üzerinden getirilen bir build görevi
404 döndürür, ve tam tersi de geçerlidir.
Bir lamba görevini iptal et. Görev hala PENDING durumundaysa, oluşturma sırasında tüketilen krediler iade edilir. Zaten IN_PROGRESS olan görevler, iade yapılmadan iptal edilir (çalışan kaynakları tüketiyor olabilir). Zaten bir son duruma ulaşmış görevler (SUCCEEDED, FAILED, CANCELED) iptal edilemez.
URL yolu, görevin aşamasıyla eşleşmelidir — /prototype/:buildId üzerinde DELETE404 döndürür.
Yol Parametreleri
Name
id
Type
path
Description
İptal edilecek lamba görevi için benzersiz tanımlayıcı.
Dönüşler
Başarı durumunda boş bir gövde ile 204 No Content döndürür.
Başarısızlık Modları
Name
400 - Bad Request
Description
Görev zaten bir son durumda ve iptal edilemez.
Name
404 - Not Found
Description
Görev mevcut değil, farklı bir kullanıcıya ait veya aşaması URL yoluyla eşleşmiyor.
Server-Sent Events (SSE) aracılığıyla bir lamba görevi için gerçek zamanlı güncellemeleri akışla aktarı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 aktarılacak lamba görevi için benzersiz tanımlayıcı.
Dönüş Değerleri
Server-Sent Events olarak Lamba Prototipi
veya Lamba Yapısı görev nesnelerinden oluşan
bir akış döndürür. PENDING veya IN_PROGRESS durumundaki görevler için,
yanıt akışı yalnızca gerekli progress ve status alanlarını içerir.
// 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": 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şama için lamba görevlerinizin sayfalanmış listesini alın. URL
yolu aşamayı belirler — /prototype prototip görevlerini döndürür; /build
ise yapım (build) görevlerini döndürür. Diğer aşamaya ait görevler
hiçbir yanıta 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ğrısı
asla yapım görevlerini döndürmez ve bunun 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 50 öğ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ıralar.
-created_at: Oluşturulma zamanına göre azalan sırada sıralar.
Lamp Prototip Görevi nesnesi, Meshy'nin bir kaynak fotoğraftan stilize edilmiş mat beyaz bir konsept görsel oluşturmak ve bunu boş bir 3D model'e dönüştürmek için takip ettiği bir iş birimidir. Bu aşamanın çıktısı, input_task_id aracılığıyla build 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 formatı hakkında herhangi bir varsayımda bulunmamalısınız.
Name
type
Type
string
Description
Görevin türü. Değer creative-lab-lamp-prototype şeklindedir.
Name
name
Type
string
Description
Görev oluşturulduğunda sağlanan görev adı. Ad sağlanmadıysa boş dize olur.
Görevin ilerlemesi (progress). Görev henüz başlamadıysa, bu özellik 0 olacaktır. Görev başarılı olduğunda ise 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ı
takip ederek, 1 Ocak 1970 UTC'den bu yana geçen milisaniye sayısını temsil eder.
Örneğin, 1 Eylül 2023 Cuma günü saat 12:00:00 GMT, 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 olacaktır.
Name
finished_at
Type
timestamp
Description
Görevin tamamlandığı zamanın milisaniye cinsinden zaman damgası. Görev henüz tamamlanmadıysa, bu özellik 0 olacaktır.
Name
expires_at
Type
timestamp
Description
Görev sonucunun sona ereceği 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 detayları. 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 (başarısızlık durumunda krediler iade edilir).
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; bundan önce {} şeklindedir.
Name
glb
Type
string
Description
GLB formatındaki boş mat beyaz lambaşemsiyesi modeline indirilebilir URL. Bu, build aşamasının işlediği modeldir.
Name
thumbnail_url
Type
string
Description
3D modelin işlenmiş 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ın dizi olmasının nedeni, gelecekteki revizyonların kırılma yaratmadan birden fazla adayı sunabilmesini sağlamaktır.
Lamba Build Görev nesnesi, Meshy'nin başarılı bir prototip görevinden 3D baskıya uygun nihai lamba abajurunu oluşturmak için takip ettiği bir iş birimidir.
Build işlemi, prototipin 3D modeli üzerinde lamba işlemcisini çalıştırarak modeli içini boşaltır, altını düzleştirip açar ve (bir fixture ön ayarıyla) taban plakasını ve fixture montaj yapısı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ğer creative-lab-lamp-build'dir.
Name
name
Type
string
Description
Görev oluşturulurken belirtilen görev adı. Ad belirtilmemişse boş dizedir.
Görevin ilerlemesi. Görev henüz başlamadıysa bu özellik 0 olur. 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 dolduğu zamanın milisaniye cinsinden zaman damgası.
Name
preceding_tasks
Type
integer
Description
Önceki 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ı. 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ı. FAILED görevler için 0 döner (başarısızlık durumunda krediler iade edilir).
Name
model_urls
Type
object
Description
Oluşturulan çıktılar için, çıktı adına göre anahtarlandırılmış 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 tarafı açık lamba abajuru, ya da options.light_source_preset değeri none olduğunda tek parça, tamamen kapalı bir lamba abajuru. output.format değeri stl (varsayılan) olduğunda bulunur.
Name
base_stl
Type
string
Description
Işık kaynağı fixture montajı olan base.stl dosyasına indirilebilir URL. output.format değeri stlveoptions.light_source_preset değeri none olmadığında bulunur. Fixture ön ayarı none olduğunda dahil edilmez.
Name
bundle_zip
Type
string
Description
İşlemcinin ürettiği tüm çıktıları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 bulunur. bundle_zip mevcut olduğunda lamp_stl / base_stl dahil edilmez.