API Зображення у 3D — це функція, яка дозволяє вам інтегрувати можливості Meshy для перетворення зображень у 3D у ваш власний застосунок. У цьому розділі ви знайдете всю інформацію,
необхідну для початку роботи з цим API.
Ця кінцева точка дозволяє створити нове завдання Зображення у 3D. Див.
The Image to 3D Task Object, щоб дізнатися, які
властивості включені в об'єкт завдання Зображення у 3D.
Параметри
Обов'язковим є лише один із параметрів input_task_id або image_url. Якщо вказано обидва, пріоритет має input_task_id.
Name
input_task_id
Type
string
Обов'язковий
Description
ID завершеного завдання генерації зображення, чий результат слід використати як вхідне зображення. Це завдання має бути одним із наступних: Текст у зображення або Зображення у зображення. Крім того, воно має бути виконане через API, мати статус SUCCEEDED та створювати рівно одне зображення.
Name
image_url
Type
string
Обов'язковий
Description
Надайте зображення, яке Meshy використовуватиме для створення моделі. Наразі підтримуються формати .jpg, .jpeg та .png.
Існує два способи надати зображення:
Загальнодоступний URL: URL, доступний із загального інтернету.
Data URI: base64-кодований data URI зображення. Приклад data URI: data:image/jpeg;base64,<your base64-encoded image data>.
meshy-t2 (за замовчуванням): модель Smart Topology — чистіша topology, природно розділені частини, вивід трикутниками та кількість граней, яку можна задати через target_polycount.
Name
geometry_resolution
Type
string
за замовчуванням standard
Description
Прохід генерації геометрії. 2k запускає прохід Ultra на 2048³; 4k запускає його на 4096³ для
найтоншої деталізації поверхні.
Визначає, чи генеруються текстури. Встановлення значення false пропускає фазу текстурування, надаючи сітку без текстур.
Застосовується лише коли should_texture = true
Name
enable_pbr
Type
boolean
за замовчуванням false
Description
Генерувати PBR-карти (metallic, roughness, normal) на додаток до базового кольору. Карта emission також включається, коли ai_model дорівнює meshy-6, за винятком texture_resolution: 8k. meshy-6-lite, meshy-7.1 та latest не створюють карту emission.
Name
texture_resolution
Type
string
за замовчуванням 2k
Description
Роздільна здатність текстури базового кольору. Одне з 2k (2048×2048), 4k (4096×4096) або 8k (8192×8192). Вища роздільна здатність передає більше деталей поверхні.
4k та 8k недоступні з ai_modelmeshy-6-lite. При 8k карта emission не створюється.
Name
hd_texture
Type
boolean
⚠ застарілий
за замовчуванням false
Description
Використовуйте натомість texture_resolution — еквівалентно texture_resolution: "4k". Якщо задано обидва, пріоритет має texture_resolution.
Name
texture_prompt
Type
string
Description
Надайте текстовий prompt для керування процесом текстурування. Максимум 800 символів.
Name
texture_image_url
Type
string
Description
Надайте 2D-зображення для керування процесом текстурування. Наразі підтримуються формати .jpg, .jpeg та .png.
Існує два способи надати зображення:
Загальнодоступний URL: URL, доступний із загального інтернету
Data URI: base64-кодований data URI зображення. Приклад data URI: data:image/jpeg;base64,<your base64-encoded image data>
Текстурування зображенням може працювати не оптимально, якщо є суттєві геометричні відмінності між оригінальним asset'ом та завантаженим зображенням. Для керування процесом текстурування можна використовувати лише один із параметрів texture_image_url або texture_prompt. Якщо вказано обидва параметри, для текстурування моделі за замовчуванням буде використано texture_prompt. Текстурування за допомогою тексту або зображення коштуватиме 10 кредитів за завдання.
Name
should_remesh
Type
boolean
за замовчуванням false (Meshy 6 and Meshy 7 models), true (others)
Description
Керує тим, чи увімкнено фазу ремешу. Для отримання моделі найвищої якості рекомендуємо встановити should_remesh на false.
Застосовується лише коли should_remesh = true
Name
topology
Type
string
за замовчуванням triangle
Description
Вкажіть topology згенерованої моделі.
Доступні значення:
quad: Створити сітку з переважанням чотирикутників.
triangle: Створити децимовану сітку з трикутників.
Name
decimation_mode
Type
integer
Description
Увімкнути адаптивну децимацію, встановивши рівень кількості полігонів. Якщо задано, target_polycount ігнорується.
Доступні значення:
1: Адаптивна — надвисока кількість полігонів.
2: Адаптивна — висока кількість полігонів.
3: Адаптивна — середня кількість полігонів.
4: Адаптивна — низька кількість полігонів.
Name
save_pre_remeshed_model
Type
boolean
за замовчуванням false
Description
Якщо встановлено true, Meshy також зберігає додатковий файл GLB до завершення фази ремешу.
Name
target_polycount
Type
integer
Description
Цільова кількість полігонів (граней) у результаті. Фактична кількість може відрізнятися від цільової залежно від геометрії.
Параметр target_polycount діє в двох незалежних випадках:
Ремеш — з should_remesh: true для моделі standard. Сітка ремешиться (децимується) приблизно до цієї кількості. Діапазон від 100 до 300 000, за замовчуванням 30 000. Якщо задано decimation_mode, він має пріоритет, і target_polycount ігнорується.
Smart Topology — з model_type: smart-topology та ai_model: meshy-t2. Модель генерується безпосередньо з цією кількістю граней; ремеш не запускається, і should_remesh не потрібен. Діапазон від 100 до 15 000, за замовчуванням 4 000.
Name
symmetry_mode
Type
string
⚠ застарілий
за замовчуванням auto
Description
Застаріле. Цей параметр більше не впливає на результат.
Поле symmetry_mode контролює поведінку симетрії під час процесу генерації моделі.
Допустимі значення:
off: Вимикає симетрію.
auto: Автоматично визначає та застосовує симетрію на основі вхідної геометрії.
on: Примусово застосовує симетрію під час генерації.
Name
pose_mode
Type
string
за замовчуванням ""
Description
Вкажіть mode пози для згенерованої моделі.
Доступні значення:
a-pose: Генерувати модель у позі A.
t-pose: Генерувати модель у позі T.
"" (порожній рядок): Не застосовувати конкретну позу.
Name
is_a_t_pose
Type
boolean
⚠ застарілий
за замовчуванням false
Description
Використовуйте натомість pose_mode. Чи генерувати модель у позі A/T.
Name
image_enhancement
Type
boolean
за замовчуванням true
Description
Оптимізує вхідне зображення для отримання кращих результатів. Встановіть значення false, щоб зберегти точний вигляд вхідного зображення без будь-якої стилістичної обробки.
Підтримується лише коли ai_model дорівнює meshy-6, meshy-7.1 або latest.
Name
remove_lighting
Type
boolean
за замовчуванням true
Description
Видаляє відблиски та тіні з текстури базового кольору, забезпечуючи чистіший результат, який краще працює за умов кастомного налаштування освітлення.
Підтримується лише коли ai_model дорівнює meshy-6.
Name
moderation
Type
boolean
за замовчуванням false
Description
Якщо встановлено true, вхідний вміст буде автоматично перевірено на потенційно шкідливий вміст. Якщо виявлено шкідливий вміст, завдання не переходитиме до генерації.
Буде перевірено вміст із вхідних параметрів image_url, texture_image_url та texture_prompt.
Name
target_formats
Type
string[]
Description
Вказує, які 3D-файлові формати включати в результат. Будуть згенеровані та повернуті лише запитані формати, що може зменшити час виконання завдання. Якщо параметр не вказано, включаються всі підтримувані формати.
Доступні значення: glb, obj, fbx, stl, usdz, 3mf
Якщо параметр не вказано, генеруються всі формати, крім 3mf. 3mf включається лише за явної вказівки.
Name
auto_size
Type
boolean
за замовчуванням false
Description
Якщо встановлено true, сервіс використовує AI-зір для автоматичної оцінки реальної висоти об'єкта та відповідної зміни розміру моделі. Початок координат за замовчуванням буде bottom, якщо origin_at не встановлено явно.
Name
alpha_thumbnail
Type
boolean
за замовчуванням false
Description
Якщо встановлено true, завдання додатково рендерить версію попереднього перегляду з прозорим фоном (RGBA) та повертає її як alpha_thumbnail_url у відповіді GET. Існуюче поле thumbnail_url залишається без змін.
Name
multi_view_thumbnails
Type
boolean
за замовчуванням false
Description
Якщо встановлено true, завдання додатково рендерить чотири мініатюри з кардинальних ракурсів (спереду, справа, ззаду, зліва) та повертає їх у thumbnail_urls у відповіді GET. Існуюче поле thumbnail_url залишається без змін і продовжує вказувати на вигляд спереду, тож існуючі клієнти не зазнають впливу.
Додає приблизно 3 секунди до затримки виконання завдання.
Застосовується лише коли auto_size = true
Name
origin_at
Type
string
за замовчуванням bottom
Description
Позиція початку координат, коли увімкнено auto_size.
Доступні значення: bottom, center.
Повертає
Властивість result відповіді містить id завдання новоствореного завдання Зображення у 3D.
Режими помилок
Name
400 - Bad Request
Description
Запит неприйнятний. Поширені причини:
Відсутній параметр: Необхідно надати або image_url, або input_task_id.
Недійсне вхідне завдання: input_task_id має посилатися на завдання Текст у зображення або Зображення у зображення зі статусом SUCCEEDED, яке створює рівно одне зображення.
Недійсний формат зображення: Наданий image_url не має підтримуваного формату (.jpg, .jpeg, .png).
Недоступний URL: Не вдалося завантажити image_url (404 або timeout).
Недійсний Data URI: Рядок base64 має неправильний формат.
Недійсна комбінація параметрів: enable_pbr підтримується лише коли should_texture має значення true.
Непідтримувана модель для low poly: ai_model: "meshy-6-lite" не підтримує model_type: "lowpoly".
Непідтримувана модель для Ultra: geometry_resolution потребує meshy-7.1 або latest.
Name
401 - Unauthorized
Description
Автентифікація не вдалася. Перевірте свій API-ключ.
Name
402 - Payment Required
Description
Недостатньо кредитів для виконання цього завдання.
Name
429 - Too Many Requests
Description
Ви перевищили обмеження частоти.
Request
POST
/openapi/v1/image-to-3d
# Simple request with required paramscurlhttps://api.meshy.ai/openapi/v1/image-to-3d \-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>" }'# With Ultra 4K geometry, remesh, PBR, and A-posecurlhttps://api.meshy.ai/openapi/v1/image-to-3d \-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>", "ai_model": "meshy-7.1", "geometry_resolution": "4k", "enable_pbr": true, "should_remesh": true, "target_polycount": 100000, "should_texture": true, "pose_mode": "a-pose", "target_formats": ["glb"] }'
Ця кінцева точка дозволяє отримати завдання Зображення у 3D за дійсним id завдання.
Зверніться до розділу Об'єкт завдання Зображення у 3D, щоб дізнатися, які
властивості включені до об'єкта завдання Зображення у 3D.
Параметри
Name
id
Type
path
Description
Унікальний ідентифікатор завдання Зображення у 3D, яке потрібно отримати.
Повертає
Відповідь містить об'єкт завдання Зображення у 3D. Перегляньте розділ
Об'єкт завдання Зображення у 3D для отримання докладної інформації.
Ця кінцева точка остаточно видаляє завдання Зображення у 3D, включно з усіма пов'язаними моделями та даними. Ця дія незворотна.
Параметри шляху
Name
id
Type
path
Description
ID завдання Зображення у 3D, яке потрібно видалити.
Статус завдання
Завдання, яке ще перебуває у статусі PENDING, видаляється, а кредити,
витрачені під час створення, повертаються.
Завдання, яке вже перебуває у статусі IN_PROGRESS, видалити не можна:
запит відхиляється з кодом 409 Conflict, і завдання продовжує виконуватися.
Кредити за завдання, яке воркер уже почав виконувати, не повертаються, тому
видалення його під час виконання коштувало б вам і кредитів, і результату.
Дочекайтеся, поки воно досягне статусу SUCCEEDED, FAILED або CANCELED,
а потім видаліть його.
Завдання у кінцевому стані (SUCCEEDED, FAILED або CANCELED) видаляється
без повернення кредитів.
Повертає
Повертає 200 OK у разі успіху або 409 Conflict, коли завдання
перебуває у статусі IN_PROGRESS.
// 200 OK on success, with an empty body.//// 409 Conflict when the task is IN_PROGRESS — the task is left running:{"message":"Task is IN_PROGRESS and cannot be deleted. Credits for a task the worker has already started are not refundable; wait for it to reach SUCCEEDED, FAILED or CANCELED, then delete it."}
Об'єкт завдання Зображення у 3D — це одиниця роботи, яку Meshy відстежує для генерації 3D-моделі із вхідного зображення.
Об'єкт має такі властивості:
Властивості
Name
id
Type
string
Description
Унікальний ідентифікатор завдання. Хоча як деталь реалізації ми використовуємо k-сортований UUID для ідентифікаторів завдань, вам не слід робити жодних припущень щодо формату id.
Name
type
Type
string
Description
Тип завдання Зображення у 3D. Значення — image-to-3d.
Name
model_urls
Type
object
Description
URL для завантаження файлу текстурованої 3D-моделі, згенерованого Meshy. Властивість для формату буде відсутня, якщо цей формат не було згенеровано, замість повернення порожнього рядка.
Name
glb
Type
string
Description
URL для завантаження файлу GLB.
Name
fbx
Type
string
Description
URL для завантаження файлу FBX.
Name
obj
Type
string
Description
URL для завантаження файлу OBJ.
Name
usdz
Type
string
Description
URL для завантаження файлу USDZ.
Name
mtl
Type
string
Description
URL для завантаження файлу MTL, який повертається разом з експортом OBJ, коли присутні текстури.
Name
stl
Type
string
Description
URL для завантаження файлу STL.
Name
3mf
Type
string
Description
URL для завантаження файлу 3MF. Присутній лише якщо 3mf було запитано через target_formats.
Name
pre_remeshed_glb
Type
string
Description
URL для завантаження оригінального вихідного файлу GLB до перебудови сітки (remesh).
Доступно лише коли завдання було створено з обома параметрами should_remesh: true та save_pre_remeshed_model: true.
Name
thumbnail_url
Type
string
Description
URL для завантаження зображення-мініатюри файлу моделі. Еквівалентно thumbnail_urls.front, коли присутнє, залишено для зворотної сумісності.
Name
alpha_thumbnail_url
Type
string
Description
URL для завантаження версії thumbnail_url із прозорим фоном (RGBA). Присутнє лише якщо завдання було створено з alpha_thumbnail: true і прозорий попередній перегляд було успішно відрендерено; в іншому разі це поле відсутнє.
Name
thumbnail_urls
Type
object
Description
URL для завантаження чотирьох мініатюр згенерованої 3D-моделі з чотирьох кардинальних ракурсів. Кожне значення — це підписаний URL на PNG-зображення 512×512, відрендерене з тими самими матеріалами та освітленням, що й thumbnail_url. Корисно для попереднього перегляду моделі під різними кутами в пакетних конвеєрах без завантаження GLB.
Присутнє лише якщо завдання було створено з multi_view_thumbnails: true і досягло статусу SUCCEEDED. Старіші завдання та завдання, створені без цієї опції, не будуть містити це поле.
Name
front
Type
string
Description
Вигляд спереду, обертання на 0° навколо вертикальної осі (відповідає thumbnail_url).
Name
right
Type
string
Description
Вигляд справа, обертання на 90°.
Name
back
Type
string
Description
Вигляд ззаду, обертання на 180°.
Name
left
Type
string
Description
Вигляд зліва, обертання на 270°.
Name
texture_prompt
Type
string
Description
Текстовий prompt, який використовувався для керування процесом текстурування.
Name
texture_image_url
Type
string
Description
URL для завантаження зображення текстури, яке використовувалося для керування процесом текстурування.
Name
ultra_mode
Type
boolean
⚠ застарілий
Description
Застаріле; замість цього читайте geometry_resolution.
Name
geometry_resolution
Type
string
Description
Рівень Ultra, з яким виконувалося завдання (2k або 4k); відсутній для standard.
Name
progress
Type
integer
Description
Прогрес завдання. Якщо завдання ще не розпочато, ця властивість буде 0. Коли завдання завершиться успішно, вона стане 100.
Name
started_at
Type
timestamp
Description
Мітка часу початку завдання, у мілісекундах. Якщо завдання ще не розпочато, ця властивість буде 0.
Мітка часу представляє кількість мілісекунд, що минули з 1 січня 1970 UTC, відповідно до
стандарту RFC 3339.
Наприклад, п'ятниця, 1 вересня 2023 12:00:00 GMT представлена як 1693569600000. Це стосується
усіх міток часу в Meshy API.
Name
created_at
Type
timestamp
Description
Мітка часу створення завдання, у мілісекундах.
Name
expires_at
Type
timestamp
Description
Мітка часу закінчення терміну дії результату завдання, у мілісекундах.
Name
finished_at
Type
timestamp
Description
Мітка часу завершення завдання, у мілісекундах. Якщо завдання ще не завершено, ця властивість буде 0.
Name
status
Type
string
Description
Статус завдання. Можливі значення: одне з PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
texture_urls
Type
array
Description
Масив об'єктів URL текстур, згенерованих завданням. Зазвичай він містить лише один об'єкт URL текстури. Кожен URL текстури має такі властивості:
Name
base_color
Type
string
Description
URL для завантаження зображення карти базового кольору.
Name
metallic
Type
string
Description
URL для завантаження зображення карти металевості.
Якщо завдання створено з enable_pbr: false, ця властивість буде відсутня.
Name
normal
Type
string
Description
URL для завантаження зображення карти нормалей.
Якщо завдання створено з enable_pbr: false, ця властивість буде відсутня.
Name
roughness
Type
string
Description
URL для завантаження зображення карти шорсткості.
Якщо завдання створено з enable_pbr: false, ця властивість буде відсутня.
Name
emission
Type
string
Description
URL для завантаження зображення карти випромінювання.
Якщо завдання створено з enable_pbr: false, або ai_model має значення meshy-6-lite, meshy-7.1, чи latest, ця властивість буде відсутня.
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 (кредити повертаються у разі невдачі).