Подготовьте изображение или описание

Генерация: 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 из каталога, а не имя существующей модели. Выбирайте модель с доступной операцией.