Бизнес-школа 7К
Контент · 03

Карусель для Instagram

Восемь слайдов 1080×1350 в едином стиле: по найденной виралке или по вашему дизайн-коду. Слайды рисует нейросеть в вашем ChatGPT, но сначала вы одобряете макет.

формат
1080×1350, 4:5
где рисуется
ChatGPT, порт 9222
команда
/content-pipeline или просьбой

01Готовый пример

Серия «Почему блог не приносит продажи», стиль «Светлый журнал»: тёплая бумага, огромный узкий гротеск, одно слово на фиолетовой плашке, крупная навигация внизу. Сделана по двум референсам-виралкам, принята с третьего направления стиля и примерно с десятой пробы обложки — это нормальная цена.

Слайд 101
Слайд 202
Слайд 303
Слайд 404
Слайд 505
Слайд 606
Слайд 707
Слайд 808

02Режимы F1 и F2

F1 — черновикF2 — финал
Что этолокальная вёрстка HTML-движкомслайд рисует нейросеть
Зачемсогласовать структуру и тексты, проверить, что всё влезаетфинальное качество для публикации
Скорость и ценасекунды, бесплатноминуты на слайд, лимит картинок тарифа ChatGPT
Движокskills/carousel/studioscripts/f2-from-ref.mjs

Какой путь в F2 выбрать:

  • По референсу — есть найденная виралка: берём её дизайн-язык (сетка, шрифт, цвет, декор), но не копируем человека, раскладку и тексты автора. Пиксель-клон выглядит ворованным.
  • Свой дизайн-код словами — для слайдов с плотным текстом, без референс-картинки.
  • Из вашего текста без рефа — агент предлагает три варианта дизайна и ждёт выбора.

03Процесс по шагам

  1. 1

    Запрос

    делаете вы

    Минимум — тема. Можно добавить референс, продукт, призыв, стиль. Чего нет, агент предложит сам.

  2. 2

    Кодовое слово

    вместе

    Агент проверяет пересечения со всеми занятыми, вы утверждаете.

  3. 3

    Референс и разбор

    делает агент

    Скачивает загрузчиком, разбирает дизайн-код: фон, палитра, шрифт, раскладка, пропорции, декор.

  4. 4

    Структура 8 слайдов

    делает агент

    Обложка → 4–6 смысловых → призыв. Одна мысль на слайд. Можно сразу собрать черновик F1, чтобы увидеть тексты на макете.

  5. 5

    Макет

    делаете вы

    Обложка и один текстовый слайд (без рефа — три контрольных). Вы одобряете или просите поправить.

  6. 6

    Якорь серии

    делает агент

    Остальные слайды генерируются с уже принятым слайдом в роли образца: «повтори его стиль точно, не копируй текст». Так по всей серии держатся шрифт, размер заголовка и навигация.

  7. 7

    Партия и проверка

    делает агент

    Слайды 3–8, проверка каждого и серии целиком. Брак — в rejected-* и перегенерация одного слайда.

  8. 8

    Подпись и приёмка

    вместе

    Подпись через humaniser, запись в реестр, отправка в телеграм. Вы принимаете.

›_
Вы пишете агенту
Сделай карусель по этой виралке: <ссылка>. Кодовое слово придумай сам, сначала покажи обложку и один слайд.
›_
Вы пишете агенту
Перегенери слайд 4, заголовок слишком мелкий.

04Макет до партии: зачем

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

Забракованный слайдбрак v1
слово теряется среди текста
Принятый слайдпринято v2
слово — главный объект слайда

05Спеки

Агент описывает карусель в файле-спеке, а движок по нему рисует. Вам их писать не нужно, но полезно понимать, что внутри.

f2-spec.json
{
  "schemaVersion": 2,
  "slug": "<slug>-ref-v2",
  "outDir": "workspace/carousel/<slug>/output-ref-v2",
  "refDir": "workspace/carousel/<slug>/output-ref",
  "brand": "<Бренд>",
  "promptMode": "raw",
  "freshChat": true,
  "designNote": "Стиль серии: светлый тёплый бумажный фон с лёгким лавандовым оттенком и мелкой фактурой бумаги. Огромный чёрный жирный узкий гротеск заглавными буквами. Ровно одно ключевое слово на слайде стоит на фиолетовой плашке-маркере, буквы не касаются краёв плашки. Подзаголовок обычным шрифтом, крупно, чтобы читался с телефона. Вверху слева маленькая подпись бренда. Внизу слева номер слайда в тонкой чёрной рамке, справа чёрная плашка с белым текстом «ЛИСТАЙ →». Никаких иконок, карточек, схем, стрелок и декора. Поля со всех сторон не меньше 80 пикселей. Весь текст по-русски без единой ошибки. Формат вертикальный 4:5, 1080 на 1350.",
  "identityReferences": [
    "workspace/assets/photos/author/ref-1.png",
    "workspace/assets/photos/author/ref-2.png",
    "workspace/assets/photos/author/ref-3.png"
  ],
  "slides": [
    { "number": 1, "name": "cover",        "face": true, "ref": "<КОД2>/01.jpg", "prompt": "…" },
    { "number": 2, "name": "more-content",               "ref": "<КОД1>/02.jpg", "prompt": "…" },
    { "number": 3, "name": "point-1",                    "ref": "slide-02-more-content.png", "prompt": "…" },
    { "number": 5, "name": "point-3",      "face": true, "ref": "slide-01-cover.png", "prompt": "…" },
    { "number": 8, "name": "cta",          "face": true, "ref": "slide-01-cover.png", "prompt": "…" }
  ]
}
Слайды 3–8 ссылаются на уже принятые 01 и 02 — это и есть якорь серии.
команды движков
node scripts/cdp-status.mjs                                     # браузер с ChatGPT жив и залогинен?
node scripts/f2-from-ref.mjs workspace/carousel/<slug>/f2-spec.json
node scripts/f2-from-ref.mjs <spec.json> --only 1,2             # макет: обложка и один слайд
node scripts/f2-from-ref.mjs <spec.json> --only 3,4,5,6,7,8     # партия после «ок»
node scripts/f2-from-ref.mjs <spec.json> --redo 4               # перегенерировать один слайд

# если порт 9222 занят другой сессией
node scripts/cdp/chatgpt-browser-up.mjs --port 9333 --profile auth/chrome-gpt-9333
CDP_URL=http://127.0.0.1:9333 node scripts/f2-from-ref.mjs <spec.json>
черновик F1
node skills/carousel/studio/gen.js workspace/carousel/<slug>/spec.json --out workspace/carousel/<slug>/slides
node skills/carousel/studio/render.js workspace/carousel/<slug>/slides --out workspace/carousel/<slug>/preview
node skills/carousel/studio/render.js <slides-dir> --out <preview-dir> --only 1,2          # выборочно
node skills/carousel/studio/render.js <slides-dir> --out <preview-dir> --video-out <dir>    # ещё и MP4 на слайд

06Промпты слайдов

Принятая серия сделана короткими русскими промптами (режим raw): на тарифах попроще длинная английская обвязка возвращала пустой ответ. Вот обезличенные шаблоны.

по референсу
Нарисуй слайд карусели без людей, только текст.
Первая картинка — образец стиля: так же огромный узкий заголовок по центру и слово на цветной плашке. Не копируй с неё текст и красный цвет, плашка у нас фиолетовая.
Заголовок в четыре строки: «БОЛЬШЕ / КОНТЕНТА ≠ / БОЛЬШЕ / ПРОДАЖ», слово «ПРОДАЖ» на фиолетовой плашке.
Под тонкой золотой линией текст: «<одно-два предложения>».
Внизу «02 / 08» и «ЛИСТАЙ →».

Английская обвязка движка

добавляется к каждому слайду в обычном режиме
Create an image now with the image generation tool. Do not answer with text, return only the generated image.
You are generating ONE Instagram carousel slide, 1080x1350 px, 4:5 vertical, full bleed, no borders, no margins.
The FIRST attached image is a REFERENCE for DESIGN LANGUAGE ONLY — copy its background treatment, colour palette, typographic character, layout logic, decorative details, mood and proportions so our slide reads as part of the same premium series. It is NOT a pixel clone and its content is NOT our content.
DESIGN CODE OF THE SERIES: <designNote>
Render ALL text in clean, correctly spelled Russian Cyrillic — no gibberish, no invented words, no doubled letters. Product and brand names (Claude, Claude Code, GitHub, MCP, ...) stay in Latin exactly as written.
Replace any handle or watermark from the reference with "<бренд>".

WHAT THIS SLIDE SHOWS:
<prompt слайда>

Render it as ONE finished 1080x1350 slide. Every Russian word must be spelled correctly.
защита лица персонажа (face: true)
CRITICAL — CHARACTER IDENTITY: the LAST 3 attached images are approved identity references for the protagonist, covering face, pose and body. Preserve the same recognizable face, skin tone, hair, eyes, age impression and signature character details.
Redraw the character as part of the new scene. Do not paste or composite the source photo. Adapt the pose, expression, clothing treatment and rendering style to this slide's meaning and art direction while preserving identity.
If the design reference shows another person or character, that subject is a LAYOUT REFERENCE ONLY and MUST NOT appear. Do not copy their face, hair, body or clothing. Do not substitute a generic person.
Без неё модель рисует человека с референса вместо вашего героя.
без референса
You are generating ONE premium Instagram carousel slide, EXACTLY 1080x1350 px, 4:5 vertical, full bleed, no borders.
DESIGN CODE (identical across the whole series):
- Background: WARM near-black with a brown undertone (deep espresso, NOT grey, NOT blue-black), flat and clean.
- Accent: coral terracotta, used ONLY for the small eyebrow line and the final button. Never for body text.
- Text: warm white for headlines, muted warm grey for body copy.
- Typeface: clean geometric sans. The headline is the hero — set it HUGE.
- Slide anatomy top to bottom: (1) tiny utility row — brand small caps left, slide counter right; (2) one short coral eyebrow line; (3) the GIANT headline; (4) a 3-4 line paragraph with a couple of words in bold; (5) generous empty space at the bottom — do NOT fill it.
- Mood: calm, warm, expensive, editorial. Lots of air.
Render ALL text in clean CORRECT Russian Cyrillic — no gibberish, no invented words, no English words except real product names which stay in Latin as-is. Keep text SHORT and perfectly legible. Never render hex codes, file names or measurements as visible text.

07Шкала кеглей и сетка

ЭлементРазмер на холсте 1080×1350
главный заголовок88–120 px
одно ключевое слово110–145 px
подзаголовок44–60 px
основной текст36–46 px
счётчик слайдов28–34 px
«ЛИСТАЙ» / высота плашки40–52 px / 88–112 px
внешние поля64–96 px
нижняя безопасная зона90–120 px

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

08Проверка качества

Принцип: при сомнении — не пропускать. Каждый слайд смотрят дважды: полный кадр и миниатюра 360–390 px, как в ленте.

  • каждое русское слово без ошибок, нет «псевдотекста», нет лишних слов;
  • нет чужого хэндла или водяного знака;
  • лицо персонажа совпадает с референсами, одежда из утверждённых фото;
  • кодовое слово на призыве доминирует и ничем не перекрыто;
  • поля и отступы в плашках, буквы не касаются краёв;
  • навигация одинаковая на всех слайдах.
series-qc.json — протокол проверки серии
{
  "date": "ГГГГ-ММ-ДД",
  "approvedBy": "владелец",
  "status": "READY_FOR_OWNER_ACCEPTANCE",
  "slides": {
    "01": "PASS: текст, канон персонажа, навигация",
    "02": "PASS",
    "05": "PASS (v2): руки и лицо без дефектов",
    "08": "PASS (v2): кодовое слово доминирует, персонаж не касается плашки"
  },
  "series": {
    "navigation": "PASS: единые плашки на всех 8",
    "mobile390": "PASS",
    "wardrobe": "PASS",
    "publication": false
  },
  "rejected": ["output-ref/rejected-slide-08-cta-v1.png (слово не доминировало)"]
}

09Бесшовная панорама

Если нужна карусель, где слайды складываются в одну картину и слово рвётся на стыке, рисуется одна широкая картинаи режется по вертикали ровно по 1080 px. Отдельными кадрами шов не сойдётся никогда: две генерации разойдутся по кеглю и оттенку фона. Ключевые слова не ставят на линию разреза.

10Где лежит результат

workspace/carousel/<slug>/
workspace/carousel/<slug>/
├── BRIEF_RU.md            # бриф: тезис, заголовок, 8 слайдов, кодовое слово
├── STYLE_DECISION_RU.md   # решение по стилю
├── spec.json              # F1-спека (черновик)
├── slides/                # F1: slide-01.html … + manifest.json
├── preview/               # F1: PNG
├── f2-spec.json           # F2-спека (финал)
└── format2/ или output*/  # F2: slide-NN-<name>.png

Для клиента — client-kit/<клиент>/content/carousels/<slug>/, вне git, уезжает только в приватный бэкап.