lowpoly zostanie wycofany 30 paź 2026. Zmień model przed tymi datami, aby uniknąć błędów żądań. Zobacz wszystkie wycofania

API Wiele obrazów na 3D

Wygeneruj model 3D na podstawie od jednego do czterech obrazów tego samego obiektu, wykonanych pod różnymi kątami.


POST/openapi/v1/multi-image-to-3d

Utwórz zadanie Wiele obrazów na 3D

Tworzy zadanie Wiele obrazów na 3D. Zadanie jest wykonywane w tle. Informacje o tym, jak długo zwykle trwa zadanie, znajdziesz w sekcji Czasy przetwarzania. Informacje o polach, jakie posiada zadanie, znajdziesz w sekcji Obiekt zadania Wiele obrazów na 3D.

Request

POST
/openapi/v1/multi-image-to-3d
# Simple request
curl https://api.meshy.ai/openapi/v1/multi-image-to-3d \
  -X POST \
  -H "Authorization: Bearer ${YOUR_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{
    "image_urls": [
      "<your publicly accessible image url or base64-encoded data URI>",
      "<your second publicly accessible image url or base64-encoded data URI>"
    ]
  }'

# With Ultra 2K geometry, PBR texturing, and GLB format
curl https://api.meshy.ai/openapi/v1/multi-image-to-3d \
  -X POST \
  -H "Authorization: Bearer ${YOUR_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{
    "image_urls": [
      "<your publicly accessible image url or base64-encoded data URI>",
      "<your second publicly accessible image url or base64-encoded data URI>"
    ],
    "ai_model": "meshy-7.1",
    "geometry_resolution": "2k",
    "should_texture": true,
    "enable_pbr": true,
    "target_formats": ["glb"]
  }'

# Textured with Meshy N1 from the input images, the first as the front view
curl https://api.meshy.ai/openapi/v1/multi-image-to-3d \
  -X POST \
  -H "Authorization: Bearer ${YOUR_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{
    "image_urls": [
      "<your front view image url or base64-encoded data URI>",
      "<your back view image url or base64-encoded data URI>"
    ],
    "ai_model": "meshy-7.1",
    "texture_model": "meshy-n1"
  }'

Response

{
  "result": "018a210d-8ba4-705c-b111-1f1776f7f578"
}

Parametry

  • Name
    input_task_id
    Type
    string
    Wymagane
    Description

    Wymagane, chyba że wyślesz image_urls. ID zadania Tekst na obraz lub Obraz na obraz, w tym zadania typu Wiele widoków. Meshy używa od jednego do czterech jego obrazów jako danych wejściowych. Zadanie musi być utworzone przez Ciebie za pomocą API i mieć status SUCCEEDED.

  • Name
    image_urls
    Type
    array
    Wymagane
    Description

    Wymagane, chyba że wyślesz input_task_id. Od jednego do czterech obrazów, każdy jako publiczny URL lub Data URI, na przykład data:image/jpeg;base64,<dane obrazu zakodowane w base64>. Jeśli wyślesz oba, Meshy użyje input_task_id.

    Każdy obraz musi być plikiem .jpg, .jpeg, .png lub .webp o rozmiarze maksymalnie 20 MB, co najmniej 32 pikseli po każdej stronie i maksymalnie 178 956 970 pikseli (szerokość × wysokość). Przesłanie więcej niż czterech obrazów zwraca 400.

    Dla najlepszych rezultatów obrazy powinny przedstawiać ten sam obiekt z różnych kątów. Przy meshy-7.1 lub latest Meshy używa pierwszego obrazu jako widoku z przodu, a kolejność pozostałych nie ma znaczenia.

  • Name
    ai_model
    Type
    string
    domyślne latest
    Description

    Model AI generujący model 3D.

    Dostępne wartości:

    • latest: Meshy 7.1
    • meshy-7.1
    • meshy-6
    • meshy-6-lite
    • meshy-7: przestarzałe, wyślij zamiast tego meshy-7.1

    Zobacz Modele, aby dowiedzieć się, który model pasuje do Twojego projektu, na przykład rzeczywisty obiekt lub wydruk 3D.

  • Name
    geometry_resolution
    Type
    string
    domyślne standard
    Description

    Ile szczegółów geometrii wygenerować.

    Dostępne wartości:

    • standard
    • 2k: uruchamia przebieg Ultra przy rozdzielczości 2048³. Wymaga meshy-7.1, latest lub przestarzałego meshy-7.
  • Name
    ultra_mode
    Type
    boolean
    ⚠ przestarzałe
    domyślne false
    Description

    Wyślij zamiast tego geometry_resolution. ultra_mode: true jest równoważne geometry_resolution: "2k".

  • Name
    should_texture
    Type
    boolean
    domyślne true
    Description

    Czy generować tekstury. true zwraca model z teksturami, a false pomija etap teksturowania i zwraca siatkę bez tekstur.

Dotyczy tylko gdy should_texture = true
  • Name
    texture_model
    Type
    string
    domyślne depends on ai_model
    Description

    Model AI, który teksturuje model 3D z kilku widoków, w ramach tego samego zadania. Pomiń, aby użyć domyślnego modelu tekstur dla Twojego ai_model. Nie zmienia to kosztu w kredytach.

    Dostępne wartości:

    • meshy-7: Meshy 7, z mapami PBR i teksturami do 8K
    • meshy-n1: Meshy N1, tekstura koloru bazowego 2K tylko z obrazów referencyjnych

    Każdy ai_model akceptuje oba. Żądanie teksturowania z meshy-6 lub meshy-6-lite zwraca 400, podobnie jak opcja nieobsługiwana przez wybrany model tekstur. Przy should_texture: false Meshy ignoruje texture_model, ale nieznana wartość nadal zwraca 400.

    Przy meshy-n1 Meshy teksturuje na podstawie texture_image_urls lub texture_image_url, lub na podstawie obrazów wejściowych, jeśli nie wyślesz żadnego z nich. Pierwszy obraz to widok z przodu. Wygenerowany model przekraczający 7 999 999 trójkątów powoduje niepowodzenie zadania, a Meshy zwraca jego kredyty.

    Zobacz Modele, aby dowiedzieć się, co robi każdy model tekstur i który wybrać.

  • Name
    enable_pbr
    Type
    boolean
    domyślne false
    Description

    Czy generować również mapy metaliczności, chropowatości i normalnych, oprócz koloru bazowego. Model tekstur Meshy 6 generuje również mapę emisji, z wyjątkiem texture_resolution: 8k. Przy texture_model: meshy-n1 wartość true zwraca 400.

  • Name
    texture_resolution
    Type
    string
    domyślne 2k
    Description

    Rozmiar tekstury koloru bazowego. Większy rozmiar pozwala uchwycić więcej szczegółów powierzchni.

    Dostępne wartości:

    • 2k: 2048×2048
    • 4k: 4096×4096
    • 8k: 8192×8192

    4k i 8k wymagają modelu tekstur Meshy 7 lub Meshy 6 i zwracają 400 z pozostałymi. Przy 8k Meshy nie generuje mapy emisji.

  • Name
    hd_texture
    Type
    boolean
    ⚠ przestarzałe
    domyślne false
    Description

    Wyślij zamiast tego texture_resolution. hd_texture: true jest równoważne texture_resolution: "4k". Jeśli wyślesz oba, Meshy użyje texture_resolution.

  • Name
    texture_prompt
    Type
    string
    Description

    Tekst, który kieruje teksturą, maksymalnie 800 znaków. Dłuższy tekst zwraca 400. Przy texture_model: meshy-n1 wysłanie go zwraca 400.

  • Name
    texture_image_url
    Type
    string
    Description

    Jeden obraz 2D, który kieruje teksturą, jako publiczny URL lub Data URI, na przykład data:image/jpeg;base64,<dane obrazu zakodowane w base64>. Obraz musi być plikiem .jpg, .jpeg, .png lub .webp o rozmiarze maksymalnie 20 MB, co najmniej 32 pikseli po każdej stronie i maksymalnie 178 956 970 pikseli (szerokość × wysokość).

    Jeśli wyślesz zarówno texture_image_url, jak i texture_prompt, Meshy użyje texture_prompt. Przy texture_model: meshy-n1 Meshy teksturuje na podstawie tego obrazu jako widoku z przodu.

  • Name
    texture_image_urls
    Type
    string[]
    Description

    Od jednego do czterech obrazów obiektu z różnych widoków, które kierują teksturą. Meshy używa pierwszego obrazu jako widoku z przodu. Kolejność pozostałych widoków (lewy, tylny, prawy) nie ma znaczenia.

    Każdy obraz podlega tym samym zasadom co texture_image_url. Jest to publiczny URL lub Data URI, w formacie .jpg, .jpeg, .png lub .webp, o rozmiarze maksymalnie 20 MB, co najmniej 32 pikseli po każdej stronie i maksymalnie 178 956 970 pikseli (szerokość × wysokość).

    Te obrazy kierują wyłącznie teksturą i nie zależą od image_urls. Obie listy mogą zawierać różne obrazy i różną ich liczbę.

    texture_image_urls wymaga modelu tekstur Meshy 7 lub Meshy N1. Wyślij go z jednym z poniższych:

    • ai_model równym meshy-7.1, latest lub przestarzałym meshy-7
    • texture_model równym meshy-7 lub meshy-n1

    Nie możesz wysłać go razem z texture_image_url lub texture_prompt.

  • Name
    should_remesh
    Type
    boolean
    domyślne true (meshy-6-lite), false (other models)
    Description

    Czy wykonać remesh modelu po generowaniu. Aby uzyskać model 3D o najwyższej jakości, ustaw na false.

Dotyczy tylko gdy should_remesh = true
  • Name
    topology
    Type
    string
    domyślne triangle
    Description

    Typ ścianek modelu po remeshu.

    Dostępne wartości:

    • quad: siatka z przewagą czworokątów
    • triangle: zdecymowana siatka trójkątów

    Przy texture_model: meshy-n1 wartość quad zwraca 400, gdy model podlega remeshowi, co meshy-6-lite robi domyślnie.

  • Name
    target_polycount
    Type
    integer
    domyślne 30000
    Description

    Docelowa liczba ścianek, od 100 do 300000. Wynik może różnić się od wartości docelowej, w zależności od geometrii modelu. Wartość spoza zakresu zwraca 400.

  • Name
    decimation_mode
    Type
    integer
    Description

    Adaptacyjna liczba ścianek, według poziomu. Gdy go ustawisz, Meshy ignoruje target_polycount.

    Dostępne wartości:

    • 1: ultra
    • 2: wysoki
    • 3: średni
    • 4: niski
  • Name
    save_pre_remeshed_model
    Type
    boolean
    domyślne false
    Description

    Czy zapisać również plik GLB sprzed remeshu, zwracany w model_urls.pre_remeshed_glb.

  • Name
    symmetry_mode
    Type
    string
    ⚠ przestarzałe
    domyślne auto
    Description

    Pomiń. Nie wpływa na wynik.

    Dostępne wartości:

    • off: brak symetrii
    • auto: symetria na podstawie geometrii wejściowej
    • on: wymuszona symetria
  • Name
    pose_mode
    Type
    string
    domyślne ""
    Description

    Pozycja wygenerowanego modelu.

    Dostępne wartości:

    • a-pose: pozycja A
    • t-pose: pozycja T
    • "" (pusty ciąg znaków): brak konkretnej pozycji
  • Name
    is_a_t_pose
    Type
    boolean
    ⚠ przestarzałe
    domyślne false
    Description

    Wyślij zamiast tego pose_mode. Czy wygenerować model w pozycji A lub T.

  • Name
    image_enhancement
    Type
    boolean
    domyślne true
    Description

    Czy zoptymalizować obrazy wejściowe przed generowaniem. false zachowuje dokładny wygląd obrazów wejściowych, bez przetwarzania stylu. Obsługiwane tylko z meshy-6, meshy-7.1 lub latest. Wysłanie tego z meshy-6-lite zwraca 400.

  • Name
    remove_lighting
    Type
    boolean
    domyślne true
    Description

    Czy usunąć podświetlenia i cienie z tekstury koloru bazowego. Czystszy wynik lepiej sprawdza się we własnym oświetleniu. Używa tego tylko model tekstur Meshy 6, a przy texture_resolution: 8k zawsze usuwa oświetlenie. Przy texture_model: meshy-n1 wartość true zwraca 400. Przy ai_model: meshy-6-lite i jego domyślnym modelu tekstur wysłanie tego zwraca 400.

  • Name
    moderation
    Type
    boolean
    domyślne false
    Description

    Czy sprawdzać dane wejściowe pod kątem szkodliwych treści. Meshy sprawdza każdy obraz wejściowy, texture_image_url lub każdy obraz w texture_image_urls, oraz tekst w texture_prompt. Jeśli Meshy znajdzie szkodliwe treści, żądanie zwraca 400, a Meshy nie tworzy zadania.

  • Name
    target_formats
    Type
    string[]
    Description

    Formaty plików 3D do wygenerowania. Meshy generuje i zwraca tylko wymienione formaty, co może skrócić czas zadania.

    Dostępne wartości:

    • glb
    • obj
    • fbx
    • stl
    • usdz
    • 3mf

    Jeśli pominiesz ten parametr, Meshy wygeneruje wszystkie formaty oprócz 3mf. Meshy generuje 3mf tylko wtedy, gdy go wymienisz.

  • Name
    auto_size
    Type
    boolean
    domyślne false
    Description

    Czy oszacować rzeczywistą wysokość obiektu za pomocą wizji AI i zmienić rozmiar modelu do tej wartości. Meshy umieszcza punkt początkowy na dole, chyba że ustawisz origin_at.

Dotyczy tylko gdy auto_size = true
  • Name
    origin_at
    Type
    string
    domyślne bottom
    Description

    Gdzie umieścić punkt początkowy modelu: bottom lub center.

  • Name
    alpha_thumbnail
    Type
    boolean
    domyślne false
    Description

    Czy wyrenderować również podgląd z przezroczystym tłem (RGBA), zwracany w alpha_thumbnail_url przy pobieraniu zadania. thumbnail_url się nie zmienia.

  • Name
    multi_view_thumbnails
    Type
    boolean
    domyślne false
    Description

    Czy wyrenderować również podglądy z przodu, prawej, tyłu i lewej strony, zwracane w thumbnail_urls przy pobieraniu zadania. thumbnail_url się nie zmienia i nadal pokazuje widok z przodu. Wydłuża to zadanie o około 5 sekund.

Zwracane wartości

Pole result odpowiedzi zawiera ID nowego zadania Wiele obrazów na 3D.

Tryby niepowodzenia

  • Name
    400 - Bad Request
    Description

    Żądanie nie może zostać wykonane. Komunikat błędu wskazuje znaleziony problem. Na przykład:

    • Brakujący parametr: Nie wysłano ani image_urls, ani input_task_id.
    • Nieprawidłowe zadanie wejściowe: input_task_id nie jest zadaniem Tekst na obraz lub Obraz na obraz ze statusem SUCCEEDED, ani zadaniem typu Wiele widoków.
    • Nieprawidłowa liczba obrazów: image_urls lub texture_image_urls nie zawiera od 1 do 4 obrazów.
    • Nieprawidłowy format obrazu: Obraz w image_urls nie ma obsługiwanego formatu.
    • Sprzeczne dane wejściowe tekstury: texture_image_urls wysłano razem z texture_image_url, texture_prompt lub should_texture: false.
    • Nieobsługiwany model dla tekstury wielowidokowej: texture_image_urls wysłano z ai_model równym meshy-6 lub meshy-6-lite, chyba że texture_model to meshy-7 lub meshy-n1.
    • Nieosiągalny URL: Meshy nie może pobrać obrazu z image_urls lub texture_image_urls.
    • Zbyt duży obraz: Obraz w image_urls, texture_image_url lub texture_image_urls przekracza 20 MB.
    • Nieprawidłowy rozmiar obrazu: Obraz w image_urls, texture_image_url lub texture_image_urls ma bok krótszy niż 32 piksele lub więcej niż 178 956 970 pikseli (szerokość × wysokość).
    • Nieobsługiwana rozdzielczość dla danych wejściowych wielu obrazów: geometry_resolution ma wartość "4k", której ten punkt końcowy nie obsługuje. Użyj 2k lub standard.
    • Nieobsługiwany model dla opcji obrazu: image_enhancement wysłano z ai_model: "meshy-6-lite", lub remove_lighting wysłano z ai_model: "meshy-6-lite" i jego domyślnym modelem tekstur.
    • Nieprawidłowy model tekstur: texture_model nie jest prawidłową nazwą modelu tekstur.
    • Model tekstur niedostępny: Żądanie z teksturowaniem wysłało texture_model równy meshy-6 lub meshy-6-lite. Wiele obrazów na 3D przyjmuje tylko modele tekstur teksturujące z kilku widoków. Wyślij meshy-7 lub meshy-n1, albo pomiń texture_model.
    • Nieobsługiwana opcja dla modelu tekstur: Żądanie żąda od modelu tekstur opcji, której on nie obsługuje, na przykład enable_pbr: true z meshy-n1 lub tekstury 4k z meshy-6-lite. Zobacz Modele.

    Popraw żądanie, a następnie wyślij je ponownie. Zobacz Błędy.

  • Name
    401 - Unauthorized
    Description

    Brak klucza API lub jest on nieprawidłowy. Sprawdź nagłówek Authorization.

  • Name
    402 - Payment Required
    Description

    Na przykład:

    • Niewystarczające kredyty: Konto nie ma wystarczającej liczby kredytów na to zadanie lub konto osiągnęło limit kredytów. Sprawdź saldo kredytów, a następnie spróbuj ponownie.
    • Plan darmowy: Utworzenie zadania wymaga planu płatnego. Ulepsz swój plan w ustawieniach subskrypcji, a następnie spróbuj ponownie.
  • Name
    403 - Forbidden
    Description

    Moderacja treści zablokowała prompt lub obraz wejściowy. Zmień dane wejściowe, a następnie spróbuj ponownie.

  • Name
    404 - Not Found
    Description

    input_task_id nie pasuje do żadnego z Twoich zadań. Sprawdź ID zadania, a następnie wyślij żądanie ponownie.

  • Name
    429 - Too Many Requests
    Description

    Przekroczono limit szybkości. Poczekaj, a następnie spróbuj ponownie. Zobacz Limity szybkości.


GET/openapi/v1/multi-image-to-3d/:id

Pobierz zadanie Wiele obrazów na 3D

Zwraca zadanie Wiele obrazów na 3D na podstawie jego ID.

Request

GET
/openapi/v1/multi-image-to-3d/018a210d-8ba4-705c-b111-1f1776f7f578
curl https://api.meshy.ai/openapi/v1/multi-image-to-3d/018a210d-8ba4-705c-b111-1f1776f7f578 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Response

{
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "multi-image-to-3d",
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
    "fbx": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.fbx?Expires=***",
    "obj": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.obj?Expires=***",
    "usdz": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.usdz?Expires=***",
    "stl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***",
    "pre_remeshed_glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/pre_remeshed_model.glb?Expires=***"
  },
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***",
  "thumbnail_urls": {
    "front": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_front.png?Expires=***",
    "right": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_right.png?Expires=***",
    "back": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_back.png?Expires=***",
    "left": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_left.png?Expires=***"
  },
  "texture_prompt": "",
  "progress": 100,
  "started_at": 1692771667037,
  "created_at": 1692771650657,
  "expires_at": 1692771679037,
  "finished_at": 1692771669037,
  "status": "SUCCEEDED",
  "texture_urls": [
    {
      "base_color": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0.png?Expires=***",
      "metallic": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_metallic.png?Expires=XXX",
      "normal": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_normal.png?Expires=XXX",
      "roughness": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_roughness.png?Expires=XXX"
    }
  ],
  "preceding_tasks": 0,
  "task_error": null,

  "consumed_credits": 30
}

Parametry

  • Name
    id
    Type
    path
    Description

    ID zadania z odpowiedzi tworzenia.

Zwraca

Obiekt zadania Wiele obrazów na 3D.


DELETE/openapi/v1/multi-image-to-3d/:id

Usuń zadanie Wiele obrazów na 3D

Trwale usuwa zadanie Wiele obrazów na 3D, w tym jego modele i dane. Nie można cofnąć usunięcia.

Request

DELETE
/openapi/v1/multi-image-to-3d/018a210d-8ba4-705c-b111-1f1776f7f578
curl --request DELETE \
  --url https://api.meshy.ai/openapi/v1/multi-image-to-3d/018a210d-8ba4-705c-b111-1f1776f7f578 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Response

// 200 OK on success, with an empty body.
//
// 409 Conflict when the task is IN_PROGRESS. The task keeps running:
{
  "message": "Task is IN_PROGRESS and cannot be deleted. Credits for a task the worker has already started are not refundable; wait for it to reach SUCCEEDED, FAILED or CANCELED, then delete it."
}

Parametry ścieżki

  • Name
    id
    Type
    path
    Description

    ID zadania do usunięcia.

Status zadania

Usunięcie zadania o statusie PENDING zwraca kredyty wykorzystane podczas jego tworzenia.

Zadania o statusie IN_PROGRESS nie można usunąć. Żądanie zwraca 409 Conflict, a zadanie nadal się wykonuje. Meshy nie zwraca kredytów za zadanie, które już się rozpoczęło, więc usunięcie go kosztowałoby zarówno kredyty, jak i wynik. Poczekaj, aż osiągnie status SUCCEEDED, FAILED lub CANCELED, a następnie je usuń.

Usunięcie zadania o statusie końcowym (SUCCEEDED, FAILED lub CANCELED) nie powoduje zwrotu kredytów.

Zwraca

200 OK, gdy zadanie zostanie usunięte, lub 409 Conflict, gdy zadanie ma status IN_PROGRESS.


GET/openapi/v1/multi-image-to-3d

Lista zadań Wiele obrazów na 3D

Zwraca listę Twoich zadań Wiele obrazów na 3D.

Request

GET
/openapi/v1/multi-image-to-3d
curl https://api.meshy.ai/openapi/v1/multi-image-to-3d?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response

[
  {
    "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
    "type": "multi-image-to-3d",
    "model_urls": {
      "glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
      "fbx": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.fbx?Expires=***",
      "obj": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.obj?Expires=***",
      "usdz": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.usdz?Expires=***",
      "pre_remeshed_glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/pre_remeshed_model.glb?Expires=***"
    },
    "thumbnail_url": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***",
    "thumbnail_urls": {
      "front": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_front.png?Expires=***",
      "right": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_right.png?Expires=***",
      "back": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_back.png?Expires=***",
      "left": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_left.png?Expires=***"
    },
    "texture_prompt": "",
    "progress": 100,
    "started_at": 1692771667037,
    "created_at": 1692771650657,
    "expires_at": 1692771679037,
    "finished_at": 1692771669037,
    "status": "SUCCEEDED",
    "texture_urls": [
      {
        "base_color": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0.png?Expires=***",
        "metallic": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_metallic.png?Expires=XXX",
        "normal": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_normal.png?Expires=XXX",
        "roughness": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_roughness.png?Expires=XXX"
      }
    ],
    "preceding_tasks": 0,
    "task_error": null,

    "consumed_credits": 30
  }
]

Parametry

  • Name
    page_num
    Type
    integer
    domyślne 1
    Description

    Numer strony do zwrócenia, maksymalnie 255. Większa wartość zwróci 400.

  • Name
    page_size
    Type
    integer
    domyślne 10
    Description

    Liczba zadań na stronę, maksymalnie 100.

  • Name
    sort_by
    Type
    string
    Description

    Kolejność sortowania.

    Dostępne wartości:

    • +created_at: od najstarszych
    • -created_at: od najnowszych

Zwraca

Stronicowaną listę obiektów zadań Wiele obrazów na 3D.


GET/openapi/v1/multi-image-to-3d/:id/stream

Strumieniowanie zadania Wiele obrazów na 3D

Strumieniuje aktualizacje zadania Wiele obrazów na 3D jako zdarzenia Server-Sent Events (SSE).

Request

GET
/openapi/v1/multi-image-to-3d/018a210d-8ba4-705c-b111-1f1776f7f578/stream
curl -N https://api.meshy.ai/openapi/v1/multi-image-to-3d/018a210d-8ba4-705c-b111-1f1776f7f578/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response Stream

// Error event example
event: error
data: {
  "status_code": 404,
  "message": "Task not found"
}

// Message event examples illustrate task progress.
// These examples are shortened. Each event holds the full task object.
event: message
data: {
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "progress": 0,
  "status": "PENDING"
}

event: message
data: {
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "multi-image-to-3d",
  "model_urls": {
  "glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
  "fbx": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.fbx?Expires=***",
  "obj": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.obj?Expires=***",
  "usdz": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.usdz?Expires=***",
  "stl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***",
  "pre_remeshed_glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/pre_remeshed_model.glb?Expires=***"
  },
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***",
  "thumbnail_urls": {
  "front": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_front.png?Expires=***",
  "right": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_right.png?Expires=***",
  "back": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_back.png?Expires=***",
  "left": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_left.png?Expires=***"
  },
  "texture_prompt": "",
  "progress": 100,
  "started_at": 1692771667037,
  "created_at": 1692771650657,
  "expires_at": 1692771679037,
  "finished_at": 1692771669037,
  "status": "SUCCEEDED",
  "texture_urls": [
    {
      "base_color": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0.png?Expires=***",
      "metallic": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_metallic.png?Expires=XXX",
      "normal": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_normal.png?Expires=XXX",
      "roughness": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_roughness.png?Expires=XXX"
    }
  ],
  "preceding_tasks": 0,
  "task_error": null,

  "consumed_credits": 30
}

Parametry

  • Name
    id
    Type
    path
    Description

    Identyfikator zadania z odpowiedzi tworzenia.

Zwraca

Strumień obiektów zadania Wiele obrazów na 3D jako zdarzenia Server-Sent Events.

Każde zdarzenie zawiera pełny obiekt zadania, w tej samej postaci, jaką zwraca punkt końcowy Get. Dopóki zadanie ma status PENDING lub IN_PROGRESS, jego pola wynikowe nie mają jeszcze wartości.


Obiekt zadania Wiele obrazów na 3D

Obiekt zadania Wiele obrazów na 3D opisuje jedno generowanie modelu 3D na podstawie od jednego do czterech obrazów obiektu. Zawiera status, progress oraz pliki modelu, gdy zadanie zakończy się powodzeniem.

Właściwości

Example Multi-Image to 3D Task Object

{
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "multi-image-to-3d",
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
    "fbx": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.fbx?Expires=***",
    "obj": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.obj?Expires=***",
    "usdz": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.usdz?Expires=***",
    "stl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***",
    "pre_remeshed_glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/pre_remeshed_model.glb?Expires=***"
  },
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***",
  "thumbnail_urls": {
    "front": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_front.png?Expires=***",
    "right": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_right.png?Expires=***",
    "back": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_back.png?Expires=***",
    "left": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_left.png?Expires=***"
  },
  "texture_prompt": "",
  "progress": 100,
  "started_at": 1692771667037,
  "created_at": 1692771650657,
  "expires_at": 1692771679037,
  "finished_at": 1692771669037,
  "status": "SUCCEEDED",
  "texture_urls": [
    {
      "base_color": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0.png?Expires=***",
      "metallic": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_metallic.png?Expires=XXX",
      "normal": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_normal.png?Expires=XXX",
      "roughness": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_roughness.png?Expires=XXX"
    }
  ],
  "preceding_tasks": 0,
  "task_error": null,

  "consumed_credits": 30
}
  • Name
    id
    Type
    string
    Description

    ID zadania. Traktuj je jako nieprzezroczysty ciąg znaków i nie polegaj na jego formacie.

  • Name
    type
    Type
    string
    Description

    Typ zadania, zawsze multi-image-to-3d.

  • Name
    model_urls
    Type
    object
    Description

    Adresy URL do pobrania wygenerowanego modelu 3D, po jednym na format pliku. Format, którego zadanie nie wygenerowało, nie ma klucza, zamiast pustego ciągu znaków.

    • Name
      glb
      Type
      string
      Description

      Plik GLB.

    • Name
      fbx
      Type
      string
      Description

      Plik FBX.

    • Name
      obj
      Type
      string
      Description

      Plik OBJ.

    • Name
      usdz
      Type
      string
      Description

      Plik USDZ.

    • Name
      mtl
      Type
      string
      Description

      Plik MTL, zwracany razem z plikiem OBJ, gdy model ma tekstury.

    • Name
      stl
      Type
      string
      Description

      Plik STL.

    • Name
      3mf
      Type
      string
      Description

      Plik 3MF. Obecny tylko wtedy, gdy target_formats zawiera 3mf.

    • Name
      pre_remeshed_glb
      Type
      string
      Description

      Plik GLB sprzed operacji remesh. Obecny tylko wtedy, gdy zadanie zostało utworzone zarówno z should_remesh: true, jak i save_pre_remeshed_model: true.

  • Name
    thumbnail_url
    Type
    string
    Description

    Adres URL do pobrania podglądowego obrazu modelu. Jest taki sam jak thumbnail_urls.front, gdy to pole jest obecne.

  • Name
    alpha_thumbnail_url
    Type
    string
    Description

    Adres URL do pobrania wersji thumbnail_url z przezroczystym tłem (RGBA). Obecny tylko wtedy, gdy zadanie zostało utworzone z alpha_thumbnail: true, a Meshy wyrenderowało przezroczysty podgląd.

  • Name
    thumbnail_urls
    Type
    object
    Description

    Adresy URL do pobrania podglądów modelu 3D z czterech stron. Każdy z nich to podpisany adres URL do obrazu PNG 512×512, wyrenderowanego z tymi samymi materiałami i oświetleniem co thumbnail_url. Możesz ich użyć do podglądu modelu z kilku kątów bez pobierania pliku GLB.

    Obecne tylko wtedy, gdy zadanie zostało utworzone z multi_view_thumbnails: true, a zadanie osiągnęło status SUCCEEDED. Zadanie utworzone bez multi_view_thumbnails: true nie zawiera tego pola.

    • Name
      front
      Type
      string
      Description

      Widok z przodu, pod kątem 0° wokół osi pionowej. Odpowiada thumbnail_url.

    • Name
      right
      Type
      string
      Description

      Widok z prawej strony, pod kątem 90°.

    • Name
      back
      Type
      string
      Description

      Widok z tyłu, pod kątem 180°.

    • Name
      left
      Type
      string
      Description

      Widok z lewej strony, pod kątem 270°.

  • Name
    texture_prompt
    Type
    string
    Description

    Prompt tekstowy, który kierował tworzeniem tekstury.

  • Name
    texture_image_urls
    Type
    string[]
    Description

    Adresy URL do pobrania obrazów referencyjnych tekstury, z którymi utworzono zadanie, w kolejności ich wysłania. Obecne tylko wtedy, gdy zadanie zostało utworzone z texture_image_urls.

  • Name
    ultra_mode
    Type
    boolean
    ⚠ przestarzałe
    Description

    Zamiast tego odczytaj geometry_resolution.

  • Name
    geometry_resolution
    Type
    string
    Description

    Poziom Ultra, w którym uruchomiono zadanie, czyli 2k. Zadanie standard nie zawiera tego pola.

  • Name
    progress
    Type
    integer
    Description

    Ile zadania zostało ukończone, w procentach. Wynosi 0 do momentu rozpoczęcia zadania i 100, gdy zakończy się ono powodzeniem.

  • Name
    started_at
    Type
    timestamp
    Description

    Czas rozpoczęcia zadania, w milisekundach Unix. Wynosi 0 do momentu rozpoczęcia zadania.

  • Name
    created_at
    Type
    timestamp
    Description

    Czas utworzenia zadania, w milisekundach Unix.

  • Name
    expires_at
    Type
    timestamp
    Description

    Czas wygaśnięcia wyników zadania, w milisekundach Unix.

  • Name
    finished_at
    Type
    timestamp
    Description

    Czas zakończenia zadania, w milisekundach Unix. Wynosi 0 do momentu zakończenia zadania.

  • Name
    status
    Type
    string
    Description

    Status zadania, jeden z: PENDING, IN_PROGRESS, SUCCEEDED, FAILED lub CANCELED.

  • Name
    texture_urls
    Type
    array
    Description

    Adresy URL do pobrania map tekstur wygenerowanych przez zadanie, jako tablica obiektów. Zwykle zawiera jeden obiekt. Każdy obiekt ma następujące pola:

    • Name
      base_color
      Type
      string
      Description

      Mapa koloru bazowego.

    • Name
      metallic
      Type
      string
      Description

      Mapa metaliczności. Nieuwzględniona, gdy zadanie zostało utworzone z enable_pbr: false.

    • Name
      normal
      Type
      string
      Description

      Mapa normalnych. Nieuwzględniona, gdy zadanie zostało utworzone z enable_pbr: false.

    • Name
      roughness
      Type
      string
      Description

      Mapa chropowatości. Nieuwzględniona, gdy zadanie zostało utworzone z enable_pbr: false.

    • Name
      emission
      Type
      string
      Description

      Mapa emisji. Uwzględniona tylko wtedy, gdy zadanie zostało utworzone ze wszystkimi poniższymi warunkami:

      • ai_model: meshy-6, z jego domyślnym modelem tekstur
      • enable_pbr: true
      • texture_resolution równym 2k lub 4k
  • Name
    preceding_tasks
    Type
    integer
    Description

    Liczba zadań znajdujących się przed tym zadaniem w kolejce. Wartość ma znaczenie tylko wtedy, gdy zadanie ma status PENDING.

  • Name
    task_error
    Type
    object
    Description

    Szczegóły błędu, gdy zadanie zakończy się niepowodzeniem. Jest null, chyba że status to FAILED. Zobacz Błędy.

  • Name
    consumed_credits
    Type
    integer
    Description

    Liczba kredytów wykorzystanych przez zadanie. Obecne, gdy status to PENDING, IN_PROGRESS lub SUCCEEDED. Wynosi 0 dla zadania FAILED, ponieważ Meshy zwraca kredyty, gdy zadanie zakończy się niepowodzeniem.