API Obraz na 3D
Zamień obraz w model 3D, teksturowany lub nieteksturowany, w wybranych przez siebie formatach. Wyślij obraz lub skorzystaj z wyniku zadania Tekst na obraz lub Obraz na obraz.
Utwórz zadanie Obraz na 3D
Tworzy zadanie Obraz na 3D. Zadanie jest wykonywane w tle. Informacje o tym, ile zwykle trwa zadanie, znajdziesz w Czasach przetwarzania.
Request
# Simple request with required params
curl https://api.meshy.ai/openapi/v1/image-to-3d \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"image_url": "<your publicly accessible image url or base64-encoded data URI>"
}'
# With Ultra 4K geometry, remesh, PBR, and A-pose
curl https://api.meshy.ai/openapi/v1/image-to-3d \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"image_url": "<your publicly accessible image url or base64-encoded data URI>",
"ai_model": "meshy-7.1",
"geometry_resolution": "4k",
"enable_pbr": true,
"should_remesh": true,
"target_polycount": 100000,
"should_texture": true,
"pose_mode": "a-pose",
"target_formats": ["glb"]
}'
# Textured with Meshy N1 from the input image
curl https://api.meshy.ai/openapi/v1/image-to-3d \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"image_url": "<your publicly accessible image url or base64-encoded data URI>",
"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_url. Identyfikator zadania Tekst na obraz lub Obraz na obraz, którego obraz chcesz użyć jako danych wejściowych. Zadanie musi zostać utworzone przez Ciebie za pomocą API, mieć statusSUCCEEDEDi musi wygenerować dokładnie jeden obraz.
- Name
- image_url
- Type
- string
- Wymagane
- Description
Wymagane, chyba że wyślesz
input_task_id. Obraz do przekształcenia w model 3D, podany jako publiczny adres URL lub zakodowany w base64 Data URI, na przykładdata:image/jpeg;base64,<your base64-encoded image data>. Jeśli wyślesz oba, Meshy użyjeinput_task_id.Obraz musi być plikiem JPG, JPEG, PNG lub WebP o rozmiarze co najwyżej 20 MB, co najmniej 32 pikseli po każdej stronie i co najwyżej 178 956 970 pikseli (szerokość × wysokość).
- Name
- model_type
- Type
- string
- domyślne standard
- Description
Rodzaj generowanej siatki 3D.
Dostępne wartości:
standard: siatka o wysokim poziomie szczegółowoścismart-topology: siatka z modelu Smart Topology, który wybierasz za pomocąai_model(meshy-t2lubmeshy-t2.5)
Przy
smart-topologyMeshy ignorujeshould_remesh,save_pre_remeshed_modelidecimation_mode, i akceptuje wyłącznietopology: triangle.
- Name
- ai_model
- Type
- string
- domyślne latest
- Description
Model AI generujący model 3D. Dostępne wartości zależą od
model_type.Modele standardowe (
model_type: standard):latest: Meshy 7.1meshy-7.1meshy-6meshy-6-litemeshy-7(przestarzałe): zamiast tego użyjmeshy-7.1
Modele Smart Topology (
model_type: smart-topology) generują trójkąty, przy liczbie ścianek, którą możesz ustawić za pomocątarget_polycount:meshy-t2: czystsza topology i naturalnie oddzielone częścimeshy-t2.5(domyślny): ostrzejsze szczegóły dla assetów do gier
- Name
- geometry_resolution
- Type
- string
- domyślne standard
- Description
Przebieg generowania geometrii.
Dostępne wartości:
standard2k: uruchamia przebieg Ultra w rozdzielczości 2048³4k: uruchamia przebieg Ultra w rozdzielczości 4096³, dla maksymalnej szczegółowości powierzchni
2kwymagameshy-7.1,latestlub przestarzałegomeshy-7.4kwymagameshy-7.1lublatest.
- Name
- ultra_mode
- Type
- boolean
- ⚠ przestarzałe
- domyślne false
- Description
Zamiast tego użyj
geometry_resolution.ultra_mode: truejest równoważnegeometry_resolution: "2k".
- Name
- should_texture
- Type
- boolean
- domyślne true
- Description
Czy generować tekstury.
truezwraca model z teksturą, afalsepomija teksturowanie i zwraca siatkę bez tekstury.
should_texture = true- Name
- texture_model
- Type
- string
- domyślne depends on ai_model
- Description
Model AI teksturujący model 3D w ramach tego samego zadania. Pomiń ten parametr, 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 8Kmeshy-n1: Meshy N1, tekstura koloru bazowego 2K wyłącznie na podstawie obrazów referencyjnychmeshy-6-lite: Meshy 6 Lite, tekstura 2K przy najniższym koszciemeshy-6: Meshy 6, dostępny tylko jako domyślny dlaai_model: meshy-6
Każdy
ai_modelobsługujemeshy-7,meshy-n1imeshy-6-lite. Opcja, której wybrany model tekstur nie obsługuje, zwraca400. Przymeshy-n1, wygenerowany model powyżej 7 999 999 trójkątów kończy zadanie niepowodzeniem, a Meshy zwraca za nie kredyty. Przyshould_texture: falseMeshy ignorujetexture_model, ale nieznana wartość nadal zwraca400.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 PBR (metaliczność, chropowatość i normal map) oprócz koloru bazowego.
truewymagashould_texture: truei zwraca400przyshould_texture: false. Przytexture_model: meshy-n1,truezwraca400.Model tekstur Meshy 6 generuje również mapę emisji, z wyjątkiem przy
texture_resolution: 8k.
- Name
- texture_resolution
- Type
- string
- domyślne 2k
- Description
Rozmiar tekstury koloru bazowego. Większa tekstura zawiera więcej szczegółów powierzchni.
Dostępne wartości:
2k: 2048×20484k: 4096×40968k: 8192×8192
4ki8kwymagają modelu tekstur Meshy 7 lub Meshy 6 i zwracają400przy pozostałych. Przy8kMeshy nie generuje mapy emisji.
- Name
- hd_texture
- Type
- boolean
- ⚠ przestarzałe
- domyślne false
- Description
Zamiast tego użyj
texture_resolution.hd_texture: truejest równoważnetexture_resolution: "4k". Jeśli wyślesz oba, Meshy użyjetexture_resolution.
- Name
- texture_prompt
- Type
- string
- Description
Tekst naprowadzający teksturę, do 800 znaków. Dłuższy tekst zwraca
400. Przytexture_model: meshy-n1, wysłanie go zwraca400.
- Name
- texture_image_url
- Type
- string
- Description
Obraz naprowadzający teksturę, podany jako publiczny adres URL lub zakodowany w base64 Data URI, na przykład
data:image/jpeg;base64,<your base64-encoded image data>. Obraz musi być plikiem JPG, JPEG, PNG lub WebP o rozmiarze co najwyżej 20 MB, co najmniej 32 pikseli po każdej stronie i co najwyżej 178 956 970 pikseli (szerokość × wysokość).Meshy naprowadza teksturę tylko na podstawie jednego z:
texture_promptlubtexture_image_url. Jeśli wyślesz oba, Meshy użyjetexture_prompt. Informacje o koszcie teksturowania w kredytach znajdziesz w Cennik.Przy
texture_model: meshy-n1, Meshy teksturuje na podstawie tego obrazu jako widoku z przodu, lub na podstawie obrazu wejściowego, jeśli go pominiesz.Teksturowanie na podstawie obrazu może nie działać dobrze, gdy kształt obrazu znacznie różni się od geometrii modelu 3D.
- Name
- should_remesh
- Type
- boolean
- domyślne true (meshy-6-lite), false (other models)
- Description
Czy uruchomić fazę remesh. Aby uzyskać model 3D najwyższej jakości, ustaw
false.
should_remesh = true- Name
- topology
- Type
- string
- domyślne triangle
- Description
Typ ścianek modelu po remesh.
Dostępne wartości:
quad: siatka z przewagą czworokątówtriangle: zdecymowana siatka trójkątów
Wynik Smart Topology zawiera wyłącznie trójkąty, więc
quadzmeshy-t2lubmeshy-t2.5zwraca400. Przytexture_model: meshy-n1,quadzwraca400, gdy model przechodzi remesh, co domyślnie robimeshy-6-lite.
- Name
- decimation_mode
- Type
- integer
- Description
Adaptacyjna liczba ścianek, według poziomu. Gdy go ustawisz, Meshy ignoruje
target_polycount.Dostępne wartości:
1: ultra2: wysoki3: średni4: niski
- Name
- save_pre_remeshed_model
- Type
- boolean
- domyślne false
- Description
Czy przechowywać również plik GLB modelu sprzed fazy remesh. Meshy zwraca go w
model_urls.pre_remeshed_glb.
- Name
- target_polycount
- Type
- integer
- Description
Docelowa liczba ścianek. Wynik może różnić się od wartości docelowej, w zależności od geometrii modelu.
Ma zastosowanie w dwóch odrębnych przypadkach:
- Remesh: Gdy
should_remeshma wartośćtruedla modelustandard, Meshy decymuje siatkę do mniej więcej tej liczby. Jeśli ustawiszdecimation_mode, Meshy użyje go i zignorujetarget_polycount. - Smart Topology: Gdy
model_typetosmart-topology, aai_modeltomeshy-t2lubmeshy-t2.5, Meshy generuje model przy tej liczbie ścianek. Remesh nie jest wykonywany ishould_remeshnie jest potrzebne.
Zakres i wartość domyślna zależą od przypadku:
Przypadek Zakres Domyślna Remesh 100do30000030000meshy-t2100do150004000meshy-t2.5100do3000015000Wartość spoza zakresu zwraca
400.- Remesh: Gdy
- Name
- symmetry_mode
- Type
- string
- ⚠ przestarzałe
- domyślne auto
- Description
Pomiń ten parametr, ponieważ nie wpływa on na wynik. Jego wartości sterowały symetrią podczas generowania:
off: brak symetriiauto: symetria dobrana na podstawie geometrii wejściowejon: wymuszona symetria
- Name
- pose_mode
- Type
- string
- domyślne ""
- Description
Poza wygenerowanego modelu.
Dostępne wartości:
a-pose: poza At-pose: poza T""(pusty ciąg): brak konkretnej pozy
- Name
- is_a_t_pose
- Type
- boolean
- ⚠ przestarzałe
- domyślne false
- Description
Zamiast tego użyj
pose_mode. Czy wygenerować model w pozie A lub T.
- Name
- surface_mode
- Type
- string
- ⚠ przestarzałe
- Description
Zamiast tego użyj
ai_model. Nie wpływa na wynik, ponieważ wybierany przez niego sposób generowania modelu jest wycofany.Akceptowane wartości to
organicihard. Każda inna wartość zwraca400.
- Name
- image_enhancement
- Type
- boolean
- domyślne true
- Description
Czy zoptymalizować obraz wejściowy przed generowaniem.
falsezachowuje dokładny wygląd obrazu wejściowego, bez przetwarzania stylu.Działa tylko z
meshy-6,meshy-7.1lublatest. Przymeshy-6-litelubmodel_type: smart-topology, zwraca400.
- Name
- remove_lighting
- Type
- boolean
- domyślne true
- Description
Czy usunąć blaski i cienie z tekstury koloru bazowego. Wynik jest czystszy i lepiej sprawdza się pod własnym oświetleniem.
Działa tylko z modelem tekstur Meshy 6, a model tekstur, który go nie obsługuje, zwraca
400dlatrue. Przymodel_type: smart-topology, lub przyai_model: meshy-6-litei jego domyślnym modelu tekstur, wysłanie go zwraca400.
- Name
- moderation
- Type
- boolean
- domyślne false
- Description
Czy przeskanować te dane wejściowe pod kątem szkodliwych treści przed generowaniem:
image_urltexture_image_urltexture_prompt
Jeśli Meshy wykryje szkodliwą treść, żądanie zwraca
400, a Meshy nie tworzy zadania.
- Name
- target_formats
- Type
- string[]
- Description
Formaty plików do wygenerowania. Meshy generuje i zwraca tylko formaty, które wymienisz, co może skrócić zadanie. Jeśli pominiesz ten parametr, Meshy generuje każdy format oprócz
3mf, który otrzymasz tylko, jeśli go wymienisz.Dostępne wartości:
glbobjfbxstlusdz3mf
- Name
- auto_size
- Type
- boolean
- domyślne false
- Description
Czy oszacować rzeczywistą wysokość obiektu za pomocą wizji AI i dostosować do niej rozmiar modelu. Meshy umieszcza punkt początkowy na dole, chyba że ustawisz
origin_at.
- Name
- alpha_thumbnail
- Type
- boolean
- domyślne false
- Description
Czy wygenerować również podgląd z przezroczystym tłem (RGBA), zwracany w
alpha_thumbnail_urlpo pobraniu zadania.thumbnail_urlnie ulega zmianie.
- Name
- multi_view_thumbnails
- Type
- boolean
- domyślne false
- Description
Czy wygenerować również podglądy z przodu, prawej strony, tyłu i lewej strony, zwracane w
thumbnail_urlspo pobraniu zadania.thumbnail_urlnie ulega zmianie i nadal pokazuje widok z przodu. Wydłuża to zadanie o około 5 sekund.
auto_size = true- Name
- origin_at
- Type
- string
- domyślne bottom
- Description
Gdzie umieścić punkt początkowy modelu,
bottomlubcenter.
Zwracane dane
Pole result odpowiedzi zawiera identyfikator nowego zadania Obraz na 3D.
Tryby niepowodzenia
- Name
400 - Bad Request- Description
Żądanie nie może zostać wykonane. Komunikat błędu wskazuje, jaki problem został wykryty. Na przykład:
- Brak parametru: Nie wysłano ani
image_url, aniinput_task_id. - Nieprawidłowe zadanie wejściowe:
input_task_idnie jest zadaniem Tekst na obraz ani Obraz na obraz ze statusemSUCCEEDED, które wygenerowało dokładnie jeden obraz. - Nieprawidłowy format obrazu: Obraz
image_urlnie jest plikiem JPG, JPEG, PNG ani WebP. - Niedostępny adres URL: Meshy nie może pobrać obrazu
image_url, ponieważ adres URL zwraca404lub przekracza limit czasu. - Obraz zbyt duży: Obraz
image_urllubtexture_image_urlprzekracza 20 MB. - Nieprawidłowy rozmiar obrazu: Obraz
image_urllubtexture_image_urlma bok krótszy niż 32 piksele lub więcej niż 178 956 970 pikseli (szerokość × wysokość). - Nieprawidłowy Data URI: Ciąg base64 jest zniekształcony.
- Nieprawidłowa kombinacja parametrów:
enable_pbrma wartośćtrue, ashould_texturema wartośćfalse. - Nieobsługiwany model dla Ultra:
geometry_resolutionma wartość2klub4k, zai_model, który tego nie obsługuje. - Nieobsługiwany model dla opcji obrazu: jedna z poniższych sytuacji:
image_enhancementwysłano zai_model: "meshy-6-lite"lubmodel_type: "smart-topology".remove_lightingwysłano zmodel_type: "smart-topology", lub zai_model: "meshy-6-lite"i jego domyślnym modelem tekstur.
- Nieprawidłowy model tekstur:
texture_modelnie jest jedną z dostępnych wartości. - Model tekstur niedostępny:
texture_modelma wartośćmeshy-6zai_modelinnym niżmeshy-6. Wyślijmeshy-7,meshy-n1lubmeshy-6-lite, albo pomiń ten parametr. - Nieobsługiwana opcja dla modelu tekstur: Żądanie wymaga od modelu tekstur opcji, której on nie obsługuje, na przykład
enable_pbr: truezmeshy-n1lub tekstury4kzmeshy-6-lite. Zobacz Modele.
Popraw żądanie, a następnie wyślij je ponownie. Zobacz Błędy.
- Brak parametru: Nie wysłano ani
- Name
401 - Unauthorized- Description
Klucz API jest brakujący lub 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 płatnego planu. Uaktualnij 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_idnie pasuje do żadnego z Twoich zadań. Sprawdź identyfikator zadania, a następnie wyślij żądanie ponownie.
- Name
429 - Too Many Requests- Description
Przekroczono limit szybkości. Odczekaj, a następnie spróbuj ponownie. Zobacz Limity szybkości.
Pobierz zadanie Obraz na 3D
Zwraca zadanie Obraz na 3D na podstawie jego ID.
Request
curl https://api.meshy.ai/openapi/v1/image-to-3d/018a210d-8ba4-705c-b111-1f1776f7f578 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
{
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"type": "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": null,
"consumed_credits": 30
}
Parametry
- Name
- id
- Type
- path
- Description
ID zadania z odpowiedzi tworzenia.
Zwraca
Usuwanie zadania Obraz na 3D
Trwale usuwa zadanie Obraz na 3D, łącznie z jego modelami i danymi. Nie możesz cofnąć usunięcia.
Request
curl --request DELETE \
--url https://api.meshy.ai/openapi/v1/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 użyte 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 Cię zarówno kredyty, jak i wynik. Poczekaj, aż osiągnie
status SUCCEEDED, FAILED lub CANCELED, a następnie je usuń.
Usunięcie zadania w statusie końcowym (SUCCEEDED, FAILED lub CANCELED)
nie zwraca jego kredytów.
Zwraca
200 OK, gdy zadanie zostało usunięte, lub 409 Conflict, gdy zadanie ma status
IN_PROGRESS.
Lista zadań Obraz na 3D
Zwraca listę Twoich zadań Obraz na 3D.
Request
curl https://api.meshy.ai/openapi/v1/image-to-3d?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
[
{
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"type": "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": 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óci400.
- 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ń Obraz na 3D.
Przesyłaj strumieniowo zadanie Obraz na 3D
Przesyła strumieniowo aktualizacje zadania Obraz na 3D jako zdarzenia Server-Sent Events (SSE).
Request
curl -N https://api.meshy.ai/openapi/v1/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": "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": null,
"consumed_credits": 30
}
Parametry
- Name
- id
- Type
- path
- Description
Identyfikator zadania z odpowiedzi tworzenia.
Zwraca
Strumień obiektów zadania Obraz na 3D jako zdarzeń Server-Sent Events.
Każde zdarzenie zawiera pełny obiekt zadania, w tej samej postaci, jaką zwraca punkt końcowy Get. Gdy zadanie ma status PENDING lub IN_PROGRESS, jego pola wynikowe nie mają jeszcze wartości.
Obiekt zadania Obraz na 3D
Obiekt zadania Obraz na 3D opisuje jedno generowanie modelu 3D na podstawie obrazu. Zawiera status, postęp (progress) oraz pliki modelu, gdy zadanie zakończy się powodzeniem.
Właściwości
Example Image to 3D Task Object
{
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"type": "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": "",
"texture_image_url": "",
"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": null,
"consumed_credits": 30
}
- Name
- id
- Type
- string
- Description
Identyfikator zadania. Traktuj go jako nieprzezroczysty ciąg znaków i nie polegaj na jego formacie.
- Name
- type
- Type
- string
- Description
Typ zadania, zawsze
image-to-3d.
- Name
- model_urls
- Type
- object
- Description
Adresy URL do pobrania wygenerowanego modelu 3D, po jednym dla każdego formatu pliku. Format, którego zadanie nie wygenerowało, nie ma odpowiedniego klucza, a nie 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_formatszawiera3mf.
- 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 isave_pre_remeshed_model: true.
- Name
- thumbnail_url
- Type
- string
- Description
Adres URL do pobrania obrazu podglądu modelu 3D. Gdy obecne jest
thumbnail_urls, jest to ten sam obraz cothumbnail_urls.front. Meshy zachowuje to pole dla zachowania kompatybilności wstecznej.
- Name
- alpha_thumbnail_url
- Type
- string
- Description
Adres URL do pobrania wersji
thumbnail_urlz przezroczystym tłem (RGBA). Obecny tylko wtedy, gdy zadanie zostało utworzone zalpha_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żda wartość to podpisany adres URL do obrazu PNG 512×512, wyrenderowanego z tymi samymi materiałami i oświetleniem co
thumbnail_url. Użyj ich do podglądu modelu z kilku kątów, na przykład w potoku wsadowym (batch), bez konieczności pobierania pliku GLB.Obecne tylko wtedy, gdy zadanie zostało utworzone z
multi_view_thumbnails: true, a zadanie osiągnęło statusSUCCEEDED. Zadania utworzone bezmulti_view_thumbnails: truenie zawierają 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ł teksturą.
- Name
- texture_image_url
- Type
- string
- Description
Adres URL do pobrania obrazu, który kierował teksturą.
- Name
- ultra_mode
- Type
- boolean
- ⚠ przestarzałe
- Description
Zamiast tego odczytaj
geometry_resolution.
- Name
- geometry_resolution
- Type
- string
- Description
Poziom Ultra, z jakim uruchomiono zadanie,
2klub4k. Zadaniestandardnie zawiera tego pola.
- Name
- progress
- Type
- integer
- Description
Ile zadania zostało wykonane, w procentach. Wynosi
0do momentu rozpoczęcia zadania i100, gdy zakończy się powodzeniem.
- Name
- started_at
- Type
- timestamp
- Description
Czas rozpoczęcia zadania, w milisekundach Unix. Wynosi
0do 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 wyniku zadania, w milisekundach Unix.
- Name
- finished_at
- Type
- timestamp
- Description
Czas zakończenia zadania, w milisekundach Unix. Wynosi
0do momentu zakończenia zadania.
- Name
- status
- Type
- string
- Description
Status zadania, jeden z:
PENDING,IN_PROGRESS,SUCCEEDED,FAILEDlubCANCELED.
- Name
- texture_urls
- Type
- array
- Description
Mapy tekstur wygenerowane przez zadanie, jako tablica obiektów. Zazwyczaj zawiera jeden obiekt, z następującymi polami:
- Name
base_color- Type
- string
- Description
Adres URL do pobrania mapy koloru podstawowego.
- Name
metallic- Type
- string
- Description
Adres URL do pobrania mapy metaliczności. Pole jest nieobecne, gdy zadanie zostało utworzone z
enable_pbr: false.
- Name
normal- Type
- string
- Description
Adres URL do pobrania mapy normalnych. Pole jest nieobecne, gdy zadanie zostało utworzone z
enable_pbr: false.
- Name
roughness- Type
- string
- Description
Adres URL do pobrania mapy chropowatości. Pole jest nieobecne, gdy zadanie zostało utworzone z
enable_pbr: false.
- Name
emission- Type
- string
- Description
Adres URL do pobrania mapy emisji. Meshy dołącza ją tylko wtedy, gdy zadanie zostało utworzone ze wszystkimi poniższymi warunkami:
ai_model: meshy-6, z domyślnym modelem teksturyenable_pbr: truetexture_resolutionustawioną na2klub4k
- Name
- preceding_tasks
- Type
- integer
- Description
Liczba zadań znajdujących się przed tym 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. Wynosi
null, chyba że status toFAILED. Zobacz Błędy.
- Name
- consumed_credits
- Type
- integer
- Description
Liczba kredytów zużytych przez zadanie. Obecne, gdy status to
PENDING,IN_PROGRESSlubSUCCEEDED. Wynosi0dla zadaniaFAILED, ponieważ Meshy zwraca kredyty, gdy zadanie kończy się niepowodzeniem.