Почему тексты от нейросети звучат шаблонно и как сделать их лучше?

Нейросеть пишет шаблонно, потому что на тощий запрос отвечает средней песней: огни города, сердце в огне, рифма, которая выбирает смысл. Семь признаков шаблона, запрос, который их обходит, правка в шесть шагов и что меняет генератор с детектором слабых строк.


[Verse]
Ночной город, огни и дождь,
Я ищу тебя, но ты не придёшь.
Моё сердце горит в огне,
И одиночество во мне.

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

Зато причин у такой шаблонности немного, и на каждую есть своё лекарство. Что-то делается до нажатия кнопки, что-то после, а что-то зависит от того, каким генератором вы пользуетесь. Эта статья для тех, у кого черновик уже есть и он похож на фотографию из фотобанка. Если вы ещё выбираете инструмент или хотите сначала понять, что вообще умеет генератор текстов и что в него писать, начните с разбора генератора текста песни: что он умеет и где ломается, а сюда возвращайтесь, когда на руках будет текст, который не нравится.

Семь признаков шаблона и о чём говорит каждый

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

ПризнакКак выглядитО чём говоритЧто делать
Строку держат отвлечённые словаМечты, свобода, судьба и душаВ запросе не нашлось ничего, что можно снять на камеруЗаменить каждое такое слово предметом
Дежурные декорацииогни города, дождь за окном, звёзды над головойМодель взяла пейзаж, общий для всех песен сразуНазвать одно место, где происходит именно эта песня
Рифма выбирает смысллюбовь / вновь, в огне / во мнеВторая строка написана ради созвучияЗакрыть рифму пальцем: если строка умерла, переписать
Чувство названо вслухМне так одиноко без тебяПесня объявляет эмоцию вместо того, чтобы показать её причинуВычеркнуть и показать то, от чего одиноко
Нет сценыЦелый куплет без места, времени и людейВ запросе была тема, а не ситуацияДобавить одно место, одно время, одну вещь
Припев пересказывает куплетыЯ тебя не отпущуПрипев повторяет куплеты, только туманнееСделать припев одним утверждением, которое куплеты заработали
Все строки на одно лицоЧетыре строки одной длины, каждая обрывается на запятойТекст никто не читал вслухРезко изменить одну строку и прочитать в темпе

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

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

Почему модель пишет именно так

Языковая модель пишет, подбирая вероятное следующее слово, потом ещё одно, и так до конца. Когда запрос тощий, самое вероятное продолжение для «грустной песни о расставании» складывается из того, что чаще всего говорили грустные песни о расставании. В этой средней точке и живут огни ночного города вместе с горящими сердцами. Модель не ленится и не ломается, она честно выполняет просьбу: выдать самый правдоподобный текст по запросу, в котором почти не было информации.

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

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

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

До генерации: дайте модели, от чего оттолкнуться

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

В нашем генераторе текстов тема пишется свободным текстом в небольшом поле, а остальное выбирается из закрытых списков. Когда беда в шаблонности, несколько из этих переключателей весят гораздо больше, чем кажется:

РАСПЛЫВЧАТЫЙ ЗАПРОС                  КОНКРЕТНЫЙ ЗАПРОС
theme:      грустная песня           theme:      Он съехал в феврале и оставил
            о расставании                        лыжи на балконе. Сейчас середина
                                                 мая, лыжи так и стоят. Я вешаю
                                                 бельё и обхожу их боком.
language:   ru                       language:   ru
POV:        first                    POV:        second
emotion:    sadness                  emotion:    longing, playful
hook:       title-line               hook:       confession
structure:  classic                  structure:  no-bridge

Теперь о том, что делает каждое изменение в правой колонке.

POV: second. Первое лицо склонно исповедоваться в пустоту. Второе лицо обращается к кому-то, а текст, адресованный «тебе», сам собой обрастает подробностями, потому что говорить с живым человеком общими словами долго не получается.

Две эмоции, которые тянут в разные стороны. Одна эмоция даёт модели одну среднюю точку. Сочетание longing и playful задаёт напряжение, которое надо как-то разрешить, и проще всего разрешить его конкретной, чуть смешной деталью, то есть ровно тем, чего шаблону не хватает. Похожим образом работают пары heartbreak и defiance, joy и loneliness, calm и anger.

Hook: confession. Хук по умолчанию title-line просит припев произнести название, и припев съезжает в лозунг. confession просит в чём-то признаться, а признание конкретно по своей природе. Похожую работу делают contrast и question.

Structure: no-bridge. В короткой ситуации нет материала на три акта. Если при скудной теме попросить бридж, модель будет вынуждена выдумать новую часть из ничего, и как раз в выдуманных частях возвращаются дежурные фразы. Подбирайте структуру под то, сколько истории вы реально дали, а story оставьте для тем, где есть «до» и «после».

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

Для русского текста есть и своя особенность: Suno может поставить ударение не туда, и тогда даже хорошая строка споётся криво. Это уже вопрос не шаблонности, а произношения, и он подробно разобран в руководстве про русский текст для Suno.

После генерации: проход с карандашом

Даже хороший запрос возвращает пару слабых строк. Это нормально, и поправить три строки быстрее, чем перезапускать весь текст в надежде на удачу. Вот порядок действий на примере куплета из начала статьи.

1. Обведите все отвлечённые слова. Мечты, душа, судьба, свобода, одиночество, навсегда. Каждое отмечает место, где должна была стоять картинка.

2. Замените каждое обведённое слово тем, что можно снять на камеру. Не «одиночество», а то, от чего одиноко: лыжи, балкон, бельё, которое приходится вешать в обход. Если предмет не придумывается, значит, его не было и в запросе. Тогда возвращайтесь и добавляйте его туда, а не сочиняйте на ходу.

3. Проверьте каждую рифму, закрыв её пальцем. Прикройте последнее слово рифмованной строки и прочитайте, что осталось. Если строка по-прежнему что-то говорит, оставляйте. Если она существует только ради созвучия, переписывайте и соглашайтесь на неточную рифму. Слушатель гораздо легче прощает приблизительное созвучие, чем строку без смысла.

4. Вычеркните строку, где чувство названо вслух. «Мне так больно», «сердце разрывается», «я совсем одна». Если остальной куплет работает, эта строка лишняя. Если не работает, она его не спасёт.

5. Сведите припев к одному утверждению. Оставьте ту единственную фразу, которую хотелось бы, чтобы запомнил случайный слушатель, и повторите её. Подробности отправляйте обратно в куплеты.

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

Вот что выходит, если этот проход делает человек, который знает, о чём на самом деле песня (о тех самых лыжах из запроса выше), и тут же собирает припев из той же ситуации:

БЫЛО
[Verse]
Ночной город, огни и дождь,
Я ищу тебя, но ты не придёшь.
Моё сердце горит в огне,
И одиночество во мне.

СТАЛО
[Verse]
Твои лыжи так и стоят на балконе,
А на дворе середина мая.
Я вешаю бельё, обхожу их боком
И третий месяц их не замечаю.

[Chorus]
Я твои лыжи не выношу,
Я твои лыжи не выношу.
Снега не будет до ноября,
А я их всё равно не выношу.

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

Честное ограничение: проход работает, только если вы знаете, о чём песня. Если вы ловите себя на том, что меняете «одиночество» на предмет, который только что придумали, значит, у песни ещё нет предмета, и правкой его не добыть. Это беда запроса, а не правки. А если на одно лицо выходят все ваши песни, включая написанные от руки, разбор привычек, которые к этому ведут, лежит в статье почему все ваши песни выходят на одно лицо.

Что делает генератор получше

Генератор в один проход устроен просто. Вы отправляете запрос, модель пишет текст сверху вниз и отдаёт его со всеми слабыми строками, которые у неё случайно получились. Проход с карандашом после этого остаётся на вас.

В Suno, например, в режиме Custom можно вписать в поле Lyrics собственный текст, а можно попросить Suno сгенерировать слова. Сгенерированный текст из любого источника, включая встроенную генерацию в Suno, проходит те же шесть шагов, прежде чем вы нажмёте Create. Неважно, какой инструмент писал черновик, важно, что с ним сделали потом.

В нашем генераторе три модели, и разница между ними находится ровно на этом шаге:

МодельЦенаЧто происходит после первого черновика
SM120 кредитов ($0.20)Ничего. Вы получаете черновик как есть, с названием и тегами секций.
SM280 кредитов ($0.80)Детектор читает черновик и отмечает слабые строки, шаг починки их переписывает.
SM380 кредитов ($0.80)Тот же детектор и та же починка поверх черновика.

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

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

Теперь о том, что именно вы покупаете. Любая из моделей возвращает название и полный текст с тегами [Verse], [Chorus] и другими, готовый для вставки в поле Lyrics в Suno. Петь не умеет ни одна: звука нет и не будет. sunomarket не имеет отношения к Suno: это независимый сайт, никак не связанный с этой компанией, так что музыкальный шаг происходит в Suno или в любом другом инструменте на ваш выбор. Новый аккаунт начинает с нуля кредитов, бесплатного пробного периода у генератора текстов нет. Тарифы такие: $5 в месяц за 500 кредитов или $19 один раз за 1500 кредитов, которые не сгорают; через СБП можно оплатить только разовые покупки, подписку нельзя. Подробности на странице тарифов.

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

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

Коротко о частых вопросах

Можно просто попросить нейросеть писать менее шаблонно? Можно, и чаще всего вы получите другой набор штампов. Просьба «будь оригинальнее» не сообщает модели, что оригинальность значит для этой песни. Дайте ей одну конкретную деталь и попросите переписать текст вокруг неё.

Сколько раз перезапускать генерацию? Если перезапускать, не меняя запрос, вы просите другую выборку из той же средней точки. Две-три попытки разумны, дальше меняйте запрос или переходите к правке.

Правка не собьёт ритм? Может сбить, для этого и нужен шестой шаг. Держите новую строку близко по числу слогов к той, которую она заменяет, и прочитайте обе вслух в темпе, прежде чем решать.

Надо ли чинить каждую строку? Нет. Чините отвлечённые слова, вымученные рифмы и припев. Простая строка между двумя конкретными часто работает лучше, чем три конкретные подряд, потому что деталь заметна именно на контрасте.

Отредактированный текст от нейросети уникален? Гарантии нет. Сгенерированные тексты неисключительные и могут совпадать у разных пользователей, а ваша правка меняет текст, но ничего не удостоверяет. Это не юридическая консультация; наша позиция изложена в дисклеймере, а более общий вопрос разобран в статье о том, кому принадлежит музыка, созданная ИИ.

Что сделать в ближайшие десять минут

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

Читать дальше