Платформа · агент

Обложка к каждой статье, без дизайнера в очереди.

Контент упирается в картинку. Черновик готов, разметка на месте, а статья три дня ждёт обложку или уходит со стоковым фото, которое не похоже ни на что другое на сайте. Visual Asset Studio убирает это ожидание: собирает ассет из вашего дизайн-пака и проверяет отрендеренные пиксели до того, как что-то попадёт в публикацию.

Это не генератор изображений.

Здесь ничего не сэмплится из модели. Ассет собирается из версионированного пака токенов, типографической шкалы и безопасных зон, поэтому обложка, сделанная сегодня, и обложка через три месяца читаются как один бренд.


В работе, версия 0.3.26

16 плейсментов под публикацию · 10 гейтов по отрендеренному файлу · alt-текст обязателен у каждого ассета.


Задача

Единый стиль — это вопрос объёма.

Одна обложка делается легко. Дизайнер её нарисовал, все довольны. Трудность начинается на тридцати в месяц по пяти площадкам, когда одной статье нужна разная нарезка под сайт, LinkedIn, Medium и превью ссылки, и у каждой из них своё соотношение сторон, обрезающее заголовок в другом месте.

На таком объёме возникает очередь. Из неё обычно сбегают двумя способами. Либо берут универсальный шаблон и переиспользуют его, пока лента архива не превращается в четыре одинаковых прямоугольника. Либо ставят генератор, который каждый раз даёт похожее, но другое. Оба варианта меняют узнаваемость бренда на пропускную способность, и читатель замечает подмену примерно к четвёртой статье.

Мы используем это на себе, и это единственная демонстрация, за которую можем отвечать. В июне 2026 мы сделали бэкфилл по всему сайту: на 146 опубликованных статей приходится 143 различных обложки, а три повтора дала дедупликация одинаковых заголовков, а не общая заглушка. В том же месяце мы серверно переставили 9 обложек из 9 на русской стороне сайта, без единой картинки, нарисованной руками.


Замкнутый контур

Шесть шагов, и пятому разрешено провалиться.

01 · Классификация

Под какую площадку

Плейсмент — обязательный вход, а не значение по умолчанию. Мы спрашиваем, под какую поверхность обложка, вместо того чтобы гадать: у обложки статьи в LinkedIn и у картинки поста там же разные пропорции, и одна другую не заменяет.

02 · Префлайт

Пак, владелец, токены

Мы загружаем и фиксируем версию дизайн-пака, определяем владельца бренда и прогоняем текст, который попадёт на картинку, через редполитику тенанта. Всё это до рендера.

03 · Рендер

Из пака, а не из промпта

Мы собираем изображение на сервере из дизайн-токенов и типографической шкалы пака. Никакая модель не придумывает раскладку, поэтому обложка, сделанная сегодня, и обложка через три месяца читаются как один бренд.

04 · Проверка

Десять гейтов по пикселям

Мы осматриваем отрендеренный файл, а не доверяем намерению: контраст, влезает ли заголовок в свою рамку, тот ли шрифт вычислил браузер, переживает ли композиция обрезку площадки, есть ли alt-текст и происхождение.

05 · Перерендер

До трёх попыток

Провалившийся гейт запускает повторный рендер. Порог визуального диффа мы держим на 0,002, поэтому изменение, которое должно быть незаметным, обязано быть незаметным на самом деле.

06 · Передача

Проверено либо честная остановка

Прошедший ассет уходит в публикацию вместе с отчётом о проверке. Тот, что пройти не смог, возвращается оператору, а не ухудшается: обложка с чужим брендом хуже, чем обложка с опозданием.


Плейсменты

Одна статья, свой ассет под каждую площадку.

Плейсмент — обязательный вход. На запрос без него мы отвечаем вопросом, ведь формы, которая работает везде, не существует.

Площадка Пресет Размер
humanswith.ai, картинка ссылки humanswith_site_og 2400×1260
gregshevchenko.com, картинка ссылки greg_site_og 1200×630
Обложка статьи в LinkedIn linkedin_article_cover 1920×1080
Картинка поста в LinkedIn linkedin_post_image 1200×900
Превью ссылки в LinkedIn linkedin_link_preview 1200×627
Карточка Featured в LinkedIn linkedin_profile_card 1200×900
Medium medium_cover 1500×750
X x_cover 1600×900
dev.to devto_cover 1000×420
vc.ru vcru_cover 1200×900
Хабр habr_cover 1200×630
Reddit reddit_cover 1200×628
Telegram telegram_post 1280×720
Дзен dzen_cover 1100×616
Таблица внутри статьи как картинка article_table_png 1600×авто
Бренд-пак клиента пресеты тенанта по паку

Четыре строки из этого списка — один только LinkedIn, и это самый наглядный довод против подстановки. Обложка статьи там 16:9, картинка поста 4:3, превью ссылки 1,91:1. Один файл на все три обрежет заголовок по-разному в каждом случае, поэтому «LinkedIn» без указания места студия считает неполным запросом.


Проверка

Десять проверок файла, а не намерения.

Разница между рендером и проверенным ассетом в том, что второй осмотрели после того, как он получился. Мы прогоняем эти десять гейтов по отрендеренным пикселям, и пройти должны все:

  • token_only: каждый цвет и размер сводится к дизайн-токену, ничего не подобрано на глаз.
  • font_load и font_style_computed: шрифт пака действительно загрузился и именно его вычислил браузер, а не тихо подставил системный.
  • text_fit: заголовок влезает в свою рамку, а не обрезается по краю.
  • safe_area_crop: композиция переживает обрезку самой площадки.
  • contrast: текст читается на том, что в итоге оказалось за ним.
  • alt_text: он есть и он описательный, иначе ассет не проходит.
  • asset_provenance и correct_brand_owner: у ассета есть происхождение и правильный бренд, что важно, когда одна студия обслуживает несколько тенантов.
  • no_duplicated_cta_domain: призыв к действию не напечатан дважды разными словами.

Провал запускает перерендер, до трёх попыток, против визуального базлайна с допуском 0,002. Чего не происходит, так это тихого ухудшения: ассет, который пройти не смог, возвращается оператору, ведь обложка с чужим брендом хуже, чем обложка с опозданием.


Почему это работает

Где команды ошибаются.

Мы видели три способа сбежать из очереди за обложками, и все три ломаются по одной причине: они оптимизируют один ассет, тогда как задача про весь набор.

Переиспользованный шаблон. Одну удачную раскладку применяют ко всему. Её хватает примерно на четыре статьи, дальше страница архива показывает четыре одинаковых прямоугольника, и читатель перестаёт замечать обложки вообще.

Генератор. Быстро и каждый раз по-разному. Именно «по-разному» бренд не может себе позволить на тридцати ассетах в месяц, да и что такое 1,91:1 генератор не знает.

Дизайнер как узкое место. Лучший результат и худшая пропускная способность. Заодно senior-человек тратится на нарезки, тогда как его ценность в кампанийной работе, которую здесь ничто не заменяет.

С проверяемым контуром меняется не качество отдельной обложки. Меняется то, что сороковая по-прежнему совпадает с первой, а сломанную ловят до публикации, а не после.


Подготовка

Что нужно до первого рендера.

Разовая работа с вашим дизайнером. После неё поток идёт без него.

  1. Палитра точными значениями. Приблизительные цвета не проходят токен-гейт, поэтому нужны те хексы, которые действительно записаны в вашем бренд-буке.
  2. Шрифтовые семейства и их размерные полосы. Какие начертания разрешены и какие размеры может принимать заголовок, кикер и подпись.
  3. Логотип тем файлом, каким вы его отдаёте. Мы его масштабируем и больше ничего не делаем: не перекрашиваем, не перерисовываем, не восстанавливаем со скриншота.
  4. Список площадок, куда вы публикуете. Каждая становится плейсментом со своим размером. Про то, чего в списке нет, мы спросим, а не подставим наугад.
  5. Ваши правила по alt-тексту и редполитике. Текст, который окажется на картинке, — такой же policy-bearing текст, поэтому он проходит тот же гейт, что и текст статьи.

Честно

Чего она не делает.

Это не дизайн-отдел. Ни фотосъёмки, ни продуктовых снимков, ни видео, ни кампанийного креатива. Для этого нужен человек со вкусом и брифом, и ничто здесь его не заменяет. Заменяется повторяющаяся половина: обложка к каждой статье, нарезка под площадку, таблица, которой надо выжить картинкой.

Сначала нужен бренд-пак. Токены, типографическая шкала, правила по логотипу и холсты должны существовать до того, как из них что-то соберётся. Настроить это — разовая работа с дизайнером, а дальше поток идёт без него.

Отказы заложены в конструкцию. Ассет, который не прошёл свои гейты, возвращается, а не публикуется, то есть студия иногда не отдаёт ничего. Для системы, чья задача — единый стиль, это правильное поведение, но знать о нём стоит до того, как вокруг неё построен график публикаций.


Вопросы, которые задают команды

Про дизайн-агента, по существу.

Это генератор картинок по промпту?

Нет, и в этом суть. Мы собираем изображение из версионированного дизайн-пака: токены, типографическая шкала, безопасные зоны. Генератор каждый раз даёт свою трактовку, а здесь каждый раз получается один и тот же бренд, что и нужно, когда обложка требуется к каждой статье.

Что будет, если текст не помещается?

Гейт text_fit ловит это на отрендеренных пикселях, и студия перерисовывает, до трёх попыток. Если и после этого текст не влезает, вы получите передачу оператору, а не обложку с обрезанным заголовком. То же касается контраста и обрезки под площадку.

Почему она отказывается сделать «универсальную» обложку?

Потому что универсальной не бывает. У обложки статьи в LinkedIn размер 1920×1080, у картинки поста там же 1200×900, а у превью ссылки 1200×627. Один файл на все три обрежется неправильно минимум в двух случаях, поэтому плейсмент обязателен, а его отсутствие даёт вопрос, а не подстановку.

У каждой картинки есть alt-текст?

Да, и это гейт. Ассет без alt-текста проверку не проходит. Для таблицы, отрисованной картинкой, alt несёт настоящие колонки и строки, ведь эта картинка — единственный способ, которым нейросеть может таблицу прочитать.

Можно на нашем бренде, а не на вашем?

Да. Бренд-пак клиента объявляет палитру, разрешённые шрифтовые семейства и размерные полосы, холсты и правила по логотипу, и гейты после этого привязываются к нему, а не к нашему. Логотип используется таким, каким вы его отдали: масштабирование — единственное допустимое преобразование.

Чего она не делает?

Не снимает фото, не делает продуктовые съёмки, не монтирует видео и не берётся за разовую иллюстрацию. Её работа — регулярный поток: обложка к каждой статье, таблица, которая должна выжить картинкой, отдельная нарезка одного ассета под каждую площадку. Кампанийный креатив остаётся работой дизайнера, и мы это говорим прямо, а не перепродаём.


Хотите посмотреть на своём бренде?

Быстрее всего проверить на вашей же следующей статье.

Тридцать минут, чтобы посмотреть, во сколько обложки обходятся вам сегодня по времени, а не по деньгам, и действительно ли регулярный поток — ваше узкое место. Часто оказывается, что нет, и мы скажем об этом прямо.