Перейти к основному содержимому

Генерация изображений

Доступные модели

Полный список моделей можно посмотреть на странице Модели или получить динамически через API эндпоинты: https://openai.bothub.chat/v1/images/models и https://bothub.chat/api/v2/replicate/v1/models

Для генерации изображений в BotHub используется единая экосистема шлюзов. Вы можете работать как с моделями через OpenAI совместимые шлюзы, так и через наш кастомный шлюз Replicate.

Интеграция выполняется через три различных эндпоинта в зависимости от задачи и выбранной модели:


Варианты интеграции​

  • OpenAI Generate Images API (/v1/images/generations) — используется для генерации изображений на основе промпта и входных параметров
  • OpenAI Edit Images API (/v1/images/edits) — используется для генерации изображений на основе других изображений (для моделей, поддерживающих входные данные в виде изображений)
  • Кастомный шлюз Replicate API (/replicate/v1/images/generations) — выделенный шлюз BotHub для работы с моделями Replicate. Все кастомные параметры передаются в объекте input без изменений.

1. OpenAI Generation Images API​

Используется для генерации изображений по промпту и входным параметрам. Промпт передается в свойстве prompt тела запроса, модель - в свойстве model.

Некоторые модели поддерживают или требуют в качестве обязательного параметра входное изображение. Поддержку передачи входного изображения и обязательность его наличия можно проверить по свойствам модели supports_image_input и requires_image_input в ответе на запрос к эндпоинту https://openai.bothub.chat/v1/images/models

Формат ответа (b64_json или url) определяется полем response_format. Дефолтным значением является b64_json.

Список специфичных для модели входных параметров доступен при запросе через API эндпоинт https://openai.bothub.chat/v1/images/models в свойстве params модели.

Пример запроса​

import OpenAI from 'openai';

const openai = new OpenAI({
apiKey: 'ВАШ_API_КЛЮЧ_BOTHUB',
baseURL: 'https://openai.bothub.chat/v1'
});

async function main() {
const response = await openai.images.generate({
model: "gemini-2.5-flash-image",
prompt: "Нарисуй милого рыжего кота",
response_format: "url",
});

console.log(response);
}

main();

Пример ответа:​

{
"created": 1781041942,
"data": [
{
"url": "https://32b76580-04bc-45a6-83c4-37b3a03f1877.selstorage.ru/production-timeweb/images/ba990baf-eaeb-4ea0-885e-21bc00950af2.png"
}
],
usage: {
input_tokens: 17,
input_tokens_details: { text_tokens: 17, image_tokens: 0 },
output_tokens: 1302,
output_tokens_details: { text_tokens: 12, image_tokens: 1290 },
total_tokens: 1319
}
}

2. OpenAI Edits Images API​

Используется для генерации на основе входных изображений. Поддерживается только для моделей, принимающих изображения в качестве входного параметра. Поддержку передачи входного изображения можно проверить по свойствам модели supports_image_input и requires_image_input в ответе на запрос к эндпоинту https://openai.bothub.chat/v1/images/models.

Эндпоинт ожидает тело запроса в виде multipart/form-data. Входящие изображения передаются в поле image в binary формате.

Формат ответа (b64_json или url) определяется полем response_format. Дефолтным значением является b64_json.

Список специфичных для модели входных параметров доступен при запросе через API эндпоинт: https://openai.bothub.chat/v1/images/models в свойстве params модели.

Пример запроса​

import OpenAI, {toFile} from 'openai';

const openai = new OpenAI({
apiKey: 'ВАШ_API_КЛЮЧ_BOTHUB',
baseURL: 'https://openai.bothub.chat/v1'
});

async function main() {
const image = await toFile(fs.createReadStream("input.png"), "input.png", {
type: "image/png",
});

const response = await openai.images.edit({
model: "gemini-2.5-flash-image",
prompt: "Измени цвет котика на черный",
image,
response_format: "url",
});

console.log(response);
}

main();

Пример ответа:​

{
created: 1785408240,
data: [
{
url: 'https://32b76580-04bc-45a6-83c4-37b3a03f1877.selstorage.ru/production-timeweb/images/b16b5ae4-8b4a-4d4b-af43-a02472ac449d.png'
}
],
usage: {
input_tokens: 265,
input_tokens_details: { text_tokens: 265, image_tokens: 0 },
output_tokens: 1308,
output_tokens_details: { text_tokens: 18, image_tokens: 1290 },
total_tokens: 1573
}
}

3. Кастомный шлюз Replicate API​

Поскольку архитектура Replicate принципиально отличается от OpenAI, для работы с этими моделями (например, flux-2-max) также существует прямой HTTP-шлюз по адресу https://bothub.chat/api/v2/replicate/v1/images/generations.

Все специфичные для конкретной модели параметры передаются внутри объекта input в неизменном виде. Официальные SDK Replicate или OpenAI для этого эндпоинта использовать нельзя. Мы так же проксируем ссылку ответа чтобы вы имели доступ к контенту без ВПН

Параметры Bothub для управления выдачей

В теле запроса вы можете передать необязательный объект bothub для настройки прокси:

  • include_usage (boolean) — возвращает объект usage с информацией о затраченных капсах платформы.
  • return_base64 (boolean) — если true, шлюз вернет изображение в виде Base64-строки вместо ссылки.

Поддерживаемые параметры необходимо уточнять у конкретной модели.

Пример запроса​

async function main() {
const response = await fetch(
'https://bothub.chat/api/v2/replicate/v1/images/generations',
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: 'Bearer ВАШ_API_КЛЮЧ_BOTHUB',
},
body: JSON.stringify({
model: 'flux-2-max',
input: {
prompt: 'Ретро-автомобиль в пустыне, стиль 80-х, фотореализм',
aspect_ratio: '16:9',
output_format: 'png',
output_quality: 90,
},
bothub: {
include_usage: true,
return_base64: false,
},
}),
},
);

const result = await response.json();
const url = result.url;
console.log(url);
}

main();

Пример ответа:​

{
"url": "https://32b76580-04bc-45a6-83c4-37b3a03f1877.selstorage.ru/production-timeweb/images/b7e1ecee-0d89-44eb-b801-7a43e50dbfa0.png",
"usage": {
"bothub": {
"caps": 71199.648
}
}
}

Рекомендации​

Официальная документация OpenAI

Подробнее о Image Generation API можно прочитать в официальной документации OpenAI:

https://developers.openai.com/api/docs/guides/image-generation