Превратите исходную фотографию в виниловую коллекционную 3D-фигурку с
большой головой в два этапа: prototype создаёт стилизованное
концептуальное изображение на основе вашего исходного фото, а затем
build превращает это концептуальное изображение в текстурированную
3D-модель. Оба этапа связаны через input_task_id.
POST /openapi/creative-lab/vinyl-figure/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, изображение прототипа возвращается в виде прозрачного PNG в формате RGBA с удалённым фоном, что позволяет разместить объект на любом фоне.
Возвращаемое значение
Свойство result ответа содержит id задачи только что созданного прототипа виниловой фигурки. Опрашивайте эндпоинт Получение задачи или подпишитесь на поток, пока задача не достигнет статуса SUCCEEDED, затем передайте этот ID в эндпоинт сборки как input_task_id.
Режимы сбоя
Name
400 - Bad Request
Description
Запрос был некорректным. Распространённые причины:
Размеры изображения вне допустимого диапазона: изображение слишком маленькое, превышает максимальный размер файла или превышает максимальное количество пикселей.
Недоступный 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/vinyl-figure/v1/prototype
# Stage 1: generate a vinyl-figure-style concept imagecurlhttps://api.meshy.ai/openapi/creative-lab/vinyl-figure/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":"019c8a2e-4b7d-7c3a-8d21-3f2987a1c4de"}
Пример прототипа
Начните с исходного фото, затем сгенерируйте изображение прототипа, используемое на этапе сборки.
Создайте финальную текстурированную 3D-виниловую фигурку из успешно завершённой задачи-прототипа. Сборка выполняется по тому же конвейеру «изображение в 3D», что и Изображение в 3D, поэтому формат объекта ответа и список URL-адресов выходных файлов полностью совпадают. Форму ответа см. в разделе
Объект задачи сборки виниловой фигурки.
Параметры
Name
input_task_id
Type
string
Обязательный
Description
ID задачи-прототипа, созданной через этот же эндпоинт OpenAPI. Прототип должен быть создан с тем же API-ключом, должен достичь статуса SUCCEEDED и должен был произвести ровно одно изображение-кандидат.
Задачи-прототипы, созданные через веб-приложение, не принимаются — эндпоинт сборки принимает только задачи-прототипы, созданные через POST /openapi/creative-lab/vinyl-figure/v1/prototype, и отклоняет любой другой источник с кодом 404.
Name
name
Type
string
Description
Необязательное название задачи для отображения. Максимум 100 символов.
Возвращаемые данные
Свойство result в ответе содержит id задачи только что созданной задачи сборки виниловой фигурки. Опрашивайте эндпоинт Получение задачи или подпишитесь на поток, пока задача не достигнет статуса SUCCEEDED, а затем загрузите текстурированный GLB из model_urls.glb (или пару OBJ + MTL из model_urls.obj и model_urls.mtl, если ваш последующий конвейер обработки предпочитает OBJ).
Режимы сбоев
Name
400 - Bad Request
Description
Запрос был некорректен. Распространённые причины:
Отсутствует параметр: требуется input_task_id.
Недопустимый UUID: input_task_id не является допустимым UUID.
Родительская задача не завершена успешно: указанная задача-прототип ещё не достигла статуса SUCCEEDED.
Нет кандидата: задача-прототип завершилась успешно, но не создала изображение-кандидат.
Указанная задача-прототип не существует, принадлежит другому пользователю или была создана через веб-приложение (в сборку могут переходить только задачи-прототипы, созданные в режиме API).
Name
429 - Too Many Requests
Description
Вы превысили ограничение частоты запросов.
Request
POST
/openapi/creative-lab/vinyl-figure/v1/build
# Stage 2: chain build off a succeeded prototype taskcurlhttps://api.meshy.ai/openapi/creative-lab/vinyl-figure/v1/build \-XPOST \-H"Authorization: Bearer ${YOUR_API_KEY}" \-H'Content-Type: application/json' \-d'{ "input_task_id": "019c8a2e-4b7d-7c3a-8d21-3f2987a1c4de" }'
Получите задачу прототипа или сборки по действительному 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
Уникальный идентификатор задачи виниловой фигурки для получения потока.
Возвращает
Возвращает поток объектов задач Vinyl Figure Prototype
или Vinyl Figure Build в виде Server-Sent Events. Каждый кадр содержит полный объект задачи для данного этапа — в том же формате, который
возвращает эндпоинт Get — поэтому пока задача находится в состоянии PENDING или IN_PROGRESS,
выходные поля просто ещё не заполнены (null, [] или {}), а
finished_at равно null.
Получите постраничный список ваших задач фигурки в стиле виниловых игрушек для одного этапа.
Путь 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-sortable UUID для идентификаторов задач, вам не следует делать какие-либо предположения о формате id.
Name
type
Type
string
Description
Тип задачи. Значение — creative-lab-vinyl-figure-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 PM GMT представляется как 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
Ссылки для загрузки вариантов концептуального изображения, сгенерированных этой задачей прототипа. В настоящее время API всегда возвращает ровно один вариант; поле представлено массивом, чтобы в будущих версиях можно было предоставлять несколько вариантов без обратной несовместимости.
Объект Vinyl Figure Build Task — это единица работы, которую Meshy отслеживает
для генерации текстурированной 3D-фигурки в стиле винила из успешно выполненной задачи прототипа.
Он использует тот же конвейер преобразования изображения в 3D, что и Изображение в 3D,
поэтому выходные поля повторяют объект задачи этого эндпоинта.
Свойства
Name
id
Type
string
Description
Уникальный идентификатор задачи.
Name
type
Type
string
Description
Тип задачи. Значение — creative-lab-vinyl-figure-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
prompt
Type
string
Description
Всегда пусто для vinyl figure build. Присутствует для совместимости между эндпоинтами с общей структурой V2ImageTo3DTaskResponse, используемой в Изображение в 3D.
Name
negative_prompt
Type
string
Description
Всегда пусто для vinyl figure build. Присутствует для совместимости между эндпоинтами.
Name
texture_prompt
Type
string
Description
Всегда пусто для vinyl figure build. Присутствует для совместимости между эндпоинтами.
Name
texture_image_url
Type
string
Description
Всегда пусто для vinyl figure build. Присутствует для совместимости между эндпоинтами.
Name
model_urls
Type
object
Description
Ссылки для скачивания сгенерированной 3D-модели. Vinyl figure build выдаёт текстурированный GLB, а также пару OBJ + MTL для конвейеров, предпочитающих формат Wavefront OBJ. Структура поля соответствует объекту model_urls из Изображение в 3D, поэтому добавление новых форматов в будущем не приведёт к обратной несовместимости.
Name
glb
Type
string
Description
Ссылка для скачивания текстурированного файла GLB.
Name
obj
Type
string
Description
Ссылка для скачивания файла Wavefront OBJ (геометрия + UV).
Name
mtl
Type
string
Description
Ссылка для скачивания сопутствующего файла материала MTL для OBJ. Используйте вместе с obj и записью из texture_urls[0].base_color.
Name
thumbnail_url
Type
string
Description
Ссылка для скачивания миниатюры файла модели.
Name
texture_urls
Type
array
Description
Массив объектов ссылок на текстуры, сгенерированных этой задачей. В настоящее время содержит один объект с картой базового цвета.
Name
base_color
Type
string
Description
Ссылка для скачивания изображения карты базового цвета.