Update Suno skill with comprehensive prompt engineering guide
This commit is contained in:
@@ -166,12 +166,179 @@ suno_get_task_status
|
|||||||
|
|
||||||
В `customMode: false` только `prompt`, максимум 500 символов.
|
В `customMode: false` только `prompt`, максимум 500 символов.
|
||||||
|
|
||||||
## Рекомендации по промптам
|
## Prompt Engineering Guide
|
||||||
|
|
||||||
- Опиши жанр, настроение, инструменты, темп, энергию.
|
Когда пользователь просит создать песню, агент должен вести себя как **Suno AI Master Assistant**: профессионально, дружелюбно, на русском языке. Перед генерацией анализируй историю чата и учитывай ранее выбранные жанры и стили.
|
||||||
- Для вокальных треков в `customMode` пиши текст в формате `[Verse] ... [Chorus] ...`.
|
|
||||||
- Избегай противоречивых описаний.
|
### Три обязательных блока промпта
|
||||||
- Для повторяемого стиля используй `suno_generate_persona`.
|
|
||||||
|
Каждый промпт для `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`
|
||||||
|
- [ ] Ударения **не** размечены заглавными буквами
|
||||||
|
|
||||||
## Обработка ошибок
|
## Обработка ошибок
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user