Перетворюйте свої фотографії на персоналізовані магніти на холодильник — кольоризований
рельєф глибини із заокругленим прямокутним контуром і пласкою магнітною задньою стороною, розміром для холодильника, — у два
етапи: прототип генерує кольоризоване концептуальне зображення з вашої вхідної
фотографії, а потім побудова перетворює це концептуальне зображення на рельєфну 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,<your base64-encoded image data>.
Name
name
Type
string
Description
Необов’язкова назва завдання для відображення. Максимум 100 символів.
Повертає
Властивість 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 має неправильний формат.
Позначений вміст: вхідне зображення було позначене NSFW або moderation інтелектуальної власності.
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 imagecurl https://api.meshy.ai/openapi/creative-lab/fridge-magnet/v1/prototype \ -X POST \ -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"}
Prototype example
Start with a source photo, then generate the prototype image used by the fridge magnet build stage.
Згенеруйте фінальний придатний для 3D-друку магніт на холодильник із успішного
завдання прототипу. Побудова запускає конвеєр рельєфу на основі карти глибини для
колоризованого концепт-зображення прототипу та надає один артефакт сітки у
запитаному вами форматі. Див.
Об’єкт завдання побудови магніту на холодильник щодо
форми відповіді.
Параметри
Name
input_task_id
Type
string
Обов'язковий
Description
ID завдання прототипу, створеного через цю саму кінцеву точку 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
Автоматично видаляти фон концепт-зображення прототипу перед створенням рельєфу.
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 і повертає пакет у 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-mode можна зв’язувати з побудовою).
Отримайте завдання прототипу або побудови за дійсним 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.
Потоково передавайте оновлення в реальному часі для завдання магніта на холодильник через 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
progress завдання. Якщо завдання ще не запущено, ця властивість буде 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
Мітка часу, коли результат завдання expires, у мілісекундах.
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
Progress завдання. Якщо завдання ще не розпочато, ця властивість буде 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.