Редактирование изображений
Редактируйте и комбинируйте изображения с помощью текстовых описаний. Загрузите одно или несколько изображений и опишите, что нужно сделать — ИИ выполнит редактирование.
Эндпоинт POST /v1/images/edits позволяет изменять изображения на основе текстовых инструкций. Поддерживает работу с несколькими изображениями одновременно (до 16 штук).
Поддерживаемые модели
| Модель | Провайдер | Описание |
|---|---|---|
gpt-image-1.5 | OpenAI | Новейшая модель, высокое качество, до 10 изображений |
gpt-image-1 | OpenAI | GPT Image 1, до 10 изображений |
gpt-image-1-mini | OpenAI | Быстрая и экономичная, до 10 изображений |
qwen-image-edit | Qwen | Только редактирование |
seedream-4.5 | ByteDance | Seedream от ByteDance |
gemini-3-pro-image-preview | Gemini 3 Pro | |
gemini-2.5-flash-image | Gemini 2.5 Flash | |
flux.2-klein-4b | Black Forest Labs | Компактная Flux модель |
flux.2-max | Black Forest Labs | Максимальное качество |
flux.2-pro | Black Forest Labs | Профессиональная |
flux.2-flex | Black Forest Labs | Гибкая |
Базовое использование
Запрос отправляется в формате multipart/form-data с изображением и текстовой инструкцией.
from openai import OpenAI
client = OpenAI(
api_key="sk-aitunnel-xxx",
base_url="https://api.aitunnel.ru/v1/",
)
response = client.images.edit(
model="gpt-image-1",
image=open("photo.png", "rb"),
prompt="Добавь солнечные очки на лицо человека",
)
print(response.data[0].b64_json[:50])import OpenAI from "openai";
import fs from "fs";
const client = new OpenAI({
apiKey: "sk-aitunnel-xxx",
baseURL: "https://api.aitunnel.ru/v1/",
});
const response = await client.images.edit({
model: "gpt-image-1",
image: fs.createReadStream("photo.png"),
prompt: "Добавь солнечные очки на лицо человека",
});
console.log(response.data[0].b64_json?.slice(0, 50));curl https://api.aitunnel.ru/v1/images/edits \
-H "Authorization: Bearer sk-aitunnel-xxx" \
-F model="gpt-image-1" \
-F image="@photo.png" \
-F prompt="Добавь солнечные очки на лицо человека"Комбинирование нескольких изображений
Модели GPT Image поддерживают до 16 входных изображений. Это позволяет комбинировать элементы из разных фотографий в одно изображение.
Создание коллажа из нескольких фото
curl https://api.aitunnel.ru/v1/images/edits \
-H "Authorization: Bearer sk-aitunnel-xxx" \
-F model="gpt-image-1.5" \
-F "image[]=@product1.png" \
-F "image[]=@product2.png" \
-F "image[]=@product3.png" \
-F "image[]=@product4.png" \
-F prompt="Красиво разложи эти четыре товара в подарочной корзине"Комбинирование фона и объекта
curl https://api.aitunnel.ru/v1/images/edits \
-H "Authorization: Bearer sk-aitunnel-xxx" \
-F model="gpt-image-1.5" \
-F "image[]=@person.png" \
-F "image[]=@beach-background.png" \
-F prompt="Помести человека с первого фото на фон пляжа со второго фото"Комбинирование в Python
import requests
url = "https://api.aitunnel.ru/v1/images/edits"
headers = {"Authorization": "Bearer sk-aitunnel-xxx"}
files = [
("image[]", ("item1.png", open("item1.png", "rb"), "image/png")),
("image[]", ("item2.png", open("item2.png", "rb"), "image/png")),
("image[]", ("item3.png", open("item3.png", "rb"), "image/png")),
]
data = {
"model": "gpt-image-1.5",
"prompt": "Объедини эти три предмета в стильную композицию на белом фоне",
"quality": "high",
"size": "1536x1024",
}
response = requests.post(url, headers=headers, files=files, data=data)
result = response.json()
print(result["data"][0]["b64_json"][:50])Использование маски
Вы можете указать маску — изображение с прозрачными областями, определяющими зону редактирования:
response = client.images.edit(
model="gpt-image-1",
image=open("photo.png", "rb"),
mask=open("mask.png", "rb"),
prompt="Замени фон на горный пейзаж",
)Формат маски
Маска должна быть PNG-файлом с альфа-каналом. Прозрачные области обозначают зону, которую можно изменить.
Параметры запроса
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
model | string | Да | Модель для редактирования |
image | file | Да | Одно изображение (до 25 МБ) |
image[] | file[] | Нет | Несколько изображений (до 16 штук для GPT Image) |
prompt | string | Да | Текстовое описание изменений (до 32000 символов) |
mask | file | Нет | Маска с зоной редактирования (PNG с альфа-каналом) |
n | integer | Нет | Количество вариантов (1–10, по умолчанию 1) |
size | string | Нет | Размер: auto, 1024x1024, 1024x1536, 1536x1024 |
quality | string | Нет | Качество: low, medium, high, auto |
background | string | Нет | Фон: transparent, opaque, auto |
output_format | string | Нет | Формат: png (по умолчанию), jpeg, webp |
output_compression | number | Нет | Сжатие для jpeg/webp (0–100) |
input_fidelity | string | Нет | Точность к оригиналу: high или low |
stream | boolean | Нет | Стриминг частичных результатов |
Формат ответа
{
"created": 1234567890,
"data": [
{
"b64_json": "iVBORw0KGgo..."
}
],
"quality": "high",
"size": "1024x1024",
"usage": {
"input_tokens": 50,
"output_tokens": 50,
"total_tokens": 100,
"input_tokens_details": {
"text_tokens": 10,
"image_tokens": 40
}
}
}Примеры использования
Удаление объектов
response = client.images.edit(
model="gpt-image-1",
image=open("street.png", "rb"),
prompt="Удали все машины с улицы, оставь пустую дорогу",
)Изменение стиля
response = client.images.edit(
model="gpt-image-1.5",
image=open("photo.png", "rb"),
prompt="Преврати фотографию в акварельную картину",
quality="high",
)Прозрачный фон
curl https://api.aitunnel.ru/v1/images/edits \
-H "Authorization: Bearer sk-aitunnel-xxx" \
-F model="gpt-image-1.5" \
-F image="@product.png" \
-F prompt="Удали фон, оставь только товар" \
-F background="transparent" \
-F output_format="png"Лучшие практики
- Чёткие инструкции: Чем конкретнее описание, тем лучше результат
- Несколько изображений: Используйте
image[]для комбинирования элементов из разных фото - Маска: Используйте маску для точного контроля области редактирования
- Качество: Параметр
quality: "high"даёт лучший результат, но стоит дороже - Размер файла: Максимальный размер одного изображения — 25 МБ
- Формат: Рекомендуется PNG для входных изображений