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

API Wiele obrazów na 3D

API Wiele obrazów na 3D to funkcja, która umożliwia integrację możliwości Meshy w zakresie Wiele obrazów na 3D z własną aplikacją. W tej sekcji znajdziesz wszystkie informacje potrzebne do rozpoczęcia pracy z tym API.


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

Utwórz zadanie Wiele obrazów na 3D

Ten punkt końcowy pozwala utworzyć nowe zadanie Wiele obrazów na 3D. Zapoznaj się z Obiektem zadania Wiele obrazów na 3D, aby zobaczyć, jakie właściwości zawiera obiekt zadania Wiele obrazów na 3D.

Zadanie jest wykonywane w tle. Informacje o tym, ile zwykle to trwa, znajdziesz w sekcji Czasy przetwarzania.

Parametry

  • Name
    input_task_id
    Type
    string
    Wymagane
    Description

    ID ukończonego zadania generowania obrazu, którego wynik (1–4 obrazy) ma zostać użyty jako dane wejściowe. Zadanie to musi być jednym z następujących: Tekst na obraz, Obraz na obraz, Tekst na obraz Wiele widoków lub Obraz na obraz Wiele widoków. Dodatkowo musi zostać uruchomione za pośrednictwem API i mieć status SUCCEEDED.

  • Name
    image_urls
    Type
    array
    Wymagane
    Description

    Podaj od 1 do 4 obrazów, które Meshy ma wykorzystać do stworzenia modelu. Obecnie obsługujemy formaty .jpg, .jpeg, .png i .webp. Dla najlepszych rezultatów wszystkie obrazy powinny przedstawiać ten sam obiekt z różnych kątów.

    Maksymalny rozmiar pliku: 20 MB na obraz.

    Istnieją dwa sposoby podania każdego obrazu:

    • Publicznie dostępny URL: adres URL dostępny z poziomu 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
    ai_model
    Type
    string
    domyślne latest
    Description

    ID modelu do użycia.

    Dostępne wartości:

    • meshy-6-lite, meshy-6, meshy-7.1, latest (Meshy 7.1)
    • meshy-7 (przestarzałe): zamiast tego użyj meshy-7.1.
  • Name
    geometry_resolution
    Type
    string
    domyślne standard
    Description

    Przebieg generowania geometrii. 2k uruchamia przebieg Ultra w rozdzielczości 2048³. Wymaga meshy-7.1 lub latest.

    Dostępne wartości: standard, 2k

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

    Zamiast tego użyj geometry_resolution. ultra_mode: true jest równoważne geometry_resolution: "2k".

  • Name
    should_texture
    Type
    boolean
    domyślne true
    Description

    Określa, czy generowane są tekstury. Ustawienie wartości false pomija etap teksturowania, dostarczając siatkę bez tekstur.

Dotyczy tylko gdy should_texture = true
  • Name
    enable_pbr
    Type
    boolean
    domyślne false
    Description

    Generuje mapy PBR (metaliczność, chropowatość, normalna) oprócz koloru bazowego. Mapa emisji jest również dołączana, gdy ai_model to meshy-6, z wyjątkiem texture_resolution: 8k. meshy-6-lite, meshy-7.1 i latest nie generują mapy emisji.

  • Name
    texture_resolution
    Type
    string
    domyślne 2k
    Description

    Rozdzielczość tekstury koloru bazowego. Jedna z wartości 2k (2048×2048), 4k (4096×4096) lub 8k (8192×8192). Wyższe rozdzielczości pozwalają uchwycić więcej szczegółów powierzchni.

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

    Zamiast tego użyj texture_resolution — odpowiednik texture_resolution: "4k". Gdy oba są ustawione, pierwszeństwo ma texture_resolution.

  • Name
    texture_prompt
    Type
    string
    Description

    Podaj prompt tekstowy, który będzie kierować procesem teksturowania. Maksymalnie 800 znaków.

  • Name
    texture_image_url
    Type
    string
    Description

    Podaj obraz 2D, który będzie kierować procesem teksturowania. Obecnie obsługujemy formaty .jpg, .jpeg, .png i .webp.

    Maksymalny rozmiar pliku: 20 MB.

    Istnieją dwa sposoby podania obrazu:

    • Publicznie dostępny URL: adres URL dostępny z poziomu 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
    texture_image_urls
    Type
    string[]
    Description

    Podaj od 1 do 4 obrazów przedstawiających ten sam obiekt z różnych widoków, aby pokierować teksturowaniem. Pierwszy obraz to widok główny (przedni); kolejność pozostałych widoków (lewy, tylny, prawy) nie ma znaczenia.

    Każdy element akceptuje te same formaty co texture_image_url (publicznie dostępny URL lub zakodowany w base64 Data URI, .jpg/.jpeg/.png/.webp).

    Maksymalny rozmiar pliku: 20 MB na obraz.

    Te obrazy sterują wyłącznie teksturą i są niezależne od image_urls — obie listy mogą zawierać różne obrazy oraz różną liczbę obrazów.

  • Name
    should_remesh
    Type
    boolean
    domyślne false (Meshy 6 and Meshy 7 models), true (others)
    Description

    Kontroluje, czy włączyć etap remesh. Dla modelu o najwyższej jakości zalecamy ustawienie should_remesh na false.

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

    Określ topology generowanego modelu.

    Dostępne wartości:

    • quad: generuje siatkę opartą głównie na czworokątach.
    • triangle: generuje zdecymowaną siatkę trójkątów.
  • Name
    target_polycount
    Type
    integer
    domyślne 30,000
    Description

    Określ docelową liczbę wielokątów w generowanym modelu. Rzeczywista liczba wielokątów może odbiegać od wartości docelowej w zależności od złożoności geometrii.

    Prawidłowy zakres to od 100 do 300 000 (włącznie).

  • Name
    decimation_mode
    Type
    integer
    Description

    Włącz adaptacyjną decymację, ustawiając poziom liczby wielokątów. Gdy ten parametr jest ustawiony, target_polycount jest ignorowany.

    Dostępne wartości:

    • 1: adaptacyjna — ultra liczba wielokątów.
    • 2: adaptacyjna — wysoka liczba wielokątów.
    • 3: adaptacyjna — średnia liczba wielokątów.
    • 4: adaptacyjna — niska liczba wielokątów.
  • Name
    save_pre_remeshed_model
    Type
    boolean
    domyślne false
    Description

    Gdy ustawione na true, Meshy dodatkowo zapisuje dodatkowy plik GLB przed zakończeniem etapu remesh.

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

    Przestarzałe. Ten parametr nie wpływa już na wynik.

    Pole symmetry_mode kontroluje zachowanie symetrii podczas procesu generowania modelu.

    Prawidłowe wartości to:

    • off: wyłącza symetrię.
    • auto: automatycznie określa i stosuje symetrię na podstawie geometrii wejściowej.
    • on: wymusza symetrię podczas generowania.
  • Name
    pose_mode
    Type
    string
    domyślne ""
    Description

    Określ mode pozy generowanego modelu.

    Dostępne wartości:

    • a-pose: generuje model w pozie A.
    • t-pose: generuje model w pozie T.
    • "" (pusty ciąg znaków): bez konkretnej pozy.
  • Name
    is_a_t_pose
    Type
    boolean
    ⚠ przestarzałe
    domyślne false
    Description

    Zamiast tego użyj pose_mode. Określa, czy wygenerować model w pozie A/T.

  • Name
    image_enhancement
    Type
    boolean
    domyślne true
    Description

    Optymalizuje obrazy wejściowe w celu uzyskania lepszych rezultatów. Ustaw na false, aby zachować dokładny wygląd obrazów wejściowych bez jakiegokolwiek przetwarzania stylu.

  • Name
    remove_lighting
    Type
    boolean
    domyślne true
    Description

    Usuwa podświetlenia i cienie z tekstury koloru bazowego, dając czystszy rezultat, który lepiej sprawdza się przy niestandardowych ustawieniach oświetlenia.

  • Name
    moderation
    Type
    boolean
    domyślne false
    Description

    Gdy ustawione na true, treść wejściowa zostanie automatycznie sprawdzona pod kątem potencjalnie szkodliwej zawartości. Jeśli zostanie wykryta szkodliwa treść, zadanie nie przejdzie do etapu generowania.

    Sprawdzony zostanie każdy obraz z image_urls oraz tekst z texture_prompt.

  • Name
    target_formats
    Type
    string[]
    Description

    Określa, które formaty plików 3D mają zostać uwzględnione w wyniku. Generowane i zwracane będą tylko żądane formaty, co może skrócić czas realizacji zadania.

    Dostępne wartości: glb, obj, fbx, stl, usdz, 3mf

  • Name
    auto_size
    Type
    boolean
    domyślne false
    Description

    Gdy ustawione na true, usługa wykorzystuje wizję AI do automatycznego oszacowania rzeczywistej wysokości obiektu i odpowiedniego dopasowania rozmiaru modelu. Punkt początkowy domyślnie przyjmuje wartość bottom, chyba że origin_at zostanie jawnie ustawiony.

  • Name
    alpha_thumbnail
    Type
    boolean
    domyślne false
    Description

    Gdy ustawione na true, zadanie dodatkowo renderuje wersję podglądu z przezroczystym tłem (RGBA) i zwraca ją jako alpha_thumbnail_url w odpowiedzi GET. Istniejące pole thumbnail_url pozostaje bez zmian.

  • Name
    multi_view_thumbnails
    Type
    boolean
    domyślne false
    Description

    Gdy ustawione na true, zadanie dodatkowo renderuje cztery miniatury widoków kardynalnych (przód, prawo, tył, lewo) i zwraca je w polu thumbnail_urls w odpowiedzi GET. Istniejące pole thumbnail_url pozostaje bez zmian i nadal wskazuje widok z przodu, więc istniejący klienci nie są dotknięci zmianą.

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

    Pozycja punktu początkowego, gdy auto_size jest włączone. Dostępne wartości: bottom, center.

Zwracane wartości

Właściwość result odpowiedzi zawiera id zadania nowo utworzonego zadania Wiele obrazów na 3D.

Tryby niepowodzeń

  • Name
    400 - Bad Request
    Description

    Żądanie było niepoprawne. Typowe przyczyny:

    • Brakujący parametr: musi zostać podany image_urls lub input_task_id.
    • Nieprawidłowe zadanie wejściowe: input_task_id musi odnosić się do zakończonego powodzeniem (SUCCEEDED) zadania Tekst na obraz, Obraz na obraz lub wariantu Wiele widoków.
    • Nieprawidłowa liczba obrazów: image_urls musi zawierać od 1 do 4 obrazów, a texture_image_urls od 1 do 4.
    • Nieprawidłowy format obrazu: jeden lub więcej obrazów w image_urls ma nieobsługiwany format.
    • Sprzeczne dane wejściowe tekstury: texture_image_urls nie może być łączone z texture_image_url ani texture_prompt i wymaga should_texture: true.
    • Nieobsługiwany model dla tekstury wielowidokowej: texture_image_urls wymaga ai_model meshy-7.1 lub latest.
    • Niedostępny URL: nie udało się pobrać co najmniej jednego elementu image_urls lub texture_image_urls.
    • Obraz zbyt duży: co najmniej jeden obraz z image_urls, texture_image_url lub texture_image_urls przekracza 20 MB.
    • Nieobsługiwana rozdzielczość dla danych wejściowych z wieloma obrazami: geometry_resolution: "4k" nie jest dostępne w tym punkcie końcowym; użyj 2k lub standard.
    • Nieobsługiwany model dla opcji obrazu: image_enhancement lub remove_lighting zostało ustawione razem z ai_model: "meshy-6-lite".
  • 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/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"]
  }'

Response

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

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

Pobierz zadanie Wiele obrazów na 3D

Ten punkt końcowy umożliwia pobranie zadania Wiele obrazów na 3D na podstawie prawidłowego id zadania. Zapoznaj się z sekcją Obiekt zadania Wiele obrazów na 3D, aby zobaczyć, jakie właściwości są zawarte w obiekcie zadania Wiele obrazów na 3D.

Parametry

  • Name
    id
    Type
    path
    Description

    Unikalny identyfikator zadania Wiele obrazów na 3D, które ma zostać pobrane.

Zwraca

Odpowiedź zawiera obiekt zadania Wiele obrazów na 3D. Szczegóły znajdziesz w sekcji Obiekt zadania Wiele obrazów na 3D.

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",
      "emission": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_emission.png?Expires=XXX"
    }
  ],
  "preceding_tasks": 0,
  "task_error": {

    "message": ""

  },

  "consumed_credits": 30
}

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

Usuń zadanie Wiele obrazów na 3D

Ten punkt końcowy trwale usuwa zadanie Wiele obrazów na 3D, w tym wszystkie powiązane modele i dane. Ta operacja jest nieodwracalna.

Parametry ścieżki

  • Name
    id
    Type
    path
    Description

    ID zadania Wiele obrazów na 3D do usunięcia.

Status zadania

Zadanie, które wciąż ma status PENDING, zostaje usunięte, a kredyty pobrane w momencie tworzenia zostają zwrócone.

Zadanie, które jest już IN_PROGRESS, nie może zostać usunięte: żądanie zostaje odrzucone z kodem 409 Conflict, a zadanie kontynuuje działanie. Kredyty za zadanie, które zostało już rozpoczęte przez workera, nie podlegają zwrotowi, więc usunięcie go w trakcie wykonywania kosztowałoby Cię zarówno kredyty, jak i wynik. Poczekaj, aż osiągnie ono status SUCCEEDED, FAILED lub CANCELED, a następnie je usuń.

Zadanie w stanie końcowym (SUCCEEDED, FAILED lub CANCELED) zostaje usunięte bez zwrotu kredytów.

Zwraca

Zwraca 200 OK w przypadku powodzenia lub 409 Conflict, gdy zadanie ma status IN_PROGRESS.

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 is left 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."
}

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

Lista zadań Wiele obrazów na 3D

Ten punkt końcowy umożliwia pobranie listy zadań Wiele obrazów na 3D.

Parametry

Atrybuty opcjonalne

  • Name
    page_num
    Type
    integer
    Description

    Numer strony dla stronicowania. Zaczyna się od 1 i domyślnie wynosi 1.

  • Name
    page_size
    Type
    integer
    Description

    Limit rozmiaru strony. Domyślnie 10 elementów. Maksymalnie dozwolone to 100 elementów.

  • Name
    sort_by
    Type
    string
    Description

    Pole, według którego ma nastąpić sortowanie. Dostępne wartości:

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

Zwraca

Zwraca stronicowaną listę Obiektów 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",
        "emission": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_emission.png?Expires=XXX"
      }
    ],
    "preceding_tasks": 0,
    "task_error": {

      "message": ""

    },

    "consumed_credits": 30
  }
]

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

Przesyłaj strumieniowo zadanie Wiele obrazów na 3D

Ten punkt końcowy przesyła strumieniowo aktualizacje w czasie rzeczywistym dla zadania Wiele obrazów na 3D za pomocą Server-Sent Events (SSE).

Parametry

  • Name
    id
    Type
    path
    Description

    Unikalny identyfikator zadania Wiele obrazów na 3D do przesłania strumieniowego.

Zwraca

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

Dla zadań o statusie PENDING lub IN_PROGRESS strumień odpowiedzi będzie zawierał tylko niezbędne pola progress i status.

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.
// For PENDING or IN_PROGRESS tasks, the response stream will not include all fields.
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",
      "emission": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_emission.png?Expires=XXX"
    }
  ],
  "preceding_tasks": 0,
  "task_error": {

    "message": ""

  },

  "consumed_credits": 30
}

Obiekt zadania Wiele obrazów na 3D

Obiekt zadania Wiele obrazów na 3D to jednostka pracy, którą Meshy śledzi, aby wygenerować model 3D na podstawie wielu obrazów (od 1 do 4 włącznie). Obrazy powinny przedstawiać ten sam obiekt, najlepiej z różnych widoków lub kątów. Obiekt posiada następujące właściwości:

Właściwości

  • Name
    id
    Type
    string
    Description

    Unikalny identyfikator zadania. Chociaż jako szczegół implementacyjny używamy identyfikatora k-sortable UUID dla identyfikatorów zadań, nie powinieneś przyjmować żadnych założeń dotyczących formatu tego identyfikatora.

  • Name
    type
    Type
    string
    Description

    Typ zadania Wiele obrazów na 3D. Wartość to multi-image-to-3d.

  • Name
    model_urls
    Type
    object
    Description

    Adres URL do pobrania pliku teksturowanego modelu 3D wygenerowanego przez Meshy. Właściwość dla danego formatu zostanie pominięta, jeśli format nie został wygenerowany, zamiast zwracać pusty ciąg znaków.

    • Name
      glb
      Type
      string
      Description

      Adres URL do pobrania pliku GLB.

    • Name
      fbx
      Type
      string
      Description

      Adres URL do pobrania pliku FBX.

    • Name
      obj
      Type
      string
      Description

      Adres URL do pobrania pliku OBJ.

    • Name
      usdz
      Type
      string
      Description

      Adres URL do pobrania pliku USDZ.

    • Name
      mtl
      Type
      string
      Description

      Adres URL do pobrania pliku MTL, zwracany razem z eksportami OBJ, gdy obecne są tekstury.

    • Name
      stl
      Type
      string
      Description

      Adres URL do pobrania pliku STL.

    • Name
      3mf
      Type
      string
      Description

      Adres URL do pobrania pliku 3MF. Obecny tylko wtedy, gdy 3mf zostało zażądane poprzez target_formats.

    • Name
      pre_remeshed_glb
      Type
      string
      Description

      Adres URL do pobrania oryginalnego pliku wyjściowego GLB sprzed remeshingu.

  • Name
    thumbnail_url
    Type
    string
    Description

    Adres URL do pobrania obrazu miniatury pliku modelu. Odpowiednik thumbnail_urls.front, gdy jest obecny, zachowany dla zapewnienia wstecznej kompatybilności.

  • 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 przezroczysty podgląd został pomyślnie wyrenderowany; w przeciwnym razie to pole jest pomijane.

  • Name
    thumbnail_urls
    Type
    object
    Description

    Adresy URL do pobrania czterech miniatur modelu 3D przedstawiających widoki z czterech głównych kierunków. Każda wartość to podpisany adres URL do obrazu PNG 512×512 wyrenderowanego z tymi samymi materiałami i oświetleniem co thumbnail_url. Przydatne do podglądu modelu z wielu kątów w potokach wsadowych bez pobierania pliku GLB.

    • Name
      front
      Type
      string
      Description

      Widok z przodu, obrót o 0° wokół osi pionowej (odpowiada thumbnail_url).

    • Name
      right
      Type
      string
      Description

      Widok z prawej strony, obrót o 90°.

    • Name
      back
      Type
      string
      Description

      Widok z tyłu, obrót o 180°.

    • Name
      left
      Type
      string
      Description

      Widok z lewej strony, obrót o 270°.

  • Name
    texture_prompt
    Type
    string
    Description

    Prompt tekstowy użyty do pokierowania procesem teksturowania.

  • Name
    texture_image_urls
    Type
    string[]
    Description

    Adresy URL do pobrania obrazów referencyjnych tekstur, które zostały użyte do utworzenia zadania, w kolejności, w jakiej zostały dostarczone. Obecne tylko wtedy, gdy zadanie zostało utworzone z texture_image_urls.

  • Name
    ultra_mode
    Type
    boolean
    ⚠ przestarzałe
    Description

    Przestarzałe; zamiast tego odczytaj geometry_resolution.

  • Name
    geometry_resolution
    Type
    string
    Description

    Poziom Ultra, z którym uruchomiono zadanie (2k); pomijane dla standard.

  • Name
    progress
    Type
    integer
    Description

    Postęp zadania. Jeśli zadanie jeszcze się nie rozpoczęło, ta właściwość będzie wynosić 0. Gdy zadanie zakończy się powodzeniem, wartość ta zmieni się na 100.

  • Name
    started_at
    Type
    timestamp
    Description

    Znacznik czasu rozpoczęcia zadania, w milisekundach. Jeśli zadanie jeszcze się nie rozpoczęło, ta właściwość będzie wynosić 0.

  • Name
    created_at
    Type
    timestamp
    Description

    Znacznik czasu utworzenia zadania, w milisekundach.

  • Name
    expires_at
    Type
    timestamp
    Description

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

  • Name
    finished_at
    Type
    timestamp
    Description

    Znacznik czasu zakończenia zadania, w milisekundach. Jeśli zadanie jeszcze się nie zakończyło, ta właściwość będzie wynosić 0.

  • Name
    status
    Type
    string
    Description

    Status zadania. Możliwe wartości to jedna z: PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.

  • Name
    texture_urls
    Type
    array
    Description

    Tablica obiektów adresów URL tekstur wygenerowanych z zadania. Zazwyczaj zawiera ona tylko jeden obiekt adresu URL tekstury. Każdy adres URL tekstury ma następujące właściwości:

    • Name
      base_color
      Type
      string
      Description

      Adres URL do pobrania obrazu mapy koloru bazowego.

    • Name
      metallic
      Type
      string
      Description

      Adres URL do pobrania obrazu mapy metaliczności.

    • Name
      normal
      Type
      string
      Description

      Adres URL do pobrania obrazu mapy normalnych.

    • Name
      roughness
      Type
      string
      Description

      Adres URL do pobrania obrazu mapy chropowatości.

    • Name
      emission
      Type
      string
      Description

      Adres URL do pobrania obrazu mapy emisji.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Liczba poprzedzających zadań.

  • Name
    task_error
    Type
    object
    Description

    Szczegóły błędu dla nieudanych zadań. Pełną referencję 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 (kredyty są zwracane w przypadku niepowodzenia).

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",
      "emission": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_emission.png?Expires=XXX"
    }
  ],
  "preceding_tasks": 0,
  "task_error": {

    "message": ""

  },

  "consumed_credits": 30,
}