gpt-image-2: генерация и редактирование изображений
OpenAI-совместимое API gpt-image-2 для генерации изображений из текста и редактирования: переключите base_url и используйте, мульти-регион, единый биллинг через QCode-ключ
Нужен API-ключ? Зарегистрироваться →Эндпоинты и Base URL →
Содержание
QCode.cc предоставляет сервис gpt-image-2, совместимый с OpenAI Images API по формату запроса / ответа (поведение части параметров отличается — см. Отличия от официального OpenAI API), охватывающий две эндпоинты:
- Text-to-image
POST /v1/images/generations— JSON-запрос, генерация изображения из текста - Редактирование изображения
POST /v1/images/edits— multipart-загрузка 1–8 исходных изображений (опциональная маска), перерисовка / правка / композиция по prompt (запущено в мае 2026)
gpt-image-2 — это новейшая модель text-to-image от OpenAI (выпущена в апреле 2026 года) с сильнейшим на сегодня рендерингом текста внутри изображения среди публичных моделей (стабильно отрисовывает английские и китайские символы внутри картинки).
ℹ️ OpenAI выпустила gpt-image-2.5 2026-09-08 (имена моделей в API:
gpt-image-2.5-flare/gpt-image-2.5-sunburst). Этот сервис принимаетgpt-image-2.5,gpt-image-2.5-flareиgpt-image-2.5-sunburstкак совместимые имена моделей, поэтому клиенты, уже настроенные на новые имена, работают без изменений. Все эти имена работают, тарификация одинаковая; уровни качестваxhigh/maxобрабатываются какhigh, а специфичные для 2.5 возможности (4K / произвольное разрешение) пока не поддерживаются.
Что добавляет QCode.cc:
- Drop-in для OpenAI SDK — достаточно заменить
base_url; форматы запроса и ответа совпадают с OpenAI (включая multipart-эндпоинт edits); поведение части параметров отличается — см. таблицу отличий в конце - Мульти-регион: глобальная умная маршрутизация (api) / Азия (Корея / Тайвань / Гонконг) / Северная Америка и Европа (Лос-Анджелес) — выбирайте ближайший узел
- Единый API-ключ: используется ваш существующий ключ QCode.cc (
cr_…) — общая квота с Claude Code и Codex - Единый просмотр использования: вызовы изображений и чата объединены в дашборде клиента + отдельная страница самообслуживания
- Квоты делятся между эндпоинтами:
generationsиeditsиспользуют общий лимит 100 изображений/день/ключ и 2 параллельных запроса
Типичные сценарии: постеры, иллюстрации, изображения товаров, UI-моки, материалы для соцсетей, редактирование изображений (локальная перерисовка / композиция нескольких изображений / смена фона / высокоточная реставрация).
Быстрый старт¶
Text-to-image (generations)¶
Три строки Python для первого изображения:
from openai import OpenAI
import base64
client = OpenAI(
base_url="https://api.qcode.cc/qcode-img/v1",
api_key="cr_YOUR_QCODE_API_KEY",
timeout=180.0, # обычно 20-80 с на изображение, иногда больше 100 с; задайте ≥ 180 с
)
result = client.images.generate(
model="gpt-image-2",
prompt="A cyberpunk Tokyo street at night, neon reflecting in rain puddles",
size="1024x1024",
quality="low",
n=1,
)
with open("output.png", "wb") as f:
f.write(base64.b64decode(result.data[0].b64_json))
Редактирование (edits)¶
Загрузите существующее изображение + prompt, опционально маску для локальной перерисовки:
from openai import OpenAI
import base64
client = OpenAI(
base_url="https://api.qcode.cc/qcode-img/v1",
api_key="cr_YOUR_QCODE_API_KEY",
timeout=180.0,
)
result = client.images.edit(
model="gpt-image-2",
image=open("cat.png", "rb"),
mask=open("mask.png", "rb"), # опционально: PNG alpha, прозрачная зона = область перерисовки
prompt="put a tiny crown on the cat",
size="1024x1024",
quality="high",
)
with open("edited.png", "wb") as f:
f.write(base64.b64decode(result.data[0].b64_json))
⚠️ Обязательно задайте timeout ≥ 180 с явно: дефолтный timeout OpenAI SDK слишком короткий. Время инференса
gpt-image-2значительно больше, чем у классических text-to-image моделей (см. Время генерации и timeout ниже).
Точки входа¶
Сервис gpt-image-2 (generations + edits общие) доступен на всех доменах QCode.cc — просто добавьте /qcode-img/v1 к базе:
| Местоположение | Рекомендуемый base_url | Протокол | Примечания |
|---|---|---|---|
| Китай | https://api.qcode.cc/qcode-img/v1 |
HTTPS | Рекомендуется по умолчанию |
| HK / ЮВА | https://asia.qcode.cc/qcode-img/v1 |
HTTPS | Азиатский узел (Корея / Тайвань / Гонконг, ближайший) |
| Северная Америка / Европа | https://us.qcode.cc/qcode-img/v1 |
HTTPS | Узел в Лос-Анджелесе |
Все точки входа маршрутизируются в один и тот же сервис и систему биллинга — использование и квоты унифицированы. Ни одна точка входа не обрывает запрос по лимиту 100 секунд; сервер ждёт ответа до 180 секунд на запрос.
qcode-img— это префикс пути, выделенный для генерации и редактирования изображений; параллелен/api(Anthropic) и/openai/v1(OpenAI chat).
API-справочник¶
Общие заголовки запроса¶
| Header | Обязателен | Значение |
|---|---|---|
Authorization |
✓ | Bearer cr_xxxxxxxxxxxxxxxx (ваш API-ключ QCode.cc) |
Content-Type |
✓ | application/json (generations)multipart/form-data (edits) |
Эндпоинт generations /v1/images/generations¶
Эндпоинт: POST {base_url}/images/generations
Content-Type: application/json
Тело запроса:
{
"model": "gpt-image-2",
"prompt": "A small ceramic vase with sunflower, photorealistic",
"size": "1024x1024",
"quality": "low",
"n": 1
}
Поля:
| Поле | Тип | Обяз. | По умолчанию | Значения |
|---|---|---|---|---|
model |
string | ✗ | gpt-image-2 |
gpt-image-2 (также принимаются gpt-image-2-low / -medium / -high, что эквивалентно заданию quality; и совместимые имена gpt-image-2.5 / gpt-image-2.5-flare / gpt-image-2.5-sunburst — все доступны, тарификация одинаковая); другие имена моделей возвращают 400 unsupported_model |
prompt |
string | ✓ | — | Описание изображения, многоязычно (включая английский и китайский) |
size |
string | ✗ | 1024x1024 |
auto / 1024x1024 / 1024x1536 / 1536x1024 / 2048x2048; недопустимые значения возвращают 422. Размер выхода обычно совпадает с запрошенным size; в отдельных случаях возвращаемый размер может отличаться (например 1254×1254) — ориентируйтесь на фактический размер полученного изображения |
quality |
string | ✗ | medium |
low / medium / high (xhigh / max обрабатываются как high); не влияет на цену (см. Биллинг) |
n |
integer | ✗ | 1 | Изображений за вызов (1 – 4); при > 4 возвращается 400 (без тихого усечения) |
background |
string | ✗ | auto |
auto / opaque; transparent возвращает 400 (модель не может создать альфа-канал) |
response_format |
string | ✗ | b64_json |
только b64_json; передача url возвращает 400 |
output_compression |
integer | ✗ | — | 0 – 100, действует для JPEG / WebP; значения вне диапазона возвращают 400 |
stream / partial_images |
— | ✗ | — | Пока не поддерживается; передача возвращает 400 |
Эндпоинт edits /v1/images/edits¶
Эндпоинт: POST {base_url}/images/edits
Content-Type: multipart/form-data (загрузка файлов требует form-data, JSON не подходит)
Поля:
| Поле | Тип | Обяз. | По умолчанию | Значения / примечания |
|---|---|---|---|---|
model |
string | ✗ | gpt-image-2 |
Можно опустить; эндпоинт edits всегда использует gpt-image-2 |
image |
file (× N) | ✓ | — | Исходное изображение (PNG / JPEG / WebP); поддерживается 1 – 8 изображений для композиции (повторяйте имя поля: -F image=@a.png -F image=@b.png) |
mask |
file | ✗ | — | PNG alpha-маска; прозрачная зона = область перерисовки; разрешение mask должно совпадать с image (масштабируется автоматически); применимо к одному изображению |
prompt |
string | ✓ | — | Инструкция редактирования (многоязычно) |
size |
string | ✗ | auto |
auto / 1024x1024 / 1024x1536 / 1536x1024 / 2048x2048. Размер выхода обычно совпадает с запрошенным size; в отдельных случаях возвращаемый размер может отличаться (например 1254×1254) — ориентируйтесь на фактический размер полученного изображения. Недопустимые значения возвращают 422 |
quality |
string | ✗ | auto |
auto / low / medium / high (xhigh / max обрабатываются как high); не влияет на цену |
n |
integer | ✗ | 1 | Изображений за вызов (1 – 4); при > 4 возвращается 400 (без тихого усечения) |
background |
string | ✗ | auto |
auto / opaque. transparent не поддерживается gpt-image-2 (модель не может генерировать alpha-канал; при передаче возвращается 400) |
output_format |
string | ✗ | png |
png / jpeg / webp |
output_compression |
integer | ✗ | — | 0 – 100, действует для JPEG / WebP (игнорируется для PNG); значения вне диапазона возвращают 400 |
input_fidelity |
string | ✗ | — | Передавать не нужно: модель всегда обрабатывает входные изображения с высокой верностью; low / high игнорируются, другие значения возвращают 400 |
response_format |
string | ✗ | b64_json |
Принимается только b64_json (передача url возвращает 400) |
user |
string | ✗ | — | ID конечного пользователя для прозрачной передачи (используется для детекции abuse выше) |
Лимиты загрузки: один файл ≤ 25 МБ; суммарно ≤ 50 МБ (превышение даёт 413 image_too_large).
Ответ (одинаков для обоих эндпоинтов)¶
{
"created": 1777135432,
"data": [
{
"b64_json": "iVBORw0KGgo...(base64 PNG/JPEG/WebP, 1-3 МБ)",
"revised_prompt": "A small ceramic vase with sunflower..."
}
]
}
b64_json: base64-закодированные данные изображения, во фронте можно использовать напрямую:<img src="data:image/<format>;base64,...">revised_prompt: улучшенная моделью версия вашего prompt (опционально показать пользователю)
Ответы об ошибках¶
Ошибки следуют стандартной схеме OpenAI:
{
"error": {
"type": "rate_limit_error",
"code": "image_daily_limit",
"message": "Daily image generation count limit reached..."
}
}
| HTTP | code | Значение | Тариф |
|---|---|---|---|
| 400 | invalid_json / missing_prompt |
Тело запроса — некорректный JSON / отсутствует prompt |
Нет |
| 400 | unsupported_model |
Имя модели не поддерживается (поддерживаются gpt-image-2 и её совместимые имена gpt-image-2.5 / -flare / -sunburst; gpt-image-1, dall-e-3 и т. п. дают эту ошибку) |
Нет |
| 400 | stream_not_supported |
Передан stream=true или partial_images |
Нет |
| 400 | unsupported_background / unsupported_response_format / unsupported_n / unsupported_output_compression |
Значение параметра не поддерживается (см. таблицы параметров эндпоинтов) | Нет |
| 400 | invalid_multipart / invalid_content_type |
Некорректная форма у эндпоинта edits (нужен multipart/form-data) |
Нет |
| 400 | content_policy_violation и подобные |
Контент-модерация отклонила запрос — измените prompt или изображение | Нет |
| 401 | invalid_api_key / key_disabled / key_expired |
API-ключ недействителен / заблокирован / просрочен | Нет |
| 413 | image_too_large |
Один файл > 25 МБ, или суммарно > 50 МБ | Нет |
| 422 | unsupported_size |
Значение size не поддерживается (допустимые значения — в таблицах параметров эндпоинтов) |
Нет |
| 429 | crs_daily_exhausted / crs_total_exhausted |
Дневной / накопленный бюджет аккаунта исчерпан | Нет |
| 429 | image_daily_limit |
Лимит 100 изображений/день на ключ достигнут (общий для generations и edits; повышается по запросу) |
Нет |
| 429 | concurrency_exhausted |
Лимит параллелизма 2 на ключ достигнут (повышается по запросу) | Нет |
| 501 | endpoint_not_implemented |
Эндпоинт edits временно закрыт на обслуживание | Нет |
| 503 | image_provider_unavailable |
Сервис изображений временно недоступен; ответ содержит Retry-After — действуйте по Таймаут и повторные запросы |
Нет |
| 503 | service_overloaded / billing_backend_unavailable |
Сервис перегружен / бэкенд биллинга временно недоступен, повторите позже | Нет |
| 504 | upstream_timeout |
Запрос на редактирование не завершился за 180 секунд | Нет |
Примеры кода¶
Python (OpenAI SDK, рекомендуется)¶
Text-to-image:
from openai import OpenAI
import base64
client = OpenAI(
base_url="https://api.qcode.cc/qcode-img/v1",
api_key="cr_YOUR_QCODE_API_KEY",
timeout=180.0,
)
result = client.images.generate(
model="gpt-image-2",
prompt="A cyberpunk Tokyo street at night, neon reflecting in rain puddles",
size="1024x1024",
quality="low",
n=1,
)
img_bytes = base64.b64decode(result.data[0].b64_json)
with open("output.png", "wb") as f:
f.write(img_bytes)
print("Сохранено output.png")
Редактирование (одно изображение + mask, локальная перерисовка):
from openai import OpenAI
import base64
client = OpenAI(
base_url="https://api.qcode.cc/qcode-img/v1",
api_key="cr_YOUR_QCODE_API_KEY",
timeout=180.0,
)
result = client.images.edit(
model="gpt-image-2",
image=open("cat.png", "rb"),
mask=open("mask.png", "rb"),
prompt="put a tiny crown on the cat",
size="1024x1024",
quality="high",
extra_body={"output_format": "png"},
)
img = base64.b64decode(result.data[0].b64_json)
with open("edited.png", "wb") as f:
f.write(img)
Редактирование (композиция нескольких изображений, 2 – 8):
result = client.images.edit(
model="gpt-image-2",
image=[
open("scene.png", "rb"), # 1-е изображение: сцена-фон
open("product.png", "rb"), # 2-е изображение: товар для размещения
],
prompt="Place the product naturally into the scene, match the lighting and shadows.",
size="1536x1024",
quality="high",
)
curl¶
Text-to-image:
curl https://api.qcode.cc/qcode-img/v1/images/generations \
-H "Authorization: Bearer cr_YOUR_QCODE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "A cyberpunk Tokyo street at night",
"size": "1024x1024",
"quality": "low",
"n": 1
}' \
| jq -r ".data[0].b64_json" | base64 -d > output.png
Редактирование:
curl https://api.qcode.cc/qcode-img/v1/images/edits \
-H "Authorization: Bearer cr_YOUR_QCODE_API_KEY" \
-F "model=gpt-image-2" \
-F "image=@cat.png" \
-F "mask=@mask.png" \
-F "prompt=put a tiny crown on the cat" \
-F "size=1024x1024" \
-F "quality=high" \
-F "output_format=png" \
| jq -r ".data[0].b64_json" | base64 -d > edited.png
Композиция нескольких изображений (просто повторите -F image=@):
curl https://api.qcode.cc/qcode-img/v1/images/edits \
-H "Authorization: Bearer cr_YOUR_QCODE_API_KEY" \
-F "model=gpt-image-2" \
-F "image=@scene.png" \
-F "image=@product.png" \
-F "prompt=Place the product naturally into the scene" \
-F "size=1536x1024" \
-F "quality=high"
JavaScript / Node.js / браузер¶
Text-to-image:
const r = await fetch("https://api.qcode.cc/qcode-img/v1/images/generations", {
method: "POST",
headers: {
"Authorization": "Bearer cr_YOUR_QCODE_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "gpt-image-2",
prompt: "A cyberpunk Tokyo street at night",
size: "1024x1024",
quality: "low",
n: 1,
}),
});
const json = await r.json();
const dataUrl = "data:image/png;base64," + json.data[0].b64_json;
document.querySelector("img").src = dataUrl;
Редактирование (браузерный FormData):
const fd = new FormData();
fd.append("model", "gpt-image-2");
fd.append("image", imageFile); // объект File из <input type="file">
fd.append("mask", maskFile); // опционально
fd.append("prompt", "put a tiny crown on the cat");
fd.append("size", "1024x1024");
fd.append("quality", "high");
fd.append("output_format", "png");
const r = await fetch("https://api.qcode.cc/qcode-img/v1/images/edits", {
method: "POST",
headers: { "Authorization": "Bearer cr_YOUR_QCODE_API_KEY" },
// Не задавайте Content-Type вручную — FormData выставит multipart/form-data с boundary автоматически
body: fd,
});
const json = await r.json();
const dataUrl = "data:image/png;base64," + json.data[0].b64_json;
document.querySelector("img").src = dataUrl;
Квоты¶
Лимиты по умолчанию¶
| Параметр | Значение | Примечания |
|---|---|---|
| Изображений в день | 100 / день / ключ | Сброс в 00:00 по Пекинскому времени; общий для generations и edits |
| Параллелизм | 2 одновременно | Превышение — 429 concurrency_exhausted; общий для обоих эндпоинтов |
| Размер загрузки (только edits) | один файл 25 МБ / суммарно 50 МБ | Превышение — 413 image_too_large |
| Бюджет аккаунта | Общий с QCode.cc dailyCostLimit / totalCostLimit |
Превышение — 429 crs_daily_exhausted |
Дефолтных квот хватает большинству пользователей. Для повышения — свяжитесь со службой поддержки.
Просмотр использования¶
- Дашборд клиента: показывает чат и изображения вместе (последняя активность, сегодняшняя стоимость, накопленная стоимость, распределение по моделям)
- Страница самообслуживания: https://api.qcode.cc/qcode-img/usage — введите API-ключ, чтобы посмотреть статистику за последние 30 дней, детальный список вызовов и тренды на ECharts (ключ хранится только локально в браузере, не загружается)
Биллинг¶
Как считается биллинг¶
generations и edits тарифицируются одинаково — за каждое выходное изображение:
| Статья | Цена |
|---|---|
| За каждое выходное изображение | $0.30 |
- $0.30 за каждое выходное изображение: генерация
nизображений стоитn × $0.30 size/quality/ число входных изображений /mask/ длина prompt не влияют на ценуgpt-image-2,gpt-image-2-low/-medium/-highи совместимые именаgpt-image-2.5/-flare/-sunburst— цена полностью одинаковая- С 2026-10-07 цена — $0.30 за изображение (с 2026-10-06 было $0.15 за изображение, до этого — потокенная тарификация)
Сбои не тарифицируются¶
Любой неудачный запрос не оплачивается: 4xx (включая отказы контент-модерации) / 5xx, таймауты и разрыв соединения клиентом — всё без списания.
Валюта¶
Стоимости в USD, расчёт по валютной политике основного аккаунта QCode.cc (RMB / USD).
Время генерации и настройка timeout¶
gpt-image-2 — модель на основе инференса, она заметно медленнее классических text-to-image моделей. Одно изображение обычно занимает 20–80 с, иногда больше 100 с, в редких случаях близко к 180 с.
Практические рекомендации:
- Дефолтный timeout в OpenAI Python SDK слишком короткий — всегда задавайте
timeout=180.0или больше явно - В браузере у
fetchнет дефолтного timeout; при использованииAbortControllerзакладывайте минимум 180 с - Если запрос идёт через ваш собственный reverse proxy / шлюз, поднимите его read timeout до ≥ 180 с
Таймаут и повторные запросы¶
- 503
image_provider_unavailable: сервис изображений временно недоступен, списаний нет. Подождите согласно заголовкуRetry-After(секунды) и повторите запрос с экспоненциальной задержкой (30 с → 60 с → 120 с), не более 3 попыток; если ошибки продолжаются — обратитесь в поддержку - 504
upstream_timeout/ таймаут на стороне клиента: одна генерация заняла больше 180 секунд. Повторите запрос; при повторяющихся таймаутах упростите prompt или уменьшите число входных изображений - 429
crs_daily_exhausted/crs_total_exhausted: квота аккаунта исчерпана, действия те же, что и на чат-эндпоинтах: индивидуальный тариф сбрасывается в 00:00 по пекинскому времени (или купите бустер-пакет), разовый пакет докупается; см. справочник ошибок - 429
image_daily_limit/concurrency_exhausted: подождите согласно заголовкуRetry-After; при регулярных срабатываниях обратитесь в поддержку - Неудачные запросы не тарифицируются, поэтому повтор никогда не приводит к двойному списанию
Советы по prompt¶
Text-to-image (generations)¶
- Многоязычно: китайский, английский, смешанные prompts работают
- Чем больше деталей, тем лучше: окружение, композиция, освещение, стиль, дистанция объектива / фокусное расстояние / ракурс
- Избегайте брендов и знаменитостей: модель может отказать или выдать размытый результат (политика контента OpenAI)
- Рендеринг текста внутри изображения:
gpt-image-2исключителен в рендеринге английских / китайских символов внутри изображений (заголовки постеров, слоганы, вывески) — просто запишите текст в prompt, специальный синтаксис не нужен - Контент-модерация: prompt, нарушающий правила, возвращает 400 (например
content_policy_violation) и не тарифицируется
Пример:
A vintage poster in Bauhaus style, bold black text "MORNING COFFEE" centered,
warm orange and cream color palette, geometric shapes, slightly textured paper background
Редактирование (edits)¶
- Маска говорит "где", а не "что": прозрачная зона = область перерисовки, непрозрачная сохраняется. Prompt описывает, что нарисовать. Разрешение mask должно совпадать с
image(система масштабирует). - Для multi-input в prompt укажите роль каждого изображения — например "First image is the scene, second image is the product to place into it" —
gpt-image-2читает входы по порядку. - Передавать
input_fidelityне нужно: gpt-image-2 всегда обрабатывает входные изображения с высокой верностью, автоматически сохраняя лица / логотипы / текст / детали товара (low/highигнорируются, другие значения возвращают 400). - Без mask перерисовывается всё изображение по prompt (семантика сохраняется, но любая зона может измениться).
Пример:
# Локальная перерисовка: добавить корону, остальное без изменений
prompt = "Put a tiny golden crown on the cat's head. Keep everything else unchanged."
mask = (alpha PNG только с прозрачной зоной головы)
Отличия от официального OpenAI API¶
| Параметр | OpenAI официально | QCode.cc |
|---|---|---|
| Совместимость SDK | — | ✅ Форматы запроса / ответа совместимы, достаточно заменить base_url; строки ниже — отличия в поведении |
| Биллинг | Потокенно | $0.30 за каждое выходное изображение, n изображений = n × $0.30 |
/v1/images/generations (text-to-image) |
✅ | ✅ |
/v1/images/edits (редактирование) |
✅ | ✅ Поддерживает композицию 1 – 8 изображений и mask-инпейнтинг |
size |
— | Размер выхода обычно совпадает с size; иначе ориентируйтесь на полученное изображение |
quality |
— | На цену не влияет |
background=transparent |
— | ❌ Возвращает 400 |
response_format=url |
— | ❌ Только b64_json |
stream + partial_images (инкрементальная отдача) |
✅ | ⏳ Пока не поддерживается, передача возвращает 400 |
/v1/images/variations (чистые вариации) |
✅ (DALL·E эндпоинт) | ⏳ Пока не поддерживается (можно приблизить через edits с описательным prompt) |
gpt-image-2.5 (flare / sunburst) |
✅ (выпущена 2026-09-08) | ✅ Совместимые имена принимаются, все доступны, тарификация одинаковая; xhigh / max обрабатываются как high, специфичные для 2.5 возможности (4K и т. п.) пока не поддерживаются |
Онлайн Playground¶
https://api.qcode.cc/qcode-img/ — попробуйте в браузере:
- Text-to-image и Image-edit оба режима — визуальные (загрузка, рисование mask, выбор background / output_format и т. д.)
- Введите API-ключ + prompt и сразу генерируйте
- Переключение языка интерфейса (английский / китайский)
- По умолчанию
low - Включает полную API-документацию inline (вкладки curl / Python / JavaScript + таблица параметров + коды ошибок)
- Скачивание в один клик как PNG / JPEG / WebP
Частые вопросы¶
Q: Что делать при 503 image_provider_unavailable?
A: Сервис изображений временно недоступен, неудачные запросы не тарифицируются. Подождите согласно заголовку Retry-After и повторите (экспоненциальная задержка от 30 секунд, не более 3 попыток). Если ошибки продолжаются — обратитесь в поддержку.
Q: Поддерживается ли gpt-image-2.5 (flare / sunburst)?
A: Имена gpt-image-2.5, gpt-image-2.5-flare и gpt-image-2.5-sunburst можно использовать напрямую — все эти имена работают, тарификация одинаковая; xhigh / max обрабатываются как high, специфичные для 2.5 возможности вроде 4K пока не поддерживаются.
Q: Почему размер изображения не совпадает с переданным size?
A: Размер выхода обычно совпадает с запрошенным size; в отдельных случаях возвращаемый размер может отличаться (например 1254×1254), поэтому ориентируйтесь на фактический размер полученного изображения. Если нужен точный размер, обрежьте или отмасштабируйте изображение локально.
Q: Влияет ли quality на цену?
A: quality не влияет на цену: и low, и high — это $0.30 за каждое выходное изображение.
Q: Неудачные запросы списывают деньги? A: Нет. 4xx / 5xx, таймауты, отказы контент-модерации и разрыв соединения клиентом не тарифицируются.
Связанные документы¶
- Эндпоинты и API-пути — все домены QCode.cc, пути протоколов, curl-проверка
- Биллинг — тарифы, квоты, правила тарификации
Начните с QCode
Один API-ключ для Claude Code, Codex и других инструментов; тарификация по токенам, цены каждой модели — на qcode.cc/models