Zamień zdjęcie źródłowe w abażur nadający się do wydruku 3D w dwóch etapach:
prototyp generuje stylizowany, matowo-biały obraz koncepcyjny i przekształca go w
pusty model 3D (GLB), a następnie budowa uruchamia procesor lampy na tym modelu,
aby wygenerować drukowalne części STL — abażur z otwartym dnem wraz z podstawą
dla mocowania źródła światła, a także samo mocowanie oprawy. Oba etapy są
połączone za pomocą input_task_id.
Wygeneruj pojedynczy matowo-biały obraz koncepcyjny na podstawie zdjęcia referencyjnego i
przekonwertuj go na wydrążony model 3D klosza lampy. Odpowiedź zawiera zarówno
obraz koncepcyjny (image_urls), jak i model 3D (model_urls.glb z
thumbnail_url). Zwrócony identyfikator zadania jest tym, co przekazujesz jako input_task_id
do punktu końcowego budowania. Zapoznaj się z
obiektem zadania prototypu lampy
aby poznać kształt odpowiedzi.
Parametry
Name
image_url
Type
string
Wymagane
Description
Zdjęcie źródłowe, którego Meshy używa jako wizualnego odniesienia dla klosza lampy. Obecnie obsługujemy formaty .jpg, .jpeg, .png i .webp.
Istnieją dwa sposoby dostarczenia obrazu:
Publicznie dostępny URL: URL, który jest dostępny z publicznego internetu.
Data URI: Zakodowany w base64 identyfikator URI danych obrazu. Przykład Data URI: data:image/jpeg;base64,<your base64-encoded image data>.
Name
image_subject
Type
string
domyślne character
Description
Wskazówka kategorii podmiotu, która wybiera prompt stylizacji. Dostępne wartości:
character (domyślnie) — pojedyncza postać / podmiot będący obiektem (figurka, zwierzę, maskotka itp.).
landscape — scena plenerowa / panorama (góra, panorama miasta, las itp.).
Name
name
Type
string
Description
Opcjonalna nazwa zadania do celów wyświetlania. Maksymalnie 100 znaków.
Name
remove_background
Type
boolean
domyślne false
Description
Gdy ustawione na true, obraz prototypu jest zwracany jako przezroczysty plik PNG RGBA z usuniętym tłem, dzięki czemu możesz skomponować podmiot z dowolnym tłem.
Zwracane wartości
Właściwość result odpowiedzi zawiera id zadania nowo utworzonego zadania prototypu lampy. Odpytuj punkt końcowy Pobierz zadanie lub subskrybuj strumień aż zadanie osiągnie status SUCCEEDED, a następnie przekaż ten identyfikator do punktu końcowego budowania jako input_task_id.
Tryby awarii
Name
400 - Bad Request
Description
Żądanie było nieakceptowalne. Typowe przyczyny:
Brakujący parametr: image_url jest wymagane.
Nieprawidłowy format obrazu: Podany image_url nie jest w obsługiwanym formacie (.jpg, .jpeg, .png, .webp).
Wymiary obrazu poza zakresem: Obraz jest zbyt mały, przekracza maksymalny rozmiar pliku lub przekracza maksymalną liczbę pikseli.
Nieosiągalny URL: Nie udało się pobrać image_url (404 lub timeout).
Nieprawidłowy Data URI: Ciąg base64 jest nieprawidłowo sformatowany.
Oznaczona treść: Obraz wejściowy został oznaczony przez moderation NSFW lub własności intelektualnej.
Nieprawidłowe image_subject: Nie jest jedną z wartości character / landscape.
Name
401 - Unauthorized
Description
Uwierzytelnianie nie powiodło się. Sprawdź swój klucz API.
Name
402 - Payment Required
Description
Niewystarczająca liczba kredytów do wykonania tego zadania.
Name
429 - Too Many Requests
Description
Przekroczono limit szybkości.
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"}
Prototype example
Zacznij od zdjęcia źródłowego; prototyp zwraca obraz koncepcyjny oraz wydrążony model 3D, który przetwarzany jest w etapie budowania.
Generuje finalne, gotowe do druku 3D części na podstawie pomyślnie ukończonego zadania prototypu.
Budowa uruchamia procesor lampy na modelu 3D prototypu: skaluje
model do wartości diameter_mm, spłaszcza dolną część o cut_amount_percent,
drąży ją do grubości thickness_mm, otwiera dolną część i — gdy wybrano
ustawienie wstępne mocowania — dodaje płytę podstawy z otworem mocującym oraz osobny
uchwyt na źródło światła. Zapoznaj się z sekcją
Obiekt zadania budowy lampy, aby poznać
kształt odpowiedzi.
Parametry
Name
input_task_id
Type
string
Wymagane
Description
Identyfikator zadania prototypu utworzonego za pomocą tego samego punktu końcowego OpenAPI. Prototyp musi zostać utworzony przy użyciu tego samego klucza API, musi osiągnąć status SUCCEEDED i musi wygenerować model 3D.
Zadania prototypów utworzone przez aplikację webową nie są akceptowane — punkt końcowy budowy akceptuje wyłącznie zadania prototypów wygenerowane przez POST /openapi/creative-lab/lamp/v1/prototype i odrzuca każde inne źródło z kodem 404.
Name
name
Type
string
Description
Opcjonalna nazwa zadania do celów wyświetlania. Maksymalnie 100 znaków.
options
Opcjonalne parametry dostrajania geometrii klosza lampy. Każde pole ma sensowną wartość domyślną — wysyłaj tylko te, które chcesz nadpisać.
Name
diameter_mm
Type
number
domyślne 150
Description
Docelowy maksymalny wymiar prostopadłościanu ograniczającego klosza lampy, w milimetrach. Siatka jest skalowana jednorodnie, aby się zmieściła. Zakres: [50, 400].
Name
thickness_mm
Type
number
domyślne 1
Description
Grubość ścianki wydrążonego klosza lampy, w milimetrach. Zakres: (0, 10].
Name
cut_amount_percent
Type
number
domyślne 1
Description
Procent wysokości modelu odcinany płasko od dołu, dzięki czemu klosz lampy stoi na stole drukarki i ma otwór na mocowanie. Zakres: [1, 100].
Name
light_source_preset
Type
string
domyślne bambu_mh001_60mm
Description
Ustawienie wstępne mocowania źródła światła, które określa sposób budowy dolnej części. Dostępne wartości:
bambu_mh001_60mm (domyślnie) — klosz lampy z otwartym dołem wraz z płytą podstawy zawierającą 60 mm otwór mocujący, oba dostępne w model_urls.lamp_stl, oraz uchwyt mocowania jako model_urls.base_stl.
none — pojedynczy, zamknięty klosz lampy w model_urls.lamp_stl; pole model_urls.base_stl jest pomijane.
Name
fixture_offset_x_mm
Type
number
domyślne 0
Description
Przesunięcie w osi X otworu mocującego na płycie podstawy, względem środka klosza lampy, w milimetrach. Ma znaczenie tylko wtedy, gdy light_source_preset ≠ none. Zakres: [-80, 80].
Name
fixture_offset_z_mm
Type
number
domyślne 0
Description
Przesunięcie w osi Z (głębokość) otworu mocującego na płycie podstawy, względem środka klosza lampy, w milimetrach. Ma znaczenie tylko wtedy, gdy light_source_preset ≠ none. Zakres: [-80, 80].
Name
rotate_x_deg
Type
number
domyślne 0
Description
Obrót wokół osi X zastosowany do modelu przed przetwarzaniem, w stopniach. Trzy obroty są stosowane jako kąty Eulera XYZ wokół środka modelu. Zakres: [-360, 360].
Name
rotate_y_deg
Type
number
domyślne 0
Description
Obrót wokół osi Y zastosowany do zaimportowanej siatki przed przetwarzaniem, w stopniach. Zakres: [-360, 360].
Name
rotate_z_deg
Type
number
domyślne 0
Description
Obrót wokół osi Z zastosowany do zaimportowanej siatki przed przetwarzaniem, w stopniach. Zakres: [-360, 360].
Name
include_result_json
Type
boolean
domyślne false
Description
Gdy ustawione na true, a output.format ma wartość zip, dołącza plik result.json procesora lampy (nazwa potoku, ostrzeżenia i ścieżki artefaktów) do pakietu. Ignorowane, gdy output.format ma wartość stl.
Pakiet artefaktów zwracany przez budowę. Dostępne wartości:
stl (domyślnie) — zwraca model_urls.lamp_stl (klosz lampy, wraz z płytą podstawy, gdy ustawiono ustawienie wstępne mocowania), a także model_urls.base_stl, gdy light_source_preset ≠ none.
zip — pakuje każdy artefakt generowany przez procesor (lamp.stl, opcjonalnie base.stl, opcjonalnie result.json) w jeden plik zip i zwraca go pod model_urls.bundle_zip.
Zwracane wartości
Właściwość result odpowiedzi zawiera id zadania nowo utworzonego zadania budowy lampy. Odpytuj punkt końcowy Pobierz zadanie lub subskrybuj strumień do momentu, gdy zadanie osiągnie status SUCCEEDED, a następnie pobierz artefakty z model_urls.
Tryby niepowodzenia
Name
400 - Bad Request
Description
Żądanie było nieprawidłowe. Typowe przyczyny:
Brakujący parametr: input_task_id jest wymagany.
Nieprawidłowy UUID: input_task_id nie jest prawidłowym UUID.
Zadanie nadrzędne nie zakończone powodzeniem: Wskazane zadanie prototypu nie osiągnęło jeszcze statusu SUCCEEDED.
Brak modelu: Zadanie prototypu zakończyło się powodzeniem, ale nie wygenerowało modelu 3D.
Opcje poza zakresem: Jedno z pól options znalazło się poza dozwolonym zakresem lub zbiorem wartości enum.
Name
401 - Unauthorized
Description
Uwierzytelnianie nie powiodło się. Sprawdź swój klucz API.
Name
402 - Payment Required
Description
Niewystarczająca liczba kredytów do wykonania tego zadania.
Name
404 - Not Found
Description
Wskazane zadanie prototypu nie istnieje, należy do innego użytkownika lub zostało utworzone przez aplikację webową (tylko zadania prototypów w trybie API mogą być łączone w łańcuch z budową).
Pobiera zadanie prototypu lub budowy na podstawie prawidłowego identyfikatora id zadania. Ścieżka URL
musi odpowiadać etapowi zadania — zadanie budowy pobrane przez
/prototype/:id zwraca 404, i analogicznie w drugą stronę.
Anuluj zadanie lampy. Jeśli zadanie nadal ma status PENDING, kredyty
zużyte podczas tworzenia zostają zwrócone. Zadania, które są już
IN_PROGRESS, są anulowane bez zwrotu środków (proces roboczy może już
zużywać zasoby). Zadań, które osiągnęły już stan końcowy (SUCCEEDED,
FAILED, CANCELED), nie można anulować.
Ścieżka URL musi odpowiadać etapowi zadania — wywołanie DELETE na
/prototype/:buildId zwraca 404.
Parametry ścieżki
Name
id
Type
path
Description
Unikalny identyfikator zadania lampy do anulowania.
Zwraca
Zwraca 204 No Content w przypadku powodzenia z pustą treścią.
Tryby błędów
Name
400 - Bad Request
Description
Zadanie znajduje się już w stanie końcowym i nie może zostać anulowane.
Name
404 - Not Found
Description
Zadanie nie istnieje, należy do innego użytkownika lub jego etap nie odpowiada ścieżce URL.
Strumieniuj aktualizacje w czasie rzeczywistym dla zadania lampy za pomocą Server-Sent Events (SSE).
Ścieżka URL musi odpowiadać etapowi zadania — otwarcie strumienia na
/prototype/:buildId/stream emituje pojedynczy ładunek event: error ze
status_code: 404 i zamyka strumień.
Parametry
Name
id
Type
path
Description
Unikalny identyfikator zadania lampy do strumieniowania.
Zwraca
Zwraca strumień obiektów zadań Lamp Prototype
lub Lamp Build jako
Server-Sent Events. Każda ramka zawiera pełny obiekt zadania dla danego etapu — w takim samym formacie, jaki zwraca
punkt końcowy Get — więc gdy zadanie ma status PENDING lub IN_PROGRESS, pola
wyjściowe po prostu nie są jeszcze wypełnione (null, [] lub {}), a
finished_at ma wartość null.
// 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=***" }}
Pobierz stronicowaną listę zadań lampy dla pojedynczego etapu. Ścieżka URL
określa etap — /prototype zwraca zadania prototypu; /build
zwraca zadania budowania. Zadania z drugiego etapu nie są uwzględniane w żadnej
z odpowiedzi.
Parametry ścieżki
Name
stage
Type
path
Wymagane
Description
Wartość prototype lub build. Kolekcja zwraca wyłącznie zadania,
których etap odpowiada adresowi URL — pobranie /prototype nigdy nie zwraca
zadań budowania i odwrotnie.
Parametry zapytania
Name
page_num
Type
integer
domyślne 1
Description
Numer strony do stronicowania.
Name
page_size
Type
integer
domyślne 10
Description
Limit rozmiaru strony. Maksymalna dozwolona wartość to 100 elementów.
Name
sort_by
Type
string
domyślne -created_at
Description
Pole do sortowania. Dostępne wartości:
+created_at: Sortowanie według czasu utworzenia rosnąco.
-created_at: Sortowanie według czasu utworzenia malejąco.
Obiekt Lamp Prototype Task to jednostka pracy, którą Meshy śledzi, aby
wygenerować stylizowany, matowo-biały obraz koncepcyjny ze zdjęcia źródłowego i
przekonwertować go na wydrążony model 3D. Wynik tego etapu jest łączony z
etapem budowy za pomocą input_task_id.
Właściwości
Name
id
Type
string
Description
Unikalny identyfikator zadania. Chociaż jako szczegół implementacyjny używamy identyfikatora UUID możliwego do sortowania k-sortable dla identyfikatorów zadań, nie należy przyjmować żadnych założeń co do formatu tego identyfikatora.
Name
type
Type
string
Description
Typ zadania. Wartość to creative-lab-lamp-prototype.
Name
name
Type
string
Description
Nazwa zadania podana podczas jego tworzenia. Pusty ciąg znaków, jeśli nie podano nazwy.
Name
status
Type
string
Description
Status zadania. Możliwe wartości to jedna z: PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Postęp zadania (progress). Jeśli zadanie nie zostało jeszcze rozpoczęte, ta właściwość będzie miała wartość 0. Gdy zadanie zakończy się powodzeniem, wartość ta zmieni się na 100.
Name
created_at
Type
timestamp
Description
Znacznik czasu utworzenia zadania, w milisekundach.
Znacznik czasu reprezentuje liczbę milisekund, jakie upłynęły od 1 stycznia 1970 UTC, zgodnie ze
standardem RFC 3339.
Na przykład piątek, 1 września 2023, godzina 12:00:00 czasu GMT jest reprezentowana jako 1693569600000. Dotyczy to
wszystkich znaczników czasu w Meshy API.
Name
started_at
Type
timestamp
Description
Znacznik czasu rozpoczęcia zadania, w milisekundach. Jeśli zadanie nie zostało jeszcze rozpoczęte, ta właściwość będzie miała wartość 0.
Name
finished_at
Type
timestamp
Description
Znacznik czasu zakończenia zadania, w milisekundach. Jeśli zadanie nie zostało jeszcze zakończone, ta właściwość będzie miała wartość 0.
Name
expires_at
Type
timestamp
Description
Znacznik czasu wygaśnięcia wyniku zadania, w milisekundach.
Name
preceding_tasks
Type
integer
Description
Liczba poprzedzających zadań.
Wartość tego pola ma znaczenie tylko wtedy, gdy status zadania to PENDING.
Name
task_error
Type
object
Description
Szczegóły błędu dla nieudanych zadań. Pełny opis obiektu task_error znajdziesz w sekcji Błędy.
Name
consumed_credits
Type
integer
Description
Liczba kredytów zużytych przez to zadanie. Obecna, gdy status zadania to PENDING, IN_PROGRESS lub SUCCEEDED. Zwraca 0 dla zadań FAILED (w przypadku niepowodzenia kredyty są zwracane).
Name
model_urls
Type
object
Description
Adresy URL umożliwiające pobranie modelu 3D wygenerowanego z obrazu koncepcyjnego. Obecne, gdy zadanie zakończy się powodzeniem; przed tym {}.
Name
glb
Type
string
Description
Adres URL do pobrania wydrążonego, matowo-białego modelu abażuru lampy w formacie GLB. To ten model jest przetwarzany na etapie budowy.
Name
thumbnail_url
Type
string
Description
Adres URL umożliwiający pobranie renderowanego podglądu modelu 3D. Pusty ciąg znaków, dopóki zadanie nie zakończy się powodzeniem.
Name
image_urls
Type
array of strings
Description
Adresy URL umożliwiające pobranie kandydatów na obraz koncepcyjny wygenerowanych przez to zadanie prototypowe. Obecnie API zawsze zwraca dokładnie jednego kandydata; pole to jest tablicą, aby przyszłe wersje mogły udostępniać wielu kandydatów bez wprowadzania zmian niekompatybilnych wstecz.
Obiekt zadania budowy lampy (Lamp Build Task) to jednostka pracy, którą Meshy śledzi
w celu wygenerowania finalnego, gotowego do druku 3D klosza lampy na podstawie
zakończonego powodzeniem zadania prototypu. Budowa uruchamia procesor lampy
na modelu 3D prototypu, aby go wydrążyć, spłaszczyć i otworzyć spód, oraz
(przy zastosowaniu ustawień wstępnych oprawy) dodać płytę podstawy
i mocowanie oprawy.
Właściwości
Name
id
Type
string
Description
Unikalny identyfikator zadania.
Name
type
Type
string
Description
Typ zadania. Wartość to creative-lab-lamp-build.
Name
name
Type
string
Description
Nazwa zadania podana podczas jego tworzenia. Pusty ciąg znaków, jeśli nie podano nazwy.
Name
status
Type
string
Description
Status zadania. Możliwe wartości to jedna z: PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Postęp zadania. Jeśli zadanie jeszcze się nie rozpoczęło, ta właściwość będzie miała wartość 0. Gdy zadanie zakończy się powodzeniem, przyjmie wartość 100.
Name
created_at
Type
timestamp
Description
Znacznik czasu utworzenia zadania, w milisekundach.
Name
started_at
Type
timestamp
Description
Znacznik czasu rozpoczęcia zadania, w milisekundach.
Name
finished_at
Type
timestamp
Description
Znacznik czasu zakończenia zadania, w milisekundach.
Name
expires_at
Type
timestamp
Description
Znacznik czasu, kiedy wynik zadania wygasa, w milisekundach.
Name
preceding_tasks
Type
integer
Description
Liczba poprzedzających zadań. Ma znaczenie tylko wtedy, gdy status to PENDING.
Name
task_error
Type
object
Description
Szczegóły błędu dla nieudanych zadań. Zobacz Błędy, aby uzyskać pełny opis obiektu task_error.
Name
consumed_credits
Type
integer
Description
Liczba kredytów zużytych przez to zadanie. Zwraca 0 dla zadań FAILED (kredyty są zwracane w przypadku niepowodzenia).
Name
model_urls
Type
object
Description
Adresy URL do pobrania wygenerowanych plików wynikowych, indeksowane nazwą pliku. Zestaw kluczy zależy od output.format i options.light_source_preset:
Name
lamp_stl
Type
string
Description
Adres URL do pobrania pliku lamp.stl: klosz lampy z otwartym spodem wraz z płytą podstawy zawierającą otwór na oprawę, lub pojedynczy, szczelnie zamknięty klosz lampy, gdy options.light_source_preset miało wartość none. Obecne, gdy output.format miało wartość stl (wartość domyślna).
Name
base_stl
Type
string
Description
Adres URL do pobrania pliku base.stl, mocowania oprawy źródła światła. Obecne, gdy output.format miało wartość stlorazoptions.light_source_preset nie miało wartości none. Pomijane, gdy ustawienie wstępne oprawy miało wartość none.
Name
bundle_zip
Type
string
Description
Adres URL do pobrania paczki zip zawierającej wszystkie pliki wynikowe generowane przez procesor (lamp.stl, opcjonalnie base.stl, oraz — gdy options.include_result_json ma wartość true — result.json). Obecne, gdy output.format miało wartość zip. Gdy obecne jest bundle_zip, lamp_stl / base_stl są pomijane.