
В своих предыдущих постах я много рассказывал про инструмент n8n, но мало делился реальными сценариями, которые он помогает решать. Исправляюсь.
Сегодня покажу, как я настроил автоматическую генерацию обложки (она же КДПВ — картинка для привлечения внимания) по тексту статьи.
От проблемы — к автоматизации
Сама по себе генерация картинок нейросетью — не новость. Можно подготовить промпт, отправить в чат-модель и получить результат. Не понравилось — доработать промпт и повторить. Вроде всё просто, но в ручном режиме меня тяготило размытие контекста: приходилось постоянно переключаться между задачами — проверять текст, писать краткое содержание, формулировать основную идею, составлять промпт, проверять его, генерировать картинку, а при неудаче — начинать заново с четвёртого шага.
Это занимало время и сбивало фокус. Я захотел перенести весь этот цикл в n8n, чтобы получать обложку автоматически, сразу после завершения статьи.
Сначала я планировал использовать API «Кандинского», но оказалось, что он больше не поддерживается, а удобное мини-приложение в Telegram стало «условно-доступным». Пришлось искать альтернативу.
Остановился на связке n8n + OpenRouter.ai + NanoBanana (она же модель gemini-3.1-flash-image). Для анализа текста и генерации промпта задействовал DeepSeek.
Как устроен воркфлоу (коротко):

- Триггер — текст статьи приходит в чат workflow, настройка ответа через response node.
- AI-агент (DeepSeek) анализирует текст и формирует промпт для генерации картинки. Системный промпт очень детальный: агент выделяет главную мысль, ключевые метафоры, определяет настроение, цветовую палитру и композицию. На выходе — промпт на английском языке без лишних символов (кавычки удаляются специальным обработчиком). Системный промпт агента:
Ты — профессиональный креативный продюсер и промпт-инженер с опытом в визуализации деловых и технологических тем.
Твоя задача — по тексту статьи, который я пришлю ниже, создать максимально точный и выразительный промпт для генерации обложки в нейросети Nanobanana (или аналогичной).**Порядок действий:**
1. **Прочитай и проанализируй текст**:
— Выяви главную мысль (тезис) статьи.
— Определи ключевые персонажи, процессы, контрасты (например, «исследователи vs внедренцы», «старые циклы vs новые», «хаос данных vs структура»).
— Улови настроение и тональность (деловая, ироничная, оптимистичная, тревожная и т.п.).
— Найди 2–3 сильные метафоры, которые можно визуализировать (например, «уход звёзд», «приземление технологий», «смена парадигмы», «циклы»).2. **Сформулируй визуальную концепцию**:
— Опиши композицию: что на переднем, среднем и заднем планах.
— Определи цветовую палитру, соответствующую тону статьи (например, деловые тона с акцентом, или минималистичная монохромность, или энергичные цвета).
— Укажи нужный стиль: векторная иллюстрация, фотореализм, абстракция, изометрия, инфографика и т.д.
— Продумай символы и детали, которые отразят ключевые тезисы (графики, шестерёнки, потоки данных, силуэты, циклы, стрелки, мосты).3. **Составь промпт для генерации**:
— Он должен быть на **английском языке** (для лучшего понимания большинством нейросетей), но если нужен русский — укажи.
— Обязательно включи:
— основной сюжет (2–3 предложения);
— детали композиции и объектов;
— стиль и технику (flat vector, cinematic lighting, 8k, etc.);
— цветовое решение;
— параметры: соотношение сторон (например, 16:9 для обложки), версию модели (если знаешь), степень стилизации.
— Промпт должен быть чётким, без лишней воды, но достаточно детальным, чтобы нейросеть поняла замысел.4. **Предоставь результат в формате**:
— **Готовый промпт** (текст для отправки в нейросеть).**Важные условия:**
— Не придумывай факты, которых нет в статье, — опирайся только на предоставленный текст.
— Если в статье не хватает описания для визуализации (например, нет упоминания цвета или атмосферы), предложи нейтральное, но стильное решение (например, корпоративный тёмно-синий + оранжевый акцент для деловых тем).
— Если стиль статьи явно выражен (например, ироничный или строгий), отрази это в промпте.
— обязательно экранируй кавычки, используй \» вместо »
— возвращай только промпт на английском языке
— проверь чтобы кавычек в тексте не былоТекст статьи для обработки:
{{ $json.chatInput }} - Так как агент склонен к ошибкам и часто игнорирует инструкцию «проверь чтобы кавычек в тексте не было” то в первом варианте я думал сделать агента контроллера, но он также оставлял после себя артефакты, которые ломают итоговый JSON, то использую ноду MAP c регулярным выражением, удаляющий ненужные символы:
{{ ($json.output ?? »).toString().replace(/\n/g, ‘ ‘).replace(/[«\\,%]/g, ») }}
- HTTP-запрос к OpenRouter с моделью NanoBanana. JSON тела запроса выглядит так:
{
«model»: «gemini-3.1-flash-image»,
«messages»: [
{
«role»: «user»,
«content»: «Сделай фотореалистичное изображение по описанию:{{ $json.output }}»
}
],
«modalities»: [«image», «text»],
«image_config»: {
«aspect_ratio»: «16:9»,
«image_size»: «1K»
}
} - Обработка результата — возвращается не файл, а текстовое представление изображения (base64). С помощью небольшого скрипта (на JavaScript) я преобразую его в PNG-файл. JavaScript выглядит так:
const img = $json.choices[0].message.images[0].image_url.url;
const base64 = img.replace(/^data:image\/png;base64,/, »);
const buffer = Buffer.from(base64, ‘base64’);return [
{json: {},
binary: {
data: {
data: buffer.toString(‘base64’),
mimeType: ‘image/png’,
fileName: ‘generated.png’
}
}
}
];
- Сохранение — картинка загружается на Google Диск с именем, содержащим дату и время для удобного поиска.
Filename = NanoBanana_cover_{{ $now.toFormat(‘yyyy-MM-dd_HH-mm-ss’) }}.png
- Ответ в чат — отправляется сообщение «Обложка готова» со ссылкой на файл.
Модель попадает в мои ожидания примерно в 9 случаях из 10 — повторные генерации почти не требуются. При необходимости воркфлоу можно дополнить петлёй для утверждения или корректировки промпта.
В итоге: есть текст — есть обложка. Готово к публикации (особенно удобно для Telegram-каналов).
О других сценариях автоматизации расскажу в следующих постах.