Skip to Content

Images API

Два эндпоинта: генерация (текст → изображение) и редактирование (изображение + текст → изображение). Ответ в обоих случаях имеет стандартную структуру OpenAI — data[0].b64_json.

Модели генерации изображений семейства Gemini (например, google/gemini-3.1-flash-image-preview) на этом эндпоинте поддерживают только генерацию, но не редактирование. Для редактирования используйте нативный протокол Gemini.

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

POST https://api.ofox.ai/v1/images/generations

С моделью gpt-image-2

gen.py
import base64 from openai import OpenAI client = OpenAI(api_key="YOUR_OFOX_API_KEY", base_url="https://api.ofox.ai/v1") resp = client.images.generate( model="openai/gpt-image-2", prompt="A simple red apple on a white table", size="1024x1024", quality="low", output_format="png", ) with open("output.png", "wb") as f: f.write(base64.b64decode(resp.data[0].b64_json))

Реальный результат:

Красное яблоко, сгенерированное gpt-image-2

С моделью gemini-3.1-flash-image-preview

Тот же эндпоинт принимает и модели генерации изображений Gemini. Не передавайте параметр n — шлюз ошибочно мапит n в поле numberOfImages и возвращает 400. Каждый вызов всегда генерирует одно изображение.

gen_gemini.py
import base64 from openai import OpenAI client = OpenAI(api_key="YOUR_OFOX_API_KEY", base_url="https://api.ofox.ai/v1") resp = client.images.generate( model="google/gemini-3.1-flash-image-preview", prompt="A simple red apple on a white table, photorealistic", size="1024x1024", quality="low", output_format="png", ) with open("output.png", "wb") as f: f.write(base64.b64decode(resp.data[0].b64_json))

Реальный результат:

Красное яблоко, сгенерированное Gemini

Параметры

ПараметрТипОбязателенОписание
modelstringopenai/gpt-image-2, google/gemini-3.1-flash-image-preview
promptstringОписание на естественном языке
qualitystringauto / low / medium / high / standard / hd
nnumber1–10, по умолчанию 1. Не поддерживается моделями Gemini
sizestringauto / 1024x1024 / 1536x1024 / 1024x1536 / 256x256 / 512x512 / 1792x1024 / 1024x1792
output_formatstringpng / jpeg / webp
backgroundstringtransparent / opaque / auto
streambooleanПо умолчанию false

Ответ

{ "created": 1777385517, "data": [ { "b64_json": "<Base64 изображения>", "index": 0 } ], "model": "openai/gpt-image-2", "size": "1024x1024", "quality": "low", "usage": { "input_tokens": 14, "input_tokens_details": { "text_tokens": 14 }, "output_tokens": 208, "total_tokens": 222 } }

Изображение находится в data[0].b64_json — декодируйте Base64 и сохраняйте локально.

Редактирование изображений

POST https://api.ofox.ai/v1/images/edits

Формат multipart/form-data — необходимо загрузить файл изображения.

Этот эндпоинт поддерживает только модели OpenAI / Azure OpenAI. Вызов с google/gemini-3.1-flash-image-preview вернёт Image editing is not supported for model — переходите на редактирование изображений через нативный протокол Gemini.

Вызов

edit.py
import base64 from openai import OpenAI client = OpenAI(api_key="YOUR_OFOX_API_KEY", base_url="https://api.ofox.ai/v1") with open("apple.png", "rb") as f: resp = client.images.edit( model="openai/gpt-image-2", image=f, prompt="Сделай яблоко зелёным, остальное оставь без изменений", size="auto", quality="low", ) with open("apple_edited.png", "wb") as out: out.write(base64.b64decode(resp.data[0].b64_json))

В поле image передавайте локальный путь к файлу (в cURL — с префиксом @), а не URL.

Сравнение результатов:

ОригиналПосле редактирования
Исходное красное яблокоЗелёное яблоко после редактирования

Параметры

ПараметрТипОбязателенОписание
modelstringРекомендуется openai/gpt-image-2
imagefileФайл PNG / JPEG
promptstringИнструкция по редактированию
qualitystringlow / medium / high
nnumberПо умолчанию 1
sizestringauto соответствует размеру оригинала

Ответ

Совпадает с ответом генерации:

{ "created": 1777385669, "data": [ { "b64_json": "<Base64 отредактированного изображения>", "index": 0 } ], "model": "openai/gpt-image-2", "size": "auto", "quality": "low", "usage": { "input_tokens": 1041, "input_tokens_details": { "image_tokens": 1024, "text_tokens": 17 }, "num_input_images": 1, "output_tokens": 358, "total_tokens": 1399 } }

usage.input_tokens_details.image_tokens — токены, потраченные на входное изображение, num_input_images — количество входных изображений.

Поддерживаемые модели и цены см. в Каталоге моделей .

Last updated on