lowpoly zostanie wycofany 30 paź 2026. Zmień model przed tymi datami, aby uniknąć błędów żądań.
Retexture API
Retexture API to funkcja, która umożliwia zintegrowanie możliwości reteksturowania AI firmy Meshy z własną 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 Retexture, aby zobaczyć, jakie
właściwości są zawarte w obiekcie zadania Retexture.
Zadanie jest wykonywane w tle. Informacje o tym, ile zwykle to trwa, znajdziesz w Czasach przetwarzania.
Parametry
Wymagane jest podanie tylko jednego z input_task_id lub model_url. Jeśli podane są 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 poddać reteksturowaniu.
To zadanie musi być jednym z następujących: Tekst na 3D Preview, Tekst na 3D Refine, Obraz na 3D lub Remesh. Ponadto musi mieć status SUCCEEDED.
Name
model_url
Type
string
Wymagane
Description
Podaj model 3D, który Meshy ma poddać teksturowaniu. Obsługiwane formaty: .glb, .gltf, .obj, .fbx, .stl.
Maksymalny rozmiar pliku: 400 MB dla adresu URL http lub https, 100 MB dla data: URI.
Plik GLB, glTF, FBX lub OBJ przekraczający 100 MB może mieć maksymalnie 10 000 000 ścianek. Ścianki liczone są jako trójkąty: quad liczy się jako 2, a siatka narysowana więcej niż raz liczy się raz na każdą kopię. Powyżej 100 MB plik FBX musi być binarnym FBX w wersji 7.1 lub nowszej, a plik GLB lub glTF nie może używać kompresji Draco.
Istnieją dwa sposoby dostarczenia modelu:
Publicznie dostępny URL: Adres URL dostępny z publicznego internetu.
Data URI: Zakodowany w base64 Data URI modelu. Użyj typu MIME application/octet-stream. Przykład: data:application/octet-stream;base64,<your base64-encoded model data>.
Wymagane jest dokładnie jedno wejście 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 są 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 pokieruje procesem teksturowania. Obecnie obsługujemy formaty .jpg, .jpeg, .png i .webp.
Maksymalny rozmiar pliku: 20 MB.
Istnieją dwa sposoby dostarczenia obrazu:
Publicznie dostępny URL: Adres URL dostępny z publicznego internetu
Data URI: Zakodowany w base64 Data URI obrazu. Przykład Data URI: data:image/jpeg;base64,<your base64-encoded image data>
Teksturowanie na podstawie obrazu może działać nieoptymalnie, jeśli istnieją istotne różnice geometrii między oryginalnym assetem a przesłanym obrazem.
Name
multiview_image_urls
Type
string[]
Wymagane
Description
Podaj od 1 do 4 obrazów pokazujących ten sam obiekt z różnych widoków, aby pokierować teksturowaniem. Pierwszy obraz to główny (przedni) widok; kolejność pozostałych widoków (lewy, tylny, prawy) nie ma znaczenia.
Każdy element akceptuje te same formaty co image_style_url (publicznie dostępny URL lub zakodowany w base64 Data URI, .jpg/.jpeg/.png/.webp).
Maksymalny rozmiar pliku: 20 MB na obraz.
Wymaga jawnego podania 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-6-lite, 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 generować nowy.
Jeśli reteksturujesz model wygenerowany przez Meshy (poprzez input_task_id lub model_url wskazujący na wynik Meshy), ustaw to na true, aby ponownie użyć jego zoptymalizowanego układu UV.
Jeśli reteksturujesz model firm trzecich, który przesłałeś, ustaw true, gdy ma on już dobre UV, które chcesz zachować, lub pozostaw false, aby pozwolić Meshy rozwinąć nowe UV (najlepsze dla modeli bez prawidłowego mapowania UV).
Name
enable_pbr
Type
boolean
domyślne false
Description
Generuj mapy PBR (metallic, roughness, normal) oprócz podstawowego koloru. Mapa emisji jest również dołączana, gdy ai_model to meshy-6, z wyjątkiem texture_resolution: 8k. meshy-6-lite, meshy-7 i latest nie generują mapy emisji.
Name
texture_resolution
Type
string
domyślne 2k
Description
Rozdzielczość tekstury podstawowego koloru. Jedna z: 2k (2048×2048), 4k (4096×4096) lub 8k (8192×8192). Wyższe rozdzielczości uchwycą więcej szczegółów powierzchni.
4k i 8k wymagają ai_modelmeshy-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 — odpowiednik texture_resolution: "4k". Gdy ustawione są oba, texture_resolution ma pierwszeństwo.
Name
remove_lighting
Type
boolean
domyślne true
Description
Usuwa podświetlenia i cienie z tekstury podstawowego koloru, dając czystszy rezultat, który lepiej sprawdza się w niestandardowych ustawieniach oświetlenia.
Stosowane tylko wtedy, gdy ai_model to meshy-6, a texture_resolution to 2k lub 4k. Przy meshy-7 lub latest, oraz przy 8k, jest akceptowane, ale ignorowane. Przy meshy-6-lite wysłanie tego z jakąkolwiek wartością zwraca 400.
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ę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 jawnie wskazany.
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 Retexture.
Tryby niepowodzeń
Name
400 - Bad Request
Description
Żądanie było niedopuszczalne. Typowe przyczyny:
Brakujący parametr: Musi zostać podany model_url lub input_task_id.
Brakujący styl: Musi zostać podany jeden 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 podania ai_model: "meshy-7".
Model niedostępny: ai_model: "meshy-7" oraz ai_model: "meshy-6-lite" są wdrażane stopniowo i mogą nie być jeszcze włączone dla Twojego konta.
Nieprawidłowe zadanie wejściowe: input_task_id musi odnosić się do zakończonego sukcesem zadania 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.
Plik modelu zbyt duży: Plik model_url przekracza 400 MB (adres URL http lub https) lub 100 MB (data: URI).
Zbyt wiele ścianek: Plik model_url ma ponad 100 MB i więcej niż 10 000 000 ścianek. Zmniejsz liczbę ścianek, a następnie wyślij plik ponownie.
ASCII FBX powyżej 100 MB: Plik model_url jest plikiem ASCII FBX przekraczającym 100 MB. Wyślij go jako binarny FBX lub GLB.
Nieczytelny plik modelu: Plik model_url ma ponad 100 MB, a jego nagłówek nie może zostać odczytany, na przykład skompresowany Draco plik GLB lub glTF, albo binarny FBX starszy niż 7.1.
Nagłówek modelu zbyt złożony: Plik model_url ma ponad 100 MB, a jego nagłówek zawiera zbyt wiele siatek, węzłów lub rekordów do sprawdzenia. Zmniejsz liczbę obiektów w pliku, a następnie wyślij go ponownie.
Obraz zbyt duży: Obraz image_style_url lub element multiview_image_urls przekracza 20 MB.
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": "<your publicly accessible image url or base64-encoded data URI>", "ai_model": "latest", "enable_pbr": true, "enable_original_uv": true }'
Ten punkt końcowy umożliwia pobranie zadania Reteksturowania na podstawie prawidłowego id zadania.
Zapoznaj się z sekcją Obiekt zadania Reteksturowania, aby zobaczyć,
jakie właściwości są zawarte w obiekcie zadania Reteksturowania.
Parametry
Name
id
Type
path
Description
Unikalny identyfikator zadania Reteksturowania do pobrania.
Zwraca
Odpowiedź zawiera obiekt zadania Reteksturowania. Zapoznaj się z sekcją
Obiekt zadania Reteksturowania, aby poznać szczegóły.
{"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" } ],"task_error": {"message":"" },"consumed_credits":10}
Ten punkt końcowy trwale usuwa zadanie reteksturowania, w tym wszystkie powiązane modele i dane. Ta operacja jest nieodwracalna.
Parametry ścieżki
Name
id
Type
path
Description
ID zadania reteksturowania do usunięcia.
Status zadania
Zadanie, które wciąż ma status PENDING, zostaje usunięte, a kredyty
pobrane w momencie utworzenia zadania są zwracane.
Zadanie, które jest już w stanie IN_PROGRESS, nie może zostać usunięte: żądanie
zostaje odrzucone z kodem 409 Conflict, a zadanie nadal działa. Kredyty za zadanie,
które worker już rozpoczął przetwarzać, nie podlegają zwrotowi, więc usunięcie go
w trakcie wykonywania kosztowałoby Cię zarówno kredyty, jak i wynik. Poczekaj, aż
osiągnie 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.
// 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."}
[ {"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" } ],"preceding_tasks":0,"task_error": {"message":"" },"consumed_credits":10 }]
Obiekt zadania Reteksturowania to jednostka pracy, której Meshy używa do generowania tekstury 3D na podstawie danych wejściowych w postaci tekstu lub obrazu.
Model 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 UUID z możliwością sortowania k-sortable dla identyfikatorów zadań, nie należy przyjmować żadnych założeń dotyczących formatu tego identyfikatora.
Name
type
Type
string
Description
Typ zadania Reteksturowania. Wartość to retexture.
Name
model_urls
Type
object
Description
Pobieralny URL do pliku modelu 3D z teksturą 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 eksportem OBJ, gdy obecne są tekstury.
Name
stl
Type
string
Description
Pobieralny URL do pliku STL.
Name
3mf
Type
string
Description
Pobieralny URL do pliku 3MF. Występuje tylko wtedy, gdy 3mf zostało zażądane poprzez target_formats.
Name
text_style_prompt
Type
string
Description
To jest prompt tekstowy, który został użyty do utworzenia zadania teksturowania.
Name
image_style_url
Type
string
Description
To jest obraz wejściowy, który został użyty do utworzenia 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 utworzenia zadania teksturowania. Występuje tylko wtedy, gdy zadanie zostało utworzone z multiview_image_urls.
Name
thumbnail_url
Type
string
Description
Pobieralny URL do miniatury pliku modelu.
Name
alpha_thumbnail_url
Type
string
Description
Pobieralny URL do wersji z przezroczystym tłem (RGBA) pliku thumbnail_url. Występuje 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
progress
Type
integer
Description
Postęp zadania. Jeśli zadanie jeszcze się nie rozpoczęło, ta właściwość wynosi 0. Gdy zadanie zakończy się sukcesem, 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ść wynosi 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 czasu GMT jest reprezentowany jako 1693569600000. Dotyczy to
wszystkich znaczników czasu w Meshy API.
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ść 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 URL tekstur wygenerowanych przez zadanie. Zwykle zawiera ona tylko jeden obiekt URL tekstury. Każdy URL tekstury posiada 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 zostało 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 zostało utworzone z enable_pbr: false, ta właściwość zostanie pominięta.
Name
roughness
Type
string
Description
Pobieralny URL do obrazu mapy chropowatości.
Jeśli zadanie zostało 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 zostało utworzone z enable_pbr: false, z ai_model ustawionym na meshy-6-lite, meshy-7 lub latest, lub z texture_resolution: 8k, ta właściwość zostanie pominięta.
Name
preceding_tasks
Type
integer
Description
Liczba poprzedzających zadań.
Ta właściwość występuje tylko wtedy, gdy status zadania to PENDING.
Name
task_error
Type
object
Description
Szczegóły błędu dla nieudanych zadań. Pełny opis 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 Retexture Task Model
{"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" } ],"preceding_tasks":0,"task_error": {"message":"" },"consumed_credits":10}