Bir metin promptunu veya kaynak fotoğrafı iki aşamada 3D yazdırılabilir bir lamba
başlığına dönüştürün: prototip stilize mat beyaz bir konsept görüntü oluşturur, ardından
oluşturma bu konsept görüntüyü içi boş bir STL lamba başlığına dönüştürür (isteğe bağlı olarak
bir ışık kaynağı düzeneği için taban diskiyle eşleştirilmiş). İki aşama
input_task_id aracılığıyla bağlanır.
Lamba başlığı için tek bir mat beyaz konsept görüntü oluşturun — ister
bir metin promptundan (text-to-3D) ister bir referans fotoğraftan (image-to-3D).
Döndürülen görev ID'si, build
uç noktasına input_task_id olarak geçirdiğiniz değerdir. Yanıt biçimi için
Lamba Prototip Görevi Nesnesi
bölümüne bakın.
Parametreler
text veya image_url değerlerinden tam olarak biri zorunludur. İkisini birden geçirmek veya hiçbirini geçirmemek 400 döndürür.
Name
text
Type
string
Zorunlu
Description
İstenen lamba başlığı konusunu açıklayan metin promptu. image_url atlandığında zorunludur. En fazla 800 karakter.
Name
image_url
Type
string
Zorunlu
Description
Meshy'nin lamba başlığı için görsel referans olarak kullandığı kaynak fotoğraf. text atlandığında zorunludur. Şu anda .jpg, .jpeg, .png ve .webp formatlarını destekliyoruz.
Görüntüyü sağlamanın iki yolu vardır:
Herkese açık erişilebilir URL: Herkese açık internetten erişilebilen bir URL.
Data URI: Görüntünün base64 ile kodlanmış Data URI'si. Bir Data URI örneği: data:image/jpeg;base64,<your base64-encoded image data>.
Name
image_subject
Type
string
varsayılan character
Description
Image-to-3D yolu için konu kategorisi ipucu. Kullanılabilir değerler:
character (varsayılan) — tek karakter / nesne konusu (figür, hayvan, maskot vb.).
landscape — açık hava sahnesi / panorama konusu (dağ, şehir manzarası, orman vb.).
Text-to-3D yolunda yok sayılır.
Name
name
Type
string
Description
Görüntüleme amaçları için isteğe bağlı görev adı. En fazla 100 karakter.
Dönenler
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 Al uç noktasını yoklayın veya stream aboneliği oluşturun, ardından bu ID'yi build uç noktasınainput_task_id olarak geçirin.
Hata Durumları
Name
400 - Bad Request
Description
İstek kabul edilemezdi. Yaygın nedenler:
Eksik parametre: text veya image_url değerlerinden tam olarak biri zorunludur.
İkisi de sağlandı: Hem text hem de image_url geçirilmesi reddedilir — bunlar birbirini dışlar.
Geçersiz görüntü formatı: Sağlanan image_url desteklenen bir formatta değil (.jpg, .jpeg, .png, .webp).
Görüntü boyutları aralık dışında: Görüntü ç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örüntüsü NSFW veya fikri mülkiyet moderation tarafından işaretlendi.
Metin çok uzun: text 800 karakteri aşıyor.
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 (image-to-3D): generate a matte-white lampshade concept imagecurl https://api.meshy.ai/openapi/creative-lab/lamp/v1/prototype \ -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>", "image_subject": "character" }'# Stage 1 (text-to-3D): generate from a text promptcurl https://api.meshy.ai/openapi/creative-lab/lamp/v1/prototype \ -X POST \ -H "Authorization: Bearer ${YOUR_API_KEY}" \ -H 'Content-Type: application/json' \ -d '{ "text": "a stylized owl perched on a tree branch under moonlight" }'
Response
{"result":"018a210d-8ba4-705c-b111-1f1776f7f578"}
Prototype example
Start with a source photo, then generate the prototype image used by the lamp build stage.
Başarılı olmuş bir prototip görevinden son 3D yazdırılabilir abajuru
oluşturun. Derleme, prototipin konsept görüntüsü üzerinde bir görüntüden
3D'ye işlem hattı çalıştırır, ardından ağı lamba işlemcisinden geçirerek
içini boşaltmak, üst kısmını düzleştirmek, isteğe bağlı olarak bir taban
kesmek ve (bir armatür ön ayarı seçildiğinde) ışık kaynağı için ayrı bir
taban diski üretmek üzere sonradan işler. Yanıt biçimi için
Lamba Derleme Görevi Nesnesi bölümüne
bakın.
Parametreler
Name
input_task_id
Type
string
Zorunlu
Description
Bu aynı OpenAPI uç noktası üzerinden oluşturulan bir prototip görevinin görev ID'si. Prototip aynı API anahtarı ile oluşturulmuş olmalı, SUCCEEDED durumuna ulaşmış olmalı ve tam olarak bir aday görüntü üretmiş olmalıdır.
Web uygulaması üzerinden oluşturulan prototip görevleri kabul edilmez — derleme uç noktası yalnızca POST /openapi/creative-lab/lamp/v1/prototype tarafından üretilen prototip görevlerini kabul eder ve diğer tüm kaynakları 404 ile reddeder.
Name
name
Type
string
Description
Görüntüleme amacıyla isteğe bağlı görev adı. En fazla 100 karakter.
options
Abajur 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 80
Description
Abajur sınırlayıcı kutusunun hedef maksimum boyutu, milimetre cinsinden. Ağ sığacak şekilde eşit oranda ölçeklenir. Aralık: [50, 400].
Name
thickness_mm
Type
number
varsayılan 1.5
Description
İçi boş abajurun duvar kalınlığı, milimetre cinsinden. Aralık: (0, 10].
Name
cut_amount_percent
Type
number
varsayılan 35
Description
Baskının tabla üzerinde durabilmesi için üstte düzleştirilecek abajur yüksekliği yüzdesi. Aralık: [1, 100].
Name
light_source_preset
Type
string
varsayılan bambu_mh001_60mm
Description
Abajurun yanında bir taban diski üretilip üretilmeyeceğini (ve ne üretileceğini) belirleyen ışık kaynağı armatür ön ayarı. Kullanılabilir değerler:
bambu_mh001_60mm (varsayılan) — uyumlu bir ışık kaynağı armatürü için boyutlandırılmış 60 mm taban diski üretir. Sonuç model_urls.base_stl içerir.
Armatür kesitinin abajur merkezine göre yatay 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
Armatür kesitinin abajur altına göre dikey Z ekseni ofseti, milimetre cinsinden. Aralık: [-80, 80].
Name
rotate_x_deg
Type
number
varsayılan 0
Description
İşlemeden önce içe aktarılmış ağa uygulanan X ekseni etrafındaki dönüş, derece cinsinden. Aralık: [-360, 360].
Name
rotate_y_deg
Type
number
varsayılan 0
Description
İşlemeden önce içe aktarılmış 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
İşlemeden önce içe aktarılmış 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.formatzip ise, lamba işlemcisinin result.json dosyasını (ölçülen ağ metrikleri + çözümlenmiş seçenek kümesini içerir) paketin içine ekler. output.formatstl olduğunda yok sayılır.
output
İsteğe bağlı kablo biçimi seçici. Varsayılan değer stl'dir.
Name
format
Type
string
varsayılan stl
Description
Derleme tarafından döndürülen artefakt paketi. Kullanılabilir değerler:
stl (varsayılan) — abajuru model_urls.lamp_stl olarak döndürür, ayrıca light_source_preset ≠ none olduğunda model_urls.base_stl ekler.
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ında paketler ve model_urls.bundle_zip altında döndürür.
Döndürür
Yanıtın result özelliği, yeni oluşturulan lamba derleme görevinin görev id değerini içerir. Görev SUCCEEDED durumuna ulaşana kadar Görev Al uç noktasını yoklayın veya akışa abone olun, ardından artefaktları model_urls üzerinden indirin.
Hata Modları
Name
400 - Bad Request
Description
İstek kabul edilemezdi. Yaygın nedenler:
Eksik parametre: input_task_id gereklidir.
Geçersiz UUID: input_task_id geçerli bir UUID değil.
Üst görev başarılı değil: Başvurulan prototip görevi henüz SUCCEEDED durumuna ulaşmadı.
Aday yok: Prototip görevi başarılı oldu ancak aday görüntü üretmedi.
Seçenekler aralık dışında: options alanlarından biri izin verilen aralığının veya enum kümesinin dışına çıktı.
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
Başvurulan prototip görevi mevcut değil, farklı bir kullanıcıya ait veya web uygulaması üzerinden oluşturulmuş (yalnızca API mode prototip görevleri derlemeye zincirlenir).
Geçerli bir görev id değeri verilen bir prototip veya derleme görevini alın. URL yolu
görevin aşamasıyla eşleşmelidir — /prototype/:id üzerinden getirilen bir
derleme görevi 404 döndürür; tersi de geçerlidir.
Bir lamba görevini iptal edin. Görev hâlâ PENDING durumundaysa, oluşturma zamanında
tüketilen kredi iade edilir. Zaten IN_PROGRESS durumunda olan görevler
iade olmadan iptal edilir (çalışan süreç kaynakları zaten tüketiyor olabilir).
Zaten terminal bir duruma (SUCCEEDED, FAILED,
CANCELED) ulaşmış görevler iptal edilemez.
URL yolu görevin aşamasıyla eşleşmelidir — /prototype/:buildId üzerinde
DELETE işlemi 404 döndürür.
Yol Parametreleri
Name
id
Type
path
Description
İptal edilecek lamba görevi için benzersiz tanımlayıcı.
Döndürür
Başarı durumunda boş bir gövdeyle 204 No Content döndürür.
Hata Durumları
Name
400 - Bad Request
Description
Görev zaten terminal bir 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.
Bir lamba görevi için gerçek zamanlı güncellemeleri Server-Sent Events (SSE) aracılığıyla akış olarak alın.
URL yolu görevin aşamasıyla eşleşmelidir — şurada bir akış açmak:
/prototype/:buildId/stream, status_code: 404 içeren tek bir event: error yükü yayar ve akışı kapatır.
Parametreler
Name
id
Type
path
Description
Akışı alınacak lamba görevi için benzersiz tanımlayıcı.
Dönenler
Lamba Prototipi
veya Lamba Derlemesi görev nesnelerinin
Server-Sent Events olarak bir akışını döndürür. PENDING veya IN_PROGRESS görevleri 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": 30,"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ış bir listesini alın. URL
yolu aşamayı seçer — /prototype prototip görevlerini döndürür; /build
build görevlerini döndürür. Diğer aşamadaki görevler hiçbir yanıta dahil
edilmez.
Yol Parametreleri
Name
stage
Type
path
Zorunlu
Description
Ya prototype ya da build. Koleksiyon yalnızca
aşaması URL ile eşleşen görevleri döndürür — /prototype almak asla
build 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 değer 50 öğedir.
Name
sort_by
Type
string
varsayılan -created_at
Description
Sıralama yapılacak alan. Mevcut değerler:
+created_at: Oluşturulma zamanına göre artan düzende sırala.
-created_at: Oluşturulma zamanına göre azalan düzende sırala.
Görev için benzersiz tanımlayıcı. Uygulama ayrıntısı 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 şeklindedir.
Name
name
Type
string
Description
Görev oluşturulurken sağlanan görev adı. Ad sağlanmadıysa boş dizedir.
Görevin progress değeri. Görev henüz başlatılmadı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 ne zaman oluşturulduğunun zaman damgası, milisaniye cinsinden.
Bir zaman damgası, RFC 3339 standardına uygun olarak
1 Ocak 1970 UTC'den bu yana geçen milisaniye sayısını temsil eder.
Örneğin, Cuma, 1 Eylül 2023 12:00:00 PM GMT 1693569600000 olarak temsil edilir. Bu, Meshy API içindeki
tüm zaman damgaları için geçerlidir.
Name
started_at
Type
timestamp
Description
Görevin ne zaman başlatıldığının zaman damgası, milisaniye cinsinden. Görev henüz başlatılmadıysa bu özellik 0 olur.
Name
finished_at
Type
timestamp
Description
Görevin ne zaman bitirildiğinin zaman damgası, milisaniye cinsinden. Görev henüz bitirilmediyse bu özellik 0 olur.
Name
expires_at
Type
timestamp
Description
Görev sonucunun ne zaman expires_at olduğunun zaman damgası, milisaniye cinsinden.
Name
preceding_tasks
Type
integer
Description
Önceki görevlerin sayısı.
Bu alanın değeri yalnızca görev durumu PENDING ise 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 bulunur. FAILED görevler için 0 döndürür (krediler başarısızlık durumunda iade edilir).
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 dizidir, böylece gelecekteki revizyonlar kırıcı değişiklik olmadan birden fazla adayı sunabilir.
Lamba Oluşturma Görevi nesnesi, Meshy'nin başarılı bir prototip görevinden
nihai 3D yazdırılabilir abajuru oluşturmak için takip ettiği bir iş birimidir.
Oluşturma, prototipin konsept görüntüsü üzerinde görüntüden 3D'ye taslak + doku
işlem hattı çalıştırır, ardından ağı boşaltmak, düzleştirmek ve (isteğe bağlı olarak)
bir armatür tabanı kesmek için lamba işleyicisi üzerinden sonradan işler.
Ö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 şeklindedir.
Name
name
Type
string
Description
Görev oluşturulurken sağlanan görev adı. Ad sağlanmadıysa boş dize olur.
Görevin progress değeri. Görev henüz başlatılmadı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 damgası, milisaniye cinsinden.
Name
started_at
Type
timestamp
Description
Görevin başlatıldığı zaman damgası, milisaniye cinsinden.
Name
finished_at
Type
timestamp
Description
Görevin tamamlandığı zaman damgası, milisaniye cinsinden.
Name
expires_at
Type
timestamp
Description
Görev sonucunun süresinin dolduğu zaman damgası, milisaniye cinsinden.
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öndürür (başarısızlık durumunda krediler iade edilir).
Name
model_urls
Type
object
Description
Oluşturulan çıktı öğeleri için, çıktı öğesi 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
Lamba başlığı lamp.stl için indirilebilir URL. output.formatstl olduğunda (varsayılan) bulunur.
Name
base_stl
Type
string
Description
Armatür tabanı base.stl için indirilebilir URL. output.formatstl olduğunda veoptions.light_source_presetnone olmadığında bulunur. Armatür ön ayarı none olduğunda atlanır.
Name
bundle_zip
Type
string
Description
İşleyicinin ürettiği her çıktı öğesinin (lamp.stl, isteğe bağlı base.stl ve — options.include_result_jsontrue olduğunda — result.json) zip paketi için indirilebilir URL. output.formatzip olduğunda bulunur. bundle_zip bulunduğunda lamp_stl / base_stl atlanır.