gpt-image-2: генерация и редактирование изображений

OpenAI-совместимое API gpt-image-2 для генерации изображений из текста и редактирования: переключите base_url и используйте, мульти-регион, единый биллинг через QCode-ключ

Обновлено 2026-10-16

Нужен 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, таймауты, отказы контент-модерации и разрыв соединения клиентом не тарифицируются.


Связанные документы

Начните с QCode

Один API-ключ для Claude Code, Codex и других инструментов; тарификация по токенам, цены каждой модели — на qcode.cc/models

Enterprise →