Перетворюйте свої фотографії на індивідуальні магніти на холодильник — кольоровий
рельєф глибини у формі закругленого прямокутника з плоскою магнітною основою,
розміром під холодильник — у два
етапи: 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, зображення прототипу повертається у вигляді прозорого 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: рядок base64 має неправильний формат.
Контент позначено: вхідне зображення було позначено moderation NSFW або на предмет інтелектуальної власності.
Name
401 - Unauthorized
Description
Автентифікація не вдалася. Будь ласка, перевірте свій API-ключ.
Name
402 - Payment Required
Description
Недостатньо кредитів для виконання цього завдання.
Name
429 - Too Many Requests
Description
Ви перевищили обмеження частоти.
Request
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>" }'
Response
{"result":"01a3d8f1-8c2e-7d04-b223-3f3776a1c8c9"}
Приклад прототипу
Почніть з вихідної фотографії, потім згенеруйте зображення прототипу, яке використовується на етапі збірки магніта на холодильник.
Створіть фінальний придатний для 3D-друку магніт на холодильник з успішного
завдання-прототипу. Побудова виконує конвеєр рельєфу на основі карти глибини
на колоризованому концептуальному зображенні прототипу та повертає один
артефакт сітки у форматі, який ви вказали. Дивіться
Об'єкт завдання побудови магніта на холодильник щодо
форми відповіді.
Параметри
Name
input_task_id
Type
string
Обов'язковий
Description
ID завдання прототипу, створеного через цю саму кінцеву точку OpenAPI. Прототип має бути створений з тим самим API-ключем, повинен був досягти статусу SUCCEEDED і повинен був створити рівно одне кандидатне зображення.
Завдання-прототипи, створені через веб-застосунок, не приймаються — кінцева точка build приймає лише завдання-прототипи, створені через 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.
Name
format
Type
string
за замовчуванням glb
Description
Пакет артефактів, що повертається побудовою. Доступні значення:
glb (за замовчуванням) — повертає один файл model.glb у model_urls.glb.
obj — упаковує model.obj + model.mtl + texture.png у zip-архів і повертає пакет у model_urls.obj.
zip — упаковує кожен артефакт, згенерований генератором, у 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
Унікальний ідентифікатор задачі магніта на холодильник для стрімінгу.
Повертає
Повертає потік об'єктів задачі Прототип магніта на холодильник
або Побудова магніта на холодильник у вигляді
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-сортований 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.