Перетворіть ваші фотографії на індивідуальні магніти на холодильник — заокруглений прямокутник з кольоровим рельєфом і плоскою магнітною задньою частиною, розміром для холодильника — у два етапи: прототип генерує кольоровий концепт зображення з вашої вхідної фотографії, потім виготовлення перетворює це концепт зображення на рельєфну 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: Базовий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 відповіді містить ідентифікатор завдання новоствореного завдання прототипу магніту на холодильник. Опитуйте Отримати завдання кінцеву точку або підпишіться на потік до тих пір, поки завдання не досягне SUCCEEDED, потім передайте цей ідентифікатор до кінцевої точки збірки як 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/fridge-magnet/v1/prototype
# Stage 1: generate a colorized fridge magnet concept imagecurlhttps://api.meshy.ai/openapi/creative-lab/fridge-magnet/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":"01a3d8f1-8c2e-7d04-b223-3f3776a1c8c9"}
Приклад прототипу
Почніть з вихідного фото, потім створіть прототип зображення, яке використовується на етапі створення магніту на холодильник.
Генерація фінального 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].
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 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-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.