Bir kaynak fotoğrafı 3D baskıya uygun bir anahtarlık madalyonuna — rozet şeklinde
renklendirilmiş bir derinlik kabartmasına — iki aşamada dönüştürün: prototip,
girdi fotoğrafınızdan renklendirilmiş bir konsept görüntü oluşturur, ardından
build, bu konsept görüntüyü kabartmalı bir 3D modele dönüştürür. Bu iki aşama
input_task_id aracılığıyla birbirine bağlanır.
Kaynak fotoğraftan renklendirilmiş tek bir konsept görüntü oluşturur. Döndürülen görev ID'si, build uç noktasına input_task_id olarak geçirdiğiniz değerdir. Yanıt şekli için
Anahtarlık Prototip Görevi Nesnesi
bölümüne bakın.
Parametreler
Name
image_url
Type
string
Zorunlu
Description
Meshy'nin anahtarlığa hazır bir konsept görüntüye renklendireceği kaynak fotoğraf. Ş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: Genel internetten erişilebilen bir URL.
Data URI: Görüntünün base64 kodlanmış bir data URI'si. Data URI örneği: data:image/jpeg;base64,<base64 kodlanmış görüntü verileriniz>.
Name
name
Type
string
Description
Görüntüleme amaçlı isteğe bağlı görev adı. Maksimum 100 karakter.
Bu, görevi kontrol panelinizde ve görev listelerinizde etiketler. Anahtarlığın üzerine kazınmaz — bunun için name_text kullanın.
Name
name_text
Type
string
Description
Anahtarlığa kazınacak metin, örneğin bir evcil hayvanın veya bir kişinin adı. Maksimum 10 karakter, bayt olarak değil Unicode karakter olarak sayılır, bu nedenle 10 karakterlik bir Çince, Japonca veya Korece isim kabul edilir. Kazımasız bir anahtarlık üretmek için boş bırakın.
Çevredeki boşluklar kırpılır ve görünmez biçimlendirme karakterleri metin kullanılmadan önce kaldırılır. Sonuçta elde edilen değer, prototip görev nesnesi üzerinde name_text olarak döndürülür, böylece build aşaması için ödeme yapmadan önce tam olarak neyin kazınacağını doğrulayabilirsiniz.
Kazıma burada, prototip aşamasında uygulanır. Build aşaması bunu otomatik olarak devralır ve kendi name_text değerini kabul etmez.
Metin düz ASCII olmadığında, istek gövdesini UTF-8 olarak gönderin ve Content-Type: application/json; charset=utf-8 ayarını yapın. Bazı HTTP istemcileri — bunlar arasında Windows PowerShell'in Invoke-RestMethod'u da bulunur — varsayılan olarak gövdeyi ISO-8859-1 olarak kodlar, bu da Meshy'ye ulaşmadan önce Latin olmayan her karakteri sessizce ? haline getirir. API, bunu gerçekten talep ettiğiniz bir kazımadan ayırt edemez.
Name
remove_background
Type
boolean
varsayılan false
Description
true olarak ayarlandığında, prototip görüntüsü arka planı kaldırılmış şeffaf bir RGBA PNG olarak döndürülür, böylece öznenizi herhangi bir arka plana yerleştirebilirsiniz.
Bu, yalnızca bu uç noktanın döndürdüğü görüntüyü kontrol eder. Reliefleme öncesi arka plan kaldırmayı kontrol eden aynı isimli build seçeneğinden (varsayılan true) ayrıdır.
Dönüş Değerleri
Yanıtın result özelliği, yeni oluşturulan anahtarlık 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 Modları
Name
400 - Bad Request
Description
İstek kabul edilemedi. Yaygın nedenler:
Eksik parametre: image_url zorunludur.
Geçersiz görüntü formatı: Sağlanan image_url desteklenen bir format 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ş.
Kazıma çok uzun: name_text 10 karakterden uzun. İstek kısaltılmak yerine reddedilir, böylece kısaltılmış bir isimle kazınmış bir anahtarlık için asla ücretlendirilmezsiniz.
İçerik işaretlendi: Giriş görüntüsü NSFW veya fikri mülkiyet moderasyonu tarafından işaretlendi ya da name_text kazıması NSFW moderasyonu tarafından işaretlendi. Kazıma yalnızca NSFW içeriği açısından taranır — fikri mülkiyet taraması görüntüye uygulanır.
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/keychain/v1/prototype
# Stage 1: generate a colorized keychain concept imagecurlhttps://api.meshy.ai/openapi/creative-lab/keychain/v1/prototype \-XPOST \-H"Authorization: Bearer ${YOUR_API_KEY}" \-H'Content-Type: application/json; charset=utf-8' \-d'{ "image_url": "<your publicly accessible image url or base64-encoded data URI>", "name_text": "Luna" }'
Response
{"result":"018a210d-8ba4-705c-b111-1f1776f7f578"}
Prototip örneği
Bir kaynak fotoğrafla başlayın, ardından anahtarlık build aşaması tarafından kullanılan prototip görüntüyü oluşturun.
Başarıya ulaşmış bir prototip görevinden nihai, 3D baskıya uygun anahtarlık madalyonunu üretir. Yapım işlemi, prototipin renklendirilmiş konsept görüntüsü üzerinde bir derinlik haritası kabartma hattı çalıştırır ve istediğiniz biçimde tek bir ağ dosyası sunar. Yanıt biçimi için
Anahtarlık Yapım 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ıyla oluşturulmuş olmalı, SUCCEEDED durumuna ulaşmış olmalı ve tam olarak bir aday görüntü üretmiş olmalıdır.
Webapp üzerinden oluşturulan prototip görevleri kabul edilmez — yapım uç noktası yalnızca POST /openapi/creative-lab/keychain/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
Kabartma 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
badge_shape
Type
string
varsayılan circle
Description
Anahtarlık madalyonunun dış hat silüeti. Kullanılabilir değerler:
circle (varsayılan)
rounded-rect
hexagon
shield
star
Name
size_mm
Type
number
varsayılan 40
Description
Anahtarlığın sınırlayıcı kare kenar uzunluğu, milimetre cinsinden. Aralık: (0, 400].
Name
relief_height_mm
Type
number
varsayılan 2.2
Description
Tabanın üzerindeki maksimum kabartma yüksekliği, milimetre cinsinden. Aralık: [0, 20].
Name
relief_offset_mm
Type
number
varsayılan 0
Description
Ekstrüzyondan önce kabartmaya uygulanan dikey ofset, milimetre cinsinden. Aralık: [0, 20].
Madalyonun arkasının kapalı bir yüzey olarak sızdırmaz şekilde kapatılıp kapatılmayacağı. Açık bir kabuk için false olarak ayarlayın.
Name
relief_curve
Type
string
varsayılan linear
Description
Derinlik haritası değerlerini kabartma yüksekliğine eşleyen transfer eğrisi. Kullanılabilir değerler:
linear (varsayılan)
gamma
s-curve
Name
curve_param
Type
number
varsayılan 1.0
Description
Transfer eğrisi için şekil parametresi (yalnızca relief_curve değeri gamma olduğunda anlamlıdır). Aralık: (0, 10].
Name
invert_depth
Type
boolean
varsayılan false
Description
Daha koyu bölgelerin daha yüksek kabartma haline gelmesi için derinlik haritası yorumunu tersine çevirir.
Name
smoothing
Type
number
varsayılan 0.24
Description
Kabartma çıkarımından önce derinlik haritasına uygulanan yumuşatma gücü. Aralık: [0, 10].
Name
relief_scale
Type
number
varsayılan 1.0
Description
relief_height_mm üzerine uygulanan dikey ölçek çarpanı. Aralık: (0, 10].
Name
depth_threshold
Type
number
varsayılan 0.1
Description
Derinlik haritası değerleri için alçak geçirgen eşik; bunun altındaki her şey sıfıra sabitlenir. Aralık: [0, 1].
Name
remove_background
Type
boolean
varsayılan true
Description
Kabartma işleminden önce prototipin konsept görüntüsünün arka planını otomatik olarak kaldırır.
Prototip parametresindeki aynı isimli ayardan (varsayılan false) farklıdır; o parametre prototip görüntüsünün kendisinin saydamlıkla döndürülüp döndürülmeyeceğini kontrol eder.
Name
export_resolution
Type
integer
varsayılan 512
Description
Dışa aktarım için kullanılan ağ çözünürlüğü. Aralık: [64, 2048].
output
İsteğe bağlı iletim biçimi seçici. Varsayılan değeri glb şeklindedir.
Name
format
Type
string
varsayılan glb
Description
Yapım işlemi tarafından döndürülen dosya paketi. Kullanılabilir değerler:
glb (varsayılan) — model_urls.glb altında tek bir model.glb döndürür.
obj — model.obj + model.mtl + texture.png dosyalarını sıkıştırır ve paketi model_urls.obj altında döndürür.
zip — üreteç tarafından üretilen her dosyayı sıkıştırır ve paketi model_urls.bundle_zip altında döndürür.
Dönüş Değerleri
Yanıtın result özelliği, yeni oluşturulan anahtarlık yapım görevinin id değerini içerir. Görev SUCCEEDED durumuna ulaşana kadar Bir Görevi Al uç noktasını yoklayın veya akışa abone olun, ardından dosyayı model_urls içindeki tek girişten indirin.
Hata Durumları
Name
400 - Bad Request
Description
İstek kabul edilemez nitelikteydi. 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ıya ulaşmamış: Referans verilen prototip görevi henüz SUCCEEDED durumuna ulaşmamış.
Aday yok: Prototip görevi başarıya ulaştı ancak hiçbir aday görüntü ü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, farklı bir kullanıcıya ait veya webapp üzerinden oluşturulmuş (yalnızca API mode prototip görevleri yapım aşamasına zincirlenebilir).
Geçerli bir görev id değeri verildiğinde bir prototip veya derleme (build) görevini getirir. URL yolu, görevin aşamasıyla eşleşmelidir — /prototype/:id üzerinden getirilen bir derleme görevi 404 döner, ve tam tersi de geçerlidir.
Bir anahtarlık 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 (worker
zaten kaynak tüketiyor olabilir). Zaten bir sonlanmış duruma ulaşmış görevler
(SUCCEEDED, FAILED, CANCELED) iptal edilemez.
Server-Sent Events (SSE) aracılığıyla bir anahtarlık görevi için gerçek zamanlı güncellemeleri yayınlar.
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ü yayar ve akışı kapatır.
Parametreler
Name
id
Type
path
Description
Yayınlanacak anahtarlık görevi için benzersiz tanımlayıcı.
Dönen Değerler
Server-Sent Events olarak Anahtarlık Prototipi
veya Anahtarlık Yapısı görev nesnelerinden
oluşan bir akış döndürür. Her çerçeve, ilgili aşama için Get uç noktasının döndürdüğü
şeklin aynısını taşır — yani görev PENDING veya IN_PROGRESS durumundayken
çıkış alanları henüz doldurulmamıştır (null, [] veya {}) ve
finished_at değeri null'dır.
// 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-keychain-build","status": "SUCCEEDED","progress": 100,"created_at": 1729123500000,"started_at": 1729123510000,"finished_at": 1729123535000,"expires_at": 1729382735000,"task_error": null,"consumed_credits": 20,"model_urls": {"glb":"https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.glb?Expires=***" }}
Tek bir aşamaya ait anahtarlık görevlerinizin sayfalanmış bir listesini alın. URL
yolu aşamayı seçer — /prototype prototip görevlerini döndürür; /build
üretim 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ğrısı hiçbir zaman
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 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ıralar.
-created_at: Oluşturulma zamanına göre azalan sırada sıralar.
Keychain Prototype Task nesnesi, bir kaynak fotoğraftan renklendirilmiş bir konsept görsel oluşturmak için Meshy'nin 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-keychain-prototype'tır.
Name
name
Type
string
Description
Görev oluşturulurken sağlanan görev adı. Ad sağlanmadıysa boş dize olur.
Name
name_text
Type
string
Description
Bu anahtarlığa uygulanan gravür, kırpma ve görünmez biçimlendirme karakterlerinin kaldırılmasından sonraki hâliyle. Görev name_text olmadan oluşturulduysa bu alan bulunmaz. Metnin HTTP istemcinizin kodlamasından etkilenmeden korunduğunu doğrulamak için gönderdiğinizle karşılaştırın.
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ı
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ü GMT saatiyle 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 dolacağı 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 (başarısızlık durumunda krediler 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; bu alan, gelecekteki revizyonların kırılma yaratmadan birden fazla aday sunabilmesi için bir dizi olarak tanımlanmıştır.
Anahtarlık Build Görevi nesnesi, Meshy'nin başarılı olmuş bir prototip görevinden nihai 3D anahtarlık ağını oluşturmak için takip ettiği bir iş birimidir. Build işlemi, prototipin konsept görüntüsü üzerinde bir derinlik haritası kabartma işlem hattı çalıştırır ve çağıranın istediği formatta tek bir ağ çıktısı yayımlar.
Ö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-keychain-build şeklindedir.
Name
name
Type
string
Description
Görev oluşturulurken verilen görev adı. İsim verilmemişse boş dize olur.
Görevin progress değeri. 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 damgası, milisaniye cinsinden.
Name
started_at
Type
timestamp
Description
Görevin başladığı 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 dolacağı 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ı. Eksiksiz task_error nesnesi 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
Üretilen çıktı için, çıktı adına göre anahtarlanmış indirilebilir URL'ler. Her zaman tam olarak bir giriş içerir — build isteğinin output.format alanı aracılığıyla istenen format. Anahtar, istenen formatla eşleşir:
Name
glb
Type
string
Description
GLB dosyasına indirilebilir URL. output.format değeri glb (varsayılan) olduğunda mevcuttur.
Name
obj
Type
string
Description
model.obj, model.mtl ve texture.png dosyalarını içeren bir zip paketine indirilebilir URL. output.format değeri obj olduğunda mevcuttur.
Name
bundle_zip
Type
string
Description
Üretecin ürettiği her çıktının bir zip paketine indirilebilir URL. output.format değeri zip olduğunda mevcuttur.