Przekształć zdjęcie źródłowe w kolekcjonerską figurkę 3D w stylu chibi w dwóch etapach:
prototype generuje stylizowany obraz koncepcyjny na podstawie zdjęcia wejściowego, a następnie
build przekształca ten obraz koncepcyjny w model 3D z mapami materiałów. Te dwa etapy
są połączone za pomocą input_task_id.
Wygeneruj pojedynczy obraz koncepcyjny w stylu chibi na podstawie zdjęcia źródłowego. Zwrócony identyfikator zadania to ten, który przekazujesz jako input_task_id do punktu końcowego build. Zapoznaj się z
Obiektem zadania prototypu figurki
aby poznać kształt odpowiedzi.
Parametry
Name
image_url
Type
string
Wymagane
Description
Zdjęcie źródłowe, które Meshy ma wystylizować jako figurkę chibi. Obecnie obsługujemy formaty .jpg, .jpeg, .png i .webp.
Obraz można podać na dwa sposoby:
Publicznie dostępny URL: URL dostępny z publicznego internetu.
Data URI: Zakodowany w base64 Data URI obrazu. Przykład Data URI: data:image/jpeg;base64,<your base64-encoded image data>.
Name
name
Type
string
Description
Opcjonalna nazwa zadania do celów wyświetlania. Maksymalnie 100 znaków.
Zwracane wartości
Właściwość result w odpowiedzi zawiera id zadania nowo utworzonego zadania prototypu figurki. Odpytuj punkt końcowy Pobierz zadanie lub subskrybuj strumień, aż zadanie osiągnie SUCCEEDED, a następnie przekaż ten identyfikator do punktu końcowego build jako input_task_id.
Tryby niepowodzenia
Name
400 - Bad Request
Description
Żądanie było nieakceptowalne. Typowe przyczyny:
Brakujący parametr: image_url jest wymagany.
Nieprawidłowy format obrazu: Podany image_url nie jest obsługiwanym formatem (.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 można było pobrać image_url (404 lub timeout).
Nieprawidłowy Data URI: Ciąg base64 jest niepoprawnie sformatowany.
Oznaczone treści: Obraz wejściowy został oznaczony przez moderation NSFW lub własności intelektualnej.
Name
401 - Unauthorized
Description
Uwierzytelnianie nie powiodło się. Sprawdź swój klucz API.
Name
402 - Payment Required
Description
Niewystarczające kredyty do wykonania tego zadania.
Name
429 - Too Many Requests
Description
Przekroczono limit szybkości.
Request
POST
/openapi/creative-lab/figure/v1/prototype
# Stage 1: generate a chibi-style concept imagecurl https://api.meshy.ai/openapi/creative-lab/figure/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>" }'
Response
{"result":"018a210d-8ba4-705c-b111-1f1776f7f578"}
Prototype example
Start with a source portrait, then generate the prototype image used by the build stage.
Wygeneruj finalną teksturowaną figurkę 3D z pomyślnie ukończonego zadania prototypu.
Budowanie uruchamia ten sam potok obrazu-na-3D co
Obraz na 3D, więc format obiektu odpowiedzi i
lista wyjściowych adresów URL są dokładnie takie same. Zobacz
Obiekt zadania budowania figurki, aby poznać
kształt odpowiedzi.
Parametry
Name
input_task_id
Type
string
Wymagane
Description
ID zadania prototypu utworzonego za pośrednictwem tego samego punktu końcowego OpenAPI. Prototyp musi zostać utworzony tym samym kluczem API, musi osiągnąć SUCCEEDED i musi wygenerować dokładnie jeden obraz kandydujący.
Zadania prototypu utworzone przez aplikację webową nie są akceptowane — punkt końcowy budowania akceptuje tylko zadania prototypu wygenerowane przez POST /openapi/creative-lab/figure/v1/prototype i odrzuca każde inne źródło z 404.
Name
name
Type
string
Description
Opcjonalna nazwa zadania do celów wyświetlania. Maksymalnie 100 znaków.
Zwraca
Właściwość result odpowiedzi zawiera id zadania nowo utworzonego zadania budowania figurki. Odpytuj punkt końcowy Pobierz zadanie lub zasubskrybuj strumień, aż zadanie osiągnie SUCCEEDED, a następnie pobierz teksturowany GLB z model_urls.glb (albo parę OBJ + MTL z model_urls.obj i model_urls.mtl, jeśli Twój dalszy potok preferuje OBJ).
Tryby niepowodzenia
Name
400 - Bad Request
Description
Żądanie było nieakceptowalne. 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ńczyło się sukcesem: Wskazane zadanie prototypu nie osiągnęło jeszcze SUCCEEDED.
Brak kandydata: Zadanie prototypu zakończyło się sukcesem, ale nie wygenerowało obrazu kandydującego.
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 albo zostało utworzone przez aplikację webową (tylko zadania prototypu w trybie API przechodzą do budowania).
Name
429 - Too Many Requests
Description
Przekroczono limit szybkości.
Request
POST
/openapi/creative-lab/figure/v1/build
# Stage 2: chain build off a succeeded prototype taskcurl https://api.meshy.ai/openapi/creative-lab/figure/v1/build \ -X POST \ -H "Authorization: Bearer ${YOUR_API_KEY}" \ -H 'Content-Type: application/json' \ -d '{ "input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578" }'
Response
{"result":"019c320e-9a8f-7a1c-9c11-2a1876f8a9bb"}
Build example
The build task turns the selected prototype image into a downloadable textured 3D model.
Pobierz zadanie prototypu lub kompilacji, podając prawidłowe id zadania. Ścieżka URL
musi odpowiadać etapowi zadania — zadanie kompilacji pobrane przez
/prototype/:id zwraca 404 i odwrotnie.
Anuluj zadanie figurki. Jeśli zadanie nadal ma status PENDING, kredyty
zużyte w momencie utworzenia zostaną zwrócone. Zadania, które są już
IN_PROGRESS, są anulowane bez zwrotu (worker 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 — DELETE na
/prototype/:buildId zwraca 404.
Parametry ścieżki
Name
id
Type
path
Description
Unikalny identyfikator zadania figurki do anulowania.
Zwraca
Zwraca 204 No Content w przypadku powodzenia z pustą treścią odpowiedzi.
Tryby niepowodzenia
Name
400 - Bad Request
Description
Zadanie jest już w stanie końcowym i nie można go anulować.
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 figurki za pośrednictwem Server-Sent Events (SSE).
Ścieżka URL musi odpowiadać etapowi zadania — otwarcie strumienia pod adresem
/prototype/:buildId/stream emituje pojedynczy ładunek event: error z
status_code: 404 i zamyka strumień.
Parametry
Name
id
Type
path
Description
Unikalny identyfikator zadania figurki do strumieniowania.
Zwraca
Zwraca strumień obiektów zadań prototypu figurki
lub buildu figurki jako
Server-Sent Events. W przypadku zadań PENDING lub IN_PROGRESS strumień
odpowiedzi będzie zawierać tylko niezbędne pola progress i status.
Pobierz stronicowaną listę swoich zadań figurki dla pojedynczego etapu. Ścieżka
URL wybiera etap — /prototype zwraca zadania prototypu; /build
zwraca zadania budowania. Zadania z drugiego etapu nie są uwzględniane w żadnej
odpowiedzi.
Parametry ścieżki
Name
stage
Type
path
Wymagane
Description
Albo prototype, albo build. Kolekcja zwraca tylko 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 dla stronicowania.
Name
page_size
Type
integer
domyślne 10
Description
Limit rozmiaru strony. Maksymalna dozwolona liczba to 50 elementów.
Name
sort_by
Type
string
domyślne -created_at
Description
Pole, według którego sortować. Dostępne wartości:
+created_at: Sortuj według czasu utworzenia w kolejności rosnącej.
-created_at: Sortuj według czasu utworzenia w kolejności malejącej.
Obiekt zadania prototypu figurki to jednostka pracy, którą Meshy śledzi, aby
wygenerować obraz koncepcyjny w stylu chibi na podstawie zdjęcia źródłowego. Wynik
tego etapu jest przekazywany do etapu budowy
za pośrednictwem input_task_id.
Właściwości
Name
id
Type
string
Description
Unikalny identyfikator zadania. Chociaż jako szczegół implementacyjny dla identyfikatorów zadań używamy UUID sortowalnego według k, nie należy przyjmować żadnych założeń dotyczących formatu identyfikatora.
Name
type
Type
string
Description
Typ zadania. Wartość to creative-lab-figure-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
progress zadania. Jeśli zadanie nie zostało jeszcze rozpoczęte, ta właściwość będzie mieć wartość 0. Po pomyślnym zakończeniu zadania jej wartość 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 r. UTC, zgodnie ze
standardem RFC 3339.
Na przykład piątek, 1 września 2023 12:00:00 PM 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 nie zostało jeszcze rozpoczęte, ta właściwość będzie mieć 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 mieć 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ń. Zobacz Błędy, aby uzyskać pełną dokumentację obiektu task_error.
Name
consumed_credits
Type
integer
Description
Liczba kredytów zużytych przez to zadanie. Obecne, gdy status zadania to PENDING, IN_PROGRESS lub SUCCEEDED. Zwraca 0 dla zadań FAILED (kredyty są zwracane w przypadku niepowodzenia).
Name
image_urls
Type
array of strings
Description
Adresy URL do pobrania kandydatów obrazów koncepcyjnych wygenerowanych przez to zadanie prototypu. Obecnie API zawsze zwraca dokładnie jednego kandydata; pole jest tablicą, aby przyszłe wersje mogły udostępniać wielu kandydatów bez wprowadzania zmiany łamiącej zgodność.
Obiekt zadania budowania figurki to jednostka pracy, którą Meshy śledzi, aby
wygenerować teksturowaną figurkę 3D z zakończonego sukcesem zadania prototypu. Uruchamia
ten sam pipeline Obraz na 3D, którego używa Obraz na 3D,
więc pola wyjściowe odzwierciedlają obiekt zadania tego punktu końcowego.
Właściwości
Name
id
Type
string
Description
Unikalny identyfikator zadania.
Name
type
Type
string
Description
Typ zadania. Wartość to creative-lab-figure-build.
Name
name
Type
string
Description
Nazwa zadania podana podczas jego tworzenia. Pusty ciąg, 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
Progress zadania. Jeśli zadanie nie zostało jeszcze rozpoczęte, ta właściwość będzie mieć wartość 0. Gdy zadanie zakończy się powodzeniem, wartość ta stanie się 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 wygaśnięcia wyniku zadania, 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 zadań zakończonych niepowodzeniem. Zobacz Błędy, aby uzyskać pełną referencję 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
prompt
Type
string
Description
Zawsze pusty dla budowania figurek. Obecny ze względu na zgodność między punktami końcowymi ze współdzielonym kształtem V2ImageTo3DTaskResponse używanym przez Obraz na 3D.
Name
negative_prompt
Type
string
Description
Zawsze pusty dla budowania figurek. Obecny ze względu na zgodność między punktami końcowymi.
Name
texture_prompt
Type
string
Description
Zawsze pusty dla budowania figurek. Obecny ze względu na zgodność między punktami końcowymi.
Name
texture_image_url
Type
string
Description
Zawsze pusty dla budowania figurek. Obecny ze względu na zgodność między punktami końcowymi.
Name
model_urls
Type
object
Description
Adresy URL do pobrania wygenerowanego modelu 3D. Budowanie figurki generuje teksturowany GLB oraz parę OBJ + MTL dla pipeline'ów preferujących Wavefront OBJ. Kształt pola odpowiada obiektowi Obraz na 3D model_urls, dzięki czemu przyszłe dodatki formatów mogą zostać dodane bez zmiany powodującej niezgodność.
Name
glb
Type
string
Description
Adres URL do pobrania teksturowanego pliku GLB.
Name
obj
Type
string
Description
Adres URL do pobrania pliku Wavefront OBJ (geometria + UV).
Name
mtl
Type
string
Description
Adres URL do pobrania pliku materiału MTL towarzyszącego OBJ. Użyj w parze z obj oraz wpisem z texture_urls[0].base_color.
Name
thumbnail_url
Type
string
Description
Adres URL do pobrania obrazu miniatury pliku modelu.
Name
texture_urls
Type
array
Description
Tablica obiektów URL tekstur wygenerowanych przez to zadanie. Obecnie zawiera pojedynczy obiekt z mapą koloru bazowego.
Name
base_color
Type
string
Description
Adres URL do pobrania obrazu mapy koloru bazowego.