Zamień zdjęcie źródłowe w gotowy do druku, składany fidget: sylwetka obiektu
staje się zestawem zagnieżdżonych, koncentrycznych pierścieni, które składają
się płasko i ponownie się rozciągają, wydrukowany jako jeden element bez
konieczności montażu.
POST /openapi/creative-lab/fidget-collapsible/v1
W przeciwieństwie do innych endpointów Creative Lab, ten nie ma pary etapów
prototyp/budowa — nie ma pośrednich kandydatów do wyboru, więc pojedyncze
zadanie prowadzi obraz aż do gotowego modelu 3D. Elementy sterujące geometrią,
które udostępnia aplikacja webowa (rozmiar, liczba warstw, szerokość szczeliny,
grubość ścianki, głębokość wytłoczenia, wybrzuszenie), również nie są
częścią żądania: każde zadanie jest budowane z tymi samymi domyślnymi
ustawieniami po stronie serwera.
Wygeneruj model składanego fidgeta na podstawie zdjęcia źródłowego. Zapoznaj się z
Obiektem zadania składanego fidgeta
aby poznać kształt odpowiedzi.
Każde zadanie kosztuje 6 kredytów i wymaga płatnego planu.
Parametry
Name
image_url
Type
string
Wymagane
Description
Zdjęcie źródłowe, które Meshy ma przekształcić w składanego fidgeta. Obecnie obsługujemy formaty .jpg, .jpeg, .png i .webp.
Istnieją dwa sposoby dostarczenia obrazu:
Publicznie dostępny URL: Adres URL dostępny z publicznego internetu.
Data URI: Zakodowany w base64 identyfikator URI danych obrazu. Przykład Data URI: data:image/jpeg;base64,<twoje zakodowane w base64 dane obrazu>.
Najlepiej sprawdza się obiekt z jednym wyraźnym, zamkniętym konturem — to sylwetka staje się pierścieniami. Zatłoczone tła, kilka osobnych obiektów lub bardzo cienkie kształty mogą pozostawić zbyt mało miejsca na zagnieżdżone ściany, przez co zadanie zakończy się błędem.
Name
name
Type
string
Description
Opcjonalna nazwa zadania do celów wyświetlania. Maksymalnie 100 znaków. To wyłącznie etykieta zadania; nic nie jest grawerowane na modelu.
Zwraca
Właściwość result w odpowiedzi zawiera id zadania nowo utworzonego zadania składanego fidgeta. Odpytuj punkt końcowy Pobierz zadanie lub subskrybuj strumień, aż zadanie osiągnie status SUCCEEDED, a następnie pobierz plik STL nadający się do druku z model_urls.stl (a jeśli jest dostępny, plik GLB z model_urls.glb, aby najpierw go podejrzeć).
Tryby awarii
Name
400 - Bad Request
Description
Żądanie było niepoprawne. Częste przyczyny:
Brakujący parametr: image_url jest wymagany.
Nieprawidłowy format obrazu: Podany image_url nie ma obsługiwanego formatu (.jpg, .jpeg, .png, .webp).
Wymiary obrazu poza zakresem: Obraz jest zbyt mały, przekracza maksymalny rozmiar pliku lub przekracza maksymalną liczbę pikseli.
Niedostępny 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.
Name
401 - Unauthorized
Description
Uwierzytelnianie nie powiodło się. Sprawdź swój klucz API.
Name
402 - Payment Required
Description
Albo twoje konto działa w ramach darmowego planu — utworzenie zadania w tym punkcie końcowym wymaga płatnego planu — albo masz niewystarczającą liczbę kredytów.
Name
403 - Forbidden
Description
Obraz wejściowy został oznaczony jako naruszenie własności intelektualnej.
Name
429 - Too Many Requests
Description
Przekroczono limit szybkości.
Request
POST
/openapi/creative-lab/fidget-collapsible/v1
curlhttps://api.meshy.ai/openapi/creative-lab/fidget-collapsible/v1 \-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>" }'
Pobierz zadanie składanego fidgeta na podstawie prawidłowego id zadania. Tylko zadania
utworzone za pomocą tego punktu końcowego są tutaj dostępne — zadanie utworzone za pomocą innego
punktu końcowego Creative Lab lub utworzone w aplikacji webowej zwraca 404.
Anuluje zadanie składanego fidgeta. Jeśli zadanie nadal ma status PENDING,
kredyty zużyte w momencie tworzenia są zwracane. Zadania, które już są
w stanie IN_PROGRESS, są anulowane bez zwrotu kredytów (worker mógł już zacząć
zużywać zasoby). Zadań, które osiągnęły już stan końcowy
(SUCCEEDED, FAILED, CANCELED), nie można anulować.
Parametry ścieżki
Name
id
Type
path
Description
Unikalny identyfikator zadania składanego fidgeta do anulowania.
Zwraca
Zwraca 204 No Content w przypadku powodzenia, z pustym ciałem odpowiedzi.
Tryby niepowodzenia
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 nie zostało utworzone za pomocą tego punktu końcowego.
Przesyłaj strumieniowo aktualizacje w czasie rzeczywistym dla zadania collapsible fidget za pomocą Server-Sent
Events (SSE). Zadanie, które nie istnieje lub nie zostało utworzone za pośrednictwem tego
punktu końcowego, emituje pojedynczy ładunek event: error z status_code: 404
i zamyka strumień.
Parametry
Name
id
Type
path
Description
Unikalny identyfikator zadania collapsible fidget do przesyłania strumieniowego.
Zwraca
Zwraca strumień obiektów zadania Collapsible Fidget
w postaci zdarzeń Server-Sent Events. Każda klatka zawiera pełny obiekt zadania dla danego etapu — dokładnie w takiej samej postaci, jaką zwraca
punkt końcowy Get — więc dopóki 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 (task not found, or not created through this endpoint)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": "018a210d-8ba4-705c-b111-1f1776f7f578","progress": 0,"status": "PENDING"}event: messagedata: {"id": "018a210d-8ba4-705c-b111-1f1776f7f578","type": "creative-lab-fidget-collapsible","status": "SUCCEEDED","progress": 100,"created_at": 1729123456000,"started_at": 1729123460000,"finished_at": 1729123512000,"expires_at": 1729382712000,"task_error": null,"consumed_credits": 6,"model_urls": {"glb":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***","stl":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***" }}
Obiekt zadania składanego fidgeta to jednostka pracy, którą Meshy śledzi w celu
przekształcenia zdjęcia źródłowego w model składanego fidgeta drukowanego w całości.
Jest to zadanie jednoetapowe: nie istnieje prototyp, od którego można by się odgałęzić,
a pośrednia sylwetka nie jest częścią odpowiedzi.
Właściwości
Name
id
Type
string
Description
Unikalny identyfikator zadania. Chociaż jako szczegół implementacyjny używamy identyfikatorów zadań w formacie k-sortable UUID, nie należy zakładać żadnego konkretnego formatu id.
Name
type
Type
string
Description
Typ zadania. Wartość to creative-lab-fidget-collapsible.
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, wartość tej właściwości wynosi 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, które upłynęły od 1 stycznia 1970 UTC, zgodnie ze
standardem RFC 3339.
Na przykład piątek, 1 września 2023, 12:00:00 GMT jest reprezentowany 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 jeszcze się nie rozpoczęło, wartość tej właściwości wynosi null.
Name
finished_at
Type
timestamp
Description
Znacznik czasu zakończenia zadania, w milisekundach. Jeśli zadanie jeszcze się nie zakończyło, wartość tej właściwości wynosi null.
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 znajduje się 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 (kredyty są zwracane w przypadku niepowodzenia).
Name
model_urls
Type
object
Description
Adresy URL do pobrania wygenerowanego modelu 3D. Wypełniane po zakończeniu zadania statusem SUCCEEDED: stl jest zawsze obecne, glb tylko wtedy, gdy renderowanie podglądu się powiodło.
Name
stl
Type
string
Description
Adres URL do pobrania pliku STL. Jest to gotowy do druku plik wynikowy — wystarczy przesłać go bezpośrednio do slicera.
Name
glb
Type
string
Description
Adres URL do pobrania pliku GLB, umożliwiający podgląd modelu w przeglądarce 3D. Jego kolory służą wyłącznie do podglądu: STL nie zawiera informacji o kolorze, a wydrukowany fidget przyjmuje kolor filamentu. Plik GLB jest generowany na zasadzie best-effort: gdy renderowanie podglądu jest niedostępne, klucz jest całkowicie pomijany w model_urls, dlatego należy odczytywać go w sposób odporny na braki — stl jest właściwym plikiem wynikowym i jest zawsze obecny w zadaniu ze statusem SUCCEEDED.