Resize API
Змінити розмір 3D-моделі до реального розміру в метрах. Встановіть її висоту або довжину найдовшої сторони, або дозвольте Meshy оцінити реальну висоту об’єкта.
Створення завдання Resize
Створює завдання Resize. Завдання виконується у фоновому режимі. Про типову тривалість виконання завдання див. Час обробки.
Request
# Simple: resize to a specific height
curl https://api.meshy.ai/openapi/v1/resize \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"resize_height": 1.8
}'
# Advanced: resize longest side with custom origin
curl https://api.meshy.ai/openapi/v1/resize \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"model_url": "https://example.com/model.glb",
"resize_longest_side": 2.0,
"origin_at": "center"
}'
Response
{
"result": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}
Параметри
- Name
- input_task_id
- Type
- string
- Обов'язковий
- Description
Обов'язковий, якщо не надіслано
model_url. ID завдання, яке створило 3D-модель, наприклад завдання Text to 3D, Image to 3D, Remesh або Retexture. Завдання повинно походити з API та мати статусSUCCEEDED. Meshy повертає змінену за розміром модель у вигляді файлу GLB.
- Name
- model_url
- Type
- string
- Обов'язковий
- Description
Обов'язковий, якщо не надіслано
input_task_id. Модель для зміни розміру у вигляді публічного URL або data URI. Якщо надіслано обидва, Meshy використовуєinput_task_id.Модель повинна бути файлом GLB, glTF, OBJ, FBX або STL розміром не більше 400 МБ за URL
httpчиhttps, або 100 МБ як data URI. Для data URI використовуйте MIME typeapplication/octet-stream.Файл понад 100 МБ також повинен відповідати цим правилам:
- Файл GLB, glTF, FBX або OBJ може мати не більше 10 000 000 граней. Meshy рахує грані як трикутники, тому чотирикутник рахується за 2, а сітка, намальована кілька разів, рахується один раз за кожну копію.
- Файл FBX повинен бути бінарним FBX 7.1 або новішим.
- Файл GLB або glTF не повинен використовувати стиснення Draco.
Файл GLB, OBJ, FBX або STL зберігає свій формат у результаті. Файл
.gltfабо data URI повертається як GLB.
Надішліть рівно один з параметрів resize_height, resize_longest_side або auto_size. Якщо не надіслати жодного з них або надіслати більше одного, повертається 400.
- Name
- resize_height
- Type
- number
- Description
Нова висота моделі в метрах, більша за 0. Від'ємне значення повертає
400.
- Name
- resize_longest_side
- Type
- number
- Description
Нова довжина найдовшої сторони моделі в метрах, більша за 0. Від'ємне значення повертає
400. Meshy зберігає співвідношення сторін моделі.
- Name
- auto_size
- Type
- boolean
- Description
Чи оцінювати реальну висоту об'єкта за допомогою AI-зору та змінювати розмір моделі відповідно до неї. Якщо не вказано
origin_at, Meshy розміщує початок координат знизу.
- Name
- origin_at
- Type
- string
- за замовчуванням bottom
- Description
Де розмістити початок координат моделі після зміни розміру:
bottomабоcenter.
Повертає
Поле result відповіді містить ID нового завдання Resize.
Режими збою
- Name
400 - Bad Request- Description
Запит не може бути виконаний. Повідомлення про помилку вказує, яку проблему виявлено. Наприклад:
- Відсутній параметр: не надіслано ні
model_url, ніinput_task_id. - Відсутній режим зміни розміру: не надіслано жодного з
resize_height,resize_longest_sideтаauto_size. - Взаємовиключні параметри: запит містить більше одного з
resize_height,resize_longest_sideтаauto_size. Надішліть лише один. - Від'ємний розмір:
resize_heightабоresize_longest_sideє від'ємним. - Недійсне вхідне завдання:
input_task_idне є успішним завданням API з файлом моделі. - Недійсний формат моделі: файл
model_urlмає непідтримуване розширення. - Недоступний URL: Meshy не може завантажити файл
model_url. - Файл моделі завеликий: файл
model_urlперевищує 400 МБ за URLhttpчиhttps, або перевищує 100 МБ як data URI. - Забагато граней: файл
model_urlперевищує 100 МБ і має більше 10 000 000 граней. Зменшіть кількість граней, потім надішліть файл знову. - ASCII FBX понад 100 МБ: файл
model_urlє ASCII FBX понад 100 МБ. Надішліть його як бінарний FBX або GLB. - Нечитабельний файл моделі: файл
model_urlперевищує 100 МБ, і Meshy не може прочитати його заголовок. Наприклад, це GLB чи glTF, стиснутий за допомогою Draco, або бінарний FBX старіший за 7.1. - Заголовок моделі занадто складний: файл
model_urlперевищує 100 МБ, і його заголовок містить забагато сіток, вузлів або записів для перевірки. Зменшіть кількість об'єктів у файлі, потім надішліть його знову.
Виправте запит, потім надішліть його знову. Див. Помилки.
- Відсутній параметр: не надіслано ні
- Name
401 - Unauthorized- Description
API-ключ відсутній або недійсний. Перевірте заголовок
Authorization.
- Name
402 - Payment Required- Description
Наприклад:
- Недостатньо кредитів: обліковий запис не має достатньо кредитів для цього завдання, або обліковий запис досяг ліміту кредитів. Перевірте баланс кредитів, потім повторіть спробу.
- Безкоштовний план: для створення завдання потрібен платний план. Оновіть свій план у налаштуваннях підписки, потім повторіть спробу.
- Name
403 - Forbidden- Description
input_task_idє моделлю барельєфа, розмір якої ця кінцева точка не може змінити. Повідомлення:This model type does not support this operation. Надішліть іншу модель.
- Name
404 - Not Found- Description
input_task_idне відповідає жодному з ваших завдань. Перевірте ID завдання, потім надішліть запит знову.
- Name
429 - Too Many Requests- Description
Ви перевищили обмеження частоти. Зачекайте, потім повторіть спробу. Див. Обмеження частоти.
Отримати завдання Змінити розмір
Повертає завдання Змінити розмір за його ID.
Request
curl https://api.meshy.ai/openapi/v1/resize/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "resize",
"model_urls": {
"glb": "https://assets.meshy.ai/.../model.glb?Expires=..."
},
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null,
"consumed_credits": 1
}
Параметри
- Name
- id
- Type
- path
- Description
ID завдання з відповіді на створення.
Повертає
Видалення задачі Resize
Остаточно видаляє задачу Resize, включно з її моделями та даними. Видалення не можна скасувати.
Request
curl --request DELETE \
--url https://api.meshy.ai/openapi/v1/resize/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-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."
}
Параметри шляху
- Name
- id
- Type
- path
- Description
ID задачі для видалення.
Статус задачі
Видалення задачі зі статусом PENDING повертає кредити, витрачені на її створення.
Задачу зі статусом IN_PROGRESS видалити не можна. Запит повертає 409 Conflict,
і задача продовжує виконуватися. Meshy не повертає кредити за задачу, яка вже
розпочалася, тому видалення коштувало б вам і кредитів, і результату. Дочекайтеся,
поки вона досягне статусу SUCCEEDED, FAILED або CANCELED, і лише тоді видаляйте.
Видалення задачі з фінальним статусом (SUCCEEDED, FAILED або CANCELED)
не повертає витрачені на неї кредити.
Повертає
200 OK, коли задачу видалено, або 409 Conflict, коли задача має статус
IN_PROGRESS.
Список завдань на зміну розміру
Повертає список ваших завдань на зміну розміру.
Request
curl https://api.meshy.ai/openapi/v1/resize?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
[
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "resize",
"model_urls": {
"glb": "https://assets.meshy.ai/.../model.glb?Expires=..."
},
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null,
"consumed_credits": 1
}
]
Параметри
- Name
- page_num
- Type
- integer
- за замовчуванням 1
- Description
Номер сторінки для повернення, до
255. Більше значення поверне400.
- Name
- page_size
- Type
- integer
- за замовчуванням 10
- Description
Кількість завдань на сторінці, до
100.
- Name
- sort_by
- Type
- string
- Description
Порядок сортування.
Доступні значення:
+created_at: спочатку найстаріші-created_at: спочатку найновіші
Повертає
Список об'єктів завдань зміни розміру із пагінацією.
Стрімити задачу Змінити розмір
Стрімить оновлення задачі Змінити розмір у вигляді Server-Sent Events (SSE).
Request
curl -N https://api.meshy.ai/openapi/v1/resize/a43b5c6d-7e8f-901a-234b-567c890d1e2f/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response Stream
// Message event examples illustrate task progress.
event: message
data: {
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"progress": 0,
"status": "PENDING"
}
event: message
data: {
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "resize",
"model_urls": {
"glb": "https://assets.meshy.ai/.../model.glb?Expires=..."
},
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null,
"consumed_credits": 1
}
Параметри
- Name
- id
- Type
- path
- Description
ID задачі з відповіді на створення.
Повертає
Потік об'єктів задачі Змінити розмір у вигляді Server-Sent Events.
Кожна подія містить повний об'єкт задачі, у тому ж форматі, що й повертає кінцева точка Get. Поки задача має статус PENDING або IN_PROGRESS, її поля результату ще не мають значень.
Об'єкт завдання Resize
Об'єкт завдання Resize описує одну зміну розміру 3D-моделі. Він містить статус, progress і файл моделі, коли завдання завершується успішно.
Властивості
- Name
- id
- Type
- string
- Description
ID завдання. Розглядайте його як непрозорий рядок і не покладайтеся на його формат.
- Name
- type
- Type
- string
- Description
Тип завдання, завжди
resize.
- Name
- model_urls
- Type
- object
- Description
URL для завантаження файлу моделі зі зміненим розміром. Для
input_task_idфайл завжди у форматі GLB. Дляmodel_urlфайл GLB, OBJ, FBX або STL зберігає свій формат, а файл.gltfабо Data URI повертається у форматі GLB.
- Name
- progress
- Type
- integer
- Description
Наскільки завдання виконано, у відсотках. Дорівнює
0, доки завдання не почалося, і100, коли воно успішно завершене.
- Name
- status
- Type
- string
- Description
Статус завдання, один із
PENDING,IN_PROGRESS,SUCCEEDED,FAILEDабоCANCELED.
- Name
- preceding_tasks
- Type
- integer
- Description
Кількість завдань попереду цього у черзі. Значення має сенс лише тоді, коли завдання має статус
PENDING.
- Name
- created_at
- Type
- timestamp
- Description
Час створення завдання, у мілісекундах Unix.
- Name
- started_at
- Type
- timestamp
- Description
Час початку виконання завдання, у мілісекундах Unix. Дорівнює
0, доки завдання не почалося.
- Name
- finished_at
- Type
- timestamp
- Description
Час завершення завдання, у мілісекундах Unix. Дорівнює
0, доки завдання не завершиться.
- Name
- expires_at
- Type
- timestamp
- Description
Час, коли URL для завантаження результатів завдання стають недійсними, у мілісекундах Unix. Дорівнює
0, доки завдання не завершиться.
- Name
- texture_urls
- Type
- array
- Description
URL для завантаження текстурних карт моделі, коли завдання успішно завершене: масив об'єктів, по одному на кожен набір текстур. Кожен об'єкт має URL
base_color, а також може мати URLmetallic,roughness,normal,emissionтаmetallic_roughness. Дорівнюєnull, доки завдання не завершиться успішно, і є порожнім масивом, якщо модель не має текстурних карт.
- Name
- task_error
- Type
- object
- Description
Деталі помилки, якщо завдання завершилося невдало. Див. Помилки.
- Name
- consumed_credits
- Type
- integer
- Description
Кількість кредитів, витрачених на завдання, що дорівнює
1для завдання Resize. Дорівнює0для завдання зі статусомFAILED.