Отдельный эндпоинт для создания и редактирования изображений. Совместим с OpenAI SDK — работает метод client.images.generate(). Изображение возвращается в base64.
Генерация изображения по текстовому описанию; редактирование — передайте исходные изображения в параметре image
/chat/completions, но там нельзя задать соотношение сторон и разрешение. Для полного контроля используйте этот эндпоинт.Таблица построена по измеренным данным: заявленная поддержка параметров у провайдеров часто не совпадает с реальностью, поэтому здесь только то, что проверено живыми запросами.
| Рекомендуемая модель | aspect_ratio |
image_size |
seed |
Цена |
|---|---|---|---|---|
google/gemini-3.1-flash-lite-image |
✓ | 1K | ✓ | 3–4 ₽ |
google/gemini-2.5-flash-image |
✓ | — | ✓ | 3–4 ₽ |
openai/gpt-5-image-mini |
— | — | — | 4–5 ₽ |
google/gemini-3.1-flash-image |
✓ | 1K, 2K | ✓ | 6–11 ₽ |
openai/gpt-5.4-image-2 |
✓ | — | — | 12–23 ₽ |
google/gemini-3-pro-image |
✓ | — | ✓ | 15–18 ₽ |
Если передать параметр модели, которая его не поддерживает, запрос вернёт ошибку 400 со списком допустимых значений — деньги не спишутся.
| Рекомендуемая модель | aspect_ratio |
image_size |
|---|---|---|
google/gemini-3.1-flash-lite-image |
1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9 |
1K |
google/gemini-2.5-flash-image |
1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9 |
не поддерживается |
openai/gpt-5-image-mini |
не поддерживается | не поддерживается |
google/gemini-3.1-flash-image |
1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9 |
1K, 2K |
openai/gpt-5.4-image-2 |
1:1, 2:3, 3:2, 9:16, 16:9 |
не поддерживается |
google/gemini-3-pro-image |
1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9 |
не поддерживается |
Минимальный запрос: модель и текстовое описание.
import base64
from openai import OpenAI
client = OpenAI(
base_url="https://rus-gpt.com/api/v1",
api_key="rusgpt-YOUR_API_KEY",
)
img = client.images.generate(
model="google/gemini-3.1-flash-lite-image",
prompt="Уютный домик в зимнем лесу на рассвете",
)
entry = img.data[0]
# output_format tells you what you actually got — models differ (PNG vs JPEG).
with open(f"out.{entry.output_format}", "wb") as f:
f.write(base64.b64decode(entry.b64_json))
curl https://rus-gpt.com/api/v1/images/generations \
-H "Authorization: Bearer rusgpt-YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "google/gemini-3.1-flash-lite-image",
"prompt": "Уютный домик в зимнем лесу на рассвете"
}' | jq -r '.data[0].b64_json' | base64 -d > out.jpg
# lite-модель возвращает JPEG; фактический формат — в полях mime_type / output_format ответа.
import base64, requests
resp = requests.post(
"https://rus-gpt.com/api/v1/images/generations",
headers={"Authorization": "Bearer rusgpt-YOUR_API_KEY"},
json={
"model": "google/gemini-3.1-flash-lite-image",
"prompt": "Уютный домик в зимнем лесу на рассвете",
},
timeout=300,
)
resp.raise_for_status()
entry = resp.json()["data"][0]
# mime_type / output_format tell you what you actually got: models differ
# (lite-image returns JPEG, 3.1-flash-image returns PNG).
ext = entry["output_format"]
open(f"out.{ext}", "wb").write(base64.b64decode(entry["b64_json"]))
Поддерживают соотношение сторон и параметр seed, а часть моделей — и выбор разрешения.
import base64
from openai import OpenAI
client = OpenAI(base_url="https://rus-gpt.com/api/v1", api_key="rusgpt-YOUR_API_KEY")
img = client.images.generate(
model="google/gemini-3.1-flash-image",
prompt="Уютный домик в зимнем лесу на рассвете",
# Non-OpenAI params go through extra_body with the OpenAI SDK.
extra_body={
"aspect_ratio": "16:9", # 1376x768
"image_size": "2K", # 2048px on the long side
"seed": 42, # forwarded upstream; reproducibility NOT guaranteed
},
)
open("wide.png", "wb").write(base64.b64decode(img.data[0].b64_json))
curl https://rus-gpt.com/api/v1/images/generations \
-H "Authorization: Bearer rusgpt-YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "google/gemini-3.1-flash-image",
"prompt": "Уютный домик в зимнем лесу на рассвете",
"aspect_ratio": "16:9",
"image_size": "2K",
"seed": 42
}'
seed передаётся провайдеру, но воспроизводимость не гарантируется: одинаковые prompt и seed могут дать разные изображения (проверено 11-08-2026).Принимают описание и референсы для редактирования; набор параметров у них уже, чем у Gemini.
import base64
from openai import OpenAI
client = OpenAI(base_url="https://rus-gpt.com/api/v1", api_key="rusgpt-YOUR_API_KEY")
img = client.images.generate(
model="openai/gpt-5.4-image-2",
prompt="Уютный домик в зимнем лесу на рассвете",
extra_body={"aspect_ratio": "16:9"}, # image_size / seed are NOT supported here
)
open("out.png", "wb").write(base64.b64decode(img.data[0].b64_json))
curl https://rus-gpt.com/api/v1/images/generations \
-H "Authorization: Bearer rusgpt-YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-5.4-image-2",
"prompt": "Уютный домик в зимнем лесу на рассвете",
"aspect_ratio": "16:9"
}'
image_size и seed моделями OpenAI не поддерживаются, а gpt-5-image-mini не поддерживает и aspect_ratio. Запрос с неподдерживаемым параметром вернёт ошибку 400 unsupported_parameter с именем параметра — деньги не спишутся. Эти модели также заметно медленнее — генерация может занимать до двух минут.Передайте одно или несколько исходных изображений в параметре image — как data URI в base64 или как публичную https-ссылку. Описание задаёт, что именно изменить.
import base64, requests
ref = base64.b64encode(open("photo.jpg", "rb").read()).decode()
resp = requests.post(
"https://rus-gpt.com/api/v1/images/generations",
headers={"Authorization": "Bearer rusgpt-YOUR_API_KEY"},
json={
"model": "google/gemini-3.1-flash-image",
"prompt": "Замени фон на закатное небо",
"image": [f"data:image/jpeg;base64,{ref}"], # up to 14 references
},
timeout=300,
)
entry = resp.json()["data"][0]
open("edited." + entry["output_format"], "wb").write(base64.b64decode(entry["b64_json"]))
# A reference image is passed as a data URI (or a public http(s) URL).
REF=$(base64 -w0 photo.jpg)
curl https://rus-gpt.com/api/v1/images/generations \
-H "Authorization: Bearer rusgpt-YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d "{
\"model\": \"google/gemini-3.1-flash-image\",
\"prompt\": \"Замени фон на закатное небо\",
\"image\": [\"data:image/jpeg;base64,$REF\"]
}"
| Параметр | Описание |
|---|---|
model | ID модели — список: GET /api/v1/images/models |
prompt | Текстовое описание изображения (обязательный) |
aspect_ratio | Соотношение сторон: 1:1, 16:9, 9:16, 21:9, 4:3 и др. Поддержка зависит от модели |
image_size | Разрешение: 1K или 2K (только модели с поддержкой — см. capabilities в списке моделей) |
size | OpenAI-совместимая альтернатива aspect_ratio: 1024x1024, 1536x1024, 1024x1536 |
image | Список исходных изображений для редактирования (data URI base64 или https-ссылки) |
seed | Для воспроизводимых результатов (модели Gemini) |
n | Количество изображений. Сейчас все модели поддерживают только 1. |
quality, style, background, output_format, output_compression, moderation и partial_images не поддерживаются и возвращают ошибку 400. Мы намеренно отклоняем их, а не игнорируем молча — иначе вы заплатили бы за картинку, сделанную не по вашему запросу.Ответ повторяет формат OpenAI Images и дополнен полями с реальным форматом файла и точной суммой списания:
{
"created": 1786000000,
"data": [
{
"b64_json": "iVBORw0KGgoAAAANSUhEUg...",
"mime_type": "image/png",
"output_format": "png",
"revised_prompt": "..."
}
],
"usage": {
"input_tokens": 7,
"output_tokens": 1120,
"total_tokens": 1127,
"cost": 6.72
}
}
mime_type и output_format, а не на расширение по умолчанию. Поле usage.cost — это ровно та сумма в рублях, которая списана с баланса.Актуальный список с полем capabilities для каждой модели — без авторизации:
curl https://rus-gpt.com/api/v1/images/models
| Код | Описание |
|---|---|
400 unsupported_parameter | Параметр не поддерживается этой моделью. В тексте ошибки перечислены доступные варианты. |
400 invalid_value | Недопустимое значение параметра (например, соотношение сторон вне списка поддерживаемых). |
402 | Недостаточно средств на балансе |
429 | Превышен лимит: 20 запросов в минуту и до 5 одновременных генераций. |
502 no_image_generated | Модель не вернула изображение. Списания не происходит — повторите запрос. |
Оплата токенами по ценам модели; колонка «Цена» в таблице выше — измеренная стоимость одного изображения (диапазон, если она зависит от размера или соотношения сторон). У моделей Google изображение 1K — 1120 выходных токенов, 2K — 1680; модели OpenAI тратят заметно больше токенов на изображение, включая входные. Референсные изображения тарифицируются дополнительно как входные токены. Отклонённые запросы (ошибки 400 и 429) не тарифицируются.
Полный список моделей с актуальными ценами: Страница моделей