lowpoly будет отключён 30 окт. 2026 г.. Перейдите на другую модель до этих дат, чтобы избежать ошибок в запросах.
Creative Lab — API лампы
Превратите исходное фото в абажур лампы, готовый к 3D-печати, в два этапа:
prototype создаёт стилизованное концептуальное изображение в матово-белых
тонах и преобразует его в полую 3D-модель (GLB), затем build запускает
обработчик лампы на этой модели для получения печатаемых деталей STL — абажура
с открытым низом и опорной пластиной для крепления источника света, а также
самого крепления для источника света. Оба этапа связаны через input_task_id.
Сгенерируйте одно матово-белое концептуальное изображение на основе референсного фото и
конвертируйте его в полую 3D-модель абажура лампы. Ответ содержит как
концептуальное изображение (image_urls), так и 3D-модель (model_urls.glb с
thumbnail_url). Возвращаемый ID задачи — это то, что вы передаёте как input_task_id
в эндпоинт сборки. Информацию о структуре ответа см. в разделе
Объект задачи прототипа лампы.
Параметры
Name
image_url
Type
string
Обязательный
Description
Исходное фото, которое Meshy использует в качестве визуального референса для абажура лампы. В настоящее время поддерживаются форматы .jpg, .jpeg, .png и .webp.
Максимальный размер файла: 20 МБ.
Изображение можно предоставить двумя способами:
Общедоступный URL: URL, доступный из публичного интернета.
Data URI: закодированный в base64 data URI изображения. Пример data URI: data:image/jpeg;base64,<ваши закодированные в base64 данные изображения>.
Name
image_subject
Type
string
по умолчанию character
Description
Подсказка категории объекта, определяющая prompt стилизации. Доступные значения:
character (по умолчанию) — отдельный персонаж/объект (фигурка, животное, талисман и т. д.).
landscape — уличная сцена/панорама (гора, городской пейзаж, лес и т. д.).
Name
name
Type
string
Description
Необязательное название задачи для отображения. Максимум 100 символов.
Name
remove_background
Type
boolean
по умолчанию false
Description
Если задано значение true, изображение прототипа возвращается в виде прозрачного PNG в формате RGBA с удалённым фоном, что позволяет вам компоновать объект с любым фоном.
Возвращаемое значение
Свойство result ответа содержит id задачи только что созданного прототипа лампы. Опрашивайте эндпоинт Получение задачи или подпишитесь на поток, пока задача не достигнет статуса SUCCEEDED, а затем передайте этот ID в эндпоинт сборки как input_task_id.
Режимы сбоя
Name
400 - Bad Request
Description
Запрос был неприемлем. Распространённые причины:
Отсутствует параметр: image_url является обязательным.
Размеры изображения вне допустимого диапазона: изображение слишком маленькое, превышает максимальный размер файла или превышает максимальное количество пикселей.
Недоступный URL: не удалось загрузить image_url (404 или timeout).
Недопустимый Data URI: строка base64 имеет некорректный формат.
Контент отмечен модерацией: входное изображение было отмечено модерацией NSFW или модерацией интеллектуальной собственности.
Недопустимый image_subject: значение не является ни character, ни landscape.
Генерирует финальные пригодные для 3D-печати детали из успешно завершённой задачи прототипа.
Сборка запускает процессор лампы на 3D-модели прототипа: масштабирует
модель до diameter_mm, выравнивает низ по cut_amount_percent,
делает её полой до thickness_mm, открывает низ и — если выбран пресет
крепления — добавляет базовую пластину с отверстием для крепления и отдельное
крепление для источника света. Обратитесь к разделу
Объект задачи сборки лампы для описания
формата ответа.
Параметры
Name
input_task_id
Type
string
Обязательный
Description
ID задачи прототипа, созданной через этот же эндпоинт OpenAPI. Прототип должен быть создан с тем же API-ключом, должен достичь статуса SUCCEEDED и должен был создать 3D-модель.
Задачи прототипов, созданные через веб-приложение, не принимаются — эндпоинт сборки принимает только задачи прототипов, созданные через POST /openapi/creative-lab/lamp/v1/prototype, и отклоняет любой другой источник с кодом 404.
Name
name
Type
string
Description
Необязательное название задачи для отображения. Максимум 100 символов.
options
Необязательные параметры настройки геометрии абажура. Каждое поле имеет разумное значение по умолчанию — отправляйте только те, которые хотите переопределить.
Name
diameter_mm
Type
number
по умолчанию 150
Description
Целевой максимальный размер ограничивающего параллелепипеда абажура, в миллиметрах. Сетка равномерно масштабируется, чтобы соответствовать этому значению. Диапазон: [50, 400].
Name
thickness_mm
Type
number
по умолчанию 1
Description
Толщина стенки полого абажура, в миллиметрах. Диапазон: (0, 10].
Name
cut_amount_percent
Type
number
по умолчанию 1
Description
Процент высоты модели, срезаемый ровно снизу, чтобы абажур устойчиво стоял на печатной платформе и имел отверстие для крепления. Диапазон: [1, 100].
Name
light_source_preset
Type
string
по умолчанию bambu_mh001_60mm
Description
Пресет крепления источника света, определяющий способ построения нижней части. Доступные значения:
bambu_mh001_60mm (по умолчанию) — абажур с открытым дном плюс базовая пластина с отверстием крепления 60 мм, оба находятся в model_urls.lamp_stl, а крепление источника света — в model_urls.base_stl.
none — единый закрытый абажур в model_urls.lamp_stl; model_urls.base_stl отсутствует.
Name
fixture_offset_x_mm
Type
number
по умолчанию 0
Description
Смещение отверстия крепления на базовой пластине по оси X относительно центра абажура, в миллиметрах. Имеет значение только когда light_source_preset ≠ none. Диапазон: [-80, 80].
Name
fixture_offset_z_mm
Type
number
по умолчанию 0
Description
Смещение отверстия крепления на базовой пластине по оси Z (глубина) относительно центра абажура, в миллиметрах. Имеет значение только когда light_source_preset ≠ none. Диапазон: [-80, 80].
Name
rotate_x_deg
Type
number
по умолчанию 0
Description
Поворот вокруг оси X, применяемый к модели перед обработкой, в градусах. Три поворота применяются как углы Эйлера XYZ относительно центра модели. Диапазон: [-360, 360].
Name
rotate_y_deg
Type
number
по умолчанию 0
Description
Поворот вокруг оси Y, применяемый к импортированной сетке перед обработкой, в градусах. Диапазон: [-360, 360].
Name
rotate_z_deg
Type
number
по умолчанию 0
Description
Поворот вокруг оси Z, применяемый к импортированной сетке перед обработкой, в градусах. Диапазон: [-360, 360].
Name
include_result_json
Type
boolean
по умолчанию false
Description
Если true и output.format равен zip, включает файл result.json процессора лампы (название конвейера, предупреждения и пути к артефактам) внутрь пакета. Игнорируется, если output.format равен stl.
output
Необязательный селектор формата передачи. По умолчанию — stl.
stl (по умолчанию) — возвращает model_urls.lamp_stl (абажур вместе с базовой пластиной, если задан пресет крепления), а также model_urls.base_stl, если light_source_preset ≠ none.
zip — упаковывает все артефакты, создаваемые процессором (lamp.stl, необязательный base.stl, необязательный result.json), в единый zip-архив и возвращает его в model_urls.bundle_zip.
Возвращаемые значения
Свойство result ответа содержит id задачи вновь созданной задачи сборки лампы. Опрашивайте эндпоинт Получить задачу или подпишитесь на поток, пока задача не достигнет статуса SUCCEEDED, а затем скачайте артефакты из model_urls.
Режимы сбоя
Name
400 - Bad Request
Description
Запрос был некорректен. Распространённые причины:
Отсутствует параметр: input_task_id обязателен.
Недопустимый UUID: input_task_id не является допустимым UUID.
Родительская задача не завершена успешно: указанная задача прототипа ещё не достигла статуса SUCCEEDED.
Нет модели: задача прототипа завершилась успешно, но не создала 3D-модель.
Параметры вне диапазона: одно из полей options вышло за пределы допустимого диапазона или набора значений.
Указанная задача прототипа не существует, принадлежит другому пользователю или была создана через веб-приложение (в цепочку сборки могут входить только задачи прототипов, созданные в режиме API).
Получите задачу prototype или build по действительному id задачи. Путь URL
должен соответствовать стадии задачи — если задача build запрашивается через
/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
Уникальный идентификатор задачи лампы, для которой запрашивается поток.
Возвращает
Возвращает поток объектов задачи Lamp Prototype
или Lamp 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": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb","progress": 0,"status": "PENDING"}event: messagedata: {"id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb","type": "creative-lab-lamp-build","status": "SUCCEEDED","progress": 100,"created_at": 1729123500000,"started_at": 1729123510000,"finished_at": 1729123535000,"expires_at": 1729382735000,"task_error": null,"consumed_credits": 6,"model_urls": {"lamp_stl":"https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/lamp.stl?Expires=***","base_stl":"https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/base.stl?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: сортировка по времени создания в порядке убывания.
Объект задачи прототипа лампы (Lamp Prototype Task) — это единица работы, которую Meshy отслеживает, чтобы сгенерировать стилизованное матово-белое концептуальное изображение из исходной фотографии и конвертировать его в полую 3D-модель. Результат этого этапа передаётся в этап сборки через input_task_id.
Свойства
Name
id
Type
string
Description
Уникальный идентификатор задачи. Хотя в качестве деталей реализации мы используем k-сортируемый UUID для идентификаторов задач, вам не следует делать каких-либо предположений о формате id.
Name
type
Type
string
Description
Тип задачи. Значение — creative-lab-lamp-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. Возвращает 0 для задач со статусом FAILED (кредиты возвращаются при неудаче).
Name
model_urls
Type
object
Description
Ссылки для скачивания 3D-модели, сгенерированной из концептуального изображения. Присутствует после успешного завершения задачи; до этого — {}.
Name
glb
Type
string
Description
Ссылка для скачивания полой матово-белой модели плафона лампы в формате GLB. Это модель, которую обрабатывает этап сборки.
Name
thumbnail_url
Type
string
Description
Ссылка для скачивания отрендеренного превью 3D-модели. Пустая строка, пока задача не завершится успешно.
Name
image_urls
Type
array of strings
Description
Ссылки для скачивания кандидатов концептуального изображения, сгенерированных этой задачей прототипа. В настоящее время API всегда возвращает ровно одного кандидата; поле представляет собой массив, чтобы будущие версии могли предоставлять несколько кандидатов без обратной несовместимости.
Объект задачи сборки лампы (Lamp Build Task) — это рабочая единица, которую Meshy отслеживает для создания финального 3D-печатаемого плафона лампы из успешно завершённой задачи прототипа. Сборка запускает обработчик лампы на 3D-модели прототипа, чтобы сделать её полой, выровнять и открыть дно, а также (при использовании пресета крепления) добавить базовую пластину и крепление для патрона.
Свойства
Name
id
Type
string
Description
Уникальный идентификатор задачи.
Name
type
Type
string
Description
Тип задачи. Значение — creative-lab-lamp-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
Количество кредитов, израсходованных на выполнение этой задачи. Для задач со статусом FAILED возвращает 0 (кредиты возвращаются при неудаче).
Name
model_urls
Type
object
Description
Ссылки для скачивания сгенерированных артефактов, с ключами по названию артефакта. Набор ключей зависит от output.format и options.light_source_preset:
Name
lamp_stl
Type
string
Description
Ссылка для скачивания lamp.stl: плафон лампы с открытым дном вместе с базовой пластиной, несущей отверстие для крепления, либо единый герметичный плафон, если options.light_source_preset было none. Присутствует, если output.format было stl (значение по умолчанию).
Name
base_stl
Type
string
Description
Ссылка для скачивания base.stl — крепления для патрона источника света. Присутствует, если output.format было stlиoptions.light_source_preset было отличным от none. Отсутствует, если пресет крепления был none.
Name
bundle_zip
Type
string
Description
Ссылка для скачивания zip-архива со всеми артефактами, создаваемыми обработчиком (lamp.stl, опционально base.stl и — если options.include_result_json равно true — result.json). Присутствует, если output.format было zip. Если присутствует bundle_zip, поля lamp_stl / base_stl отсутствуют.