Разделы документации
Редактирование изображенийготовится
Планируемый контракт POST /v1/images/edits: маска, параметры, тарификация
Планируемый запрос
Метод POST на https://api.librachat.kz/v1/images/edits. Тело — multipart/form-data, авторизация обычная: заголовок Authorization: Bearer sk-libra-… . Ответ планируется отдавать как application/json; charset=utf-8.
| Поле | Тип | Описание |
|---|---|---|
| image | файл | Исходная картинка PNG. Обязательное поле. |
| mask | файл | Маска PNG с альфа-каналом. Необязательное: без неё модель переписывает картинку целиком. |
| prompt | строка | Описание того, что должно оказаться в изменённой области. Обязательное поле. |
| model | строка | Идентификатор модели изображений. Список появится в GET /v1/models вместе с реализацией. |
| n | число | Сколько вариантов вернуть, 1..4. По умолчанию 1. |
| size | строка | Размер результата: 1024x1024, 1024x1536, 1536x1024. |
| response_format | строка | url или b64_json. По умолчанию url. |
Обратите внимание: в текстовом эндпоинте /v1/chat/completions параметры n и response_format сейчас молча игнорируются. Здесь они предполагаются рабочими — это отдельный эндпоинт со своим разбором тела.
Как работает маска
Маска — это отдельный PNG того же размера в пикселях, что и исходная картинка. Значение имеет только альфа-канал:
- Прозрачные пиксели (alpha = 0) — область, которую нужно перерисовать по prompt.
- Непрозрачные пиксели (alpha = 255) — область, которую нужно сохранить как есть.
- Цвет пикселей маски не учитывается, поэтому закрашивать её чем-то осмысленным не нужно.
- Если размеры image и mask не совпадают, запрос отклоняется с 400 — приводите их к одному размеру заранее.
- Prompt описывает желаемый вид всей картинки целиком, а не только вырезанного куска: так модели проще состыковать края.
Оплата
Планируемая тарификация складывается из двух частей: картинка на входе плюс каждая картинка на выходе.
| Что оплачивается | Ставка |
|---|---|
| Картинка на входе (image; маска отдельно не тарифицируется) | 2,70 ₽ за штуку |
| Результат, стандартное качество | 0,54 ₽ за штуку |
| Результат, высокое качество 1K | 13,50 ₽ за штуку |
| Результат, высокое качество 2K | 18,90 ₽ за штуку |
При n больше единицы ставка результата умножается на число вариантов, а 2,70 ₽ за входную картинку списываются один раз за запрос. Пример: n=2 в высоком качестве 1K — это 2,70 + 13,50 × 2 = 29,70 ₽.
Баланс у вас предоплаченный и общий на аккаунт, пополнение — от 1 млн токенов по 450 ₽ за 1 млн. Списания видны в журнале операций (пополнение, расход, начисление, возврат). Если денег не хватает, эндпоинт вернёт 402 insufficient_balance ещё до обращения к модели.
Ошибки
Планируется тот же набор, что и у текстового эндпоинта, с русскими текстами: 401 no_api_key, 401 invalid_api_key, 402 insufficient_balance, 429 rate_limited (лимит на ключ — 120 запросов в минуту), 502 upstream_error. Дополнительно 400 при неверном формате файла, несовпадении размеров image и mask или отсутствии prompt.