API Изображение в 3D

API Изображение в 3D — это функция, позволяющая интегрировать возможности Meshy по преобразованию изображений в 3D в ваше собственное приложение. В этом разделе вы найдёте всю информацию, необходимую для начала работы с этим API.


POST/openapi/v1/image-to-3d

Create an Image to 3D Task

Этот эндпоинт позволяет создать новую задачу Изображение в 3D. Обратитесь к разделу Объект задачи Изображение в 3D, чтобы узнать, какие свойства включены в объект задачи Изображение в 3D.

Параметры

  • 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,<ваши base64-закодированные данные изображения>.
  • Name
    model_type
    Type
    string
    по умолчанию standard
    Description

    Укажите тип генерации 3D-сетки.

    Доступные значения:

    • standard: обычная детализированная генерация 3D-сетки.
    • smart-topology: выберите модель Smart Topology с ai_model (meshy-t2).
    • lowpoly (устаревшее): генерирует низкополигональную сетку, оптимизированную для более чистых полигонов. Рекомендуем использовать smart-topology вместо этого.
  • Name
    ai_model
    Type
    string
    по умолчанию latest
    Description

    ID используемой модели. Доступные значения зависят от model_type.

    Стандартная генерация (model_type: standard):

    • meshy-6-lite, meshy-6, meshy-7.1, latest (Meshy 7.1)
    • meshy-7 (устаревшее): используйте meshy-7.1 вместо этого.

    Генерация Smart Topology (model_type: smart-topology):

    • meshy-t2 (по умолчанию): модель Smart Topology — более чистая topology, естественным образом разделённые части, вывод в виде треугольников и число граней, которое можно задать через target_polycount.
  • Name
    geometry_resolution
    Type
    string
    по умолчанию standard
    Description

    Проход генерации геометрии. 2k запускает Ultra-проход с разрешением 2048³; 4k запускает его с разрешением 4096³ для максимальной детализации поверхности.

    Доступные значения: standard, 2k, 4k

  • Name
    ultra_mode
    Type
    boolean
    ⚠ устаревший
    по умолчанию false
    Description

    Используйте geometry_resolution вместо этого. ultra_mode: true эквивалентно geometry_resolution: "2k".

  • Name
    should_texture
    Type
    boolean
    по умолчанию true
    Description

    Определяет, генерируются ли текстуры. Установка значения false пропускает этап текстурирования, предоставляя сетку без текстур.

Применяется только когда should_texture = true
  • Name
    enable_pbr
    Type
    boolean
    по умолчанию false
    Description

    Генерировать PBR-карты (металличность, шероховатость, нормали) в дополнение к базовому цвету. Карта эмиссии также включается, если ai_model — meshy-6, за исключением texture_resolution: 8k. meshy-6-lite, meshy-7.1 и latest не создают карту эмиссии.

  • Name
    texture_resolution
    Type
    string
    по умолчанию 2k
    Description

    Разрешение текстуры базового цвета. Одно из значений: 2k (2048×2048), 4k (4096×4096) или 8k (8192×8192). Более высокое разрешение позволяет захватить больше деталей поверхности.

  • 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,<ваши base64-закодированные данные изображения>
  • 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

    Укажите режим позы для генерируемой модели.

    Доступные значения:

    • 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, чтобы сохранить точный внешний вид входного изображения без какой-либо стилевой обработки.

  • Name
    remove_lighting
    Type
    boolean
    по умолчанию true
    Description

    Удаляет отражения света и тени из текстуры базового цвета, создавая более чистый результат, который лучше подходит для использования с собственной настройкой освещения.

  • 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

  • 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 не изменяется и продолжает указывать на вид спереди, поэтому существующие клиенты не затрагиваются.

Применяется только когда 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 params
curl https://api.meshy.ai/openapi/v1/image-to-3d \
  -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>"
  }'

# With Ultra 4K geometry, remesh, PBR, and A-pose
curl https://api.meshy.ai/openapi/v1/image-to-3d \
  -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>",
    "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"]
  }'

Response

{
  "result": "018a210d-8ba4-705c-b111-1f1776f7f578"
}

GET/openapi/v1/image-to-3d/:id

Получить задачу изображения в 3D

Этот эндпоинт позволяет получить задачу изображения в 3D по действительному id задачи. Обратитесь к разделу Объект задачи Изображение в 3D, чтобы узнать, какие свойства включены в объект задачи Изображение в 3D.

Параметры

  • Name
    id
    Type
    path
    Description

    Уникальный идентификатор задачи Изображение в 3D, которую требуется получить.

Возвращаемое значение

Ответ содержит объект задачи Изображение в 3D. Подробности см. в разделе Объект задачи Изображение в 3D.

Request

GET
/openapi/v1/image-to-3d/018a210d-8ba4-705c-b111-1f1776f7f578
curl https://api.meshy.ai/openapi/v1/image-to-3d/018a210d-8ba4-705c-b111-1f1776f7f578 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Response

{
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "image-to-3d",
  "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=***",
    "obj": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.obj?Expires=***",
    "usdz": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.usdz?Expires=***",
    "stl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***",
    "pre_remeshed_glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/pre_remeshed_model.glb?Expires=***"
  },
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***",
  "thumbnail_urls": {
    "front": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_front.png?Expires=***",
    "right": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_right.png?Expires=***",
    "back": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_back.png?Expires=***",
    "left": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_left.png?Expires=***"
  },
  "texture_prompt": "",
  "progress": 100,
  "started_at": 1692771667037,
  "created_at": 1692771650657,
  "expires_at": 1692771679037,
  "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": 30
}

DELETE/openapi/v1/image-to-3d/:id

Удаление задачи Изображение в 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.

Request

DELETE
/openapi/v1/image-to-3d/018a210d-8ba4-705c-b111-1f1776f7f578
curl --request DELETE \
  --url https://api.meshy.ai/openapi/v1/image-to-3d/018a210d-8ba4-705c-b111-1f1776f7f578 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Response

// 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."
}

GET/openapi/v1/image-to-3d

Список задач Изображение в 3D

Этот эндпоинт позволяет получить список задач Изображение в 3D.

Параметры

Необязательные атрибуты

  • Name
    page_num
    Type
    integer
    Description

    Номер страницы для пагинации. Начинается и по умолчанию равен 1.

  • Name
    page_size
    Type
    integer
    Description

    Ограничение размера страницы. По умолчанию 10 элементов. Максимально допустимое значение — 100 элементов.

  • Name
    sort_by
    Type
    string
    Description

    Поле для сортировки. Доступные значения:

    • +created_at: Сортировка по времени создания в порядке возрастания.
    • -created_at: Сортировка по времени создания в порядке убывания.

Возвращает

Возвращает список объектов The Image to 3D Task Objects с пагинацией.

Request

GET
/openapi/v1/image-to-3d
curl https://api.meshy.ai/openapi/v1/image-to-3d?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response

[
  {
    "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
    "type": "image-to-3d",
    "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=***",
      "obj": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.obj?Expires=***",
      "usdz": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.usdz?Expires=***",
      "pre_remeshed_glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/pre_remeshed_model.glb?Expires=***"
    },
    "thumbnail_url": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***",
    "thumbnail_urls": {
      "front": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_front.png?Expires=***",
      "right": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_right.png?Expires=***",
      "back": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_back.png?Expires=***",
      "left": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_left.png?Expires=***"
    },
    "texture_prompt": "",
    "progress": 100,
    "started_at": 1692771667037,
    "created_at": 1692771650657,
    "expires_at": 1692771679037,
    "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": 30
  }
]

GET/openapi/v1/image-to-3d/:id/stream

Стриминг задачи «Изображение в 3D»

Этот эндпоинт передаёт обновления в реальном времени для задачи «Изображение в 3D» с использованием Server-Sent Events (SSE).

Параметры

  • Name
    id
    Type
    path
    Description

    Уникальный идентификатор задачи «Изображение в 3D», для которой требуется получать поток обновлений.

Возвращает

Возвращает поток объектов задачи «Изображение в 3D» в виде Server-Sent Events.

Для задач со статусом PENDING или IN_PROGRESS поток ответа будет включать только необходимые поля progress и status.

Request

GET
/openapi/v1/image-to-3d/018a210d-8ba4-705c-b111-1f1776f7f578/stream
curl -N https://api.meshy.ai/openapi/v1/image-to-3d/018a210d-8ba4-705c-b111-1f1776f7f578/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response Stream

// Error event example
event: error
data: {
  "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: message
data: {
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "progress": 0,
  "status": "PENDING"
}

event: message
data: {
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "image-to-3d",
  "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=***",
  "obj": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.obj?Expires=***",
  "usdz": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.usdz?Expires=***",
  "stl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***",
  "pre_remeshed_glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/pre_remeshed_model.glb?Expires=***"
  },
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***",
  "thumbnail_urls": {
    "front": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_front.png?Expires=***",
    "right": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_right.png?Expires=***",
    "back": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_back.png?Expires=***",
    "left": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_left.png?Expires=***"
  },
  "texture_prompt": "",
  "progress": 100,
  "started_at": 1692771667037,
  "created_at": 1692771650657,
  "expires_at": 1692771679037,
  "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": 30
}

Объект задачи Изображение в 3D

Объект задачи Изображение в 3D — это единица работы, которую Meshy отслеживает для генерации 3D-модели из входного изображения. Объект имеет следующие свойства:

Свойства

  • Name
    id
    Type
    string
    Description

    Уникальный идентификатор задачи. Хотя в качестве деталей реализации мы используем k-sortable UUID для идентификаторов задач, вам не следует делать никаких предположений о формате id.

  • Name
    type
    Type
    string
    Description

    Тип задачи Изображение в 3D. Значение — image-to-3d.

  • Name
    model_urls
    Type
    object
    Description

    Ссылка для скачивания текстурированного файла 3D-модели, сгенерированного Meshy. Свойство для формата будет отсутствовать, если этот формат не был сгенерирован, вместо возврата пустой строки.

    • Name
      glb
      Type
      string
      Description

      Ссылка для скачивания файла GLB.

    • Name
      fbx
      Type
      string
      Description

      Ссылка для скачивания файла FBX.

    • Name
      obj
      Type
      string
      Description

      Ссылка для скачивания файла OBJ.

    • Name
      usdz
      Type
      string
      Description

      Ссылка для скачивания файла USDZ.

    • Name
      mtl
      Type
      string
      Description

      Ссылка для скачивания файла MTL, возвращается вместе с экспортом OBJ при наличии текстур.

    • Name
      stl
      Type
      string
      Description

      Ссылка для скачивания файла STL.

    • Name
      3mf
      Type
      string
      Description

      Ссылка для скачивания файла 3MF. Присутствует только если 3mf был запрошен через target_formats.

    • Name
      pre_remeshed_glb
      Type
      string
      Description

      Ссылка для скачивания исходного результата GLB до ремешинга.

  • Name
    thumbnail_url
    Type
    string
    Description

    Ссылка для скачивания миниатюры файла модели. Эквивалентно thumbnail_urls.front, когда оно присутствует, сохранено для обратной совместимости.

  • Name
    alpha_thumbnail_url
    Type
    string
    Description

    Ссылка для скачивания версии thumbnail_url с прозрачным фоном (RGBA). Присутствует только если задача была создана с alpha_thumbnail: true и прозрачное превью было успешно отрендерено; в противном случае это поле отсутствует.

  • Name
    thumbnail_urls
    Type
    object
    Description

    Ссылки для скачивания четырёх миниатюр сгенерированной 3D-модели с видами по основным направлениям. Каждое значение — подписанная ссылка на PNG размером 512×512, отрендеренный с теми же материалами и освещением, что и thumbnail_url. Полезно для предварительного просмотра модели с разных углов в пакетных конвейерах без скачивания GLB.

    • 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

    Ссылка для скачивания изображения текстуры, которое использовалось для управления процессом текстурирования.

  • 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.

  • 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

    Массив объектов ссылок на текстуры, сгенерированных в рамках задачи. Обычно он содержит только один объект ссылки на текстуру. Каждая ссылка на текстуру имеет следующие свойства:

    • Name
      base_color
      Type
      string
      Description

      Ссылка для скачивания изображения карты базового цвета.

    • Name
      metallic
      Type
      string
      Description

      Ссылка для скачивания изображения карты металличности.

    • Name
      normal
      Type
      string
      Description

      Ссылка для скачивания изображения карты нормалей.

    • Name
      roughness
      Type
      string
      Description

      Ссылка для скачивания изображения карты шероховатости.

    • Name
      emission
      Type
      string
      Description

      Ссылка для скачивания изображения карты излучения (emission).

  • Name
    preceding_tasks
    Type
    integer
    Description

    Количество задач, предшествующих текущей.

  • Name
    task_error
    Type
    object
    Description

    Детали ошибки для неудачных задач. См. раздел Ошибки для полного описания объекта task_error.

  • Name
    consumed_credits
    Type
    integer
    Description

    Количество кредитов, потраченных на эту задачу. Присутствует, когда статус задачи — PENDING, IN_PROGRESS или SUCCEEDED. Возвращает 0 для задач со статусом FAILED (кредиты возвращаются при неудаче).

Example Image to 3D Task Object

{
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "image-to-3d",
  "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=***",
    "obj": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.obj?Expires=***",
    "usdz": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.usdz?Expires=***",
    "stl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***",
    "pre_remeshed_glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/pre_remeshed_model.glb?Expires=***"
  },
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***",
  "thumbnail_urls": {
    "front": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_front.png?Expires=***",
    "right": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_right.png?Expires=***",
    "back": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_back.png?Expires=***",
    "left": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_left.png?Expires=***"
  },
  "texture_prompt": "",
  "texture_image_url": "",
  "progress": 100,
  "started_at": 1692771667037,
  "created_at": 1692771650657,
  "expires_at": 1692771679037,
  "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": 30
}