Преобразуйте ваши фотографии в индивидуальные магниты на холодильник — закругленный прямоугольник с цветным рельефом и плоской магнитной задней частью, подходящий для холодильника — в два этапа: прототип создает цветное концептуальное изображение из вашей входной фотографии, затем сборка превращает это концептуальное изображение в рельефную 3D модель. Два этапа связаны через input_task_id.
POST /openapi/creative-lab/fridge-magnet/v1/prototype
Генерация одного цветного концептуального изображения из исходного фото. Возвращаемый идентификатор задачи — это то, что вы передаете как input_task_id в эндпоинт сборки. Обратитесь к Объект задачи прототипа магнита на холодильник для формы ответа.
Параметры
Name
image_url
Type
string
Обязательный
Description
Исходное фото для Meshy, чтобы раскрасить в концептуальное изображение, готовое для магнита на холодильник. В настоящее время мы поддерживаем форматы .jpg, .jpeg, .png и .webp.
Есть два способа предоставить изображение:
Общедоступный URL: URL, доступный из публичного интернета.
Data URI: Данные URI изображения, закодированные в base64. Пример Data URI: data:image/jpeg;base64,<your base64-encoded image data>.
Name
name
Type
string
Description
Необязательное имя задачи для отображения. Максимум 100 символов.
Name
remove_background
Type
boolean
по умолчанию false
Description
Если установлено значение true, прототип изображения возвращается в виде прозрачного RGBA PNG с удаленным фоном, чтобы вы могли наложить объект на любой фон.
Это управляет только изображением, которое возвращает этот эндпоинт. Это отдельно от опции сборки с тем же именем (по умолчанию true), которая управляет удалением фона перед рельефом.
Возвращает
Свойство result ответа содержит идентификатор задачи id вновь созданной задачи прототипа магнита на холодильник. Опросите Получить задачу эндпоинт или подпишитесь на поток до тех пор, пока задача не достигнет SUCCEEDED, затем передайте этот идентификатор в эндпоинт сборки как input_task_id.
Создайте финальный 3D-печатаемый магнит на холодильник из успешной
прототипной задачи. Сборка запускает конвейер рельефа по карте глубины на
цветном концептуальном изображении прототипа и отправляет единый артефакт сетки в
формате, который вы запросите. Обратитесь к
Объект задачи сборки магнита на холодильник для
формы ответа.
Параметры
Name
input_task_id
Type
string
Обязательный
Description
Идентификатор задачи прототипа, созданного через этот же эндпоинт OpenAPI. Прототип должен быть создан с тем же API-ключом, должен достичь SUCCEEDED и должен произвести ровно одно кандидатное изображение.
Прототипные задачи, созданные через веб-приложение, не принимаются — эндпоинт сборки принимает только прототипные задачи, созданные POST /openapi/creative-lab/fridge-magnet/v1/prototype и отказывает в приеме любого другого источника с 404.
Name
name
Type
string
Description
Необязательное имя задачи для отображения. Максимум 100 символов.
options
Необязательные параметры настройки для рельефной геометрии. У каждого поля есть разумное значение по умолчанию — отправляйте только те, которые хотите переопределить.
Name
badge_shape
Type
string
по умолчанию rounded-rect
Description
Контурная форма магнита на холодильник. Доступные значения:
circle
rounded-rect (по умолчанию)
hexagon
shield
star
Name
size_mm
Type
number
по умолчанию 60
Description
Длина ребра ограничивающего квадрата магнита на холодильник, в миллиметрах. Диапазон: (0, 400].
Name
relief_height_mm
Type
number
по умолчанию 3.3
Description
Максимальная высота рельефа над основанием, в миллиметрах. Диапазон: [0, 20].
Name
relief_offset_mm
Type
number
по умолчанию 0
Description
Вертикальное смещение, применяемое к рельефу перед экструзией, в миллиметрах. Диапазон: [0, 20].
Name
base_thickness_mm
Type
number
по умолчанию 2.0
Description
Толщина плоской основы за рельефом, в миллиметрах. По умолчанию для магнита на холодильник используется более массивная основа толщиной 2 мм — это дает магниту достаточно тела, чтобы удерживаться на холодильнике, не создавая ощущения хрупкости рельефа. Диапазон: [0, 20].
Name
has_closed_back
Type
boolean
по умолчанию true
Description
Является ли задняя часть магнита на холодильник закрытой поверхностью (сторона, к которой приклеивается магнит). Установите false для открытой оболочки.
Name
relief_curve
Type
string
по умолчанию linear
Description
Кривая передачи, отображающая значения карты глубины в высоту рельефа. Доступные значения:
linear (по умолчанию)
gamma
s-curve
Name
curve_param
Type
number
по умолчанию 1.0
Description
Параметр формы для кривой передачи (имеет значение только когда relief_curve равно gamma). Диапазон: (0, 10].
Name
invert_depth
Type
boolean
по умолчанию false
Description
Инвертировать интерпретацию карты глубины так, чтобы более темные области становились более высокими рельефами.
Name
smoothing
Type
number
по умолчанию 0.24
Description
Сила сглаживания, применяемая к карте глубины перед извлечением рельефа. Диапазон: [0, 10].
Порог низкой частоты для значений карты глубины; все, что ниже этого значения, обрезается до нуля. Диапазон: [0, 1].
Name
remove_background
Type
boolean
по умолчанию true
Description
Автоматически удалять фон концептуального изображения прототипа перед созданием рельефа.
Отдельно от параметра прототипа с тем же именем (по умолчанию false), который управляет тем, возвращается ли само изображение прототипа с прозрачностью.
Name
export_resolution
Type
integer
по умолчанию 512
Description
Разрешение сетки, используемое для экспорта. Диапазон: [64, 2048].
output
Необязательный селектор формата передачи. По умолчанию glb.
glb (по умолчанию) — возвращает единый model.glb под model_urls.glb.
obj — архивирует model.obj + model.mtl + texture.png и возвращает пакет под model_urls.obj.
zip — архивирует каждый артефакт, который генерирует генератор, и возвращает пакет под model_urls.bundle_zip.
Возвращает
Свойство result ответа содержит идентификатор задачи id вновь созданной задачи сборки магнита на холодильник. Опросите эндпоинт Получить задачу или подпишитесь на поток, пока задача не достигнет SUCCEEDED, затем загрузите артефакт из единственной записи в model_urls.
Режимы отказа
Name
400 - Bad Request
Description
Запрос был неприемлемым. Общие причины:
Отсутствует параметр: input_task_id обязателен.
Недействительный UUID: input_task_id не является допустимым UUID.
Родитель не достиг успеха: Указанная прототипная задача еще не достигла SUCCEEDED.
Нет кандидата: Прототипная задача завершилась успешно, но не произвела кандидатного изображения.
Параметры вне диапазона: Одно из полей options вышло за пределы допустимого диапазона или набора перечислений.
Name
401 - Unauthorized
Description
Аутентификация не удалась. Пожалуйста, проверьте ваш API-ключ.
Name
402 - Payment Required
Description
Недостаточно кредитов для выполнения этой задачи.
Name
404 - Not Found
Description
Указанная прототипная задача не существует, принадлежит другому пользователю или была создана через веб-приложение (только прототипные задачи в режиме API могут быть связаны со сборкой).
Получите задачу прототипа или сборки, указав действительный id задачи. Путь URL
должен соответствовать стадии задачи — задача сборки, полученная через
/prototype/:id, вернет 404, и наоборот.
Отменить задачу магнит на холодильник. Если задача все еще находится в состоянии PENDING, кредиты, использованные при создании, возвращаются. Задачи, которые уже находятся в состоянии IN_PROGRESS, отменяются без возврата (работник может уже использовать ресурсы). Задачи, которые уже достигли конечного состояния (SUCCEEDED, FAILED, CANCELED), не могут быть отменены.
Путь URL должен соответствовать стадии задачи — DELETE на
/prototype/:buildId возвращает 404.
Параметры пути
Name
id
Type
path
Description
Уникальный идентификатор задачи магнит на холодильник для отмены.
Возвращает
Возвращает 204 No Content при успешном выполнении с пустым телом.
Режимы отказа
Name
400 - Bad Request
Description
Задача уже находится в конечном состоянии и не может быть отменена.
Name
404 - Not Found
Description
Задача не существует, принадлежит другому пользователю или ее стадия не соответствует пути URL.
Транслировать обновления в реальном времени для задачи магнит на холодильник через Server-Sent Events (SSE).
Путь URL должен соответствовать стадии задачи — открытие потока на
/prototype/:buildId/stream выдает единственную полезную нагрузку event: error с
status_code: 404 и закрывает поток.
Параметры
Name
id
Type
path
Description
Уникальный идентификатор для задачи магнит на холодильник для трансляции.
// Error event example (wrong stage or task not found)event: errordata: {"status_code": 404,"message": "Task not found"}// Message event examples illustrate task progress.// For PENDING or IN_PROGRESS tasks, the response stream will not include all fields.event: messagedata: {"id": "01b4e9a2-9d3f-8e15-c334-4f4887b2d9d0","progress": 0,"status": "PENDING"}event: messagedata: {"id": "01b4e9a2-9d3f-8e15-c334-4f4887b2d9d0","type": "creative-lab-fridge-magnet-build","status": "SUCCEEDED","progress": 100,"created_at": 1729543250000,"started_at": 1729543258000,"finished_at": 1729543285000,"expires_at": 1729802485000,"task_error": null,"consumed_credits": 20,"model_urls": {"glb":"https://assets.meshy.ai/***/tasks/01b4e9a2-9d3f-8e15-c334-4f4887b2d9d0/output/model.glb?Expires=***" }}
Получите пагинированный список ваших задач магнит на холодильник для одного этапа. Путь URL
выбирает этап — /prototype возвращает задачи прототипа; /build
возвращает задачи сборки. Задачи с другого этапа не включены ни в один из
ответов.
Параметры пути
Name
stage
Type
path
Обязательный
Description
Либо prototype, либо build. Коллекция возвращает только задачи,
этап которых соответствует URL — запрос /prototype никогда не возвращает
задачи сборки и наоборот.
Параметры запроса
Name
page_num
Type
integer
по умолчанию 1
Description
Номер страницы для пагинации.
Name
page_size
Type
integer
по умолчанию 10
Description
Лимит размера страницы. Максимально допустимо 50 элементов.
Name
sort_by
Type
string
по умолчанию -created_at
Description
Поле для сортировки. Доступные значения:
+created_at: Сортировка по времени создания в порядке возрастания.
-created_at: Сортировка по времени создания в порядке убывания.
Объект задачи прототипа магнита на холодильник — это рабочая единица, за которой Meshy следит для генерации цветного концептуального изображения из исходной фотографии. Результат этого этапа связывается с этапом сборки через input_task_id.
Свойства
Name
id
Type
string
Description
Уникальный идентификатор задачи. Хотя мы используем k-сортируемый UUID для идентификаторов задач как деталь реализации, вы не должны делать никаких предположений о формате id.
Name
type
Type
string
Description
Тип задачи. Значение — creative-lab-fridge-magnet-prototype.
Name
name
Type
string
Description
Имя задачи, указанное при создании задачи. Пустая строка, если имя не было предоставлено.
Name
status
Type
string
Description
Статус задачи. Возможные значения: PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Прогресс задачи. Если задача еще не начата, это свойство будет 0. После успешного завершения задачи это значение станет 100.
Name
created_at
Type
timestamp
Description
Временная метка создания задачи в миллисекундах.
Временная метка представляет количество миллисекунд, прошедших с 1 января 1970 года по UTC, в соответствии со стандартом RFC 3339. Например, пятница, 1 сентября 2023 года, 12:00:00 по Гринвичу представляется как 1693569600000. Это относится ко всем временным меткам в Meshy API.
Name
started_at
Type
timestamp
Description
Временная метка начала задачи в миллисекундах. Если задача еще не начата, это свойство будет 0.
Name
finished_at
Type
timestamp
Description
Временная метка завершения задачи в миллисекундах. Если задача еще не завершена, это свойство будет 0.
Name
expires_at
Type
timestamp
Description
Временная метка истечения результата задачи в миллисекундах.
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 (кредиты возвращаются при неудаче).
Name
image_urls
Type
array of strings
Description
Скачиваемые URL-адреса для кандидатов концептуальных изображений, сгенерированных этой задачей прототипа. В настоящее время API всегда возвращает ровно одного кандидата; поле является массивом, чтобы будущие версии могли отображать нескольких кандидатов без нарушения совместимости.
Пример объекта задачи прототипа магнита на холодильник
Объект задачи создания магнита на холодильник — это рабочая единица, за которой Meshy следит для генерации финальной 3D сетки магнита на холодильник из успешной прототипной задачи. Создание выполняет конвейер рельефа по глубинной карте на концептуальном изображении прототипа и публикует единый артефакт сетки в формате, запрошенном вызывающим.
Свойства
Name
id
Type
string
Description
Уникальный идентификатор задачи.
Name
type
Type
string
Description
Тип задачи. Значение — creative-lab-fridge-magnet-build.
Name
name
Type
string
Description
Имя задачи, указанное при создании задачи. Пустая строка, если имя не было предоставлено.
Name
status
Type
string
Description
Статус задачи. Возможные значения: PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Прогресс выполнения задачи. Если задача еще не начата, это свойство будет 0. После успешного завершения задачи это значение станет 100.
Name
created_at
Type
timestamp
Description
Временная метка создания задачи в миллисекундах.
Name
started_at
Type
timestamp
Description
Временная метка начала выполнения задачи в миллисекундах.
Name
finished_at
Type
timestamp
Description
Временная метка завершения задачи в миллисекундах.
Name
expires_at
Type
timestamp
Description
Временная метка истечения результата задачи в миллисекундах.
Name
preceding_tasks
Type
integer
Description
Количество предшествующих задач. Имеет значение только при статусе PENDING.
Name
task_error
Type
object
Description
Детали ошибки для неудавшихся задач. См. Ошибки для полной справки по объекту task_error.
Name
consumed_credits
Type
integer
Description
Количество кредитов, потребленных этой задачей. Возвращает 0 для задач со статусом FAILED (кредиты возвращаются при неудаче).
Name
model_urls
Type
object
Description
Скачиваемые URL для сгенерированного артефакта, ключом является имя артефакта. Всегда содержит ровно одну запись — формат, запрошенный через output.format запроса на создание. Ключ соответствует запрошенному формату:
Name
glb
Type
string
Description
Скачиваемый URL для файла GLB. Присутствует, когда output.format был glb (по умолчанию).
Name
obj
Type
string
Description
Скачиваемый URL для zip-архива, содержащего model.obj, model.mtl и texture.png. Присутствует, когда output.format был obj.
Name
bundle_zip
Type
string
Description
Скачиваемый URL для zip-архива всех артефактов, которые генерирует генератор. Присутствует, когда output.format был zip.
Пример объекта задачи создания магнита на холодильник