Перейти к содержимому

← Все статьи блога

Как проверить обложку блога до публикации: Vertex, JPG headshot и cover-qa?

Автор: Алексей Доронин

Обложка в папке выглядит яркой, а в Telegram — старый логотип, на inline кириллица превратилась в кашу, а лицо на cover «похоже, но не вы». После Publish править больно: кэш соцсетей, перезалив featured image, сомнения — перегенерировать всё или только overlay. Ниже — preflight чек-лист BurrBuild: Vertex separate generate, face lock на JPG headshot, машинный cover-qa gate и проверка OG до кнопки Publish.

TL;DR / Быстрый инсайт: Blog cover в BurrBuild идёт только через Vertex `gemini-3-pro-image-preview` (banana_pro): четыре отдельных вызова — cover 2K с вашим лицом и три inline 4K без лица. Референсы — только JPG headshot в `memory/cover/assets`; домен calmopsai.com рисуется post-overlay, не в генерации. Машинный gate `burrbuild_blog_cover_gate.py` пишет `cover-qa-gate.json`; human cover-qa ловит clone сцены. Перед Publish — OG 1200×630 и сброс кэша VK/Telegram.

Типичная история: автор запускает `burrbuild_blog_vertex_separate_generate.py —inject-html`, видит cover в Finder и жмёт Publish. На сайте featured ок, в Telegram — вчерашнее превью: забыли OG scrape. В `memory/cover/assets` лежал `blog-hero-reference3.png` — gate бы отловил non-headshot. Inline-02 с длинной кириллицей размазана — не держали короткие чипы и 4K без даунскейла.

По Вордстат (июнь 2026) «обложка блога проверка» почти нулевая — SERP уводит в журналы и Canva. Зато «сгенерировать обложку» — 1915 показов/мес, «обложка для статьи» — 454. Угол — разрыв между «сгенерировал» и «можно публиковать». Gemini 3 Pro Image умеет legible text и character-reference, но кириллица на inline ломается при длинных строках — в lock BurrBuild короткие чипы и запрет URL в промпте.

Разберите, что уходит в Vertex на cover: banana_pro, JPG-референсы и четыре отдельных вызова

kak-proverit-oblozhku-bloga-do-publikacii-inline-01-1 Как проверить обложку блога до публикации: Vertex, JPG headshot и cover-qa?

Боль: cover сгенерирован, но backend не Vertex или в `quad-vertex-result.json` нет `source=vertex_ai`. Решение — только `burrbuild_blog_vertex_separate_generate.py` по `shared/blog-cover-vertex-lock.json`. Vertex — облачный API Google для картинок; separate 4x — четыре независимых запроса: cover 2K с лицом и три inline 4K без лица, не один холст 2×2.

Слот Размер Лицо Текст в пикселях
cover.png 2K (16:9) Да, strict face lock Заголовок статьи; домен запрещён
inline-01..03 4K Нет Короткие чипы 2-4 слова кириллицей
MCP nano-banana любой н/д Запрещён для blog cover BurrBuild

Модель `gemini-3-pro-image-preview` @ `global`. Face lock — байты JPG в API как character reference. Типичная ошибка — «нарисуй calmopsai.com внизу»: домен кривой. URL в генерации запрещён; overlay рисует Python после.

Схема separate generate:

hero_sync (JPG only) → scene planner (SCENE-FIRST) → quad prompt batch → Vertex x4 → inject-html → cover_gate → cover-qa → brand overlay → OG check → Publish

Команда separate generate: VERTEX_AI_LOCATION=global VERTEX_AI_IMAGE_SIZE=2K VERTEX_AI_INLINE_IMAGE_SIZE=4K python3 scripts/burrbuild_blog_vertex_separate_generate.py —article-dir memory/blog/articles/B08-kak-proverit-oblozhku-bloga-do-publikacii —inject-html

После прогона проверьте `quad-vertex-result.json`: vertex_ai, strict_face_lock, refs только JPG. Убедитесь, что Vertex доступен — без MCP fallback. Важно: не подменяйте backend, иначе лицо и сцена разъедутся между статьями.

Очистите папку memory/cover/assets: только headshot JPG, иначе PNG ломают лицо

kak-proverit-oblozhku-bloga-do-publikacii-inline-02-1 Как проверить обложку блога до публикации: Vertex, JPG headshot и cover-qa?

Боль: на cover чужое лицо после «успешной» генерации. Причина часто в референсе: PNG со старой AI-обложкой вместо портрета. Face lock сравнивает пиксели reference с результатом; если reference — целая обложка с лицом в другом ракурсе, модель «плывёт».

  1. Запустите sync: `python3 scripts/burrbuild_blog_hero_sync_references.py` — оставляет только `blog-hero-reference1.jpg` и `blog-hero-reference2.jpeg`.
  2. Архивируйте PNG: любой `blog-hero-reference*.png` уезжает в `memory/cover/assets/archive/` (см. README в assets).
  3. Избегайте AI-обложек в assets — они ломают identity, даже если «похоже на вас».
  4. Проверьте lock: `shared/blog-cover-vertex-lock.json` требует JPG-only для face slot.
  5. Перегенерируйте cover только если reference менялся или gate FAIL по reference — не «на всякий случай» каждый раз.

В реальном проекте автор положил `blog-hero-reference3.png` из B03 — лицо на B08 стало «не тем». После hero_sync и повторной генерации gate и human cover-qa прошли. Правило: assets — только headshot, как паспортное фото, не коллаж и не прошлая обложка.

Соберите три inline без вашего лица: 4K, короткие чипы кириллицы, без даунскейла

kak-proverit-oblozhku-bloga-do-publikacii-inline-03-1 Как проверить обложку блога до публикации: Vertex, JPG headshot и cover-qa?

Боль: inline-02 с длинной подписью внизу — размазанная кириллица. Диффузионные модели имитируют буквы, а не набирают текст; на Habr и в RU-кейсах GPT Image та же история. Решение BurrBuild: inline 4K, без лица, чипы 2-4 слова, не сжимать до 2K после генерации.

Три inline иллюстрируют H2 — схемы, чек-листы, стикеры. Лицо только на cover. Scene planner (`burrbuild_blog_cover_scene_planner.py`) задаёт полный scene_hint — не укорачивайте вручную, иначе generic офис.

  • Чип кириллицы: «face lock JPG», «cover-qa PASS» — 2-4 слова, не предложение.
  • 4K без даунскейла — резкость мелкого текста на стикерах.
  • Домен calmopsai.com — post-overlay на cover, не в inline prompt.

Типичная ошибка — весь заголовок H2 на стикере inline-03. На практике лучше «проверка до Publish». Советуем укоротить чип или убрать текст; перегенерируйте один слот, не весь quad.

Прогоните cover-qa gate: face match, сцена и бренд URL только post-overlay

Боль: публикация без QA — clone scene с прошлой статьи, duplicate pose, домен внутри пикселей Vertex. Решение — двухуровневый gate: машина + human cover-qa агент.

Машинный gate: python3 scripts/burrbuild_blog_cover_gate.py —article-dir memory/blog/articles/B08-kak-proverit-oblozhku-bloga-do-publikacii

На выходе `cover/cover-qa-gate.json` со status PASS: JPG assets, scene cooldown (15 статей), lock match, pose registry. FAIL — не в Indexer/Publish; смотрите `shared/blog-cover-qa-contract.md`. Human cover-qa (Task `burrbuild-blog-cover-qa`): face match на cover.png, нет scene clone, URL ровный после `burrbuild_blog_cover_brand_overlay.py`. Машинный PASS без глаз — мало: поза может клонировать B05.

Итоговый вердикт: Машина ловит конфиг и файлы; человек (агент QA) ловит «нравится/не нравится» и клоны. Publish без обоих PASS — риск перезаливки и кэша соцсетей.

Бренд URL calmopsai.com — снизу по центру, Python overlay из `cover-design-code.json`. Не стоит надеяться на overlay, если домен уже нарисован внутри Vertex — перегенерируйте cover с чистым промптом.

Пройдите чек-лист dry-run и боевой прогон перед Publish

Боль: на сайте featured ок, в VK/Telegram — старая og:image или обрезанное лицо. Решение — dry-run до Publish и cache reset после.

  1. Локально: откройте `preview.html` в article dir — cover и inline на месте, inject-html не сломал разметку.
  2. Размер featured: ориентир 1200×628 или 1200×675; safe zone для лиц ~1080×600 по гайдам OG 2026.
  3. OG Check: ogcheck.com или аналог — og:title, og:image, файл до ~1 МБ.
  4. Соцкэш: Telegram @WebpageBot, VK clearCache — если превью не обновилось сразу после черновика.
  5. Publish policy: B01-B07 и published articles — не перегенерировать cover без явного запроса; B08+ — полный чек-лист каждый раз.
  6. После Publish: повторите OG check на live URL; featured в WP должен совпадать с cover.png из gate.

Success criteria до FAQ: `burrbuild_blog_cover_gate.py` даёт cover-qa-gate.json PASS; human cover-qa подтвердил face и сцену; quad-vertex-result с vertex_ai и JPG refs; calmopsai.com после overlay; OG 1200×630 без обрезки лица. Рекомендуем не жать Publish, пока не пройдёте OG check — иначе «вроде норм в Finder» обманет.

BurrBuild на neuroalex.site — тот же preflight после GEO QA и до Indexer. Рядом: запуск Cursor Cloud Agent для блога — cover там после writer, не раньше.

Редакционная проверка: Елена Ковалева, эксперт по SEO/GEO.
Достоверность данных: Wordstat «сгенерировать обложку» 1915 показов/мес, «обложка для статьи» 454, «open graph проверка» 31 (РФ, июнь 2026); модель `gemini-3-pro-image-preview` и separate 4x — по `shared/blog-cover-vertex-lock.json` и docs Google на дату публикации.

Частые вопросы

Чем Vertex Pro отличается от MCP для blog cover?

Для blog cover BurrBuild — только Vertex Python с frozen lock: banana_pro, face bytes из JPG, MCP в forbidden_backends. MCP nano-banana годится для кейсов и trace assets, но не для separate blog cover — нет единого face lock и scene registry.

Почему на inline «каша» из кириллицы?

Диффузия рисует буквы как текстуру, не наборщик. Длинные строки ломаются чаще. BurrBuild: inline 4K, 2-4 слова, без лица; не читается — укоротите чип или уберите текст со стикера.

Нужно ли перегенерировать B01-B07 после смены пайплайна?

Нет без явного запроса: regen policy запрещает трогать published cover. Полный чек-лист обязателен для B08+; старые обложки не пересобирайте «для выравнивания».

Достаточно ли cover-qa-gate.json PASS?

Нет. Нужен human cover-qa на face match и clone сцены. Mentor(cover_schema) не пропустит без обоих PASS.

Как проверить OG до публикации в WordPress?

Черновик или staging с og:image; OG Check на URL ~1200×630, лицо в safe zone. После Publish — @WebpageBot или VK clearCache — кэш тянет старую картинку часами.

Что делать при ошибке Vertex credentials?

Стоп, без MCP или GrsAI fallback. Настройте VERTEX_AI_CREDENTIALS_JSON, прогоните burrbuild_blog_doctor.py. Отложить пост лучше, чем Publish без gate.

Telegram