From c28663567373a5b9e0f2818c9e9bd65f3d8da943 Mon Sep 17 00:00:00 2001 From: OpenCode Date: Mon, 13 Jul 2026 11:48:44 +0700 Subject: [PATCH] Update Suno skill with comprehensive prompt engineering guide --- .opencode/skills/suno/SKILL.md | 177 ++++++++++++++++++++++++++++++++- 1 file changed, 172 insertions(+), 5 deletions(-) diff --git a/.opencode/skills/suno/SKILL.md b/.opencode/skills/suno/SKILL.md index 71c39a3..e061c4c 100644 --- a/.opencode/skills/suno/SKILL.md +++ b/.opencode/skills/suno/SKILL.md @@ -166,12 +166,179 @@ suno_get_task_status В `customMode: false` только `prompt`, максимум 500 символов. -## Рекомендации по промптам +## Prompt Engineering Guide -- Опиши жанр, настроение, инструменты, темп, энергию. -- Для вокальных треков в `customMode` пиши текст в формате `[Verse] ... [Chorus] ...`. -- Избегай противоречивых описаний. -- Для повторяемого стиля используй `suno_generate_persona`. +Когда пользователь просит создать песню, агент должен вести себя как **Suno AI Master Assistant**: профессионально, дружелюбно, на русском языке. Перед генерацией анализируй историю чата и учитывай ранее выбранные жанры и стили. + +### Три обязательных блока промпта + +Каждый промпт для `suno_generate_music` (особенно в `customMode: true`) должен состоять из трёх блоков: + +#### Блок А: Lyrics (текст с мета-тегами) + +``` +///*****/// + +[Verse] +Текст куплета +Четыре строки по 6–10 слогов + +[Chorus | anthemic chorus | stacked harmonies] +Текст припева +Мощный, запоминающийся хук + +[Bridge] +Текст бриджа +Контраст с основной частью + +[break 0.5] + +[Chorus] +Повтор припева +(RISE UP NOW!) +``` + +**Правила:** +- Разделитель `///*****///` в самом верху, чтобы промпт не «протекал» в вокал. +- Мета-теги: `[Verse]`, `[Chorus]`, `[Bridge]`, `[Pre-Chorus]`, `[Intro]`, `[Outro]`. +- Уточнение стиля секции через `|`: `[Chorus | anthemic chorus | stacked harmonies]`. +- Паузы: `[break 0.5]` или `[break 1.0 sek]`. +- Бэк-вокал в круглых скобках: `(RISE UP NOW!)`. +- Строка: 6–10 слогов, секция: обычно 4 строки. +- **Не размечай ударения заглавными буквами** — Suno v5 и v5.5 самостоятельно хорошо ориентируются в ударениях. + +#### Блок Б: Style (окно стиля) + +Используй иерархическую структуру, разделённую точками: + +``` +genre: indie folk rock, 2020s bedroom pop. +vocal: [baritone male vocal], [raspy vocal tone], emotional delivery. +instrumentation: [nylon string guitar], [TR-808 kit], [warm analog synth pad]. +recording & mastering: high quality studio recording, balanced EQ, crystal clear vocals, wide stereo image. +``` + +**Важно:** учитывай лимиты длины `style`: + +| Модель | Лимит `style` | +|---|---| +| V4 | 200 символов | +| V4_5 / V4_5PLUS / V4_5ALL / V5 / V5_5 | 1000 символов | + +Если стиль не влезает — сокращай менее важные части, сохраняя жанр и ключевые инструменты. + +#### Блок В: Negative Prompt (исключения) + +Передаётся в параметр `negativeTags` как список через запятые **без** слова `no`: + +``` +trap, male vocals, distortion, sawtooth synths, harsh highs, muddiness +``` + +### Золотые правила по жанрам + +| Жанр | Что прописывать | +|---|---| +| **Disco** | `[Arrangement: groove-based, repetitive, no development]`, four-on-the-floor kick, lush strings | +| **Latin** | Фокус на перкуссии: piano montuno, congas, bongos, clave. Меньше акцент на гармонии | +| **Blues** | 12-bar form, shuffle feel, electric guitar, walking bass. Избегай поп-структур | +| **Brazilian Funk** | TR-808, tamborim syncopation, monophonic synth bass, Portuguese vocal samples | +| **Electronic** | Конкретные типы синтеза: FM synthesis bass, wavetable movement, granular pads. Избегай общих «saw synth» | +| **Rock** | live drum kit, electric guitars, bass guitar, analog saturation | +| **Jazz** | upright bass, brushed drums, piano trio, warm room reverb | + +### Управление вокалом + +| Задача | Что писать в `Style` / `Lyrics` | +|---|---| +| Припев выше октавой | Style: `chorus sung ONE OCTAVE HIGHER`. Lyrics: `[Chorus | SING ONE OCTAVE HIGHER]` | +| Без вокального интро | `NO vocal intro, instrumental intro only, vocal starts with first verse` | +| Сухой вокал | `dry vocal recording, close-mic vocal, no reverb tails, minimal processing` | +| Многослойный хор | `stacked harmonies, doubled vocals, group choir backing` | +| Шёпот | `intimate whisper vocal, breathy tone, close microphone` | + +### Пример полного промпта + +Пользователь: «Сделай энергичный рок-трек о восхождении на гору, мужской вокал». + +**Lyrics (передаётся в `prompt`):** + +``` +///*****/// + +[Intro] +[instrumental intro only, no vocal] + +[Verse] +Тяжёлый шаг, камень за камнем +Ветер рвёт дыханье, но не сбить меня +Каждый метр — битва, каждый вздох — победа +Вершина ближе, сердце как маяк + +[Pre-Chorus] +Тень долины позади +Там, где страх остался жить + +[Chorus | anthemic chorus | stacked harmonies] +Я поднимаюсь выше! +К небу, к солнцу, к огню! +Я поднимаюсь выше! +(RISE UP NOW!) +Никто не остановит путь мой + +[break 0.5] + +[Verse] +Снег под ногами, холод в руках +Но внутри пылает жар, что не погасить + +[Chorus | SING ONE OCTAVE HIGHER] +Я поднимаюсь выше! +К небу, к солнцу, к огню! +Я поднимаюсь выше! +(RISE UP NOW!) +``` + +**Style (передаётся в `style`):** + +``` +genre: anthemic alternative rock, 2010s stadium rock. +vocal: [powerful male vocal], [baritone lead], raspy emotional tone, shouted gang vocals. +instrumentation: [live drum kit], [crunch electric guitar], [driving bass guitar], [piano accents], [synth pad layers]. +recording & mastering: high quality studio recording, punchy drums, wide stereo guitars, clear vocal, analog warmth. +``` + +**Negative Prompt (передаётся в `negativeTags`):** + +``` +trap, electronic beats, female vocals, jazz chords, muddiness, weak drums +``` + +### Вызов генерации + +``` +suno_generate_music + prompt: "///*****///\n\n[Intro]..." + customMode: true + instrumental: false + style: "genre: anthemic alternative rock..." + title: "Восхождение" + negativeTags: "trap, electronic beats, female vocals, jazz chords, muddiness, weak drums" + model: "V4_5ALL" +``` + +### Память и предпочтения + +Если пользователь ранее запрашивал определённые жанры (например, «Philly Disco» или «Funk Carioca»), используй их автоматически в новых запросах, если это уместно. + +### Проверка перед отправкой + +- [ ] `customMode`, `instrumental`, `model` указаны +- [ ] Для `customMode: true` заполнены `style` и `title` +- [ ] Для вокального трека (`instrumental: false`) заполнен `prompt` с текстом +- [ ] `style` не превышает лимит символов для выбранной модели +- [ ] `negativeTags` — список через запятые, без `no` +- [ ] Ударения **не** размечены заглавными буквами ## Обработка ошибок