API Зображення у зображення
Редагуйте та трансформуйте зображення у власному застосунку. Надішліть референсні зображення та текстовий prompt, і моделі штучного інтелекту Meshy згенерують на їх основі нове зображення.
Зображення у зображення створює зображення. Щоб створити 3D-модель на основі того, що зображено на картинці, скористайтеся Зображення у 3D. Щоб створити об'єкт, який можна тримати в руках або надрукувати на основі фото, скористайтеся API Creative Lab. Вони створюють прототипне зображення, а потім будують на його основі 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
Чи видаляти фон. Якщо
true, Meshy повертає вихідне зображення як прозорий RGBA PNG, щоб ви могли розмістити об’єкт на будь-якому фоні.
Результат
Поле 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
Ви перевищили обмеження частоти. Зачекайте, потім повторіть спробу. Див. Обмеження частоти.
Get an Image to Image task
Повертає завдання Зображення у зображення за його 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 завдання з відповіді на створення.
Повертає
Видалити задачу Image to Image
Остаточно видаляє задачу Image to Image, включно з її зображеннями та даними. Скасувати видалення неможливо.
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: спочатку найновіші
Повертає
Розбитий на сторінки список об'єктів завдань у тому ж форматі, що й об'єкт завдання Зображення у зображення.
Стрімінг задачі Зображення у зображення
Передає оновлення задачі Зображення у зображення у вигляді подій 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, її поля результату ще не мають значень.
Об'єкт завдання «Зображення у зображення»
Об'єкт завдання «Зображення у зображення» описує одне зображення, згенероване на основі референсних зображень і текстового 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 повертає кредити, якщо завдання завершується невдало.