Reteksturowanie API to funkcja, która pozwala na integrację możliwości reteksturowania AI Meshy z Twoją aplikacją. W tej sekcji znajdziesz wszystkie informacje potrzebne do rozpoczęcia pracy z tym API.
Ten punkt końcowy pozwala utworzyć nowe zadanie reteksturowania. Zapoznaj się z
Obiektem zadania reteksturowania, aby zobaczyć, jakie
właściwości są zawarte w obiekcie zadania reteksturowania.
Parametry
Wymagane jest podanie tylko jednego z input_task_id lub model_url. Jeśli podane zostaną oba, priorytet ma input_task_id.
Name
input_task_id
Type
string
Wymagane
Description
ID ukończonego zadania Obraz na 3D lub Tekst na 3D, które chcesz reteksturować.
To zadanie musi być jednym z następujących: Text to 3D Preview, Text to 3D Refine, Image to 3D lub Remesh. Ponadto musi mieć status SUCCEEDED.
Name
model_url
Type
string
Wymagane
Description
Podaj model 3D, który Meshy ma poteksturować. Obsługiwane formaty: .glb, .gltf, .obj, .fbx, .stl.
Model można podać na dwa sposoby:
Publicznie dostępny URL: adres URL dostępny z publicznego internetu.
Data URI: zakodowany w base64 identyfikator URI danych modelu. Użyj typu MIME application/octet-stream. Przykład: data:application/octet-stream;base64,<your base64-encoded model data>.
Wymagane jest podanie dokładnie jednego wejścia stylu: text_style_prompt, image_style_url lub multiview_image_urls. multiview_image_urls nie może być łączone z żadnym z pozostałych dwóch; jeśli podane zostaną zarówno text_style_prompt, jak i image_style_url, priorytet ma image_style_url.
Name
text_style_prompt
Type
string
Wymagane
Description
Opisz tekstem pożądany styl tekstury obiektu. Maksymalnie 800 znaków.
Name
image_style_url
Type
string
Wymagane
Description
Podaj obraz 2D, który poprowadzi proces teksturowania. Obecnie obsługujemy formaty .jpg, .jpeg i .png.
Obraz można podać na dwa sposoby:
Publicznie dostępny URL: adres URL dostępny z publicznego internetu
Data URI: zakodowany w base64 identyfikator URI danych obrazu. Przykład identyfikatora URI danych: data:image/jpeg;base64,<your base64-encoded image data>
Teksturowanie na podstawie obrazu może nie działać optymalnie, jeśli występują istotne różnice geometrii między oryginalnym zasobem a przesłanym obrazem.
Name
multiview_image_urls
Type
string[]
Wymagane
Description
Podaj od 1 do 4 obrazów przedstawiających ten sam obiekt z różnych widoków, aby poprowadzić teksturowanie. Pierwszy obraz to widok główny (przedni); kolejność pozostałych widoków (lewy, tylny, prawy) nie ma znaczenia.
Każdy element przyjmuje te same formaty co image_style_url (publicznie dostępny URL lub identyfikator URI danych base64, .jpg/.jpeg/.png).
Wymaga jawnego ustawienia ai_model: "meshy-7".
Name
ai_model
Type
string
domyślne latest
Description
ID modelu AI używanego do reteksturowania. Dostępne wartości: meshy-5, meshy-6, meshy-7, latest (Meshy 7).
Name
enable_original_uv
Type
boolean
domyślne false
Description
Zachowaj istniejący układ UV modelu zamiast generowania nowego.
Jeśli reteksturujesz model wygenerowany przez Meshy (za pomocą input_task_id lub model_url wskazującego na wynik Meshy), ustaw tę wartość na true, aby ponownie użyć jego zoptymalizowanego układu UV.
Jeśli reteksturujesz przesłany przez siebie model firmy trzeciej, ustaw true, gdy ma on już dobre UV, które chcesz zachować, lub pozostaw false, aby Meshy rozwinęło nowe UV (najlepsze dla modeli bez właściwego mapowania UV).
Name
enable_pbr
Type
boolean
domyślne false
Description
Wygeneruj 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-7 i latest nie generują mapy emisji.
Name
texture_resolution
Type
string
domyślne 2k
Description
Rozdzielczość tekstury koloru bazowego. Jedna z: 2k (2048×2048), 4k (4096×4096) lub 8k (8192×8192). Wyższe rozdzielczości pozwalają uchwycić więcej szczegółów powierzchni.
4k i 8k wymagają ai_modelmeshy-6, meshy-7 lub latest. Przy 8k nie jest generowana mapa emisji.
Name
hd_texture
Type
boolean
⚠ przestarzałe
domyślne false
Description
Zamiast tego użyj texture_resolution — jest to odpowiednik texture_resolution: "4k". Gdy oba są ustawione, priorytet ma texture_resolution.
Name
remove_lighting
Type
boolean
domyślne true
Description
Usuwa podświetlenia i cienie z tekstury koloru bazowego, tworząc czystszy rezultat, który lepiej sprawdza się przy niestandardowych konfiguracjach oświetlenia.
Obsługiwane tylko wtedy, gdy ai_model to meshy-6.
Name
target_formats
Type
string[]
Description
Określa, które formaty plików 3D mają zostać uwzględnione w wyniku. Wygenerowane i zwrócone zostaną tylko żądane formaty, co może skrócić czas wykonania zadania. Gdy parametr jest pominięty, uwzględniane są wszystkie obsługiwane formaty.
Dostępne wartości: glb, obj, fbx, stl, usdz, 3mf
Gdy parametr jest pominięty, generowane są wszystkie formaty oprócz 3mf. 3mf jest dołączane tylko wtedy, gdy zostanie jawnie określone.
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.
Zwracane wartości
Właściwość result odpowiedzi zawiera id zadania nowo utworzonego zadania reteksturowania.
Tryby niepowodzenia
Name
400 - Bad Request
Description
Żądanie było niedopuszczalne. Typowe przyczyny:
Brakujący parametr: musi zostać podane model_url lub input_task_id.
Brakujący styl: musi zostać podane jedno z: text_style_prompt, image_style_url lub multiview_image_urls.
Sprzeczne wejścia stylu: multiview_image_urls nie może być łączone z text_style_prompt ani image_style_url.
Nieobsługiwany model dla wielu widoków: multiview_image_urls wymaga jawnego ustawienia ai_model: "meshy-7".
Model niedostępny: ai_model: "meshy-7" jest wdrażany stopniowo i nie jest jeszcze włączony dla Twojego konta.
Nieprawidłowe zadanie wejściowe: input_task_id musi wskazywać na udane zadanie z obsługiwanego modelu.
Nieprawidłowy format modelu: model_url wskazuje na plik o nieobsługiwanym rozszerzeniu.
Niedostępny URL: nie udało się pobrać model_url, image_style_url lub elementu multiview_image_urls.
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/retexture
# Retexture with text promptcurlhttps://api.meshy.ai/openapi/v1/retexture \-H"Authorization: Bearer ${YOUR_API_KEY}" \-H'Content-Type: application/json' \-d'{ "model_url": "https://cdn.meshy.ai/model/example_model_2.glb", "text_style_prompt": "red fangs, Samurai outfit that fused with japanese batik style", "enable_original_uv": true, "enable_pbr": true }'# Retexture with image style and PBRcurlhttps://api.meshy.ai/openapi/v1/retexture \-H"Authorization: Bearer ${YOUR_API_KEY}" \-H'Content-Type: application/json' \-d'{ "model_url": "https://cdn.meshy.ai/model/example_model_2.glb", "image_style_url": "https://cdn.meshy.ai/image/example_image.jpg", "ai_model": "latest", "enable_pbr": true, "enable_original_uv": true }'
Ten punkt końcowy pozwala na pobranie zadania Reteksturowania, pod warunkiem posiadania prawidłowego id zadania.
Odwołaj się do Obiekt zadania Reteksturowania, aby zobaczyć, które
właściwości są zawarte w obiekcie zadania Reteksturowania.
Parametry
Name
id
Type
path
Description
Unikalny identyfikator dla zadania Reteksturowania do pobrania.
{"id":"018a210d-8ba4-705c-b111-1f1776f7f578","type":"retexture","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=***","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=***" },"thumbnail_url":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***","text_style_prompt":"red fangs, Samurai outfit that fused with japanese batik style","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" } ],"task_error": {"message":"" },"consumed_credits":10}
[ {"id":"018a210d-8ba4-705c-b111-1f1776f7f578","type":"retexture","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=***" },"thumbnail_url":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***","text_style_prompt":"red fangs, Samurai outfit that fused with japanese batik style","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":10 }]
Obiekt Zadania Reteksturowania jest jednostką pracy, którą Meshy używa do generowania 3D tekstury z wejść tekstowych lub obrazów. Model ma następujące właściwości:
Właściwości
Name
id
Type
string
Description
Unikalny identyfikator zadania. Chociaż używamy k-sortowalnego UUID dla identyfikatorów zadań jako szczegółu implementacyjnego, nie powinieneś robić żadnych założeń dotyczących formatu id.
Name
type
Type
string
Description
Typ zadania Reteksturowania. Wartość to retexture.
Name
model_urls
Type
object
Description
Pobieralny URL do teksturowanego pliku modelu 3D wygenerowanego przez Meshy.
Name
glb
Type
string
Description
Pobieralny URL do pliku GLB.
Name
fbx
Type
string
Description
Pobieralny URL do pliku FBX.
Name
obj
Type
string
Description
Pobieralny URL do pliku OBJ.
Name
usdz
Type
string
Description
Pobieralny URL do pliku USDZ.
Name
mtl
Type
string
Description
Pobieralny URL do pliku MTL, zwracany wraz z eksportami OBJ, gdy tekstury są obecne.
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
text_style_prompt
Type
string
Description
To jest tekstowy prompt, który został użyty do stworzenia zadania teksturowania.
Name
image_style_url
Type
string
Description
To jest wejściowy obraz, który został użyty do stworzenia zadania teksturowania.
Name
multiview_image_urls
Type
string[]
Description
Pobieralne URL-e do obrazów referencyjnych z wielu widoków, które zostały użyte do stworzenia zadania teksturowania. Obecne tylko wtedy, gdy zadanie zostało stworzone z multiview_image_urls.
Name
thumbnail_url
Type
string
Description
Pobieralny URL do miniatury obrazu 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 stworzone z alpha_thumbnail: true i przezroczysty podgląd został pomyślnie wygenerowany; w przeciwnym razie to pole jest pomijane.
Name
progress
Type
integer
Description
Postęp zadania. Jeśli zadanie jeszcze się nie rozpoczęło, 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 jeszcze się nie rozpoczęło, 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
expires_at
Type
timestamp
Description
Znacznik czasu, kiedy wynik zadania wygasa, w milisekundach.
Name
finished_at
Type
timestamp
Description
Znacznik czasu, kiedy zadanie zostało zakończone, w milisekundach. Jeśli zadanie jeszcze się nie zakończyło, 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 podstawowego koloru.
Name
metallic
Type
string
Description
Pobieralny URL do obrazu mapy metaliczności.
Jeśli zadanie jest stworzone z enable_pbr: false, ta właściwość będzie pominięta.
Name
normal
Type
string
Description
Pobieralny URL do obrazu mapy normalnych.
Jeśli zadanie jest stworzone z enable_pbr: false, ta właściwość będzie pominięta.
Name
roughness
Type
string
Description
Pobieralny URL do obrazu mapy szorstkości.
Jeśli zadanie jest stworzone z enable_pbr: false, ta właściwość będzie pominięta.
Name
emission
Type
string
Description
Pobieralny URL do obrazu mapy emisji.
Jeśli zadanie jest stworzone z enable_pbr: false, lub ai_model to meshy-5, ta właściwość będzie pominięta.
Name
preceding_tasks
Type
integer
Description
Liczba poprzedzających zadań.
Ta właściwość jest obecna 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 Modelu Zadania Reteksturowania
{"id":"018a210d-8ba4-705c-b111-1f1776f7f578","type":"retexture","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=***" },"text_style_prompt":"red fangs, Samurai outfit that fused with japanese batik style","image_style_url":"https://assets.meshy.ai/***/image/example_image.jpg?Expires=***","thumbnail_url":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***","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":10}