Медиа и файлы
Изображения
Генерация и редактирование через асинхронные задания.
Подготовьте изображение или описание
Генерация: POST /v1/images/generations с model, prompt и при необходимости n (число изображений, до 16, если модель это допускает). Редактирование: POST /v1/images/edits с model, prompt и file_id. Размер и другие параметры передаются в settings в пределах карточки модели. Prompt до 32000 символов; изображения PNG, JPEG или WebP должны пройти загрузку и проверку.
Задайте предел стоимости
Задайте предел в рублях. Функция rublesToApiUnits из руководства по оплате переводит его в целое значение API без округления:
const budgetRub = '0.10'; // Предел 0,10 ₽; проверьте оценку перед отправкой.
const requestBody = {
model: 'PUBLIC_API_ID',
prompt: 'Лесное озеро на рассвете',
n: 1,
max_cost_microrub: rublesToApiUnits(budgetRub),
};
const body = JSON.stringify(requestBody);Отправьте запрос
Передайте подготовленное body с ключом и сохранённым ID. Переменные окружения задаются по быстрому старту. Код отправляет один запрос.
const response = await fetch(
process.env.KVANTORA_BASE_URL + '/v1/images/generations', {
method: 'POST',
redirect: 'error',
headers: {
Authorization: 'Bearer ' + process.env.KVANTORA_API_KEY,
'Content-Type': 'application/json',
'Idempotency-Key': process.env.REQUEST_ID,
},
body,
});
const job = await response.json();
if (!response.ok) throw new Error('HTTP ' + response.status);
console.log(job.id, job.status);Получите результат
HTTP 202 возвращает generation.job. Проверяйте GET /v1/jobs/ID; результат содержит output.file_id. Сначала можно вызвать POST /v1/quotes, а полученную сумму использовать как max_cost_microrub. Готовый файл получите по инструкции.
Ограничения
Это JSON API Kvantora. Multipart OpenAI images.edit и маски не поддерживаются. Размер, число изображений и другие параметры допустимы только в пределах settings и n из карточки модели; лишний параметр отклоняется до резерва. Несколько результатов приходят в output.files. Редактирование изображений сейчас не включено ни у одной модели каталога: проверяйте enabled у операции image_editing в availability.operations. Для создания нового изображения используйте доступную операцию генерации.
В примере PUBLIC_API_ID — место для public_api_id из каталога, а не имя существующей модели. Выбирайте модель с доступной операцией.