Превратите свои фотографии в магниты на холодильник по индивидуальному
заказу — раскрашенный рельеф глубины со скруглёнными углами и плоской
магнитной задней стороной, подходящий по размеру для холодильника — в два
этапа: prototype генерирует раскрашенное концептуальное изображение из
вашего исходного фото, затем build превращает это концептуальное
изображение в рельефную 3D-модель. Оба этапа связаны через input_task_id.
POST /openapi/creative-lab/fridge-magnet/v1/prototype
Генерирует одно раскрашенное концептуальное изображение из исходной фотографии. Возвращённый ID задачи — это то, что вы передаёте как input_task_id в эндпоинт сборки. Обратитесь к разделу
Объект задачи прототипа магнита на холодильник
для описания формата ответа.
Параметры
Name
image_url
Type
string
Обязательный
Description
Исходная фотография, которую Meshy раскрасит в концептуальное изображение, готовое для магнита на холодильник. В настоящее время поддерживаются форматы .jpg, .jpeg, .png и .webp.
Изображение можно предоставить двумя способами:
Публично доступный URL: URL, доступный из публичного интернета.
Data URI: изображение, закодированное в base64 в виде data URI. Пример data URI: data:image/jpeg;base64,<ваши base64-закодированные данные изображения>.
Name
name
Type
string
Description
Необязательное название задачи для отображения. Максимум 100 символов.
Name
remove_background
Type
boolean
по умолчанию false
Description
Если установлено значение true, изображение прототипа возвращается в виде прозрачного PNG в формате RGBA с удалённым фоном, что позволяет наложить объект на любой фон.
Этот параметр управляет только изображением, которое возвращает данный эндпоинт. Он отделён от одноимённого параметра сборки (по умолчанию true), который управляет удалением фона перед созданием рельефа.
Возвращаемое значение
Свойство result в ответе содержит id задачи только что созданного прототипа магнита на холодильник. Опрашивайте эндпоинт Получить задачу или подпишитесь на поток, пока задача не достигнет статуса SUCCEEDED, а затем передайте этот ID в эндпоинт сборки как input_task_id.
Размеры изображения вне допустимого диапазона: изображение слишком маленькое, превышает максимальный размер файла или максимальное количество пикселей.
Недоступный URL: не удалось загрузить image_url (404 или timeout).
Недопустимый Data URI: строка base64 некорректно сформирована.
Контент отмечен модерацией: входное изображение было отмечено moderation NSFW-контента или интеллектуальной собственности.
Сгенерируйте финальную 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 вышло за пределы допустимого диапазона или набора значений enum.
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
Уникальный идентификатор задачи магнита на холодильник для стриминга.
Возвращает
Возвращает поток объектов задач Fridge Magnet Prototype
или Fridge Magnet Build в формате
Server-Sent Events. Каждый кадр содержит полный объект задачи для данного этапа — в том же формате, что
возвращает эндпоинт Get, — поэтому пока задача находится в статусе PENDING или IN_PROGRESS,
выходные поля просто ещё не заполнены (null, [] или {}), а
finished_at равно null.
// Error event example (wrong stage or task not found)event: errordata: {"status_code": 404,"message": "Task not found"}// Message event examples illustrate task progress.// Every frame is the full task object; fields not yet populated are null / empty.// The PENDING frame below is abbreviated to the fields that change.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
Ограничение размера страницы. Максимально допустимое значение — 100 элементов.
Name
sort_by
Type
string
по умолчанию -created_at
Description
Поле для сортировки. Доступные значения:
+created_at: Сортировка по времени создания в порядке возрастания.
-created_at: Сортировка по времени создания в порядке убывания.
Объект задачи прототипа магнита на холодильник — это рабочая единица, отслеживаемая Meshy для
генерации цветного концептуального изображения из исходной фотографии. Результат
этого этапа передаётся на этап сборки
через input_task_id.
Свойства
Name
id
Type
string
Description
Уникальный идентификатор задачи. Хотя в качестве деталей реализации мы используем k-sortable 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 по GMT представляется как 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. Для задач со статусом FAILED возвращает 0 (кредиты возвращаются при неудаче).
Name
image_urls
Type
array of strings
Description
Ссылки для скачивания кандидатов концептуального изображения, сгенерированных этой задачей прототипа. В настоящее время 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
Ссылки для скачивания сгенерированного артефакта, с ключами по названию артефакта. Всегда содержит ровно одну запись — формат, запрошенный через output.format в запросе на сборку. Ключ соответствует запрошенному формату:
Name
glb
Type
string
Description
Ссылка для скачивания файла GLB. Присутствует, если output.format был равен glb (значение по умолчанию).
Name
obj
Type
string
Description
Ссылка для скачивания zip-архива, содержащего model.obj, model.mtl и texture.png. Присутствует, если output.format был равен obj.
Name
bundle_zip
Type
string
Description
Ссылка для скачивания zip-архива со всеми артефактами, создаваемыми генератором. Присутствует, если output.format был равен zip.