СТАТТЯ

GPT Image 2.5: 250 IPM без Batch API — capacity-план bulk-каталогів у Bubble через BIAIG

Як зіставити опубліковані IPM OpenAI, паралелізм Bubble і chunking таблиць, коли для 2.5 ймовірний лише sync-шлях — без вигаданих SLA і з чесною невизначеністю щодо Batch.

Контекст

У digest зафіксовано: GPT Image 2.5 (gpt-image-2.5-flare, gpt-image-2.5-sunburst) на верхньому usage tier дає до 250 images per minute (IPM), а Batch API для 2.5 на практиці не варто планувати як основний маршрут — сторінки моделей показують batch endpoint у chrome, але офіційний Batch guide вимагає перевірки per-model, а сторонні огляди (LaoZhang, вересень 2026) стверджують, що batch-ціноут для images лишає gpt-image-2, не 2.5. Це не абсolut: перед продакшеном варто один контрольний JSONL-тест або матрицю моделей у OpenAI.

Контекст

Для bulk-каталогів у Bubble (оркестрація через BIAIG — editorial context; публічної документації під цим acronym Scout не знайшов) sync Images API стає capacity-задачею, а не лише питанням промпта. Поруч із цим: gpt-image-1 вимикається 23.10.2026: міграція bulk-каталогів. Поруч із цим: Batch API до 50k запитів. Схожий розбір: Fozzels (жовтень 2026): ліміти Image. Схожий розбір: Krea 3 Ultra: 2K-edits і.

Що саме обмежує (за OpenAI)

На сторінках Flare/Sunburst однакова таблиця tier → 5 / 20 / 50 / 150 / 250 IPM (і відповідні TPM). OpenAI підкреслює: RPM, TPM, IPM можуть б’ути незалежно; ліміти org/project; моделі можуть ділити пул; при 429 — Retry-After, backoff з jitter, відрізняти rate limit від quota/billing.

Параметр n (1–10) дає кілька зображень на один HTTP-запит, але не обходить IPM і може посилити burst, якщо команда плутає «запити» з «готовими рядками каталогу».

Практична змінна (inference, не SLA):

effective throughput ≈ min(IPM, concurrency_adjusted_for_latency, TPM_if_heavy) − retries − moderation − duplicate_after_timeout

Сторонній Atlas Cloud (вересень 2026) радить планувати порядку ~100 «usable» images з дисципліною черги та бюджетом rework — не прирівнювати tier IPM до доставлених рядків таблиці.

Bubble: паралелізм ≠ IPM

Публічно Bubble не публікує фіксовану кількість одночасних API workflows. Schedule API workflow on a list може стартувати багато job паралельно (не всі одразу); interval зменшує overlap, але не гарантує сувору серіалізацію. Hard limit: 300 s на workflow.

Документація Bubble прямо рекомендує intervals, щоб захищати rate limits третіх сторін — тобто «розмазати 500 рядків list schedule без admission control» часто означає 429/slow_down на OpenAI, а retry-storm ще й їсть limit budget (OpenAI).

Editorial constraint ~500 рядків на chunk у bulk-tools — внутрішній/продуктовий контекст, не hard limit Bubble (у docs — до 100k schedulable items на unsorted list). Використовуйте chunk як операційний безпечний розмір, не як доказ «Bubble дозволяє лише 500».

Capacity-план для BIAIG (sync 2.5)

1. Визначити binding constraint

  • Перевірити реальний tier IPM у dashboard (може ≠ таблиці на model page).
  • Оцінити latency одного image call (variant/quality) — без ваших замірів concurrency лишається guess.
  • Якщо промпти/token-heavy — перевірити TPM.
  • Під навантаженням: що впирається першим — OpenAI IPM, Bubble scheduler congestion, Workflow API RPM (plan-dependent)? Про це окремо: Bubble для фаундера: чеклист bubble.io.

2. Admission control у workflow

  • Не 1:1 «рядок таблиці → миттєвий image call без throttle».
  • Патерни: interval на list schedule; semaphore (Thing/counter «in flight»); recursive chunking (100–500 рядків + resume state).
  • Idempotency: після timeout не дублювати submission без перевірки статусу рядка.

2. Admission control у workflow

3. Retry policy (з Scout + community summary OpenAI classes)

  • Retry: transient 429 / overload з Retry-After.
  • Не auto-retry: quota/billing, moderation_blocked, image_generation_user_error — інакше rework budget і черга «з’їдять» вікно.

4. Fallback-маршрутизація (коли batch для 2.5 недоступний)

Маршрут Коли Tradeoff
2.5 sync + IPM queue Same-session каталог, потрібна Flare/Sunburst Повна ціна sync; жорсткий IPM cap
gpt-image-2 Batch Overnight / cost-insensitive volume −50% cost (Batch guide), до 24 h completion, одна модель на JSONL — не same-session UX без async status у продукті
Інший provider через BIAIG Overflow Лише якщо BIAIG реально expose provider switch (потребує vendor docs)

Agnostic Agents Pro на Bubble marketplace ілюструє multi-provider в workflows — аналог патерну, не підтвердження BIAIG API.

Чеклист: скільки рядків «реально» за вікно

Без гарантій SLA — лише планування.

  1. Опублікована стеля (якщо IPM binding): rows_ceiling ≈ IPM × minutes_in_window — на Tier 5 це ≤ 15 000 image completions / годину лише як теоретичний max, якщо кожен success = один image і немає інших bottlenecks.
  2. Консервативне планування (third-party framing): для операційного плану візьміть ~40% від tier IPM як «usable» орієнтир (Atlas ~100 при 250 IPM — не OpenAI офіційно); підставте ваш rework rate після першого прогону.
  3. Concurrency check: якщо середня latency L секунд і ви тримаєте C паралельних in-flight calls, rough bound ≤ min(IPM, 60×C/L) successful/min — поки не виміряли L, зменшуйте C.
  4. Bubble window: chunk ≤ ~500 рядків; між chunk — pause або cron; зберігайте resume key (row id, attempt, last error class).
  5. Перед релізом: один load test на 50–100 рядків → порахувати % 429, % moderation, median latency → оновити таблицю плану.

Відкриті питання (не закривати в статті фактами)

  • Batch production eligibility для gpt-image-2.5-flare / sunburst.
  • Чи Flare і Sunburst ділять один IPM pool.
  • Чи BIAIG підтримує Batch, async polling, multi-provider — потрібна primary vendor documentation.

Джерела (межі матеріалу)

OpenAI: model pages 2.5 Flare/Sunburst, gpt-image-2, guides Rate limits / Batch / Image generation. Bubble: Scheduling API workflows, Bulk operations compared, Hard limits, Scheduler. Планувальний колір: Atlas Cloud, LaoZhang (Batch 2.5), CometAPI community (error classes). Editorial: digest IPM/batch absence; ~500-row chunking; BIAIG as orchestration layer. Поруч із цим: OpenAI Batch API для images.

← Усі статті