Изображение в изображение API
Редактируйте и преобразуйте изображения в своём собственном приложении. Отправьте референсные изображения и текстовый prompt, и ИИ-модели Meshy сгенерируют на их основе новое изображение.
Изображение в изображение создаёт изображения. Чтобы создать 3D-модель того, что изображено на картинке, используйте Изображение в 3D. Чтобы создать объект, который можно взять в руки или напечатать по фотографии, используйте Creative Lab APIs. Они создают изображение прототипа, а затем строят по нему 3D-модель, например брелок, магнит на холодильник, фигурку, лампу или колпачок клавиши.
Create an Image to Image task
Создаёт задачу Изображение в изображение. Задача выполняется в фоновом режиме. О том, сколько обычно занимает выполнение задачи, см. Время обработки.
Request
# Transform a reference image with a text prompt
curl https://api.meshy.ai/openapi/v1/image-to-image \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"ai_model": "nano-banana",
"prompt": "Transform this into a cyberpunk style artwork",
"reference_image_urls": [
"<your publicly accessible image url or base64-encoded data URI>"
]
}'
## Using data URI example
curl https://api.meshy.ai/openapi/v1/image-to-image \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"ai_model": "nano-banana",
"prompt": "Transform this into a cyberpunk style artwork",
"reference_image_urls": [
"data:image/png;base64,${YOUR_BASE64_ENCODED_IMAGE_DATA}"
]
}'
## Chaining from a previous task, instead of passing image URLs
curl https://api.meshy.ai/openapi/v1/image-to-image \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"ai_model": "nano-banana",
"prompt": "Transform this into a cyberpunk style artwork",
"input_task_id": "<your Text to Image or Image to Image task id>"
}'
Response
{
"result": "018a210d-8ba4-705c-b111-1f1776f7f578"
}
Параметры
- Name
- ai_model
- Type
- string
- Обязательный
- Description
ИИ-модель, генерирующая изображение. Цены различаются в зависимости от модели. См. Цены.
Доступные значения:
nano-banana: стандартная модельnano-banana-2: более функциональна, чемnano-banananano-banana-2-lite: облегчённая версияnano-banana-2nano-banana-2-1: Nano Banana 2.1nano-banana-pro: Pro-модель с более высоким качеством. Для неё требуется план Pro или выше. На более низком плане возвращает402.gpt-image-2: OpenAI GPT Image 2gpt-image-2-5-flare: OpenAI GPT Image 2.5 (Flare)gpt-image-2-5-sunburst: OpenAI GPT Image 2.5 (Sunburst)
- Name
- prompt
- Type
- string
- Обязательный
- Description
Текст, описывающий редактирование или преобразование, которое нужно применить к референсным изображениям.
- Name
- input_task_id
- Type
- string
- Обязательный
- Description
Обязателен, если не отправлен
reference_image_urls. ID задачи Текст в изображение или Изображение в изображение, изображения которой используются как референсы, включая задачи с мультивидом. Задача должна быть создана вами через API и иметь статусSUCCEEDED.Meshy использует все изображения, созданные задачей. Задача с одним изображением даёт одно референсное изображение, а задача с мультивидом — по одному на каждый ракурс. Так что один ID задачи может заполнить несколько из пяти слотов для референсов.
Задача всё ещё должна находиться в пределах периода хранения ресурсов. После его истечения её ID возвращает
404.
- Name
- reference_image_urls
- Type
- array
- Обязательный
- Description
Обязателен, если не отправлен
input_task_id. От одного до пяти референсных изображений для редактирования, каждое в виде публичного URL или Data URI, напримерdata:image/jpeg;base64,<your base64-encoded image data>. Пустой массив или более пяти изображений возвращает400. Если отправлены оба параметра, Meshy используетinput_task_id.Каждое изображение должно быть файлом
.jpg,.jpeg,.pngили.webpразмером не более 20 МБ и не менее 32 пикселей с каждой стороны.
- Name
- generate_multi_view
- Type
- boolean
- по умолчанию false
- Description
Создавать ли мультивидовое изображение, показывающее объект с нескольких ракурсов. При значении
trueнельзя отправлятьaspect_ratio. Отправка обоих параметров возвращает400.
- Name
- aspect_ratio
- Type
- string
- по умолчанию 1:1
- Description
Соотношение сторон выходного изображения. Доступные для отправки значения зависят от
ai_model.Доступные значения:
1:1: квадрат16:9: широкоформатный альбомный9:16: широкоформатный портретный4:3: стандартный альбомный3:4: стандартный портретный3:2: альбомный, только для моделей GPT Image2:3: портретный, только для моделей GPT Image
Модели GPT Image — это
gpt-image-2,gpt-image-2-5-flareиgpt-image-2-5-sunburst. С модельюnano-bananaзначения3:2и2:3возвращают400.
- Name
- remove_background
- Type
- boolean
- по умолчанию false
- Description
Удалять ли фон. При значении
trueMeshy возвращает выходное изображение в виде прозрачного PNG в формате RGBA, чтобы вы могли разместить объект на любом фоне.
Что возвращается
Поле result в ответе содержит ID новой задачи Изображение в изображение.
Режимы сбоя
- Name
400 - Bad Request- Description
Запрос не может быть выполнен. В сообщении об ошибке указывается, какая именно проблема обнаружена. Например:
- Отсутствует параметр: отсутствует обязательный параметр, например
ai_modelилиprompt, либо не отправлен ниreference_image_urls, ниinput_task_id. - Недопустимая входная задача:
input_task_idне указывает на пригодную для использования задачу. Это должна быть задача Текст в изображение или Изображение в изображение со статусомSUCCEEDED, включая мультивид, с сохранившимся выходным изображением. Meshy отклоняет задачу другого типа, незавершённую задачу и задачу, у которой все изображения истекли. - Недопустимый формат изображения: одно или несколько референсных изображений имеют неподдерживаемый формат.
- Недоступный URL: Meshy не может загрузить одно или несколько изображений из
reference_image_urls. - Изображение слишком большое: одно или несколько изображений из
reference_image_urlsпревышают 20 МБ. - Изображение слишком маленькое: у одного или нескольких изображений из
reference_image_urlsсторона короче 32 пикселей. - Недопустимый параметр:
aspect_ratioне входит в число значений, поддерживаемых выбраннойai_model. - Конфликт: в запросе отправлен
aspect_ratioвместе сgenerate_multi_view: true.
Исправьте запрос и отправьте его снова. См. Ошибки.
- Отсутствует параметр: отсутствует обязательный параметр, например
- Name
401 - Unauthorized- Description
API-ключ отсутствует или недействителен. Проверьте заголовок
Authorization.
- Name
402 - Payment Required- Description
Аккаунт не может выполнить эту задачу. Например:
- Бесплатный план: для создания задачи требуется платный план. Обновите план в настройках подписки, затем повторите попытку.
- Недостаточно кредитов: на аккаунте недостаточно кредитов для этой задачи, либо аккаунт достиг лимита кредитов.
- Требуется план: в запросе используется
nano-banana-proна плане ниже Pro.
Проверьте баланс кредитов и план, затем повторите попытку.
- Name
404 - Not Found- Description
input_task_idне соответствует ни одной задаче в вашем аккаунте. Несуществующая задача и задача, принадлежащая другому аккаунту, возвращают одинаковый ответ. Проверьте ID.
- Name
429 - Too Many Requests- Description
Превышено ограничение частоты. Подождите, затем повторите попытку. См. Ограничения частоты.
Получить задачу Изображение в изображение
Возвращает задачу Изображение в изображение по её ID.
Request
curl https://api.meshy.ai/openapi/v1/image-to-image/018a210d-8ba4-705c-b111-1f1776f7f578 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
{
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"type": "image-to-image",
"ai_model": "nano-banana",
"prompt": "Transform this into a cyberpunk style artwork",
"status": "SUCCEEDED",
"progress": 100,
"created_at": 1692771650657,
"started_at": 1692771667037,
"finished_at": 1692771669037,
"expires_at": 1692771679037,
"image_urls": [
"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/image.png?Expires=***"
]
}
Параметры
- Name
- id
- Type
- path
- Description
ID задачи из ответа на создание.
Возвращает
Удаление задачи Изображение в изображение
Безвозвратно удаляет задачу Изображение в изображение, включая её изображения и данные. Отменить удаление нельзя.
Request
curl --request DELETE \
--url https://api.meshy.ai/openapi/v1/image-to-image/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 keeps 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."
}
Параметры пути
- Name
- id
- Type
- path
- Description
ID задачи, которую нужно удалить.
Статус задачи
Удаление задачи со статусом PENDING возвращает кредиты, потраченные при её создании.
Задачу со статусом IN_PROGRESS удалить нельзя. Запрос вернёт 409 Conflict,
и задача продолжит выполняться. Meshy не возвращает кредиты за задачу, которая уже начала
выполняться, поэтому удаление такой задачи обойдётся вам и в потерю кредитов, и в потерю результата. Дождитесь,
пока она перейдёт в статус SUCCEEDED, FAILED или CANCELED, и только затем удаляйте её.
Удаление задачи в финальном статусе (SUCCEEDED, FAILED или CANCELED)
не возвращает потраченные на неё кредиты.
Возвращает
200 OK, когда задача удалена, или 409 Conflict, когда задача имеет статус
IN_PROGRESS.
Список задач «Изображение в изображение»
Возвращает список ваших задач «Изображение в изображение» и «Текст в изображение». Поле type каждой задачи указывает, к какому из этих двух типов она относится.
Request
curl https://api.meshy.ai/openapi/v1/image-to-image?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
[
{
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"type": "image-to-image",
"ai_model": "nano-banana",
"prompt": "Transform this into a cyberpunk style artwork",
"status": "SUCCEEDED",
"progress": 100,
"created_at": 1692771650657,
"started_at": 1692771667037,
"finished_at": 1692771669037,
"expires_at": 1692771679037,
"image_urls": [
"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/image.png?Expires=***"
]
}
]
Параметры
- Name
- page_num
- Type
- integer
- Description
Номер страницы для возврата. Начинается с
1и по умолчанию равен1.
- Name
- page_size
- Type
- integer
- Description
Количество задач на странице, до
100. По умолчанию10.
- Name
- sort_by
- Type
- string
- Description
Порядок сортировки.
Доступные значения:
+created_at: сначала старые-created_at: сначала новые
Возвращает
Постраничный список объектов задач в том же формате, что и объект задачи «Изображение в изображение».
Передача Image to Image задачи потоком
Передаёт обновления задачи Изображение в изображение в виде Server-Sent Events (SSE).
Request
curl -N https://api.meshy.ai/openapi/v1/image-to-image/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.
// These examples are shortened. Each event holds the full task object.
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-image",
"ai_model": "nano-banana",
"prompt": "Transform this into a cyberpunk style artwork",
"status": "SUCCEEDED",
"progress": 100,
"created_at": 1692771650657,
"started_at": 1692771667037,
"finished_at": 1692771669037,
"expires_at": 1692771679037,
"image_urls": [
"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/image.png?Expires=***"
]
}
Параметры
- Name
- id
- Type
- path
- Description
ID задачи из ответа на создание.
Возвращает
Поток объектов задачи Изображение в изображение в виде Server-Sent Events.
Каждое событие содержит полный объект задачи, в том же формате, в котором его возвращает эндпоинт Get. Пока задача находится в статусе PENDING или IN_PROGRESS, поля результата ещё не имеют значений.
Объект задачи Image to Image
Объект задачи Image to Image описывает одно изображение, сгенерированное на основе референсных изображений и текстового prompt. Он содержит статус, progress и изображения, когда задача завершается успешно.
Свойства
Example Image to Image Task Object
{
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"type": "image-to-image",
"ai_model": "nano-banana",
"prompt": "Transform this into a cyberpunk style artwork",
"status": "SUCCEEDED",
"progress": 100,
"created_at": 1692771650657,
"started_at": 1692771667037,
"finished_at": 1692771669037,
"expires_at": 1692771679037,
"image_urls": [
"https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/image.png?Expires=***"
],
"task_error": null,
"consumed_credits": 3
}
- Name
- id
- Type
- string
- Description
ID задачи. Рассматривайте его как непрозрачную строку и не полагайтесь на её формат.
- Name
- type
- Type
- string
- Description
Тип задачи, всегда
image-to-image.
- Name
- ai_model
- Type
- string
- Description
ИИ-модель, использованная задачей.
Доступные значения:
nano-banananano-banana-2nano-banana-2-litenano-banana-2-1nano-banana-progpt-image-2gpt-image-2-5-flaregpt-image-2-5-sunburst
- Name
- prompt
- Type
- string
- Description
Текстовый prompt, направлявший редактирование.
- Name
- status
- Type
- string
- Description
Статус задачи, один из
PENDING,IN_PROGRESS,SUCCEEDED,FAILEDилиCANCELED.
- Name
- progress
- Type
- integer
- Description
Насколько выполнена задача, в процентах. Равно
0, пока задача не началась, и100, когда она завершается успешно.
- Name
- created_at
- Type
- timestamp
- Description
Время создания задачи, в миллисекундах Unix.
- Name
- started_at
- Type
- timestamp
- Description
Время начала задачи, в миллисекундах Unix. Отсутствует, пока задача не началась.
- Name
- finished_at
- Type
- timestamp
- Description
Время завершения задачи, в миллисекундах Unix. Отсутствует, пока задача не завершится.
- Name
- expires_at
- Type
- timestamp
- Description
Время истечения срока действия результатов задачи, в миллисекундах Unix. Отсутствует, пока задача не завершится.
- Name
- preceding_tasks
- Type
- integer
- Description
Количество задач, стоящих перед этой в очереди. Значение имеет смысл только пока задача находится в статусе
PENDING. Поле отсутствует, если значение равно0.
- Name
- image_urls
- Type
- array
- Description
URL-адреса для скачивания сгенерированных изображений. При
generate_multi_view: trueсодержит по одному URL на каждый ракурс, обычно три. Если Meshy не может разделить все ракурсы, он возвращает меньше, и задача всё равно завершается успешно. В противном случае содержит один URL.
- Name
- task_error
- Type
- object
- Description
Детали ошибки, если задача завершилась неудачей. Равно
null, если статус неFAILED. См. Ошибки.
- Name
- consumed_credits
- Type
- integer
- Description
Количество кредитов, использованных задачей. Присутствует, когда статус
PENDING,IN_PROGRESSилиSUCCEEDED. Равно0для задачи со статусомFAILED, поскольку Meshy возвращает кредиты, если задача завершается неудачей.