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 МБ по ссылке
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 МБ по ссылкеhttpили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
Вы превысили ограничение частоты запросов. Подождите, затем повторите попытку. См. Ограничения частоты.
Получить задачу Resize
Возвращает задачу Resize по её 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
}
Удалить задачу Изменить размер
Безвозвратно удаляет задачу Изменить размер, включая её модели и данные. Отменить удаление нельзя.
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: сначала новые
Возвращает
Постраничный список объектов задач Изменить размер.
Потоковая передача задачи Resize
Передаёт обновления задачи Resize в виде событий, отправляемых сервером (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 задачи из ответа на создание.
Возвращает
Поток объектов задачи Resize в виде событий 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
Количество кредитов, использованных задачей; для задачи Resize это
1. Для задачи со статусомFAILEDзначение равно0.