Retexture API — це функція, яка дозволяє інтегрувати можливості AI-ретекстурування Meshy у вашу власну програму. У цьому розділі ви знайдете всю інформацію,
необхідну для того, щоб почати роботу з цим API.
Ця кінцева точка дозволяє створити нову задачу Ретекстурування. Зверніться до
Об'єкт задачі Retexture, щоб побачити, які
властивості включені в об'єкт задачі Retexture.
Параметри
Обов'язковим є лише один з параметрів input_task_id або model_url. Якщо надані обидва, пріоритет має input_task_id.
Name
input_task_id
Type
string
Обов'язковий
Description
ID завершеної задачі Зображення у 3D або Текст у 3D, яку ви хочете ретекстурувати.
Ця задача повинна бути однією з наступних: Text to 3D Preview, Text to 3D Refine, Image to 3D або Remesh. Крім того, вона повинна мати статус SUCCEEDED.
Публічно доступний URL: URL, доступний з публічного інтернету.
Data URI: base64-закодований data URI моделі. Використовуйте MIME type application/octet-stream. Приклад: data:application/octet-stream;base64,<your base64-encoded model data>.
Обов'язковим є рівно один вхідний параметр стилю: text_style_prompt, image_style_url або multiview_image_urls. multiview_image_urls не можна комбінувати з жодним із двох інших; якщо надані обидва text_style_prompt та image_style_url, пріоритет має image_style_url.
Name
text_style_prompt
Type
string
Обов'язковий
Description
Опишіть бажаний стиль текстури об'єкта за допомогою тексту. Максимум 800 символів.
Name
image_style_url
Type
string
Обов'язковий
Description
Надайте 2D-зображення, щоб направити процес текстурування. Наразі ми підтримуємо формати .jpg, .jpeg та .png.
Існує два способи надати зображення:
Публічно доступний URL: URL, доступний з публічного інтернету
Data URI: base64-закодований data URI зображення. Приклад data URI: data:image/jpeg;base64,<your base64-encoded image data>
Текстурування за зображенням може працювати не оптимально, якщо існують суттєві відмінності геометрії між оригінальним асетом та завантаженим зображенням.
Name
multiview_image_urls
Type
string[]
Обов'язковий
Description
Надайте від 1 до 4 зображень, що показують той самий об'єкт з різних ракурсів, щоб направити текстурування. Перше зображення є основним (фронтальним) видом; порядок решти видів (лівий, задній, правий) не має значення.
Кожен елемент приймає ті самі формати, що й image_style_url (публічно доступний URL або base64 data URI, .jpg/.jpeg/.png).
Вимагає явного ai_model: "meshy-7".
Name
ai_model
Type
string
за замовчуванням latest
Description
ID AI-моделі для використання при ретекстуруванні. Доступні значення: meshy-6-lite, meshy-6, meshy-7, latest (Meshy 7).
Name
enable_original_uv
Type
boolean
за замовчуванням false
Description
Зберегти наявну UV-розкладку моделі замість генерування нової.
Якщо ви ретекстуруєте модель, згенеровану Meshy (через input_task_id, або model_url, що вказує на результат Meshy), встановіть це значення true, щоб повторно використати її оптимізовану UV-розкладку.
Якщо ви ретекстуруєте завантажену вами модель третьої сторони, встановіть true, якщо вона вже має гарні UV, які ви хочете зберегти, або залиште false, щоб дозволити Meshy розгорнути нові UV (найкраще підходить для моделей без належного UV-мапування).
Name
enable_pbr
Type
boolean
за замовчуванням false
Description
Генерувати PBR-карти (metallic, roughness, normal) на додаток до базового кольору. Карта emission також включається, коли ai_model дорівнює meshy-6, за винятком texture_resolution: 8k. meshy-6-lite, meshy-7 та latest не створюють карту emission.
Name
texture_resolution
Type
string
за замовчуванням 2k
Description
Роздільна здатність текстури базового кольору. Одна з 2k (2048×2048), 4k (4096×4096) або 8k (8192×8192). Вища роздільна здатність захоплює більше деталей поверхні.
4k та 8k вимагають ai_modelmeshy-6, meshy-7 або latest. При 8k карта emission не створюється.
Name
hd_texture
Type
boolean
⚠ застарілий
за замовчуванням false
Description
Використовуйте замість цього texture_resolution — еквівалентно texture_resolution: "4k". Якщо встановлено обидва, пріоритет має texture_resolution.
Name
remove_lighting
Type
boolean
за замовчуванням true
Description
Видаляє відблиски та тіні з текстури базового кольору, забезпечуючи чистіший результат, який краще працює за користувацьких налаштувань освітлення.
Підтримується лише коли ai_model дорівнює meshy-6.
Name
target_formats
Type
string[]
Description
Визначає, які формати 3D-файлів включити у результат. Будуть згенеровані та повернуті лише запитані формати, що може скоротити час виконання задачі. Якщо не вказано, включаються всі підтримувані формати.
Доступні значення: glb, obj, fbx, stl, usdz, 3mf
Якщо не вказано, генеруються всі формати, окрім 3mf. 3mf включається лише тоді, коли вказаний явно.
Name
alpha_thumbnail
Type
boolean
за замовчуванням false
Description
Якщо встановлено true, задача додатково рендерить версію попереднього перегляду з прозорим фоном (RGBA) та повертає її як alpha_thumbnail_url у відповіді GET. Наявне поле thumbnail_url залишається без змін.
Результати
Властивість result відповіді містить id задачі новоствореної задачі Retexture.
Режими відмови
Name
400 - Bad Request
Description
Запит було неприйнятним. Поширені причини:
Відсутній параметр: Повинен бути наданий або model_url, або input_task_id.
Відсутній стиль: Повинен бути наданий один з text_style_prompt, image_style_url або multiview_image_urls.
Конфліктні вхідні дані стилю: multiview_image_urls не можна комбінувати з text_style_prompt або image_style_url.
Непідтримувана модель для мультивиду: multiview_image_urls вимагає явного ai_model: "meshy-7".
Модель недоступна: ai_model: "meshy-7" та ai_model: "meshy-6-lite" впроваджуються поступово і можуть ще не бути увімкнені для вашого облікового запису.
Недійсна вхідна задача: input_task_id повинен посилатися на успішну задачу від підтримуваної моделі.
Недійсний формат моделі: model_url вказує на файл із непідтримуваним розширенням.
Недоступний URL: model_url, image_style_url або елемент multiview_image_urls не вдалося завантажити.
Name
401 - Unauthorized
Description
Помилка автентифікації. Будь ласка, перевірте свій API-ключ.
Name
402 - Payment Required
Description
Недостатньо кредитів для виконання цієї задачі.
Name
429 - Too Many Requests
Description
Ви перевищили обмеження частоти.
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 }'
Ця кінцева точка дозволяє отримати завдання Ретекстурування за дійсним id завдання.
Зверніться до розділу Об'єкт завдання Ретекстурування, щоб дізнатися, які
властивості включені до об'єкта завдання Ретекстурування.
Параметри
Name
id
Type
path
Description
Унікальний ідентифікатор завдання Ретекстурування, яке потрібно отримати.
{"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}
Ця кінцева точка остаточно видаляє завдання ретекстурування, включно з усіма пов'язаними моделями та даними. Ця дія незворотна.
Параметри шляху
Name
id
Type
path
Description
Ідентифікатор завдання ретекстурування, яке потрібно видалити.
Статус завдання
Завдання, яке ще перебуває в статусі PENDING, видаляється, а кредити,
витрачені на момент створення, повертаються.
Завдання, яке вже перебуває в статусі IN_PROGRESS, видалити неможливо:
запит відхиляється з кодом 409 Conflict, а завдання продовжує виконуватися.
Кредити за завдання, яке воркер вже почав виконувати, не підлягають
поверненню, тому видалення його під час виконання коштувало б вам і
кредитів, і результату. Дочекайтеся, поки воно досягне статусу SUCCEEDED,
FAILED або CANCELED, а потім видаліть його.
Завдання у кінцевому стані (SUCCEEDED, FAILED або CANCELED)
видаляється без повернення коштів.
Повертає
Повертає 200 OK у разі успіху або 409 Conflict, якщо завдання
перебуває в статусі 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","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 }]
Об'єкт задачі Ретекстурування — це одиниця роботи, яку Meshy використовує для генерації 3D текстури з текстових або графічних вхідних даних.
Модель має наступні властивості:
Властивості
Name
id
Type
string
Description
Унікальний ідентифікатор задачі. Хоча ми використовуємо k-сортований UUID для ідентифікаторів задач як деталь реалізації,
вам не слід робити жодних припущень щодо формату id.
Name
type
Type
string
Description
Тип задачі Ретекстурування. Значення — retexture.
Name
model_urls
Type
object
Description
URL-адреса для завантаження текстурованого файлу 3D моделі, згенерованого Meshy.
Name
glb
Type
string
Description
URL-адреса для завантаження файлу GLB.
Name
fbx
Type
string
Description
URL-адреса для завантаження файлу FBX.
Name
obj
Type
string
Description
URL-адреса для завантаження файлу OBJ.
Name
usdz
Type
string
Description
URL-адреса для завантаження файлу USDZ.
Name
mtl
Type
string
Description
URL-адреса для завантаження файлу MTL, що повертається разом з експортом OBJ, коли присутні текстури.
Name
stl
Type
string
Description
URL-адреса для завантаження файлу STL.
Name
3mf
Type
string
Description
URL-адреса для завантаження файлу 3MF. Присутня лише коли 3mf було запитано через target_formats.
Name
text_style_prompt
Type
string
Description
Це текстовий prompt, який був використаний для створення задачі текстурування.
Name
image_style_url
Type
string
Description
Це графічні вхідні дані, які були використані для створення задачі текстурування.
Name
multiview_image_urls
Type
string[]
Description
URL-адреси для завантаження референсних зображень Мультивид, які були використані для створення задачі текстурування. Присутні лише коли задача була створена з multiview_image_urls.
Name
thumbnail_url
Type
string
Description
URL-адреса для завантаження мініатюри файлу моделі.
Name
alpha_thumbnail_url
Type
string
Description
URL-адреса для завантаження версії thumbnail_url з прозорим фоном (RGBA). Присутня лише коли задача була створена з alpha_thumbnail: true і прозорий попередній перегляд було успішно відрендерено; в іншому випадку це поле відсутнє.
Name
progress
Type
integer
Description
Прогрес виконання задачі. Якщо задача ще не розпочалася, ця властивість дорівнюватиме 0. Щойно задача завершиться успішно, вона стане 100.
Name
started_at
Type
timestamp
Description
Мітка часу початку виконання задачі, в мілісекундах. Якщо задача ще не розпочалася, ця властивість дорівнюватиме 0.
Мітка часу представляє кількість мілісекунд, що минули з 1 січня 1970 UTC, відповідно до
стандарту RFC 3339.
Наприклад, п'ятниця, 1 вересня 2023 12:00:00 PM GMT представлена як 1693569600000. Це стосується
всіх міток часу в Meshy API.
Name
created_at
Type
timestamp
Description
Мітка часу створення задачі, в мілісекундах.
Name
expires_at
Type
timestamp
Description
Мітка часу закінчення терміну дії результату задачі, в мілісекундах.
Name
finished_at
Type
timestamp
Description
Мітка часу завершення задачі, в мілісекундах. Якщо задача ще не завершена, ця властивість дорівнюватиме 0.
Name
status
Type
string
Description
Статус задачі. Можливі значення: PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
texture_urls
Type
array
Description
Масив об'єктів URL-адрес текстур, згенерованих з задачі. Зазвичай це містить лише один об'єкт URL-адреси текстури. Кожна URL-адреса текстури має наступні властивості:
Name
base_color
Type
string
Description
URL-адреса для завантаження зображення карти базового кольору.
Name
metallic
Type
string
Description
URL-адреса для завантаження зображення карти металевості.
Якщо задача створена з enable_pbr: false, ця властивість буде відсутня.
Name
normal
Type
string
Description
URL-адреса для завантаження зображення карти нормалей.
Якщо задача створена з enable_pbr: false, ця властивість буде відсутня.
Name
roughness
Type
string
Description
URL-адреса для завантаження зображення карти шорсткості.
Якщо задача створена з enable_pbr: false, ця властивість буде відсутня.
Name
emission
Type
string
Description
URL-адреса для завантаження зображення карти випромінювання.
Якщо задача створена з enable_pbr: false, або ai_model дорівнює meshy-6-lite, ця властивість буде відсутня.
Name
preceding_tasks
Type
integer
Description
Кількість попередніх задач.
Ця властивість присутня лише коли статус задачі — PENDING.
Name
task_error
Type
object
Description
Деталі помилки для невдалих задач. Дивіться Помилки для повного опису об'єкта task_error.
Name
consumed_credits
Type
integer
Description
Кількість кредитів, витрачених на цю задачу. Присутня, коли статус задачі — PENDING, IN_PROGRESS або SUCCEEDED. Повертає 0 для задач зі статусом FAILED (кредити повертаються у разі невдачі).
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","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}