API Tekst na 3D to funkcja, która pozwala na integrację możliwości Tekst na 3D firmy Meshy z Twoją własną aplikacją. W tej sekcji znajdziesz wszystkie informacje potrzebne do rozpoczęcia pracy z tym API.
Tekst na 3D używa dwustopniowego przepływu pracy. Najpierw utwórz zadanie podglądu (mode: "preview") w celu wygenerowania siatki 3D bez tekstury, aby móc ocenić kształt. Następnie przekaż ID ukończonego zadania podglądu do zadania dopracowania (mode: "refine") w celu nałożenia tekstury na siatkę. Oba kroki korzystają z tego samego punktu końcowego.
Ten punkt końcowy tworzy zadanie podglądu Tekst na 3D, które generuje siatkę 3D bez tekstury (tylko geometria) na podstawie promptu tekstowego. Jest to pierwszy krok dwuetapowego procesu. Po pomyślnym zakończeniu podglądu użyj zwróconego identyfikatora zadania, aby utworzyć zadanie dopracowania w celu nałożenia tekstur. Zapoznaj się z
Obiektem zadania Tekst na 3D, aby poznać pełny schemat odpowiedzi.
Parametry
Name
mode
Type
string
Wymagane
Description
To pole powinno być ustawione na "preview" podczas tworzenia zadania podglądu.
Name
prompt
Type
string
Wymagane
Description
Opisz, jakiego rodzaju obiektem jest model 3D. Maksymalnie 800 znaków.
Name
model_type
Type
string
domyślne standard
Description
Określ typ generowania siatki 3D.
Dostępne wartości:
standard: Zwykłe generowanie siatki 3D o wysokiej szczegółowości.
smart-topology: Wybierz model Smart Topology za pomocą ai_model (meshy-t2).
lowpoly (przestarzałe): Generuje siatkę low-poly zoptymalizowaną pod kątem czystszych wielokątów. Zalecamy używanie zamiast tego smart-topology.
Gdy wybrano smart-topology, should_remesh i decimation_mode są ignorowane, a akceptowane jest tylko topology: triangle.
Gdy wybrano lowpoly, ai_model, topology, target_polycount i should_remesh są ignorowane.
Name
ai_model
Type
string
domyślne latest
Description
Identyfikator modelu do użycia. Dostępne wartości zależą od model_type.
meshy-t2 (domyślne): model Smart Topology — czystsza topology, natywnie oddzielone części, wynik w postaci trójkątów oraz liczba ścian, którą można ustawić za pomocą target_polycount.
Name
ultra_mode
Type
boolean
domyślne false
Description
Włącza generowanie Ultra dla geometrii o wyższej wierności z dokładniejszymi szczegółami powierzchni. Generowanie trwa dłużej i dolicza 5 kredytów.
Obsługiwane tylko wtedy, gdy ai_model to meshy-7 (lub latest), i tylko w trybie preview.
Name
should_remesh
Type
boolean
domyślne false (meshy-6, meshy-7), true (others)
Description
Kontroluje, czy włączyć fazę remesh. W przypadku 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ę z przewagą czworokątów.
triangle: Generuje zdecymowaną siatkę trójkątną.
Wynik Smart Topology jest wyłącznie trójkątny. Żądanie quad razem z ai_model: meshy-t2 zwraca błąd.
Name
decimation_mode
Type
integer
Description
Włącz adaptacyjną decymację, ustawiając poziom liczby wielokątów. Gdy jest ustawiony, target_polycount jest ignorowany.
Dostępne wartości:
1: Adaptacyjna — bardzo wysoka 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
target_polycount
Type
integer
Description
Docelowa liczba wielokątów (ścian) w wyniku. Rzeczywista liczba może odbiegać od wartości docelowej w zależności od geometrii.
target_polycount ma zastosowanie w dwóch niezależnych przypadkach:
Remesh — z should_remesh: true dla modelu standard. Siatka jest poddawana remesh (decymacji) do w przybliżeniu tej liczby. Zakres od 100 do 300 000, domyślnie 30 000. Jeśli ustawiono decimation_mode, ma on priorytet, a target_polycount jest ignorowany.
Smart Topology — z model_type: smart-topology i ai_model: meshy-t2. Model jest generowany bezpośrednio z tą liczbą ścian; nie wykonuje się remesh i should_remesh nie jest wymagane. Zakres od 100 do 15 000, domyślnie 4 000.
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 tryb 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): Nie zastosowano żadnej 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
art_style
Type
string
⚠ przestarzałe
domyślne realistic
Description
Nieobsługiwane przez Meshy-6. Żądania korzystające z Meshy-6 będą ignorować art_style, a niektóre kombinacje mogą powodować błędy. Dostępne wartości: realistic, sculpture.
enable_pbr powinien być ustawiony na false podczas używania stylu Sculpture, ponieważ styl Sculpture generuje własny zestaw map PBR.
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.
Sprawdzeniu zostanie poddany tekst z pola prompt.
Name
target_formats
Type
string[]
Description
Określa, które formaty plików 3D mają zostać uwzględnione w wyniku. Zostaną wygenerowane i zwrócone tylko żądane formaty, co może skrócić czas realizacji zadania. Gdy pominięte, uwzględnione są wszystkie obsługiwane formaty.
Dostępne wartości: glb, obj, fbx, stl, usdz, 3mf
Gdy pominięte, generowane są wszystkie formaty oprócz 3mf. 3mf jest dołączany tylko wtedy, gdy zostanie wyraźnie określony.
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
auto_size
Type
boolean
domyślne false
Description
Gdy ustawione na true, usługa wykorzystuje wizję AI, aby automatycznie oszacować rzeczywistą wysokość obiektu i odpowiednio zmienić rozmiar modelu. Punkt początkowy domyślnie przyjmuje wartość bottom, chyba że origin_at zostanie jawnie ustawiony.
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 Tekst na 3D.
Tryby niepowodzenia
Name
400 - Bad Request
Description
Żądanie było nieprawidłowe. Typowe przyczyny:
Brakujący parametr: Brak wymaganego parametru (np. prompt, mode).
Nieprawidłowy parametr: art_style nie jest jedną z dozwolonych wartości.
Zbyt długi prompt: prompt przekracza limit znaków.
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/v2/text-to-3d
# Simple preview with required params onlycurlhttps://api.meshy.ai/openapi/v2/text-to-3d \-H'Authorization: Bearer ${YOUR_API_KEY}' \-H'Content-Type: application/json' \-d'{ "mode": "preview", "prompt": "a monster mask"}'# Preview with remesh and A-posecurlhttps://api.meshy.ai/openapi/v2/text-to-3d \-H'Authorization: Bearer ${YOUR_API_KEY}' \-H'Content-Type: application/json' \-d'{ "mode": "preview", "prompt": "a futuristic robot warrior", "should_remesh": true, "target_polycount": 100000, "pose_mode": "a-pose", "target_formats": ["glb"]}'
Ten punkt końcowy tworzy zadanie refine Tekst na 3D, które nakłada teksturę na ukończoną siatkę podglądu. Musisz podać preview_task_id z pomyślnie ukończonego zadania podglądu. To jest drugi krok dwuetapowego procesu.
Parametry
Name
mode
Type
string
Wymagane
Description
To pole powinno być ustawione na "refine" podczas tworzenia zadania refine.
Name
preview_task_id
Type
string
Wymagane
Description
Odpowiadające id zadania podglądu.
Status danego zadania podglądu musi mieć wartość SUCCEEDED.
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 ma wartość meshy-6, z wyjątkiem texture_resolution: 8k (w takim przypadku mapa emisji nie jest generowana). meshy-7 (oraz latest) nie generuje 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. Dotyczy tylko trybu refine.
4k i 8k wymagają ai_model o wartości meshy-6, meshy-7 lub latest. Przy 8k mapa emisji nie jest generowana.
Name
hd_texture
Type
boolean
⚠ przestarzałe
domyślne false
Description
Użyj zamiast tego texture_resolution — odpowiednika texture_resolution: "4k". Gdy oba parametry są ustawione, pierwszeństwo ma texture_resolution.
Name
texture_prompt
Type
string
Description
Podaj dodatkowy prompt tekstowy, aby ukierunkować proces teksturowania. Maksymalnie 800 znaków.
Name
texture_image_url
Type
string
Description
Podaj obraz 2D, aby ukierunkować proces teksturowania. Obecnie obsługujemy formaty .jpg, .jpeg i .png.
Istnieją dwa sposoby dostarczenia obrazu:
Publicznie dostępny URL: adres URL dostępny z publicznego internetu
Data URI: zakodowany w base64 identyfikator URI danych obrazu. Przykład Data URI: data:image/jpeg;base64,<your base64-encoded image data>
Teksturowanie obrazem może nie działać optymalnie, jeśli istnieją znaczne różnice geometrii między oryginalnym zasobem a przesłanym obrazem. Tylko jeden z parametrów texture_image_url lub texture_prompt może być użyty do ukierunkowania procesu teksturowania. Jeśli podane zostaną oba parametry, domyślnie do teksturowania modelu zostanie użyty texture_prompt.
Name
ai_model
Type
string
domyślne latest
Description
ID modelu używanego do refine. Dostępne wartości: meshy-5, meshy-6, meshy-7, latest (Meshy 7).
latest jest tu rozwiązywane dokładnie tak samo jak w zadaniu podglądu (obecnie Meshy 7), więc podgląd latest i jego refine latest zawsze trafiają na ten sam model tekstur.
Name
moderation
Type
boolean
domyślne false
Description
Gdy ustawione na true, treść wejściowa zostanie automatycznie przeskanowana pod kątem potencjalnie szkodliwych treści. Jeśli zostaną wykryte szkodliwe treści, zadanie nie przejdzie do etapu generowania.
Zarówno tekst z texture_prompt, jak i obraz z texture_image_url zostaną przeskanowane.
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.
Działa tylko wtedy, gdy ai_model ma wartość meshy-6. W przypadku meshy-7 (oraz latest) parametr jest akceptowany, ale ignorowany.
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 ukończenia zadania. Gdy pominięte, uwzględniane są wszystkie obsługiwane formaty.
Dostępne wartości: glb, obj, fbx, stl, usdz, 3mf
Gdy pominięte, generowane są wszystkie formaty poza 3mf. 3mf jest uwzględniany tylko wtedy, gdy zostanie wyraźnie określony.
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
auto_size
Type
boolean
domyślne false
Description
Gdy ustawione na true, usługa korzysta z wizji AI, aby automatycznie oszacować rzeczywistą wysokość obiektu i odpowiednio przeskalować model. Punkt początkowy domyślnie przyjmie wartość bottom, chyba że origin_at zostanie jawnie ustawione.
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 Tekst na 3D.
Tryby niepowodzenia
Name
400 - Bad Request
Description
Żądanie było niepoprawne. Typowe przyczyny:
Nieprawidłowy identyfikator zadania: preview_task_id jest nieprawidłowy lub nie istnieje.
Zadanie nie jest gotowe: zadanie podglądu jeszcze się nie powiodło.
Niezgodność modelu: model AI zadania podglądu jest niezgodny z żądanym modelem refine.
Name
401 - Unauthorized
Description
Uwierzytelnianie nie powiodło się. Sprawdź swój klucz API.
Name
402 - Payment Required
Description
Niewystarczająca liczba kredytów do wykonania tego zadania.
Name
404 - Not Found
Description
Nie znaleziono zadania podglądu określonego przez preview_task_id.
Ten punkt końcowy pozwala na pobranie zadania Tekst na 3D, podając prawidłowy id zadania.
Odnieś się do Obiektu zadania Tekst na 3D, aby zobaczyć, które
właściwości są zawarte w obiekcie zadania Tekst na 3D.
Ten punkt końcowy działa zarówno dla zadań podglądu, jak i dopracowania.
Parametry
Name
id
Type
path
Description
Unikalny identyfikator dla zadania Tekst na 3D do pobrania.
Obiekt Zadania Tekst na 3D to jednostka pracy, którą Meshy śledzi, aby wygenerować model 3D z wejściowego tekstu. Istnieją dwa etapy API Tekst na 3D, preview i refine. Etap podglądu służy do generowania modelu 3D tylko z siatką, a etap dopracowania do generowania modelu 3D z teksturą na podstawie wyniku etapu podglądu.
Obiekt ma następujące właściwości:
Właściwości
Name
id
Type
string
Description
Unikalny identyfikator dla zadania. Chociaż używamy UUID sortowalnego przez k dla identyfikatorów zadań jako szczegółu implementacji, nie powinieneś zakładać żadnego formatu identyfikatora.
Name
type
Type
string
Description
Typ zadania Tekst na 3D. Możliwe wartości to text-to-3d-preview dla zadań etapu podglądu i text-to-3d-refine dla zadań etapu dopracowania.
Name
model_urls
Type
object
Description
Pobieralny URL do pliku modelu 3D z teksturą wygenerowanego przez Meshy. Właściwość dla formatu zostanie pominięta, jeśli format nie zostanie wygenerowany, zamiast zwracania pustego ciągu.
Name
glb
Type
string
Description
Pobieralny URL do pliku GLB.
Name
fbx
Type
string
Description
Pobieralny URL do pliku FBX.
Name
usdz
Type
string
Description
Pobieralny URL do pliku USDZ.
Name
obj
Type
string
Description
Pobieralny URL do pliku OBJ.
Name
mtl
Type
string
Description
Pobieralny URL do pliku MTL.
Name
stl
Type
string
Description
Pobieralny URL do pliku STL.
Name
3mf
Type
string
Description
Pobieralny URL do pliku 3MF. Obecny tylko wtedy, gdy 3mf został zażądany przez target_formats.
Name
prompt
Type
string
Description
To jest niezmodyfikowany prompt, który został użyty do stworzenia zadania.
Name
negative_prompt
Type
string
⚠ przestarzałe
Description
Utrzymywany dla zgodności wstecznej. To pole nie ma wpływu na generowane modele.
Name
art_style
Type
string
⚠ przestarzałe
Description
Niezmieniony art_style, który został użyty do stworzenia zadania podglądu. Nieobsługiwany przez Meshy-6.
Name
texture_richness
Type
string
⚠ przestarzałe
Description
Utrzymywany dla zgodności wstecznej. To pole nie ma wpływu na generowane modele.
Name
texture_prompt
Type
string
Description
Dodatkowy tekstowy prompt dostarczony w celu kierowania procesem teksturowania podczas etapu dopracowania.
Name
ultra_mode
Type
boolean
Description
Odbija wartość ultra_mode, z którą zostało stworzone zadanie podglądu. Obecny tylko dla zadań podglądu meshy-7 (lub latest), które wyraźnie ustawiły ultra_mode; w przeciwnym razie pominięty.
Name
texture_image_url
Type
string
Description
Pobieralny URL do obrazu tekstury, który został użyty do kierowania procesem teksturowania.
Name
thumbnail_url
Type
string
Description
Pobieralny URL do obrazu miniatury pliku modelu.
Name
alpha_thumbnail_url
Type
string
Description
Pobieralny URL do wersji thumbnail_url z przezroczystym tłem (RGBA). Obecny tylko wtedy, gdy zadanie zostało utworzone z alpha_thumbnail: true i przezroczysty podgląd został pomyślnie wygenerowany; w przeciwnym razie to pole jest pomijane.
Name
video_url
Type
string
⚠ przestarzałe
Description
Pobieralny URL do wideo podglądu. Zostanie usunięty w przyszłej wersji.
Name
progress
Type
integer
Description
Postęp zadania. Jeśli zadanie nie zostało jeszcze rozpoczęte, ta właściwość będzie miała wartość 0. Gdy zadanie zakończy się sukcesem, stanie się 100.
Name
started_at
Type
timestamp
Description
Znacznik czasu, kiedy zadanie zostało rozpoczęte, w milisekundach. Jeśli zadanie nie zostało jeszcze rozpoczęte, ta właściwość będzie miała wartość 0.
Znacznik czasu reprezentuje liczbę milisekund, które upłynęły od 1 stycznia 1970 UTC, zgodnie ze standardem RFC 3339.
Na przykład, piątek, 1 września 2023 12:00:00 GMT jest reprezentowany jako 1693569600000. Dotyczy to wszystkich znaczników czasu w Meshy API.
Name
created_at
Type
timestamp
Description
Znacznik czasu, kiedy zadanie zostało utworzone, w milisekundach.
Name
finished_at
Type
timestamp
Description
Znacznik czasu, kiedy zadanie zostało zakończone, w milisekundach. Jeśli zadanie nie zostało jeszcze zakończone, ta właściwość będzie miała wartość 0.
Name
status
Type
string
Description
Status zadania. Możliwe wartości to PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
texture_urls
Type
array
Description
Tablica obiektów URL tekstur, które są generowane z zadania. Zwykle zawiera tylko jeden obiekt URL tekstury. Każdy URL tekstury ma następujące właściwości:
Name
base_color
Type
string
Description
Pobieralny URL do obrazu mapy koloru bazowego.
Name
metallic
Type
string
Description
Pobieralny URL do obrazu mapy metaliczności.
Jeśli zadanie jest utworzone z enable_pbr: false, ta właściwość zostanie pominięta.
Name
normal
Type
string
Description
Pobieralny URL do obrazu mapy normalnych.
Jeśli zadanie jest utworzone z enable_pbr: false, ta właściwość zostanie pominięta.
Name
roughness
Type
string
Description
Pobieralny URL do obrazu mapy szorstkości.
Jeśli zadanie jest utworzone z enable_pbr: false, ta właściwość zostanie pominięta.
Name
emission
Type
string
Description
Pobieralny URL do obrazu mapy emisji.
Jeśli zadanie jest utworzone z enable_pbr: false, lub ai_model to meshy-5, ta właściwość zostanie pominięta.
Name
preceding_tasks
Type
integer
Description
Liczba poprzedzających zadań.
Wartość tego pola ma znaczenie tylko wtedy, gdy status zadania to PENDING.
Name
task_error
Type
object
Description
Szczegóły błędu dla nieudanych zadań. Zobacz Błędy dla pełnej referencji obiektu task_error.
Name
consumed_credits
Type
integer
Description
Liczba kredytów zużytych przez to zadanie. Obecne, gdy status zadania to PENDING, IN_PROGRESS, lub SUCCEEDED. Zwraca 0 dla zadań FAILED (kredyty są zwracane w przypadku niepowodzenia).
Przykład Obiektu Zadania Tekst na 3D
{"id":"018a210d-8ba4-705c-b111-1f1776f7f578","type":"text-to-3d-preview","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=***","usdz":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.usdz?Expires=***","obj":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.obj?Expires=***","mtl":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.mtl?Expires=***","stl":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***" },"prompt":"a monster mask","texture_prompt":"green slimy skin with scales and warts","texture_image_url":"","thumbnail_url":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***","progress":100,"started_at":1692771667037,"created_at":1692771650657,"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":20}