API Текст в 3D — это функция, которая позволяет интегрировать возможности Meshy Текст в 3D в ваше собственное приложение. В этом разделе вы найдете всю информацию,
необходимую для начала работы с этим API.
Текст в 3D использует двухэтапный рабочий процесс. Сначала создайте задачу предварительного просмотра (mode: "preview"), чтобы сгенерировать 3D-сетку без текстуры и оценить форму. Затем передайте ID завершенной задачи предварительного просмотра в задачу уточнения (mode: "refine"), чтобы применить текстуру к сетке. Оба этапа используют один и тот же эндпоинт.
Этот эндпоинт создает задачу предпросмотра Текст в 3D, которая генерирует 3D-сетку без текстур (только геометрия) из текстового prompt. Это первый шаг двухэтапного рабочего процесса. После успешного предпросмотра используйте возвращенный ID задачи, чтобы создать задачу уточнения для текстурирования. См.
Объект задачи Текст в 3D для полной схемы ответа.
Параметры
Name
mode
Type
string
Обязательный
Description
Это поле должно быть установлено в "preview" при создании задачи предпросмотра.
Name
prompt
Type
string
Обязательный
Description
Опишите, каким объектом является 3D-модель. Максимум 600 символов.
Name
model_type
Type
string
по умолчанию standard
Description
Укажите тип генерации 3D-сетки.
Доступные значения:
standard: Обычная генерация 3D-сетки с высокой детализацией.
lowpoly: Генерирует низкополигональную сетку, оптимизированную для более чистых полигонов.
Когда выбран lowpoly, ai_model, topology, target_polycount, should_remesh игнорируются.
Name
ai_model
Type
string
по умолчанию latest
Description
ID модели для использования. Доступные значения: meshy-5, meshy-6, latest (Meshy 6).
Name
should_remesh
Type
boolean
по умолчанию false (meshy-6), true (others)
Description
Управляет тем, включать ли этап ремешинга. Если установлено false, API напрямую вернет треугольную сетку максимальной точности.
Применяется только когда should_remesh = true
Name
topology
Type
string
по умолчанию triangle
Description
Укажите topology генерируемой модели.
Доступные значения:
quad: Генерирует сетку с преобладанием четырехугольников.
Укажите целевое число полигонов в генерируемой модели. Фактическое число полигонов может отклоняться от целевого в зависимости от сложности геометрии.
Допустимый диапазон значений зависит от уровня пользователя:
От 100 до 300 000 (включительно)
Name
decimation_mode
Type
integer
Description
Включите адаптивное упрощение, задав уровень числа полигонов. Если задано, target_polycount игнорируется.
Доступные значения:
1: Адаптивное — сверхвысокое число полигонов.
2: Адаптивное — высокое число полигонов.
3: Адаптивное — среднее число полигонов.
4: Адаптивное — низкое число полигонов.
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
art_style
Type
string
⚠ устаревший
по умолчанию realistic
Description
Не поддерживается Meshy-6. Запросы, использующие Meshy-6, будут игнорировать art_style, а некоторые комбинации могут вызывать ошибки. Доступные значения: realistic, sculpture.
enable_pbr должно быть установлено в false при использовании стиля Sculpture, поскольку стиль Sculpture генерирует собственный набор PBR-карт.
Name
moderation
Type
boolean
по умолчанию false
Description
Если установлено true, входное содержимое будет автоматически проверяться на потенциально вредоносное содержимое. Если вредоносное содержимое обнаружено, задача не перейдет к генерации.
Текст из prompt будет проверен.
Name
target_formats
Type
string[]
Description
Указывает, какие форматы 3D-файлов включать в вывод. Будут сгенерированы и возвращены только запрошенные форматы, что может сократить время выполнения задачи. Если параметр не указан, включаются все поддерживаемые форматы.
Доступные значения: glb, obj, fbx, stl, usdz, 3mf
Если параметр не указан, генерируются все форматы, кроме 3mf. 3mf включается только при явном указании.
Name
alpha_thumbnail
Type
boolean
по умолчанию false
Description
Если установлено true, задача дополнительно рендерит версию предпросмотра с прозрачным фоном (RGBA) и возвращает ее как alpha_thumbnail_url в ответе GET. Существующее поле thumbnail_url не изменяется.
Name
auto_size
Type
boolean
по умолчанию false
Description
Если установлено true, сервис использует AI-зрение для автоматической оценки реальной высоты объекта и соответствующего изменения размера модели. Начало координат по умолчанию будет bottom, если origin_at не задан явно.
Применяется только когда auto_size = true
Name
origin_at
Type
string
по умолчанию bottom
Description
Положение начала координат, когда включен auto_size.
Доступные значения: bottom, center.
Возвращает
Свойство result ответа содержит id задачи новой созданной задачи Текст в 3D.
Режимы отказа
Name
400 - Bad Request
Description
Запрос был неприемлемым. Частые причины:
Отсутствует параметр: Отсутствует обязательный параметр (например, prompt, mode).
Недопустимый параметр: art_style не является одним из разрешенных значений.
Prompt слишком длинный: prompt превышает ограничение по количеству символов.
Name
401 - Unauthorized
Description
Аутентификация не удалась. Проверьте ваш API-ключ.
Этот эндпоинт создает задачу уточнения Текст в 3D, которая применяет текстуру к завершенной предварительной сетке. Необходимо указать preview_task_id из успешной задачи предпросмотра. Это второй шаг двухэтапного рабочего процесса.
Параметры
Name
mode
Type
string
Обязательный
Description
При создании задачи уточнения это поле должно быть установлено в "refine".
Name
preview_task_id
Type
string
Обязательный
Description
ID соответствующей задачи предпросмотра.
Статус указанной задачи предпросмотра должен быть SUCCEEDED.
Name
enable_pbr
Type
boolean
по умолчанию false
Description
Генерирует PBR-карты (metallic, roughness, normal) в дополнение к базовому цвету. Карта emission также включается, когда ai_model — meshy-6 или latest.
Name
hd_texture
Type
boolean
по умолчанию false
Description
Генерирует текстуру базового цвета в разрешении 4K (4096×4096) для более высокой детализации.
Поддерживается только когда ai_model — meshy-6 или latest. PBR-карты всегда генерируются в 2K.
Name
texture_prompt
Type
string
Description
Укажите дополнительный текстовый prompt для управления процессом текстурирования. Максимум 600 символов.
Name
texture_image_url
Type
string
Description
Укажите 2D-изображение для управления процессом текстурирования. В настоящее время мы поддерживаем форматы .jpg, .jpeg и .png.
Есть два способа предоставить изображение:
Публично доступный URL: URL, доступный из публичного интернета
Data URI: Data URI изображения, закодированный в base64. Пример Data URI: data:image/jpeg;base64,<your base64-encoded image data>
Текстурирование по изображению может работать неоптимально, если между исходным ассетом и загруженным изображением есть существенные различия в геометрии. Для управления процессом текстурирования можно использовать только один из параметров: texture_image_url или texture_prompt. Если предоставлены оба параметра, по умолчанию для текстурирования модели будет использоваться texture_prompt.
Name
ai_model
Type
string
по умолчанию latest
Description
ID модели, используемой для уточнения. Доступные значения: meshy-5, meshy-6, latest (Meshy 6).
Name
moderation
Type
boolean
по умолчанию false
Description
Если установлено значение true, входной контент будет автоматически проверяться на потенциально вредное содержимое. Если вредное содержимое обнаружено, задача не перейдет к генерации.
Будут проверяться как текст из texture_prompt, так и изображение из texture_image_url.
Name
remove_lighting
Type
boolean
по умолчанию true
Description
Удаляет блики и тени из текстуры базового цвета, создавая более чистый результат, который лучше работает при пользовательских настройках освещения.
Поддерживается только когда ai_model — meshy-6 или latest.
Name
target_formats
Type
string[]
Description
Указывает, какие форматы 3D-файлов включать в выходной результат. Будут сгенерированы и возвращены только запрошенные форматы, что может сократить время выполнения задачи. Если параметр не указан, включаются все поддерживаемые форматы.
Доступные значения: glb, obj, fbx, stl, usdz, 3mf
Если параметр не указан, генерируются все форматы, кроме 3mf. 3mf включается только при явном указании.
Name
alpha_thumbnail
Type
boolean
по умолчанию false
Description
Если установлено значение true, задача дополнительно рендерит версию предпросмотра с прозрачным фоном (RGBA) и возвращает ее как alpha_thumbnail_url в ответе GET. Существующее поле thumbnail_url остается без изменений.
Name
auto_size
Type
boolean
по умолчанию false
Description
Если установлено значение true, сервис использует AI-зрение для автоматической оценки реальной высоты объекта и соответствующего изменения размера модели. Начало координат по умолчанию будет bottom, если origin_at не задан явно.
Применяется только когда auto_size = true
Name
origin_at
Type
string
по умолчанию bottom
Description
Положение начала координат, когда включен auto_size.
Доступные значения: bottom, center.
Возвращает
Свойство result в ответе содержит id задачи для новой созданной задачи Текст в 3D.
Сценарии ошибок
Name
400 - Bad Request
Description
Запрос был неприемлемым. Распространенные причины:
Недопустимый ID задачи: preview_task_id недействителен или не существует.
Задача не готова: задача предпросмотра еще не завершилась успешно.
Несовпадение модели: AI-модель задачи предпросмотра несовместима с запрошенной моделью уточнения.
Name
401 - Unauthorized
Description
Аутентификация не удалась. Проверьте ваш API-ключ.
Name
402 - Payment Required
Description
Недостаточно кредитов для выполнения этой задачи.
Name
404 - Not Found
Description
Задача предпросмотра, указанная в preview_task_id, не найдена.
Этот эндпоинт позволяет получить задачу Текст в 3D по действительному id задачи.
См. Объект задачи Текст в 3D, чтобы узнать, какие
свойства включены в объект задачи Текст в 3D.
Этот эндпоинт работает как для задач предпросмотра, так и для задач уточнения.
Параметры
Name
id
Type
path
Description
Уникальный идентификатор задачи Текст в 3D, которую нужно получить.
Объект задачи Текст в 3D — это рабочая единица, которую Meshy отслеживает для генерации 3D-модели из входных текстовых данных. В API Текст в 3D есть два этапа: preview и refine. Этап preview предназначен для генерации 3D-модели только с сеткой, а этап refine — для генерации текстурированной 3D-модели на основе результата этапа preview.
Объект имеет следующие свойства:
Свойства
Name
id
Type
string
Description
Уникальный идентификатор задачи. Хотя в качестве детали реализации для идентификаторов задач мы используем
k-сортируемый UUID, вам не следует делать какие-либо предположения о формате id.
Name
type
Type
string
Description
Тип задачи Текст в 3D. Возможные значения: text-to-3d-preview для задач этапа предварительного просмотра и text-to-3d-refine для задач этапа уточнения.
Name
model_urls
Type
object
Description
URL для скачивания файла 3D-модели с текстурами, сгенерированного Meshy. Свойство для формата будет опущено, если формат не сгенерирован, вместо возврата пустой строки.
Name
glb
Type
string
Description
URL для скачивания файла GLB.
Name
fbx
Type
string
Description
URL для скачивания файла FBX.
Name
usdz
Type
string
Description
URL для скачивания файла USDZ.
Name
obj
Type
string
Description
URL для скачивания файла OBJ.
Name
mtl
Type
string
Description
URL для скачивания файла MTL.
Name
stl
Type
string
Description
URL для скачивания файла STL.
Name
3mf
Type
string
Description
URL для скачивания файла 3MF. Присутствует только тогда, когда 3mf был запрошен через target_formats.
Name
prompt
Type
string
Description
Это неизмененный prompt, который использовался для создания задачи.
Name
negative_prompt
Type
string
⚠ устаревший
Description
Поддерживается для обратной совместимости. Это поле не оказывает функционального влияния на сгенерированные модели.
Name
art_style
Type
string
⚠ устаревший
Description
Неизмененный art_style, который использовался для создания задачи предварительного просмотра. Не поддерживается Meshy-6.
Name
texture_richness
Type
string
⚠ устаревший
Description
Поддерживается для обратной совместимости. Это поле не оказывает функционального влияния на сгенерированные модели.
Name
texture_prompt
Type
string
Description
Дополнительный текстовый prompt, предоставленный для управления процессом наложения текстур на этапе уточнения.
Name
texture_image_url
Type
string
Description
URL для скачивания изображения текстуры, которое использовалось для управления процессом наложения текстур.
Name
thumbnail_url
Type
string
Description
URL для скачивания изображения миниатюры файла модели.
Name
alpha_thumbnail_url
Type
string
Description
URL для скачивания версии thumbnail_url с прозрачным фоном (RGBA). Присутствует только тогда, когда задача была создана с alpha_thumbnail: true и прозрачный предварительный просмотр был успешно отрендерен; в противном случае это поле опускается.
Name
video_url
Type
string
⚠ устаревший
Description
URL для скачивания видео предварительного просмотра. Будет удалено в будущем выпуске.
Name
progress
Type
integer
Description
progress задачи. Если задача еще не запущена, это свойство будет 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
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-5, это свойство будет опущено.
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 (кредиты возвращаются при сбое).
Example Text to 3D Task Object
{"id":"018a210d-8ba4-705c-b111-1f1776f7f578","type":"text-to-3d-preview","model_urls": {"glb":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***","fbx":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.fbx?Expires=***","usdz":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.usdz?Expires=***","obj":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.obj?Expires=***","mtl":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.mtl?Expires=***","stl":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***" },"prompt":"a monster mask","texture_prompt":"green slimy skin with scales and warts","texture_image_url":"","thumbnail_url":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***","progress":100,"seed":1234,"started_at":1692771667037,"created_at":1692771650657,"finished_at":1692771669037,"status":"SUCCEEDED","texture_urls": [ {"base_color":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0.png?Expires=***","metallic":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_metallic.png?Expires=XXX","normal":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_normal.png?Expires=XXX","roughness":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_roughness.png?Expires=XXX","emission":"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_emission.png?Expires=XXX" } ],"preceding_tasks":0,"task_error": {"message":"" },"consumed_credits":20}