
Ad Creatives
@ad-creatives
Design ad creatives and banners for social, display, and marketplaces at exact sizes with safe-zones and RF ad marking. Use when the user wants «сделай креатив/баннер/постер/обложку», «реклама для Instagram/VK/Telegram/TikTok/YouTube», «карточка или рич-контент Wildberries/Ozon», «баннер для лендинга/рассылки». Do NOT use for a pure image without text (image-studio), a whole web page (web-design), or a logo/brand identity (brand-identity).
Who the «Ad Creatives» skill is for
- Media buyers and marketers — a series of creatives for different platforms in one style and exact sizes, with marking.
- Wildberries and Ozon sellers — main photo and rich-content card 900×1200 (3:4) by the platforms' rules.
- Small businesses — a launch banner, email or landing banner without a dedicated designer.
- Agencies — a carousel or grid of one offer across formats.
What you can create
- Social: post and story for Instagram, VK, Telegram, TikTok; YouTube cover and a 9:16 reel.
- Marketplaces: Wildberries and Ozon card and rich-content, 3:4.
- Banners: for a landing page, email blast, affiliate network; X and LinkedIn formats.
- A series: one offer → 1:1, 4:5, 9:16, 16:9 reusing the background and copy.
Method: compose, don't just generate
The image model draws backgrounds well but writes text poorly. So the creative is assembled in parts: the background is generated separately without text, while the headline, CTA, logo and marking are overlaid in HTML/SVG and rendered to a pixel-exact PNG. The letters stay clean, the geometry precise, and the text is editable without regenerating.
Sizes and safe-zones
For VK, text covers ≤20% of the area (strict — moderation rejects it); for X, <50%. Meaningful content and the CTA sit in the central ~70% so the platform's UI (icons, caption) doesn't cover the button. Text contrast starts at 4.5:1 (WCAG AA).
Related skills: web design, brand identity, and the AI Designer agent that unites all three.
Ready to build a launch creative? Describe the offer and platform — launch the «Ad Creatives» skill.
Why isn't the text painted directly onto the image?
Image models distort letters and can't hold exact geometry. The skill generates the background separately (--no text) and overlays the headline, CTA, logo and marking in HTML/SVG, then renders to PNG — the letters stay clean and readable and the size is pixel-exact.
Which formats and sizes are supported?
Exact sizes per platform: Instagram 1080×1080 (1:1) and 1080×1350 (4:5), Stories and Reels 1080×1920 (9:16), VK 1080×1080 and VK Ads, Telegram 1280×720, TikTok 1080×1920, YouTube 1280×720, X and LinkedIn, Wildberries and Ozon cards 900×1200 (3:4).
Are platform safe-zones respected?
Yes. For Reels and Stories the meaningful content stays in the central zone; for Meta ads the top 14% and bottom 20–35% are kept clean and the sides 6%. The general rule keeps the offer and CTA in the central ~70% so the platform's UI doesn't cover the button.
Is ad marking added?
Yes. Ads targeting Russia carry «Реклама. <advertiser>» and an erid field. The erid token is registered — the skill inserts a placeholder and you paste your own; it can't be invented (FАС fine).
What do I get as output?
A PNG at the exact size (one or a series across formats), an editable HTML/SVG source so you can tweak text and colour without regenerating, and the background prompt for variations.
Рекламные креативы и баннеры
Готовый рекламный креатив нужного размера — для поста, сторис, рекламы, карточки маркетплейса. Пользователь получает не совет, а файл (и исходник для правок).
Главный принцип: компонуем, а не генерируем
Генеративные image-модели плохо пишут текст: искажают буквы, путают слова, не держат точную геометрию зон (лучший — glm-image с точностью ~91%, но всё равно с ошибками; Kling — хуже). Поэтому финальный креатив никогда не генерируется целиком как одна картинка с текстом. Вместо этого:
фон/иллюстрация (kling_text_to_image, БЕЗ текста)
+
текст / CTA / логотип / «Реклама» + erid → HTML/SVG-шаблон
↓
рендер в PNG точного размера (design-renderer)
Исключение — чисто визуальный креатив без текста (атмосферная обложка, фото
продукта): там kling_text_to_image сразу даёт результат.
Когда использовать
- «сделай креатив / баннер / постер / обложку / промо-материал»
- реклама под площадку: Instagram, VK, Telegram, TikTok, YouTube, X, LinkedIn
- карточка товара или rich-content для Wildberries / Ozon
- баннер для лендинга, рассылки, партнёрской сетки
- карусель / серия креативов одного оффера в разных размерах
Когда НЕ использовать
- Чистая картинка без текста (иконка, иллюстрация, аватар) → навык
image-studio. - Целая веб-страница (лендинг, UI, макет сайта) → навык
web-design. - Логотип, палитра, фирстиль, мокапы → навык
brand-identity. - Видео / «оживить» креатив → отдельная задача: MCP
glm_generate_imageне делает видео, используйkling_image_to_video(фоллбэк —agenthere_glm_generate_video) (асинхронно, см. раздел «MCP Tools» системного промпта). Этот навык — только статика.
Что на выходе
- PNG нужного размера (один или серия под разные площадки).
- Исходный HTML/SVG-шаблон — чтобы пользователь мог править текст/цвет без перегенерации.
- Промпт фоновой генерации — для повтора или вариаций.
Инструменты
| Задача | Инструмент |
|---|---|
| Фон / иллюстрация / фото продукта | MCP kling_text_to_image (~0,028 $/вызов; фоллбэк — glm_generate_image ~0,015 $) |
| Проверить фон («то ли это», артефакты) | MCP analyze_image |
| Референсы / тренды / чужие креативы | MCP web_search, web_reader |
| Рендер HTML→PNG точного размера | design-renderer → scripts/render.js |
| Собрать серию в галерею | image-studio → scripts/build-gallery.js |
| Сохранить файлы | встроенные write |
Node вшит в десктоп (Electron) — работает на всех платформах. Unix-утилиты
(grep/sed/awk/find) на Windows отсутствуют — используй встроенные grep/glob и
Node-скрипты; для загрузки локальных файлов на сервер — agenthere_create_upload_url
- curl (см. раздел «MCP Tools» системного промпта).
Размеры (основные)
Полная таблица — в references/ad-formats.md. Здесь часто нужное:
| Площадка | Формат | Размер (px) | Соотношение |
|---|---|---|---|
| Instagram / лента | квадрат | 1080×1080 | 1:1 |
| Instagram / лента | портрет (рекоменд.) | 1080×1350 | 4:5 |
| Instagram / Facebook — Stories, Reels | вертикаль | 1080×1920 (орг.) / 1440×2560 (рекл.) | 9:16 |
| VK — пост / реклама | квадрат | 1080×1080 | 1:1 |
| VK Ads | квадрат / портрет / альбом | 1080×1080 / 1080×1350 / 1080×607 | 1:1 / 4:5 / 16:9 |
| Telegram — пост | альбом | 1280×720 | 16:9 |
| TikTok | вертикаль | 1080×1920 | 9:16 |
| YouTube — превью | альбом | 1280×720 | 16:9 |
| X / Twitter — image ad | квадрат / альбом | 1200×1200 / 1200×628 | 1:1 / 1.91:1 |
| LinkedIn — single ad | портрет / квадрат | 1080×1350 / 1200×1200 | 4:5 / 1:1 |
| Wildberries — осн. фото | портрет | 900×1200+ (мин. 700×900) | 3:4 |
| Ozon — осн. фото | портрет | 900×1200 | 3:4 |
kling_text_to_imageпринимаетaspect_ratio('1:1', '16:9', '9:16', '3:4', '21:9') иresolution('1k' | '2k'); у фоллбэкаglm_generate_imageтолько фиксированные размеры из его enum. Для произвольного размера — генерируй ближайшее соотношение, компонуй в HTML и рендерь черезdesign-rendererв точный размер (он делает скриншот строго в W×H).
Safe-zone'ы (критично для 9:16)
Площадки накладывают UI-элементы поверх креатива. Текст и логотип — только в безопасной зоне:
- Stories (орг.): безопасная зона ~1080×1610 по центру.
- Reels (орг.): ~996×1400; верх ~108px, низ ~310–320px, бока ~60px — без текста.
- Meta-реклама (консервативно): верх 14%, низ 20% (Stories) / 35% (Reels), бока 6% — чисто.
- Общее правило: держи значимый контент и CTA в центральной ~70% площади.
Рабочий процесс (гибридный)
Шаг 1. Бриф (одним вопросом-блоком)
Оффер (что и выгода), CTA, площадка(и), бренд-цвета и шрифт (или «подбери»),
есть ли erid для маркировки рекламы. Если пользователь не дал размер — возьми
дефолт для площадки из таблицы.
Шаг 2. Фон
Сгенерируй фон через kling_text_to_image (фоллбэк — glm_generate_image) по формуле (ниже), обязательно с
--no text-ограничениями. Размер — ближайшее доступное соотношение к нужному.
Шаг 3. Композиция (HTML/SVG)
Собери шаблон: фоновая картинка + текстовые зоны (заголовок, подзаголовок, CTA, «Реклама» + erid, логотип). Соблюдай:
- Safe-zone — значимое внутри центральной зоны.
- Контраст текста ≥ 4.5:1 (WCAG AA). На пёстром фоне — подложка/затемнение под текст.
- Текст ≤ 20% площади для VK (строго — модерация отклоняет) и < 50% для X — иначе режут охваты.
- Один фокус: взгляд первым делом падает на оффер/CTA, не на декор.
- 60-30-10: доминирующий фон 60%, вторичный 30%, акцент (CTA) 10%.
Скелет шаблона — в references/ad-formats.md (секция «HTML-скелет»).
Шаг 4. Рендер
node <design-renderer>/scripts/render.js --html creative.html --out creative.png --width 1080 --height 1080
<design-renderer> — путь к навыку design-renderer в рабочей директории.
Шаг 5. Мульти-формат (опционально)
Один оффер → несколько размеров: 1:1, 4:5, 9:16, 16:9. Переиспользуй фон и текст,
меняй только раскладку под формат. Собери серию в галерею через
image-studio/scripts/build-gallery.js.
Шаг 6. Маркировка (РФ)
Если креатив — реклама в РФ, добавь «Реклама. <рекламодатель>» и поле под erid.
Детали и правила размещения — references/erir-marking.md. Не выдумывай erid —
это регистрируемый токен; оставь плейсхолдер, пусть пользователь подставит свой.
Шаг 7. Доставка
Отдай PNG(и), путь к HTML-исходнику, и промпт фона. Предложи вариации (другая палитра/настроение/композиция).
Промпт для фона (формула)
объект + стиль + композиция + освещение + палитра + настроение + --no text
Пример (товарный hero, без текста):
Премиальная товарная съёмка, [продукт], [материал/цвет], по центру на мягком градиентном фоне, студийный свет три точки, мягкий боке, палитра: тёплые нейтральные
- один акцент, настроение: чисто и дорого, leaving negative space top-left for copy, --no text, no logos, no words, no watermark, no people
Для lifestyle-фона добавь «generous negative space on [сторона] for copy».
Если рендер недоступен
render.js требует Playwright или Puppeteer + Chromium. Если их нет — не падай
молча и не ври, что «готово»:
- С согласия пользователя установи ОДНО:
npm i -D playwright && npx playwright install chromiumИЛИnpm i puppeteer. - Если не вышло или пользователь отказался — HTML остаётся основным артефактом
(открывается в любом браузере, выглядит идентично). Предложи:
- открыть HTML в браузере и сохранить как изображение, либо
- сгенерировать обложку через
kling_text_to_image/glm_generate_image(но предупреди: текст в ней искажается, поэтому вариант — только для чисто визуальной части).
Антипаттерны
- Генерировать текст в картинке («надпись SALE 50%» в промпте) — буквы поползут.
- Проигнорировать safe-zone — площадка перекроет CTA своим UI.
- Забыть «Реклама»/erid для рекламы в РФ — штраф ФАС.
- Текст > 50% площади для VK/X — режут охваты.
- Мелкий нечитаемый текст — заголовки крупно, контраст ≥ 4.5:1.
- Молчать про стоимость — каждая генерация ~0,028 $ на Kling (~0,015 $ на glm-фоллбэке); для серии предупреди.
- Не отдать HTML-исходник — без него пользователь не сможет быстро поправить текст.