Creative Lab — Keychain API

Zamień zdjęcie źródłowe w medalion breloka nadający się do druku 3D — kolorowaną plakietkę z reliefem głębi — w dwóch etapach: prototype generuje skolorowany obraz koncepcyjny na podstawie zdjęcia wejściowego, a następnie build zamienia ten obraz koncepcyjny w model 3D w postaci reliefu. Oba etapy są powiązane za pomocą input_task_id.

  • POST /openapi/creative-lab/keychain/v1/prototype
  • POST /openapi/creative-lab/keychain/v1/build

POST/openapi/creative-lab/keychain/v1/prototype

Create a Keychain Prototype Task

Wygeneruj pojedynczy skolorowany obraz koncepcyjny ze zdjęcia źródłowego. Zwrócony identyfikator zadania to wartość, którą przekazujesz jako input_task_id do punktu końcowego budowania. Zapoznaj się z sekcją Obiekt zadania prototypu breloka aby poznać kształt odpowiedzi.

Parametry

  • Name
    image_url
    Type
    string
    Wymagane
    Description

    Zdjęcie źródłowe, które Meshy ma skolorować i przekształcić w obraz koncepcyjny gotowy do stworzenia breloka. 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>.
  • Name
    name
    Type
    string
    Description

    Opcjonalna nazwa zadania do celów wyświetlania. Maksymalnie 100 znaków.

    Nadaje ona zadaniu etykietę na twoim panelu i na listach zadań. Nie jest ona grawerowana na breloku — do tego celu służy name_text.

  • Name
    name_text
    Type
    string
    Description

    Tekst do wygrawerowania na breloku, na przykład imię zwierzaka lub osoby. Maksymalnie 10 znaków, liczonych jako znaki Unicode, a nie bajty, więc 10-znakowe imię w języku chińskim, japońskim lub koreańskim zostanie zaakceptowane. Pomiń ten parametr, aby uzyskać brelok bez grawerunku.

    Otaczające białe znaki są usuwane, a niewidoczne znaki formatujące są usuwane przed użyciem tekstu. Wynikowa wartość jest zwracana jako name_text w obiekcie zadania prototypu, dzięki czemu możesz potwierdzić dokładnie to, co zostanie wygrawerowane, zanim zapłacisz za etap budowania.

    Grawerunek jest stosowany tutaj, na etapie prototypu. Etap budowania dziedziczy go automatycznie i nie przyjmuje własnego name_text.

  • Name
    remove_background
    Type
    boolean
    domyślne false
    Description

    Gdy ustawione na true, obraz prototypu jest zwracany jako przezroczysty plik PNG w formacie RGBA z usuniętym tłem, dzięki czemu możesz nałożyć obiekt na dowolne tło.

    Kontroluje to wyłącznie obraz zwracany przez ten punkt końcowy. Jest to oddzielne od opcji budowania o tej samej nazwie (domyślnie true), która kontroluje usuwanie tła przed procesem reliefowania.

Zwraca

Właściwość result odpowiedzi zawiera id zadania nowo utworzonego prototypu breloka. 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 niepowodzenia

  • Name
    400 - Bad Request
    Description

    Żądanie było nie do przyjęcia. 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 sformułowany.
    • Zbyt długi grawerunek: name_text jest dłuższy niż 10 znaków. Żądanie jest odrzucane, a nie skracane, dzięki czemu nigdy nie zostaniesz obciążony za brelok wygrawerowany skróconą nazwą.
    • Treść oznaczona: obraz wejściowy został oznaczony przez moderation NSFW lub moderation praw własności intelektualnej, albo grawerunek name_text został oznaczony przez moderation NSFW. Grawerunek jest sprawdzany wyłącznie pod kątem treści NSFW — sprawdzanie praw własności intelektualnej dotyczy obrazu.
  • 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/keychain/v1/prototype
# Stage 1: generate a colorized keychain concept image
curl https://api.meshy.ai/openapi/creative-lab/keychain/v1/prototype \
  -X POST \
  -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"
}
Prototype example
Start with a source photo, then generate the prototype image used by the keychain build stage.
Source photo used as the Creative Lab Keychain input
Prototype input
Creative Lab Keychain prototype output generated from the source photo
Prototype output

POST/openapi/creative-lab/keychain/v1/build

Create a Keychain Build Task

Wygeneruj finalny medalion breloka do druku 3D na podstawie zakończonego powodzeniem zadania prototypu. Kompilacja (build) uruchamia potok reliefu na podstawie mapy głębi na skolorowanym obrazie koncepcyjnym prototypu i dostarcza pojedynczy artefakt siatki w formacie, który wskażesz. Zapoznaj się z sekcją Obiekt zadania budowania breloka, aby zobaczyć kształt odpowiedzi.

Parametry

  • Name
    input_task_id
    Type
    string
    Wymagane
    Description

    Identyfikator zadania (task ID) zadania prototypu utworzonego za pomocą tego samego punktu końcowego OpenAPI. Prototyp musi zostać utworzony za pomocą tego samego klucza API, musi osiągnąć status SUCCEEDED i musi wygenerować dokładnie jeden obraz kandydujący.

    Zadania prototypów utworzone za pomocą aplikacji webowej nie są akceptowane — punkt końcowy budowania akceptuje tylko zadania prototypów wygenerowane przez POST /openapi/creative-lab/keychain/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 dostrajające geometrię reliefu. Każde pole ma sensowną wartość domyślną — wyślij tylko te, które chcesz nadpisać.

  • Name
    badge_shape
    Type
    string
    domyślne circle
    Description

    Kontur/silhouette medalionu breloka. Dostępne wartości:

    • circle (domyślnie)
    • rounded-rect
    • hexagon
    • shield
    • star
  • Name
    size_mm
    Type
    number
    domyślne 40
    Description

    Długość krawędzi kwadratu ograniczającego brelok, w milimetrach. Zakres: (0, 400].

  • Name
    relief_height_mm
    Type
    number
    domyślne 2.2
    Description

    Maksymalna wysokość reliefu nad podstawą, w milimetrach. Zakres: [0, 20].

  • Name
    relief_offset_mm
    Type
    number
    domyślne 0
    Description

    Przesunięcie wertykalne zastosowane do reliefu przed wytłoczeniem (extrusion), w milimetrach. Zakres: [0, 20].

  • Name
    base_thickness_mm
    Type
    number
    domyślne 0.1
    Description

    Grubość płaskiej płyty podstawy za reliefem, w milimetrach. Zakres: [0, 20].

  • Name
    has_closed_back
    Type
    boolean
    domyślne true
    Description

    Określa, czy tył medalionu jest zamknięty jako zamknięta powierzchnia. Ustaw na false dla otwartej powłoki (shell).

  • Name
    relief_curve
    Type
    string
    domyślne linear
    Description

    Krzywa transferu mapująca wartości mapy głębi na wysokość reliefu. Dostępne wartości:

    • linear (domyślnie)
    • gamma
    • s-curve
  • Name
    curve_param
    Type
    number
    domyślne 1.0
    Description

    Parametr kształtu dla krzywej transferu (znaczący tylko wtedy, gdy relief_curve ma wartość gamma). Zakres: (0, 10].

  • Name
    invert_depth
    Type
    boolean
    domyślne false
    Description

    Odwraca interpretację mapy głębi, tak aby ciemniejsze obszary stały się wyższym reliefem.

  • Name
    smoothing
    Type
    number
    domyślne 0.24
    Description

    Siła wygładzania zastosowana do mapy głębi przed ekstrakcją reliefu. Zakres: [0, 10].

  • Name
    relief_scale
    Type
    number
    domyślne 1.0
    Description

    Mnożnik skali wertykalnej zastosowany na wartości relief_height_mm. Zakres: (0, 10].

  • Name
    depth_threshold
    Type
    number
    domyślne 0.1
    Description

    Próg dolnoprzepustowy dla wartości mapy głębi; wszystko poniżej tego progu jest ograniczane do zera. Zakres: [0, 1].

  • Name
    remove_background
    Type
    boolean
    domyślne true
    Description

    Automatycznie usuwa tło z obrazu koncepcyjnego prototypu przed nałożeniem reliefu.

    Odrębny od parametru prototypu o tej samej nazwie (domyślnie false), który kontroluje, czy sam obraz prototypu jest zwracany z przezroczystością.

  • Name
    export_resolution
    Type
    integer
    domyślne 512
    Description

    Rozdzielczość siatki użyta do eksportu. Zakres: [64, 2048].

output

Opcjonalny selektor formatu przesyłania. Domyślnie glb.

  • Name
    format
    Type
    string
    domyślne glb
    Description

    Pakiet artefaktów zwracany przez kompilację. Dostępne wartości:

    • glb (domyślnie) — zwraca pojedynczy plik model.glb pod model_urls.glb.
    • obj — pakuje model.obj + model.mtl + texture.png i zwraca pakiet pod model_urls.obj.
    • zip — pakuje każdy artefakt wygenerowany przez generator i zwraca pakiet pod model_urls.bundle_zip.

Zwracane wartości

Właściwość result w odpowiedzi zawiera id zadania nowo utworzonego zadania budowania breloka. Odpytuj (poll) punkt końcowy Pobierz zadanie lub zapisz się do strumienia, aż zadanie osiągnie status SUCCEEDED, a następnie pobierz artefakt z jedynego wpisu w model_urls.

Rodzaje błędów

  • Name
    400 - Bad Request
    Description

    Żądanie było niedopuszczalne. 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: Wskazywane zadanie prototypu nie osiągnęło jeszcze statusu SUCCEEDED.
    • Brak kandydata: Zadanie prototypu zakończyło się powodzeniem, ale nie wygenerowało żadnego obrazu kandydującego.
    • Opcje poza zakresem: Jedno z pól options wykroczyło poza dozwolony zakres lub zestaw 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, aby wykonać to zadanie.

  • Name
    404 - Not Found
    Description

    Wskazywane zadanie prototypu nie istnieje, należy do innego użytkownika lub zostało utworzone za pomocą aplikacji webowej (tylko zadania prototypów w trybie API mogą być łączone w łańcuch z budowaniem).

  • Name
    429 - Too Many Requests
    Description

    Przekroczono limit szybkości.

Request

POST
/openapi/creative-lab/keychain/v1/build
# Stage 2: chain build off a succeeded prototype task
curl https://api.meshy.ai/openapi/creative-lab/keychain/v1/build \
  -X POST \
  -H "Authorization: Bearer ${YOUR_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{
    "input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
    "options": {
      "badge_shape": "circle",
      "size_mm": 40,
      "relief_height_mm": 2.5
    },
    "output": {
      "format": "glb"
    }
  }'

Response

{
  "result": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb"
}
Build example
Zadanie budowania konwertuje wybrany obraz prototypu na model breloka nadający się do druku 3D.
Podgląd modelu budowania breloka w Creative Lab
Build model preview

GET/openapi/creative-lab/keychain/v1/(prototype|build)/:id

Pobierz zadanie Keychain

Pobierz zadanie prototypu lub builda na podstawie prawidłowego id zadania. Ścieżka URL musi odpowiadać etapowi zadania — zadanie builda pobrane przez /prototype/:id zwróci 404, i odwrotnie.

Zobacz Obiekt zadania prototypu Keychain oraz Obiekt zadania builda Keychain, aby poznać kształt odpowiedzi.

Parametry

  • Name
    id
    Type
    path
    Description

    Unikalny identyfikator zadania keychain do pobrania.

Zwraca

Odpowiedź zawiera obiekt zadania keychain. Kształt zależy od tego, który etap został zażądany.

Request

GET
/openapi/creative-lab/keychain/v1/prototype/018a210d-8ba4-705c-b111-1f1776f7f578
# Prototype
curl https://api.meshy.ai/openapi/creative-lab/keychain/v1/prototype/018a210d-8ba4-705c-b111-1f1776f7f578 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

# Build
curl https://api.meshy.ai/openapi/creative-lab/keychain/v1/build/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Prototype Response

{
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "creative-lab-keychain-prototype",
  "name": "",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1729123456000,
  "started_at": 1729123460000,
  "finished_at": 1729123486000,
  "expires_at": 1729382686000,
  "preceding_tasks": 0,
  "task_error": null,
  "consumed_credits": 6,
  "image_urls": [
    "https://assets.meshy.ai/***/concept.png?Expires=***"
  ]
}

Build Response

{
  "id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb",
  "type": "creative-lab-keychain-build",
  "name": "",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1729123500000,
  "started_at": 1729123510000,
  "finished_at": 1729123535000,
  "expires_at": 1729382735000,
  "preceding_tasks": 0,
  "task_error": null,
  "consumed_credits": 20,
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.glb?Expires=***"
  }
}

DELETE/openapi/creative-lab/keychain/v1/(prototype|build)/:id

Usuń zadanie brelok

Anuluje zadanie brelok. Jeśli zadanie ma nadal status PENDING, kredyty zużyte w momencie utworzenia zostaną zwrócone. Zadania, które są już w stanie IN_PROGRESS, są anulowane bez zwrotu (worker mógł 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 brelok do anulowania.

Zwraca

Zwraca 204 No Content w przypadku sukcesu z pustym ciałem odpowiedzi.

Tryby niepowodzenia

  • Name
    400 - Bad Request
    Description

    Zadanie znajduje się 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.

Request

DELETE
/openapi/creative-lab/keychain/v1/prototype/018a210d-8ba4-705c-b111-1f1776f7f578
curl --request DELETE \
  --url https://api.meshy.ai/openapi/creative-lab/keychain/v1/prototype/018a210d-8ba4-705c-b111-1f1776f7f578 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Response

// Returns 204 No Content on success (empty body).

GET/openapi/creative-lab/keychain/v1/(prototype|build)/:id/stream

Strumieniowanie zadania breloka

Strumieniuj aktualizacje w czasie rzeczywistym dla zadania breloka za pomocą Server-Sent Events (SSE). Ścieżka URL musi odpowiadać etapowi zadania — otwarcie strumienia pod adresem /prototype/:buildId/stream emituje pojedynczy ładunek event: error ze status_code: 404 i zamyka strumień.

Parametry

  • Name
    id
    Type
    path
    Description

    Unikalny identyfikator zadania breloka do strumieniowania.

Zwraca

Zwraca strumień obiektów zadania Keychain Prototype lub Keychain Build jako Server-Sent Events. Każda ramka zawiera pełny obiekt zadania dla danego etapu — o tym samym kształcie, co ten zwracany przez 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.

Request

GET
/openapi/creative-lab/keychain/v1/build/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/stream
curl -N https://api.meshy.ai/openapi/creative-lab/keychain/v1/build/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response Stream

// Error event example (wrong stage or task not found)
event: error
data: {
  "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: message
data: {
  "id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb",
  "progress": 0,
  "status": "PENDING"
}

event: message
data: {
  "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=***"
  }
}

GET/openapi/creative-lab/keychain/v1/(prototype|build)

List Keychain Tasks

Pobierz stronicowaną listę zadań brelока dla jednego etapu. Ścieżka URL określa etap — /prototype zwraca zadania prototypu; /build zwraca zadania budowy. Zadania z drugiego etapu nie są zawarte w żadnej z odpowiedzi.

Parametry ścieżki

  • Name
    stage
    Type
    path
    Wymagane
    Description

    prototype albo build. Kolekcja zwraca tylko zadania, których etap odpowiada adresowi URL — pobranie /prototype nigdy nie zwraca zadań budowy 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, według którego ma nastąpić sortowanie. Dostępne wartości:

    • +created_at: Sortowanie według czasu utworzenia rosnąco.
    • -created_at: Sortowanie według czasu utworzenia malejąco.

Zwraca

Zwraca stronicowaną listę obiektów zadań dla danego etapu — albo obiekt zadania prototypu brelока podczas listowania /prototype, albo obiekt zadania budowy brelока podczas listowania /build.

Request

GET
/openapi/creative-lab/keychain/v1/prototype
# List prototype tasks
curl https://api.meshy.ai/openapi/creative-lab/keychain/v1/prototype?page_size=10 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

# List build tasks
curl https://api.meshy.ai/openapi/creative-lab/keychain/v1/build?page_size=10 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Response (List Prototype Tasks)

[
  {
    "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
    "type": "creative-lab-keychain-prototype",
    "name": "",
    "status": "SUCCEEDED",
    "progress": 100,
    "created_at": 1729123456000,
    "started_at": 1729123460000,
    "finished_at": 1729123486000,
    "expires_at": 1729382686000,
    "preceding_tasks": 0,
    "task_error": null,
    "consumed_credits": 6,
    "image_urls": [
      "https://assets.meshy.ai/***/concept.png?Expires=***"
    ]
  }
]

Obiekt zadania prototypu breloka Keychain

Obiekt zadania prototypu breloka Keychain to jednostka pracy, którą Meshy śledzi w celu wygenerowania kolorowego obrazu koncepcyjnego na podstawie zdjęcia źródłowego. Wynik tego etapu jest przekazywany do etapu budowy za pomocą input_task_id.

Właściwości

  • Name
    id
    Type
    string
    Description

    Unikalny identyfikator zadania. Choć jako szczegół implementacyjny używamy identyfikatorów UUID z możliwością sortowania k-sortowalnego dla identyfikatorów zadań, nie należy przyjmować żadnych założeń co do formatu identyfikatora.

  • Name
    type
    Type
    string
    Description

    Typ zadania. Wartość to creative-lab-keychain-prototype.

  • Name
    name
    Type
    string
    Description

    Nazwa zadania podana podczas jego tworzenia. Pusty ciąg, jeśli nazwa nie została podana.

  • Name
    name_text
    Type
    string
    Description

    Grawerunek zastosowany na tym breloku, po przycięciu i usunięciu niewidocznych znaków formatujących. Nieobecne, jeśli zadanie zostało utworzone bez name_text. Porównaj tę wartość z tym, co wysłałeś, aby potwierdzić, że tekst przetrwał kodowanie Twojego klienta HTTP.

  • 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 nie zostało jeszcze rozpoczęte, ta właściwość będzie równa 0. Po zakończeniu zadania sukcesem 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. Jeśli zadanie nie zostało jeszcze rozpoczęte, ta właściwość będzie równa 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 równa 0.

  • Name
    expires_at
    Type
    timestamp
    Description

    Znacznik czasu wygaśnięcia wyniku zadania, w milisekundach.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Liczba zadań poprzedzających.

  • Name
    task_error
    Type
    object
    Description

    Szczegóły błędu dla zadań zakończonych niepowodzeniem. Zobacz Błędy, aby znaleźć pełny opis 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 na obraz koncepcyjny wygenerowanych przez to zadanie prototypowe. Obecnie API zawsze zwraca dokładnie jednego kandydata; pole jest tablicą, aby przyszłe wersje mogły udostępniać wielu kandydatów bez wprowadzania zmian łamiących kompatybilność.

Example Keychain Prototype Task Object

{
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "creative-lab-keychain-prototype",
  "name": "",
  "name_text": "Luna",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1729123456000,
  "started_at": 1729123460000,
  "finished_at": 1729123486000,
  "expires_at": 1729382686000,
  "preceding_tasks": 0,
  "task_error": null,
  "consumed_credits": 6,
  "image_urls": [
    "https://assets.meshy.ai/***/concept.png?Expires=***"
  ]
}

Obiekt Zadania Budowy Breloka

Obiekt Zadania Budowy Breloka to jednostka pracy, którą Meshy śledzi, aby wygenerować finalną siatkę 3D breloka na podstawie zakończonego powodzeniem zadania prototypu. Budowa uruchamia potok reliefu mapy głębi na obrazie koncepcyjnym prototypu i publikuje pojedynczy artefakt siatki w formacie żądanym przez wywołującego.

Właściwości

  • Name
    id
    Type
    string
    Description

    Unikalny identyfikator zadania.

  • Name
    type
    Type
    string
    Description

    Typ zadania. Wartość to creative-lab-keychain-build.

  • Name
    name
    Type
    string
    Description

    Nazwa zadania podana podczas jego tworzenia. Pusty ciąg znaków, jeśli nazwa nie została podana.

  • 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 jeszcze się nie rozpoczęło, 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.

  • 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 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 wygenerowanego artefaktu, indeksowane nazwą artefaktu. Zawsze zawiera dokładnie jeden wpis — format żądany za pomocą output.format w żądaniu budowy. Klucz odpowiada żądanemu formatowi:

    • Name
      glb
      Type
      string
      Description

      Adres URL do pobrania pliku GLB. Obecny, gdy output.format miało wartość glb (domyślną).

    • Name
      obj
      Type
      string
      Description

      Adres URL do pobrania paczki zip zawierającej model.obj, model.mtl oraz texture.png. Obecny, gdy output.format miało wartość obj.

    • Name
      bundle_zip
      Type
      string
      Description

      Adres URL do pobrania paczki zip zawierającej każdy artefakt wygenerowany przez generator. Obecny, gdy output.format miało wartość zip.

Example Keychain Build Task Object

{
  "id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb",
  "type": "creative-lab-keychain-build",
  "name": "",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1729123500000,
  "started_at": 1729123510000,
  "finished_at": 1729123535000,
  "expires_at": 1729382735000,
  "preceding_tasks": 0,
  "task_error": null,
  "consumed_credits": 20,
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.glb?Expires=***"
  }
}