Подвійний 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
- Рядок каталогу = SKU +
provider(openai | google) +model_id+route(Batch | Responses | sync Image API) +batch_job_id(nullable). - OpenAI swap не «drop-in»:
gpt-image-1підтримує Batch і Responses (model page); уgpt-image-2.5-flareBatch є, Responses — not supported (flare page). Я вже бачив, як зміна лише model string у Bubble workflow ламає конектор. - Ціна:
gpt-image-1— per-image таблиці; 2.5-flare — token-based image pricing. Перерахунок перед bulk rerun обов’язковий. - 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.