Перетворіть вихідне фото на медальйон-брелок, придатний для 3D-друку — значок у формі кольорового рельєфу — у два етапи: прототип генерує кольорове концептуальне зображення з вашого вхідного фото, потім збірка перетворює це концептуальне зображення на рельєфну 3D-модель. Два етапи пов'язані через input_task_id.
Генеруйте одне кольорове концептуальне зображення з вихідної фотографії. Повернутий ідентифікатор завдання - це те, що ви передаєте як input_task_id до кінцевої точки збірки. Зверніться до
Об'єкт завдання прототипу брелока
для форми відповіді.
Параметри
Name
image_url
Type
string
Обов'язковий
Description
Вихідна фотографія для Meshy, щоб перетворити її на концептуальне зображення, готове до брелока. Ми наразі підтримуємо формати .jpg, .jpeg, .png та .webp.
Існує два способи надати зображення:
Публічно доступний URL: URL, доступний з публічного інтернету.
Data URI: Базове64-кодоване Data URI зображення. Приклад 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, потім передайте цей ID до кінцевої точки збірки як input_task_id.
Режими відмови
Name
400 - Bad Request
Description
Запит був неприйнятним. Поширені причини:
Відсутній параметр: image_url є обов'язковим.
Неправильний формат зображення: Наданий image_url не є підтримуваним форматом (.jpg, .jpeg, .png, .webp).
Розміри зображення поза діапазоном: Зображення занадто мале, перевищує максимальний розмір файлу або перевищує максимальну кількість пікселів.
Недоступний URL: image_url не вдалося завантажити (404 або timeout).
Неправильний Data URI: Базове64-рядок пошкоджено.
Зміст позначено: Вхідне зображення було позначено як NSFW або порушення інтелектуальної власності.
Name
401 - Unauthorized
Description
Автентифікація не вдалася. Будь ласка, перевірте ваш API key.
Name
402 - Payment Required
Description
Недостатньо кредитів для виконання цього завдання.
Name
429 - Too Many Requests
Description
Ви перевищили своє обмеження частоти.
Запит
POST
/openapi/creative-lab/keychain/v1/prototype
# Stage 1: generate a colorized keychain concept imagecurlhttps://api.meshy.ai/openapi/creative-lab/keychain/v1/prototype \-XPOST \-H"Authorization: Bearer ${YOUR_API_KEY}" \-H'Content-Type: application/json' \-d'{ "image_url": "<your publicly accessible image url or base64-encoded data URI>" }'
Відповідь
{"result":"018a210d-8ba4-705c-b111-1f1776f7f578"}
Приклад прототипу
Почніть з вихідної фотографії, потім створіть прототип зображення, яке використовується на етапі збірки брелока.
Генеруйте фінальний 3D-друкований медальйон брелока з успішного прототипного завдання. Побудова запускає конвеєр рельєфу на основі карти глибини на кольоровому концептуальному зображенні прототипу та відправляє один артефакт сітки у форматі, який ви запитуєте. Зверніться до
Об'єкт Завдання на Побудову Брелока для форми відповіді.
Параметри
Name
input_task_id
Type
string
Обов'язковий
Description
Ідентифікатор завдання прототипу, створеного через цю ж кінцеву точку OpenAPI. Прототип повинен бути створений з тим самим API-ключем, досягти SUCCEEDED і мати рівно одне кандидатське зображення.
Прототипні завдання, створені через веб-додаток, не приймаються — кінцева точка побудови приймає лише прототипні завдання, створені за допомогою POST /openapi/creative-lab/keychain/v1/prototype і відхиляє будь-яке інше джерело з 404.
Name
name
Type
string
Description
Необов'язкова назва завдання для відображення. Максимум 100 символів.
options
Необов'язкові параметри налаштування для рельєфної геометрії. Кожне поле має розумне значення за замовчуванням — надсилайте лише ті, які ви хочете перевизначити.
Низькочастотний поріг для значень карти глибини; все, що нижче цього, обрізається до нуля. Діапазон: [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
Унікальний ідентифікатор для завдання брелока для трансляції.
Повертає
Повертає потік об'єктів завдань Keychain Prototype
або Keychain Build як
Server-Sent Events. Для завдань зі статусом PENDING або IN_PROGRESS, потік відповіді
включатиме лише необхідні поля progress і status.
// 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": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb","progress": 0,"status": "PENDING"}event: messagedata: {"id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb","type": "creative-lab-keychain-build","status": "SUCCEEDED","progress": 100,"created_at": 1729123500000,"started_at": 1729123510000,"finished_at": 1729123535000,"expires_at": 1729382735000,"task_error": null,"consumed_credits": 20,"model_urls": {"glb":"https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/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-keychain-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
image_urls
Type
array of strings
Description
Завантажувані URL-адреси для кандидатів концептуальних зображень, згенерованих цим прототипним завданням. Наразі API завжди повертає рівно одного кандидата; поле є масивом, щоб у майбутніх версіях можна було відобразити кілька кандидатів без порушення сумісності.
Об'єкт Завдання Створення Брелока — це одиниця роботи, за якою Meshy стежить для
генерації фінальної 3D сітки брелока з успішного прототипного завдання.
Створення запускає конвеєр рельєфу карти глибини на концептуальному зображенні прототипу та
публікує єдиний артефакт сітки у форматі, запитуваному викликачем.
Властивості
Name
id
Type
string
Description
Унікальний ідентифікатор для завдання.
Name
type
Type
string
Description
Тип завдання. Значення — creative-lab-keychain-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.