Skip to content
Back to skills

article-cover

ASecurity

Creates covers and images for articles, guides and pages with generative models (Seedream, Nano Banana, GPT-Image, Midjourney, Higgsfield and others). Frames the single idea of the article instead of a still life, checks a stop list before generating, bakes brand logos into the frame in one pass, passes aspect ratio as a model parameter, keeps width for the layout and a new file name, shows the owner 2-3 options before inserting, and writes the caption from the actual frame. Use when a cover ...

  • 1 star
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 8, 2026
ai-agentspythongo

Works with

  • cli

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned October 8, 2026

npx -y skills add shutckin/aivfx-content-kit --skill article-cover --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of article-cover?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for article-cover
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/shutckin-article-cover/badge)](https://www.skillsdirectory.com/skills/shutckin-article-cover)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: article-cover
description: "Creates covers and images for articles, guides and pages with generative models (Seedream, Nano Banana, GPT-Image, Midjourney, Higgsfield and others). Frames the single idea of the article instead of a still life, checks a stop list before generating, bakes brand logos into the frame in one pass, passes aspect ratio as a model parameter, keeps width for the layout and a new file name, shows the owner 2-3 options before inserting, and writes the caption from the actual frame. Use when a cover or post visual is requested. Triggers: 'article cover', 'blog header image', 'hero image', 'thumbnail for the post', 'generate a cover', 'regenerate the cover'. Triggers (RU): «сделай обложку», «картинку к статье», «визуал для поста», «hero для страницы», «обложка для гайда», «перегенери обложку», «поставь логотипы на обложку», «подпись к картинке»."
---

# Обложки статей через генерацию

> Instructions are in Russian. Respond in the user's language.

## Зачем

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

## На чём работает

| Что | Зачем здесь |
|---|---|
| Seedream 5 Pro через Higgsfield | основная генерация: длинное описание сцены, 2K, референсы через `--image` |
| Nano Banana Pro или 2 (Higgsfield, Flowith или аналог) | правка готового кадра по референсу короткой инструкцией |
| Лук из `film-look` | хвостом в каждом промпте; грейд снимается для светлых интерьеров и предметки с фирменными цветами, для тёмной сцены с одной тёплой лампой и для холодного, монохромного или неонового стиля |
| PNG-логотипы | референсы брендов из статьи; только PNG: в Higgsfield CLI JPEG падает с ошибкой подписи хранилища только в логе, и генерация молча уходит без референса; вектор сначала растеризуется |
| webp | финал: генерация с запасом, потом точная ширина и сжатие; при замене новое имя файла, иначе кэш покажет старую картинку |
| `scripts/check_cover.py` | размеры, соотношение сторон, стоп-слова и лук в промпте |
| Агент и владелец | агент делает 2-3 варианта, владелец выбирает до публикации |

Текст в генерацию не вшивается: заголовок статьи даёт сама страница.

## Когда включать

- Нужна обложка или картинка в тело статьи, гайда, страницы услуги.
- Перегенерация отклонённой обложки.
- Статья сравнивает или обозревает конкретные сервисы и нужны их логотипы.
- Нужна подпись к уже готовой картинке.

Не включай для графики с текстом поверх кадра (плашки, баннеры с заголовком):
текстовые обложки-вёрстка владелец отверг как «текст на тексте».

## Порядок работы

1. **Прочитай статью целиком.** Не по заголовку. Выпиши 3-5 конкретных фактов
   или мыслей, которые в ней есть (не тему, а факт: «на бесплатном тарифе
   видео выходит с водяным знаком», «пять моделей на одном промпте ведут себя по-разному»).
2. **Одна фраза до генерации.** Запиши письменно: «Кадр иллюстрирует факт:
   ...». Если фраза выходит в духе «стильный человек держит [предмет]» без
   связи с фактом, это фэшен ради фэшена. Переписывай идею, не промпт.
3. **Проверь журнал миров.** В проекте веди файл с использованными мирами и
   композициями (шаблон в `templates/cover-brief.md`, раздел внизу). Мир,
   который был в последних обложках, не бери.
4. **Пройди стоп-лист** (ниже). Совпал хоть один пункт: переписывай до
   генерации, не после.
5. **Бренды в статье?** Собери логотипы-референсы (раздел «Логотипы»).
6. **Собери промпт:** персонаж и мир, одна точная странность, свет, логотипы
   как часть мира, в конце пресет лука. Соотношение сторон не пиши в тексте,
   передавай параметром.
7. **Сгенерируй 2-3 разных варианта**, лучше разными моделями или разными
   мирами, а не три дубля одного промпта.
8. **Проверь каждый файл** скриптом и глазами (зум на логотипы, руки, лица).
9. **Покажи владельцу пронумерованные варианты одним сообщением**, чтобы ответ
   был одним словом. Пока не выбран вариант, ничего не вставляй, не коммить,
   не выкатывай.
10. **Подпись и alt пиши после выбора, глядя на сам кадр.**
11. **Вставь под новым именем файла**, допиши мир в журнал.

## Правила кадра

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

**Обложка это поставленный кадр одной мысли, а не иллюстрация процесса.**
Не показывай, как человек пользуется сервисом. Показывай мысль статьи
метафорой, которая читается за секунду без подписи. Примеры, которые
сработали (пример, не шаблон для копирования):

- сравнение нескольких моделей: полицейская шеренга из очень разных
  персонажей (ковбой, панк, клерк, космонавт, монах);
- потерянные заявки: курьер под дождём у двери с табличкой CLOSED;
- «один способ закрыт, другие открыты»: швейцар в строгом костюме держит одну
  дверь закрытой, через соседние спокойно проходят люди.

**Формула: конкретный мир с настоящей фактурой плюс одна точная странность.**
Жанровая оболочка (неон, нуар, киберпанк, ретро-ярмарка, «аналоговая
старина») не работает: её генерят все. Стиль (свет, стайлинг, композиция)
только оболочка, сама метафора берётся из факта статьи.

**Фэшен-эдиториал как подача.** Крупный стильный человек, жёсткий студийный
свет или контрастный дневной, поза «на обложку журнала». Метафора выражается
актёрской подачей и одним точным жестом или предметом. Абстрактный реквизит
без причины (жетон, бейдж, зеркало, близнецы) это брак.

**Свет.** Дневной, оконный или жёсткий студийный. Тёмный интерьер с тёплым
источником даёт коричневое мыло. Тёплый грейд в пресете лука снимай в
тёмной сцене с одной тёплой лампой и в светлых интерьерах или предметке с
фирменными цветами (там он утягивает в жёлтый монохром).

## Стоп-лист (проверять до каждой генерации)

1. Человек за ноутбуком или монитором в тёмной комнате.
2. Тёплая настольная лампа как главный источник света.
3. Ночь плюс тёплый грейд плюс интерьер.
4. Наушники на шее как главный реквизит.
5. Кадр буквально показывает использование сервиса вместо метафоры.
6. Натюрморт: чашка у окна, наушники на камне, монитор с картинкой.
7. Мир или композиция из последних обложек этого сайта.
8. Текст, заголовок или цифры, нарисованные поверх кадра.

Как это было: на партию обложек к статьям про генератор музыки три кадра из
четырёх вышли «человек в наушниках за ноутбуком ночью, тёплая лампа». Этот
архетип уже был запрещён, но заметку не открыли перед работой. Вердикт
владельца: «чисто стоковое». Поэтому стоп-лист проверяется до генерации
каждый раз, а `scripts/check_cover.py --prompt` ловит самые частые слова.

## Логотипы в статьях про бренды

Статья сравнивает или обозревает конкретные сервисы: настоящие логотипы этих
сервисов обязаны быть в кадре. Метафора должна читаться за секунду без
подписи: спорт, «против», гонка, фотофиниш, ринг. Реквизит-намёк («камера
значит кино, телефон значит бот») не читается.

Как это было: на сравнение двух сервисов сгенерили «кинокамера против
телефона» без единого логотипа. Отказ: идея не считывается, персонажи
непонятные. Приняли фотофиниш: два спринтера рвут ленточку, на форме
настоящие логотипы.

Техника:

- Логотип бери с официального сайта: вектор (favicon.svg, логотип из шапки,
  og-картинка). Вектор растеризуй в PNG на белом фоне, например
  `rsvg-convert -w 1024 -b white logo.svg -o logo.png`.
- Загружай PNG. В Higgsfield CLI загрузка JPEG падает с ошибкой подписи
  хранилища в логе, но сама команда ошибку не возвращает, и генерация молча
  уходит без референса. Поэтому только PNG и проверка логов (на октябрь
  2026, перепроверь).
- **Логотип рождается в кадре за один проход.** Кадр и логотипы-референсы
  уходят в модель вместе, логотип описан в промпте как часть мира: вышивка на
  форме, которая гнётся по складкам и ловит свет; лайтбокс на корпусе;
  нашивка на рукаве. Схема «сначала кадр, потом дорисовать лого» и тем более
  наложение в редакторе отвергнуты: знак выглядит приклеенным.
- В промпте попроси воспроизвести знак точно: "reproduce the reference logo
  exactly, do not redraw or simplify it".
- Модели ведут себя по-разному: одна точнее держит форму знака, другая даёт
  сильнее композицию, но упрощает знак. Гоняй две параллельно и выбирай.
- После генерации обязательно зум на каждый логотип: лишние лепестки,
  перепутанные буквы, зеркальный знак это брак.

## Пресет лука

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

```
Shot on <камера> with <оптика>, <плёнка>, fine organic grain,
<тон: мягкий контраст, приподнятые чёрные, тёплый или холодный>,
no sharpening, no HDR.
```

Соотношение сторон в пресет не пиши никогда: в тексте оно спорит с
параметром модели, и кадр обрезается мимо.

## Технические грабли

- **Соотношение сторон только параметром модели** (`--aspect_ratio 16:9` или
  поле в интерфейсе). Режим «картинка в картинку» (i2i, правка по
  референсу) без параметра часто отдаёт квадрат 1:1. Как это было: обложка
  после правки вышла квадратной и обрезалась в вёрстке, причину долго искали
  в кэше, а она была в пропущенном параметре.
- **Ширина файла совпадает с тем, что ждёт вёрстка.** Узнай у шаблона статьи,
  какую ширину он ждёт (пример: 1280 пикселей при 16:9, то есть 1280x720).
  Генерируй с запасом (2K), потом уменьшай до точной ширины и сжимай в webp.
  Не отдавай вёрстке 4K: это лишние мегабайты на мобильном.
- **Заменил картинку, меняй имя файла.** Перезапись `cover.webp` новым
  содержимым не видна: оптимизатор картинок фреймворка, CDN и браузер держат
  старую копию. `curl` по прямому адресу покажет новые байты и обманет.
  Новое имя (`cover-v2.webp`), обнови ссылку в данных статьи, проверь на
  отрисованной странице через `img.currentSrc`.
- **Подпись и alt пиши по самому кадру.** Открой картинку и опиши то, что
  видно. Как это было: агенты писали подписи вслепую по имени файла, и три
  подписи из четырёх не совпали с кадром.
- **Картинка следует за темой сайта.** Если у сайта светлая и тёмная тема,
  проверь, что обложка читается на обеих (тёмный кадр на тёмном фоне
  пропадает).
- **Промпт не выдаёт себя.** Если сайт показывает промпт под обложкой,
  убери из него служебные слова и чужие имена людей.

## Пример команды (формат на октябрь 2026, перепроверь)

```
higgsfield generate create seedream_v5_pro \
  --prompt "<сцена и мир>. <одна странность>. <логотип как часть мира>. <пресет лука>" \
  --image logo-a.png --image logo-b.png \
  --aspect_ratio 16:9 --resolution 2k --wait --json
```

Имена моделей и флаги у агрегаторов меняются часто. Перед работой проверь
справку инструмента (`--help`), а не память.

## Проверка файла

```
python3 scripts/check_cover.py cover-v2.webp
python3 scripts/check_cover.py cover-v2.webp --width 1280 --ratio 16:9 --prompt prompt.txt
```

Скрипт читает размеры PNG, JPEG и WebP без внешних библиотек, сверяет ширину
и соотношение сторон, а с `--prompt` ищет в тексте промпта слова из
стоп-листа, соотношение сторон в тексте и отсутствие пресета лука. Код
выхода 1 при нарушениях. Это сито, а не замена глазам: композицию, логотипы и
смысл проверяешь сам.

## Типичные ошибки

- Три варианта одного и того же мира. Владелец выбирает из одного.
- Повтор композиции из прошлой статьи («опять шеренга»). Одно направление не
  чаще раза в десять обложек.
- Метафоры мастерских и «человек за работой» на витринных страницах (лендинг,
  курс). Там нужен эдиториал с крупным лицом, мастерские оставь для статей.
- Логотип наложен сверху или заменён дженерик-иконкой.
- Вставка и выкат до выбора владельца. Два выката подряд с отклонёнными
  картинками это шум в истории и на проде.
- Подпись написана до того, как кадр открыли.

## Чек-лист перед сдачей

- [ ] Записана одна фраза: какой факт статьи иллюстрирует кадр.
- [ ] Стоп-лист пройден, мир не повторяет последние обложки.
- [ ] В кадре люди, животные, поп-культура или узнаваемый продукт.
- [ ] Статья про бренды: настоящие логотипы в кадре, сгенерированы внутри,
      проверены зумом.
- [ ] Соотношение сторон передано параметром, в тексте промпта его нет.
- [ ] Пресет лука в конце промпта, грейд снят для тёмной сцены.
- [ ] `check_cover.py` прошёл: ширина и пропорции под вёрстку.
- [ ] 2-3 варианта показаны владельцу, выбор получен.
- [ ] Новое имя файла, ссылка в данных обновлена, проверено на странице.
- [ ] Подпись и alt написаны по кадру.
- [ ] Мир записан в журнал.

## Что устаревает первым

Имена моделей, флаги CLI агрегаторов, какие форматы принимает загрузчик
референсов, какая модель точнее рисует логотипы. Правила кадра и стоп-лист
устаревают медленно, но список «израсходованных миров» у каждого сайта свой.
Факты проверены на сентябрь-октябрь 2026, перепроверь перед работой.

Files in this skill

  • SKILL.md21.5 KB
  • scripts/check_cover.py7.9 KB
  • templates/cover-brief.md3.6 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.