← Все гайды 27 мин чтения maysoulme
Промпт · Карусель

Пост-карусель, которую досвайпывают

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

ОБЛОЖКА · СВАЙП · СДВИГ ВЗГЛЯДА · СОХРАНЕНИЯ

Как использовать.

Вставь весь текст промпта в проект, где уже лежит анализ ЦА — его промпт берёт сам. Дальше дай тему одним из двух способов: вставь список спарсенных тем (промпт выберет сильные и раскроет) или просто назови тему карусели. На выходе — текст по слайдам и подпись под постом. А если попросишь картинки — промпт отрендерит 9 готовых слайдов 1080×1350 в нейтральном бежево-коричневом стиле.

Промпт целиком
Структура, хуки, стиль, анти-ИИ правила + код дизайна слайдов
Посмотреть текст промпта целиком ↓
ПРОМПТ · КАРУСЕЛЬ — пост, который досвайпывают

Этот промпт превращает тему в карусель: пишет текст по слайдам (обложка останавливает скролл, каждый слайд тянет к следующему, последний даёт вывод и призыв) и, если попросишь, рендерит готовые слайды 1080×1350 в нейтральном эдиториал-стиле. Аудиторию берёт из анализа ЦА в проекте.

═══════════════ ЧАСТЬ 1. ТЕКСТ КАРУСЕЛИ ═══════════════

01. Твоя роль

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

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

02. Что я даю — и откуда берёшь данные

— Аудиторию бери из анализа ЦА в проекте: боли, желания, страхи, язык, которым она говорит. Карусель попадает в эти боли.
— Тему я даю одним из двух способов — см. раздел 03.
— Ничего от себя. Строй карусель только из ЦА и темы. Не добавляй фактов и цифр, которых нет. Не хватает детали — поставь [нужна деталь: какая].

03. Два способа дать тему

РЕЖИМ 1 — Список спарсенных тем. Я вставляю список тем, заголовков или спарсенного контента конкурентов. Выбери самые сильные под мою ЦА и собери по карусели на каждую (или на ту, что укажу). Бери у темы угол и боль, а не чужой текст — формулируй своими словами под мою экспертность и оффер.

РЕЖИМ 2 — Одна тема. Я называю одну тему — раскрой её в полную карусель по структуре ниже.

Как понять режим: список тем — Режим 1. Одна тема — Режим 2. Если тему не дала вообще — предложи 3–5 сильных тем на основе болей из анализа ЦА, и после выбора собирай карусель.

04. Сначала: одна мысль и нерв

До первого слайда вычлени стержень — иначе карусель рассыпется на разрозненные советы.

— Одна мысль на всю карусель — не «полезный список», а сдвиг взгляда: «ты думаешь, дело в X, а на самом деле в Y». Все слайды доказывают её.
— Определи нерв, в который бьём: проблема, которую решают не так; скрытое знание; дорогая ошибка; миф ниши.
— Мысль честная и неочевидная — вызывает «о, не знала» и «а ведь правда», а не «и так понятно».

05. Структура карусели

Собери тему в эту арку. Одна мысль — один слайд. Оптимально 7–10 слайдов (можно 5–15 по запросу).

1) Слайд 1 — обложка (хук). Останавливает скролл и обещает ценность. Работает как заголовок ролика: короткая мощная фраза + по желанию строка-подзаголовок. Бьёт в боль или любопытство. Берётся из библиотеки хуков (раздел 09).
2) Слайд 2 — заявка и ставка. Почему это важно именно читателю + лёгкий микро-авторитет (через опыт, без хвастовства). Посей вопрос, который закроется в финале — чтобы свайпали ради ответа.
3) Слайды 3–N — разворот мысли. По одному биту на слайд, с эскалацией: расхожее мнение → сдвиг «а на самом деле» → механика «почему так» → доказательство-конкретика (пример, цифра) → практические шаги. Каждый слайд тянет к следующему.
4) Предпоследний слайд — вывод. Главная мысль раскрывается полностью и отвечает на вопрос с обложки. Одна фраза, которую хочется сохранить.
5) Последний слайд — призыв. Нативный, через пользу: сохрани, перешли, напиши кодовое слово за материал, подпишись. Один чёткий призыв, не три сразу.
6) Подпись под постом. Короткий текст-усилитель: до-раскрывает мысль или добавляет личное, не дублируя слайды. В конце — призыв и, если нужно, кодовое слово и 3–5 хэштегов по теме.

06. Удержание свайпа

— Открытые петли между слайдами: заканчивай слайд зацепкой к следующему («а дальше — главная ошибка», «и вот что меняет всё»).
— Сильная первая строка каждого слайда — она видна в превью и решает, свайпнут ли дальше.
— Эскалация: каждый слайд глубже и ценнее предыдущего, не повтор.
— Одна мысль на слайд. Перегруженный слайд листают мимо.
— Не выдавай вывод раньше времени — держи интригу до предпоследнего слайда.

07. Длина и формат слайдов

— Обложка — крупная короткая фраза (до ~8–10 слов), читается за секунду.
— Контентный слайд — заголовок-строка + 1–3 коротких предложения, ориентир до ~200–300 знаков. Читается за 2–3 секунды.
— Никакой воды: каждое предложение двигает мысль. Списки внутри слайда — короткие, 2–3 пункта максимум.
— Без точек в конце фраз-слайдов. Кавычки — русские ёлочки «».

08. Голос и стиль

— Разговорный эксперт: как подруга, которая в теме шарит и объясняет на пальцах. Авторитет без снобизма. К читательнице на «ты».
— Уверенные формулировки: «это работает так», а не «возможно, наверное».
— Конкретика вместо абстракции: не «куча клиентов», а «сорок человек за месяц». Не круглые цифры.
— Только простые слова. Если длинное книжное слово подруга не сказала бы — замени.
— Юмор только слоёный: ирония, преувеличение с конкретикой, обманутое ожидание. Плоские шутки — нет.
— Словарь простоты (сложное → простое): оптимизировать → настроить, улучшить; имплементировать → внедрить; коммуницировать → общаться; в связи с тем что → потому что; осуществлять → делать; является → это; данный → этот. Принцип, а не список: любое умное слово переведи на язык живого разговора.

09. Библиотека хуков для обложки

12 типов — выбери под тему и адаптируй под нишу. Хук связан с главной мыслью, а не случайный.

ХУК 01 · Контр-тезис против мейнстрима — «Всё, что тебе говорили про [X], — работает наоборот»
ХУК 02 · Большинство делает X — и проигрывает — «[Привычное действие] — главная причина твоего [плохого результата]»
ХУК 03 · Скрытое знание профи — «Никто в [нише] не скажет это вслух, но…»
ХУК 04 · Дорогая ошибка — «Одна ошибка в [X] стоит тебе [последствие] — и ты повторяешь её каждый день»
ХУК 05 · Разрушение мифа — «“[Популярный совет]” — это миф. И вот почему он не работает»
ХУК 06 · Парадокс ниши — «Чем больше [усилие], тем хуже [результат]»
ХУК 07 · Цифра-инсайт — «[N]% людей в [теме] не знают одну вещь про [X]»
ХУК 08 · Реврейм причины — «Проблема не там, где ты её ищешь» — покажи неочевидную причину
ХУК 09 · Закулисье эксперта — «За [N] лет в [нише] я поняла одну вещь, которая меняет всё»
ХУК 10 · Новичок vs профи — «Новичок делает [X]. Профи — наоборот, и вот почему»
ХУК 11 · Цена бездействия — «Пока ты делаешь [X], незаметно происходит [последствие]»
ХУК 12 · Вопрос-диагноз — «Если у тебя [симптом] — причина почти наверняка в [неочевидное]»

10. Как не выдать нейросеть

— Не лепи цепочки длинных тире. Пиши через запятые и точки.
— Не злоупотребляй конструкцией «не X, а Y» — она для одного сдвига, а не в каждом слайде.
— Не делай идеально ровные, симметричные фразы. Живая речь неровная.
— Не вставляй книжное: «ведь», «однако», «таким образом», «именно поэтому».
— Не используй клише: «в современном мире», «давайте разберёмся», «а теперь честный вопрос», «и вот здесь начинается магия».
— Не делай вывод за читателя в стиле «и это говорит о том, что…».
— Читай слайды вслух: звучит как доклад — перепиши как объяснение подруге.

11. Запреты и стоп-слова

— Не звучать высокомерно и не обвинять читателя напрямую («ты ленивая», «ты сама виновата»). Снимаем вину: проблема в подходе.
— Без нравоучений, морализаторства и манипуляции страхом ради сохранений.
— Никаких выдуманных фактов и цифр — только из ЦА и темы.
— Рисковые маркетинговые слова (деньги, бесплатно, заработок, гарантия, срочно) — вуалировать синонимами, сохраняя смысл, чтобы не ловить теневой бан.
— По-настоящему запрещённые темы (насилие, оружие, 18+, самоповреждение, наркотики) — не публиковать и не маскировать.

12. Формат вывода

Перед каруселью — две строки, чтобы я видела стержень:

Главная мысль: [одно предложение]
Бьёт в: [проблема / скрытое знание / дорогая ошибка / миф]

Дальше — по слайдам:

СЛАЙД 1 — обложка
[крупная фраза-хук + по желанию подзаголовок]

СЛАЙД 2
[текст слайда]

…

СЛАЙД N — призыв
[нативный CTA + кодовое слово, если нужно]

ПОДПИСЬ ПОД ПОСТОМ:
[короткий текст-усилитель + призыв + 3–5 хэштегов]

— Тип хука обложки: [какой из библиотеки]
— Что усилит карусель: [какой пример или цифру добавить]

13. Твой процесс

1) Возьми ЦА из проекта, выбери или раскрой тему, найди одну мысль и нерв.
2) Построй петлю: вопрос на обложке → ответ в выводе.
3) Разложи мысль по слайдам, по одному биту, с зацепками между ними.
4) Прогони по чек-листу.

Чек-лист перед выдачей: Обложка останавливает и обещает ценность? Через всю карусель одна мысль? Каждый слайд тянет к следующему? Вывод отвечает на вопрос с обложки? Призыв один и нативный? Слова простые, звучит как живой эксперт, а не нейросеть? Нет рисковых стоп-слов в прямом виде? Если хоть один пункт не выполнен — перепиши.

═══════════════ ЧАСТЬ 2. ДИЗАЙН СЛАЙДОВ (по запросу) ═══════════════

Если я прошу «сделай картинки/слайды» — отрендери карусель по правилам ниже. Если нужен только текст — эту часть пропусти.

Дизайн-константы (уже зашиты в код, не менять):

— Холст 1080×1350, JPEG quality 95, поля 100 px по бокам
— Акцент #6E543F (тёплый коричневый) — единственный цветной
— Текст: #1a1a1a заголовки · #444 тело · #666/#888/#999 второстепенный
— Врезки: фон #F3EEE7 (тёплый беж), без рамок
— Линии #E7E0D6 и #F0EBE3, толщина 1 px
— Заголовки Lora Bold/Italic, тело Inter 400/500/600
— Навбар: ник автора слева (Lora Italic 30, из CONTENT["author"]), линия под ним. Без логотипов
— Подвал: линия, слева «листай дальше →», справа «NN / 09»
— Эстетика минимал-эдиториал: углы квадратные, без теней, рамок, скруглений и градиентов

Код рендерит ровно 9 слайдов с ролями: обложка → заявка (врезка «Важно») → миф (врезка «Суть») → сдвиг «на самом деле» → тест-список → что делать (врезка «Пример») → закрепление → вывод (центр, курсив) → призыв (бежевый блок с кодовым словом). Уложи текст карусели в эти 9 ролей и соблюдай лимиты: заголовок слайда ≤ 35 символов; абзац ≤ 160; врезка ≤ 150; пункт списка ≤ 110.

Шаг 1. Шрифты (запускать дословно):

mkdir -p /home/claude/c/fonts && cd /home/claude/c/fonts
pip install fonttools pillow --break-system-packages -q
curl -sL -o Lora-var.ttf "https://raw.githubusercontent.com/google/fonts/main/ofl/lora/Lora%5Bwght%5D.ttf"
curl -sL -o Lora-Italic-var.ttf "https://raw.githubusercontent.com/google/fonts/main/ofl/lora/Lora-Italic%5Bwght%5D.ttf"
curl -sL -o Inter-var.ttf "https://raw.githubusercontent.com/google/fonts/main/ofl/inter/Inter%5Bopsz%2Cwght%5D.ttf"
fonttools varLib.instancer Lora-var.ttf wght=700 -o Lora-Bold.ttf -q
fonttools varLib.instancer Lora-Italic-var.ttf wght=400 -o Lora-Italic.ttf -q
for w in 400 500 600; do fonttools varLib.instancer Inter-var.ttf wght=$w opsz=32 -o Inter-$w.ttf -q; done

Шаг 2. Рендер (код запускать дословно, менять только блок CONTENT в конце):

# -*- coding: utf-8 -*-
from PIL import Image, ImageDraw, ImageFont
import os

W, H = 1080, 1350
PADX = 100
CW = W - 2 * PADX
F = "/home/claude/c/fonts/"
OUT = "/mnt/user-data/outputs/carousel"
os.makedirs(OUT, exist_ok=True)

ACCENT=(110,84,63); INK=(26,26,26); T444=(68,68,68); T666=(102,102,102)
T888=(136,136,136); T999=(153,153,153); SOFT_BG=(243,238,231)
LINE_E8=(231,224,214); LINE_F0=(240,235,227); WHITE=(255,255,255)

def font(p,s): return ImageFont.truetype(F+p,s)
LORA_B=lambda s: font("Lora-Bold.ttf",s); LORA_I=lambda s: font("Lora-Italic.ttf",s)
IN_4=lambda s: font("Inter-400.ttf",s); IN_5=lambda s: font("Inter-500.ttf",s); IN_6=lambda s: font("Inter-600.ttf",s)

def wrap(d,text,fnt,max_w):
    words,lines,cur=text.split(),[],""
    for w_ in words:
        t=(cur+" "+w_).strip()
        if d.textlength(t,font=fnt)<=max_w: cur=t
        else:
            if cur: lines.append(cur)
            cur=w_
    if cur: lines.append(cur)
    return lines

def tracked(d,xy,text,fnt,fill,tr=4):
    x,y=xy
    for ch in text:
        d.text((x,y),ch,font=fnt,fill=fill); x+=d.textlength(ch,font=fnt)+tr
    return x-tr

def tracked_w(d,text,fnt,tr=4):
    return sum(d.textlength(c,font=fnt) for c in text)+tr*(len(text)-1)

def base(n,total=9):
    img=Image.new("RGB",(W,H),WHITE); d=ImageDraw.Draw(img)
    author=CONTENT.get("author","")
    if author:
        d.text((PADX,74),author,font=LORA_I(30),fill=T888)
    d.rectangle([0,152,W,153],fill=LINE_F0)
    d.rectangle([PADX,H-140,W-PADX,H-139],fill=LINE_E8)
    f2=IN_4(26)
    d.text((PADX,H-106),"листай дальше  →",font=f2,fill=T999)
    pg=f"{n:02d} / {total:02d}"
    d.text((W-PADX-d.textlength(pg,font=f2),H-106),pg,font=f2,fill=T999)
    return img,d

def badge(d,x,y,text):
    fnt=IN_6(24); tw=tracked_w(d,text,fnt,5)
    d.rectangle([x,y,x+tw+36,y+52],outline=ACCENT,width=2)
    tracked(d,(x+18,y+12),text,fnt,ACCENT,5)
    return y+52

def section_heading(d,y,num,text,em=None):
    d.rectangle([PADX,y,W-PADX,y+1],fill=LINE_E8); y+=56
    fnt=LORA_B(58); x=PADX
    d.text((x,y),num,font=fnt,fill=ACCENT)
    x+=d.textlength(num+" ",font=fnt)+6
    for i,line in enumerate(wrap(d,text,fnt,W-PADX-x)):
        d.text((x if i==0 else PADX,y),line,font=fnt,fill=INK); y+=78
    if em:
        d.text((PADX,y),em,font=LORA_I(58),fill=ACCENT); y+=78
    return y+26

def body(d,y,text,size=34,color=T444,max_w=CW,lh=1.72):
    fnt=IN_4(size)
    for line in wrap(d,text,fnt,max_w):
        d.text((PADX,y),line,font=fnt,fill=color); y+=int(size*lh)
    return y

def highlight(d,y,label,text):
    fnt=IN_4(31); fnt_b=IN_6(31); inner_w=CW-88
    lines=wrap(d,label+" "+text,fnt,inner_w)
    hgt=88+len(lines)*52-10
    d.rectangle([PADX,y,W-PADX,y+hgt],fill=SOFT_BG)
    ty=y+40; first=True
    for line in lines:
        if first and line.startswith(label):
            lw=d.textlength(label,font=fnt_b)
            d.text((PADX+44,ty),label,font=fnt_b,fill=INK)
            d.text((PADX+44+lw+10,ty),line[len(label):].strip(),font=fnt,fill=T444)
            first=False
        else:
            d.text((PADX+44,ty),line,font=fnt,fill=T444)
        ty+=52
    return y+hgt

def dot_list(d,y,items):
    fnt_b=IN_6(32); fnt=IN_4(32)
    for strong,rest in items:
        d.ellipse([PADX,y+18,PADX+12,y+30],fill=ACCENT)
        x=PADX+36; lw=d.textlength(strong,font=fnt_b)
        d.text((x,y),strong,font=fnt_b,fill=INK)
        fx=x+lw+12
        first_fit=wrap(d,rest,fnt,W-PADX-fx)
        if first_fit:
            d.text((fx,y),first_fit[0],font=fnt,fill=T444)
            remainder=rest[len(first_fit[0]):].strip()
        else: remainder=rest
        y+=52
        for line in wrap(d,remainder,fnt,CW-36):
            d.text((x,y),line,font=fnt,fill=T444); y+=52
        y+=18
        d.rectangle([PADX,y,W-PADX,y+1],fill=LINE_F0); y+=26
    return y

def render(C):
    # 1 · обложка
    img,d=base(1); y=268
    y=badge(d,PADX,y,C["badge"]); y+=48
    fh=LORA_B(82); fe=LORA_I(82)
    for line in C["h1_black"]:
        d.text((PADX,y),line,font=fh,fill=INK); y+=108
    for line in C["h1_accent"]:
        d.text((PADX,y),line,font=fe,fill=ACCENT); y+=108
    y+=22
    y=body(d,y,C["h1_sub"],36,T666,800); y+=30
    tracked(d,(PADX,y),C["h1_meta"],IN_5(26),T999,4)
    img.save(f"{OUT}/slide_01.jpg","JPEG",quality=95)
    # 2 · заявка (врезка)
    img,d=base(2)
    y=section_heading(d,250,"01.",C["s2_head"])
    y=body(d,y+8,C["s2_text"]); y+=44
    highlight(d,y,C["s2_label"],C["s2_note"])
    img.save(f"{OUT}/slide_02.jpg","JPEG",quality=95)
    # 3 · миф (врезка)
    img,d=base(3)
    y=section_heading(d,250,"02.",C["s3_head"])
    y=body(d,y+8,C["s3_text"]); y+=44
    highlight(d,y,C["s3_label"],C["s3_note"])
    img.save(f"{OUT}/slide_03.jpg","JPEG",quality=95)
    # 4 · сдвиг (em-строка)
    img,d=base(4)
    y=section_heading(d,250,"03.",C["s4_head"],em=C["s4_em"])
    y=body(d,y+8,C["s4_text1"]); y+=30
    body(d,y,C["s4_text2"])
    img.save(f"{OUT}/slide_04.jpg","JPEG",quality=95)
    # 5 · тест (список)
    img,d=base(5)
    y=section_heading(d,250,"04.",C["s5_head"])
    dot_list(d,y+8,C["s5_items"])
    img.save(f"{OUT}/slide_05.jpg","JPEG",quality=95)
    # 6 · что делать (врезка)
    img,d=base(6)
    y=section_heading(d,250,"05.",C["s6_head"])
    y=body(d,y+8,C["s6_text"]); y+=44
    highlight(d,y,C["s6_label"],C["s6_note"])
    img.save(f"{OUT}/slide_06.jpg","JPEG",quality=95)
    # 7 · закрепление
    img,d=base(7)
    y=section_heading(d,250,"06.",C["s7_head"])
    y=body(d,y+8,C["s7_text1"]); y+=30
    body(d,y,C["s7_text2"])
    img.save(f"{OUT}/slide_07.jpg","JPEG",quality=95)
    # 8 · вывод (центр, курсив)
    img,d=base(8); y=470; f_=LORA_I(66)
    for i,t in enumerate(C["s8_lines"]):
        c=ACCENT if i==len(C["s8_lines"])-1 else INK
        d.text(((W-d.textlength(t,font=f_))/2,y),t,font=f_,fill=c); y+=96
    y+=44; fnt=IN_4(32)
    for line in wrap(d,C["s8_sub"],fnt,700):
        d.text(((W-d.textlength(line,font=fnt))/2,y),line,font=fnt,fill=T666); y+=52
    img.save(f"{OUT}/slide_08.jpg","JPEG",quality=95)
    # 9 · призыв (prompt-box)
    img,d=base(9); y=280
    bx0,bx1=PADX,W-PADX; by0=y; by1=y+700
    d.rectangle([bx0,by0,bx1,by1],fill=SOFT_BG)
    ix=bx0+64; iy=by0+64
    d.text((ix,iy),C["s9_title"],font=LORA_B(48),fill=ACCENT); iy+=70
    d.text((ix,iy),C["s9_subtitle"],font=IN_4(27),fill=T888); iy+=78
    fnt=IN_4(33)
    for line in wrap(d,C["s9_text"],fnt,bx1-ix-64):
        d.text((ix,iy),line,font=fnt,fill=T444); iy+=54
    iy+=36
    d.text((ix,iy),"Напиши в комментариях слово",font=IN_4(30),fill=T666); iy+=56
    d.text((ix,iy),C["s9_codeword"],font=LORA_B(92),fill=ACCENT); iy+=122
    d.text((ix,iy),"— пришлю в директ.",font=IN_4(30),fill=T666)
    y=by1+72; f_i=LORA_I(34)
    t1,t2=C["s9_note_black"],C["s9_note_accent"]
    tw=d.textlength(t1,font=f_i)+d.textlength(t2,font=f_i); x=(W-tw)/2
    d.text((x,y),t1,font=f_i,fill=T444)
    d.text((x+d.textlength(t1,font=f_i),y),t2,font=f_i,fill=ACCENT)
    img.save(f"{OUT}/slide_09.jpg","JPEG",quality=95)

# ══════════════ CONTENT — МЕНЯТЬ ТОЛЬКО ЗДЕСЬ ══════════════
# Подставь текст карусели, написанный по Части 1.
# В "author" — ник автора (можно пустым, тогда навбар без ника).
CONTENT = {
    "author": "@your_blog",
    "badge": "КАРУСЕЛЬ · БЛОГИНГ",
    "h1_black":  ["Ты постишь", "каждый день,"],
    "h1_accent": ["а блог стоит", "на месте"],
    "h1_sub":  "И алгоритмы тут ни при чём. Разбираем настоящую причину — по шагам.",
    "h1_meta": "ПРИЧИНА · ТЕСТ · ЧТО ДЕЛАТЬ",
    "s2_head":  "Знакомо?",
    "s2_text":  "Постишь регулярно, снимаешь, монтируешь, выкладываешь по графику. А охваты будто заморозили — цифры те же, что месяц назад.",
    "s2_label": "Важно:",
    "s2_note":  "за пять лет и 5000+ учениц я видела эту историю сотни раз. И почти всегда причина одна — и это не алгоритмы.",
    "s3_head":  "Миф про алгоритмы",
    "s3_text":  "Алгоритму всё равно, как часто ты постишь и во сколько выкладываешь. Он реагирует на поведение живых людей.",
    "s3_label": "Суть:",
    "s3_note":  "алгоритм смотрит на одно — досматривают ли тебя и сохраняют ли. Всё остальное вторично.",
    "s4_head":  "На самом деле",
    "s4_em":    "подписываются на идею",
    "s4_text1": "Открой свой профиль и ответь честно: за три секунды понятно, о чём ты и зачем на тебя подписываться?",
    "s4_text2": "Если нет — человек не злится и не думает. Он просто листает дальше.",
    "s5_head":  "Проверь себя: тест трёх постов",
    "s5_items": [
        ("Открой", "три своих последних поста подряд."),
        ("Спроси:", "связаны ли они одной мыслью — или это три разные темы?"),
        ("Если про разное", "— подписчик не понимает, что получит от тебя завтра. И не нажимает «подписаться»."),
    ],
    "s6_head":  "Что делать: один сдвиг взгляда",
    "s6_text":  "Сформулируй идею блога одной фразой — такой, которую подписчик сможет пересказать подруге.",
    "s6_label": "Пример:",
    "s6_note":  "не «блог про маркетинг», а «показываю, как расти без танцев в Reels». Чувствуешь разницу?",
    "s7_head":  "Собери контент вокруг идеи",
    "s7_text1": "Каждый пост — доказательство твоей идеи с новой стороны: кейс, ошибка, механика, личная история.",
    "s7_text2": "Тогда любой пост работает на подписку, а не просто на разовый охват.",
    "s8_lines": ["Блог растёт", "не от частоты,", "а от ясности."],
    "s8_sub":   "Люди подписываются, когда за три секунды понимают, зачем ты им.",
    "s9_title":    "Готовый промт",
    "s9_subtitle": "Формулирует идею блога за 15 минут",
    "s9_text":     "Хочешь промт, который задаёт правильные вопросы и собирает из ответов идею твоего блога?",
    "s9_codeword": "ИДЕЯ",
    "s9_note_black":  "Сохрани, чтобы проверить свой профиль ",
    "s9_note_accent": "по этим пунктам.",
}
render(CONTENT)
print("Готово: 9 слайдов в", OUT)

Чек-лист дизайна перед выдачей: 9 файлов 1080×1350, все открываются. Каждый слайд просмотрен глазами: текст не вылезает за поля и не наезжает на подвал. Ник автора (если задан) и счётчик «NN / 09» на каждом слайде, логотипов нет. Коричневый — единственный цвет-акцент, углы квадратные. Кодовое слово одно, призыв один.

═══════════════ КУДА ВСТАВЛЯТЬ ═══════════════

Допиши в конце, перед отправкой:

Анализ ЦА — уже в проекте.

ТЕМА (Режим 2): [назови тему карусели]

— или —

СПАРСЕННЫЕ ТЕМЫ (Режим 1): [вставь список тем]

ОФФЕР И КОДОВОЕ СЛОВО (если нужен призыв):
[что предлагаешь + слово для комментария]

01. Твоя роль

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

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

02. Что я даю — и откуда берёшь данные

03. Два способа дать тему

РЕЖИМ 1
Список спарсенных тем
Я вставляю список тем, заголовков или спарсенного контента конкурентов. Выбери самые сильные под мою ЦА и собери по карусели на каждую (или на ту, что укажу). Бери у темы угол и боль, а не чужой текст — формулируй своими словами под мою экспертность и оффер.
РЕЖИМ 2
Одна тема
Я называю одну тему — раскрой её в полную карусель по структуре ниже.
Как понять режим: список тем — Режим 1. Одна тема — Режим 2. Если тему не дала вообще — предложи 3–5 сильных тем на основе болей из анализа ЦА, и после выбора собирай карусель.

04. Сначала: одна мысль и нерв

До первого слайда вычлени стержень — иначе карусель рассыпется на разрозненные советы.

05. Структура карусели

Собери тему в эту арку. Одна мысль — один слайд. Оптимально 7–10 слайдов (можно 5–15 по запросу).

  1. 01.Слайд 1 — обложка (хук)Останавливает скролл и обещает ценность. Работает как заголовок ролика: короткая мощная фраза + по желанию строка-подзаголовок. Бьёт в боль или любопытство. Берётся из библиотеки хуков (раздел 09).
  2. 02.Слайд 2 — заявка и ставкаПочему это важно именно читателю + лёгкий микро-авторитет (через опыт, без хвастовства). Посей вопрос, который закроется в финале — чтобы свайпали ради ответа.
  3. 03.Слайды 3–N — разворот мыслиПо одному биту на слайд, с эскалацией: расхожее мнение → сдвиг «а на самом деле» → механика «почему так» → доказательство-конкретика (пример, цифра) → практические шаги. Каждый слайд тянет к следующему.
  4. 04.Предпоследний слайд — выводГлавная мысль раскрывается полностью и отвечает на вопрос с обложки. Одна фраза, которую хочется сохранить.
  5. 05.Последний слайд — призывНативный, через пользу: сохрани, перешли, напиши кодовое слово за материал, подпишись. Один чёткий призыв, не три сразу.
  6. 06.Подпись под постомКороткий текст-усилитель: до-раскрывает мысль или добавляет личное, не дублируя слайды. В конце — призыв и, если нужно, кодовое слово и 3–5 хэштегов по теме.

06. Удержание свайпа

07. Длина и формат слайдов

08. Голос и стиль

Словарь простоты (сложное → простое): оптимизировать → настроить, улучшить; имплементировать → внедрить; коммуницировать → общаться; в связи с тем что → потому что; осуществлять → делать; является → это; данный → этот. Принцип, а не список: любое умное слово переведи на язык живого разговора.

09. Библиотека хуков для обложки

12 типов — выбери под тему и адаптируй под нишу. Хук связан с главной мыслью, а не случайный.

Хук 01
Контр-тезис против мейнстрима
«Всё, что тебе говорили про [X], — работает наоборот»
Хук 02
Большинство делает X — и проигрывает
«[Привычное действие] — главная причина твоего [плохого результата]»
Хук 03
Скрытое знание профи
«Никто в [нише] не скажет это вслух, но…»
Хук 04
Дорогая ошибка
«Одна ошибка в [X] стоит тебе [последствие] — и ты повторяешь её каждый день»
Хук 05
Разрушение мифа
«“[Популярный совет]” — это миф. И вот почему он не работает»
Хук 06
Парадокс ниши
«Чем больше [усилие], тем хуже [результат]»
Хук 07
Цифра-инсайт
«[N]% людей в [теме] не знают одну вещь про [X]»
Хук 08
Реврейм причины
«Проблема не там, где ты её ищешь» — покажи неочевидную причину
Хук 09
Закулисье эксперта
«За [N] лет в [нише] я поняла одну вещь, которая меняет всё»
Хук 10
Новичок vs профи
«Новичок делает [X]. Профи — наоборот, и вот почему»
Хук 11
Цена бездействия
«Пока ты делаешь [X], незаметно происходит [последствие]»
Хук 12
Вопрос-диагноз
«Если у тебя [симптом] — причина почти наверняка в [неочевидное]»

10. Как не выдать нейросеть

11. Запреты и стоп-слова

12. Формат вывода

Перед каруселью — две строки, чтобы я видела стержень. Так выглядит готовая выдача:

Главная мысль: [одно предложение]
Бьёт в: [нерв]

СЛАЙД 1 — обложка
[крупная фраза-хук + по желанию подзаголовок]

СЛАЙД 2
[текст слайда]

СЛАЙД 3
[текст слайда]

…

СЛАЙД N — призыв
[нативный CTA + кодовое слово, если нужно]

ПОДПИСЬ ПОД ПОСТОМ:
[короткий текст-усилитель + призыв + 3–5 хэштегов]

— Тип хука обложки: [какой из библиотеки]
— Что усилит карусель: [какой пример или цифру добавить]

13. Дизайн слайдов: тёплый минимал

В промпт зашит и дизайн: по запросу «сделай картинки» он рендерит 9 готовых слайдов 1080×1350 — serif-заголовки, бежевые врезки, один коричневый акцент, квадратные углы. Без логотипов и чужого брендинга: в навбаре только твой ник.

#1A1A1A · текст
#444 · тело
#6E543F · акцент
#F3EEE7 · врезки
#E7E0D6 · линии
#FFF · фон
Важно: код дизайна запускается дословно — нейросеть не «улучшает» стили от себя, поэтому слайды всегда выходят одинаково аккуратными, пиксель в пиксель.

14. Куда вставлять

Допиши в конце, перед отправкой:

Шаблон для заполнения
Копируй → Заполняй → Отправляй вместе с промптом
Анализ ЦА — уже в проекте.

ТЕМА (Режим 2): [назови тему карусели]

— или —

СПАРСЕННЫЕ ТЕМЫ (Режим 1): [вставь список тем]

ОФФЕР И КОДОВОЕ СЛОВО (если нужен призыв):
[что предлагаешь + слово для комментария]

Карусель соберёт сохранения. Деньги приносит не она, а то, что за ней стоит: путь от случайного зрителя до человека, который платит.

Интенсив

ИИ-стратегия на миллион

Гайды — это отдельные детали. На интенсиве мы собираем из них систему, чтобы блог рос не от одного удачного ролика, а от того, что за ним стоит.

Дело не в удаче и не в количестве роликов. Дело в том, кому вы говорите, что именно и куда ведёте человека дальше.

Всё это я собрала в Claude Code без единого программиста — просто объясняла задачи обычными словами. На интенсиве показываю ровно то, что делаю сама каждый день.

Майя Смотреть программу интенсива →

Вечный доступ · чат поддержки со мной · формат VIP с личным сопровождением