СТАТТЯ

Подвійний cutover жовтня: gpt-image-1 (23.10) і Nano Banana 2 — один календар bulk-job у Bubble через BIAIG

OpenAI дає жорстку дату 23.10.2026 для gpt-image-1; Google уже deprecated gemini-3.1-flash-image без опублікованого shutdown. Один runbook для bulk-каталогу: freeze, smoke-бatches, provider flags і polling без зайвих WU.

Навіщо один календар, а не два пости про міграцію

У мене каталог генерує зображення і через OpenAI, і через Google. Два sunset-и в календарі — одна production-операція: інвентаризація рядків, паралельні smoke-бatches, перемикання provider flags і контроль WU. Нижче — Bubble-side runbook у дусі BIAIG (bulk image AI generation для каталогів; Scout не знайшов публічного vendor-документа з цим акронімом — це внутрішня методологія публікації). Схожий розбір: Інцидент 14.10: gpt-image-2.5 Flare/Sunburst —.

Календар: підтверджене vs те, що ще не в primary docs

Вікно Модель / id Статус за Scout (vendor-primary) Дія в каталозі
23.10.2026 OpenAI gpt-image-1 Shutdown у OpenAI Deprecations; заміни — gpt-image-2.5-sunburst або gpt-image-2.5-flare Hard cutover для всіх рядків на цьому маршруті
01.12.2026 gpt-image-1-mini, gpt-image-1.5, chatgpt-image-latest Окремий рядок shutdown на тій же сторінці Не змішуйте з 23.10 — другий freeze/smoke цикл
TBD Google Nano Banana 2 → API id gemini-3.1-flash-image Deprecated 6.10.2026; наступник GA — gemini-nano-banana-2.1; у Gemini Deprecations для shutdown — «No shutdown date announced» Міграція логіки + smoke на 2.1; не плануйте production kill 29.10 як факт

Про 29.10 — чесно: у brief редакції фігурує shutdown Nano Banana 2 на 29.10.2026. Scout на момент пакета не підтверджує цю дату в ai.google.dev; ByteForward описує, що рання публікація 29.10 могла з’явитися в docs і бути прибрана. Треті сторони ≠ календар. Для Google я орієнтуюсь на release notes / deprecations і окремий internal «earliest planning» слот, якщо команда його тримає — з міткою unverified.

23.10.2026 OpenAI також чіпає інші моделі в тому ж batch — інвентаризуйте весь API Connector, не лише image rows.

Перед freeze: інвентар і матриця endpoint

  1. Рядок каталогу = SKU + provider (openai | google) + model_id + route (Batch | Responses | sync Image API) + batch_job_id (nullable).
  2. OpenAI swap не «drop-in»: gpt-image-1 підтримує Batch і Responses (model page); у gpt-image-2.5-flare Batch є, Responses — not supported (flare page). Я вже бачив, як зміна лише model string у Bubble workflow ламає конектор.
  3. Ціна: gpt-image-1 — per-image таблиці; 2.5-flare — token-based image pricing. Перерахунок перед bulk rerun обов’язковий.
  4. Google: ціль — gemini-nano-banana-2.1; тестуйте той самий prompt/payload, що й для gemini-3.1-flash-image, на dev keys. Поруч із цим: BulkImagen async batches і nano-banana-2-1:.

Runbook у Bubble (bulk без vendor re-explainer)

T−14 … T−7: smoke batches

  • Виберіть 50–200 репрезентативних SKU (різні aspect ratio, text-in-image, failures).
  • Schedule API workflow on a list (Backend workflows): parallel scheduling + interval під rate limits провайдера.
  • Окремі списки для OpenAI 2.5-кандидата і Google 2.1 — не один «універсальний» batch, якщо схеми різні.
  • Запишіть результат у batch record (status, processed/total, last_error, provider_version) — community pattern для великих каталогів; UI не опитуйте кожні 2 секунди. Схожий розбір: Fozzels (жовтень 2026): ліміти Image.

T−3: production freeze window

  • Заморозіть зміни в API Connector definitions і privacy rules для image fields.
  • Увімкніть feature flag на рядку: image_provider_effective = catalog default OR override для rollback одного SKU.

T−0 (23.10 для OpenAI)

  • Cutover flag: model_id → обраний 2.5-*; route → Batch, якщо Responses більше недоступний.
  • Моніторинг: failed API calls + порожні image URL; не покладайтесь на «зелений» UI repeater.

Google (без hard kill date)

  • Паралельний track: поступовий % traffic на gemini-nano-banana-2.1 після green smoke.
  • Підпишіться на Gemini changelog — firm shutdown має з’явитися там/deprecations раніше за kill.

WU-safe polling

Орієнтири з Bubble workload docs: ~0.1 WU за scheduled workflow, ~0.6 за server-side action, outbound API ~0.1, DB write ~0.5. Великий SAWOL + image call на SKU = швидкий spike.

  • Progress оновлюйте з backend workflow (batch record), frontend — рідко або після completion.
  • Якщо потрібна сувора послідовність — recursive backend workflow замість max parallel (optimization checklist); дорожче в WU, дешевше для rate limits.
  • Interval у SAWOL не гарантує zero overlap — не дублюйте schedule на той самий SKU.

Checklist перед «зеленим» bulk

  • 100% рядків OpenAI на gpt-image-1 мають цільовий 2.5-* і перевірений route
  • Batch job schema перевірена в вашому акаунті (Scout: потрібна account-level verification)
  • Google rows на 2.1 або явний rollback flag
  • Другий календарний слот 01.12.2026 запланований для mini/1.5/chatgpt-image-latest, якщо вони ще в prod
  • Batch record + алерт на Telegram/email при error rate > порогу
Пункт Вимога Контекст
OpenAI rows (gpt-image-1) 100% рядків з цільовим 2.5-* і перевіреним route —
Batch job schema Перевірена в вашому акаунті Scout: потрібна account-level verification
Google rows 2.1 або явний rollback flag —
Другий календарний слот 01.12.2026 для mini/1.5/chatgpt-image-latest Якщо вони ще в prod
Моніторинг batch Batch record + алерт на Telegram/email При error rate > порогу

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

Лише пакет Scout: OpenAI deprecations/community thread, model pages gpt-image-1 / gpt-image-2.5-flare, Google changelog + deprecations, Bubble manual (SAWOL, WU), ByteForward як вторинне по 29.10. Без зовнішньої публікації; метрики клієнтів і вигадані цитати не додаються.

Відкриті питання для вашої команди: чи лишається internal дата 29.10 для Google; чи входить 01.12 у той самий «жовтневий» narrative; які рядки сьогодні на Responses vs Batch.

← Усі статті