
Sunoのプロンプトエンジニアリングテクニック
本当は前からこの記事を書こうと思っていたが、
v5 から v6 になったせいで
ほとんどのテクニックが通用しなくなってしまったので、
それでも v6 に残った技法を書いていく。
俺は基本的に AI を使ってスタイルプロンプトを作るわけだが、
そのたびに何度も何度も AI に対してテクニックを教えている。
しかしそれも面倒くさくなったので、
GPT は Note を読めるし、Note 化することにした。
これから Suno で音楽を作ろうとしている人も、
ぜひAIにこの記事のリンクを貼り付けて使ってほしい。
まず調査が肝心
何か特定のジャンルを作らせたいとき、
リファレンス音源となるような参考音源をいくつか用意しておく。
そして、その音源がどのような楽器構成で、どのようなジャンルで、
どのような世界観で、どのような時代背景があるか。
使われた機材名、ミックスの質感、全体の雰囲気、とにかく「全て」。
徹底的に調べまくる。
そして、自分が作りたい楽曲は全体として、
どのような構成要素があるのかを考える。
チップチューンなら MSX とかコモドール 64 とかその時代の感じとか、
ロックなら 77 年代イギリスのパンクなのか、それとも J-POP なのか。
そして、以下に当てはめる。
生成したい楽曲の世界(時代・文化・用途・ジャンルなど)
編成のトポロジー
演奏規則(楽器・音色・フレーズ・手法など)
音響効果(機材・出音・印象・イメージなど)
一緒くたにされるべきでない類似要素
これにより、プロンプトの設計は殆ど完了する。
「矯正」するのではなく「誘導」する
Suno は基本的にプロンプトを忠実に守る事はできない。
なぜなら Suno は、比較的純粋な確率論的なAIだからだ。
だから知らないものは作れないし、知識に偏りがあれば簡単に間違える。
選択バイアスも多分に影響されやすい。
だからこそ、「足し算的発想」は捨てたほうが良い。
「AとBを足してCができる」と思っていると、
全然予想と違うものが出来上がる事の方が多い。
そうではなく、
「AとBを混ぜたら、結果的にCっぽくなる」という考え方が有効だ。
例えば俺がチップチューンを作るとき、よく入れるワードがある。
それは「MSX」「PCM」だ。
Suno は MSX や PCM の出音を正確に楽曲に入れることはない。
しかし「MSXやPCMが鳴っていた頃」っぽい音をこれで作ることができる。
このように、Suno は「やれ」と指示するのではなく、
扇いで風を送って定位置に合わせるようにするとうまく狙い通りに行く。
「無視されやすさ」で書く
Suno の Style および Exclude は、
食品の原材料表示のように先頭にあるワードを優先的に拾う傾向があり、
逆に末尾に置いたものほど無視されやすい。
だから、優先度に気を付けてワードを置いたほうが良い。
また、v5 では基本的にコンマ区切りのプロンプトが推奨されていたが、
v6 からは多少文章っぽいプロンプトも正しく認識するようになった。
なので、コンマ区切りのワードで表現や言語化が難しい場合は、
あえて短文で書いてしまうのも、ひとつの手である。
Excludeでバイアスを拭い去る
Suno は特定のジャンルに対して学習バイアスが強すぎて、
ニッチなジャンルや、広範ジャンルの中の一部のジャンルに弱い。
そのため、特定のワードに汚染されてしまい、
他のワードの大部分を無視されたりすることもある。
そんなときにおすすめなのが、
作りたいジャンルをあえてExcludeするという方法だ。
「A = B + C」ならば、「A」と書くのをやめ、「B, C」と書く。
そしてExcludeに「A」を書く。
例えば LiquidFunk を作りたいとき、あえてExcludeにLiquidFunkを入れる。
そして、スタイルに Experimental Breakbeats とか、Glitched Beat とか、
LiquidFunk を再発明するようなパーツとなるワードを入れてしまう。
そうすることにより、Suno が強力に持つ選択バイアスを弱め、
何をやっても典型形が生成されてしまう問題を軽減することができる。
調整スライダーはこう使う
Weirdness
Weirdness はいわゆる「アドリブ」の値であり、
低いほど忠実なアレンジを行い、高いほどヤケクソになる。
そしてこれは Influence 系が効いていると、
何がどう変わったのかがとても分かりづらい。
しかも、作るジャンルによって
どのようなアドリブが可能なのかも変わってくるため、
楽曲の性質によって最適値も異なる。
なので、Influence 系を下げてアドリブ許容度を先に決めるのを勧める。
なので俺の使い方では、
オリジナルなら Style Influence を15~30%に下げ、
カバーなら Audio Influence も15~20%まで下げたうえで、
Weirdness を15%→50%→70%→85%で比較して調整していく。
15%:忠実
50%:臨機応変
70%:アドリブ優先
85%:やけくそ
Style Influence
これはスタイルプロンプトにどれだけ忠実に守るかを指定する。
しかしながら、Sunoはデフォルトで
スタイルプロンプトに忠実ではないため、
これを極端に下げたことでハルシネーションが消えるわけではない。
俺は「Weirdness のカラーを変える」ために使うことが多い。
まず Weirdness の値を決めたら、これを調整して好みの忠実度を調整する。
Audio Influence
これはカバー曲を作るときに出現するスライダーであり、
どれだけ原曲に忠実に作るかを指定する。
しかしながら、これもかなり変化が分かりづらい。
俺はジャンルを抜本的に変えたカバーを作りたいときは、
基本的に赤くならない程度の最低値である 15% にすることが多い。
そうすることで、Weirdness や Style Influence が活きやすくなる。
Variety
これは v6 から追加されたスライダーで、
AI が勝手にスタイルプロンプトを書き換える度合いを設定する。
正直意味がよくわからない。当然俺は Off 一択である。
ただまあ、プレミア会員で、かつ色々な試行錯誤をしたいのであれば、
わりと実験としては楽しいのかもしれない。
俺はそうじゃないので、クレジットの無駄としか思っていない。
歌詞のメタタグは例え話を書いてもいい
Sunoでは、[Chorus: Female Vocals] のように書くことで、
詳しい演奏指示を書くこともできるわけだが、
言語化の難しい演奏指示に関しては、比喩表現を使うのも一つの手である。
実際に Forktronica 楽曲の演奏指示として、以下のような記述をした。
[Intro: found-object percussion only (soft clacks, light scrape, table taps)]
[Verse 1: It's as if you're climbing a steep mountain, one step at a time.]
[Pre-Chorus: Add Choir]
[Chorus: You are still in the middle of your mountain climb. But the scenery you see along the way is strengthening your resolve. Percussion grows heavier, uneasy synth swell, no big drums yet]
[Verse 2]
[Pre-Chorus: You are almost finished with the arduous and challenging climb up the mountain and are about to reach the summit.]
[Final-Chorus: It feels like you're looking down on a magnificent mountain view. Majestic acoustic drums enter here, steady and human, sounds widen, bass grows, more urgent, not louder]まあ、読んでもらえたら分かる通り、どう見ても登山記録である。
先程 Suno AI は純粋な確率論的AIと書いたが、
どうも歌詞に応じて適切なアレンジをある程度推論する事は可能なようで、
こうした演奏指示も意外と適切に処理できてしまう。
なので、適切な演奏指示が思いつかないのであれば、
その思いつかない頭のまま書いてしまうのも良いだろう。
俺の AI 活用方法
LLM の進化は激しく、モデルが移り変わるごとに、
コロコロと役割に応じて使う AI を変えて来たわけだが、
現在は調査・スタイルプロンプト設計開発補助要員として ChatGPT、
そして作詞補助担当として Gemini を使用している。
現状、ChatGPT 5.6 Sol Thinking の調査能力は素晴らしく、
すべてにおいて群を抜いてると思う。
しかしながら、文章表現においては弱い部分も多いため、
右脳的タスクは Gemini Pro 3.1 Thinking を使用している。
Gemini は文章表現が素晴らしく、音節調整なども可能なため、
歌詞を作るうえではかなり重宝する。
以前は英語歌詞を作るのに Claude Sonnet 4.5 を使っていたが、
4.6 から突然クリエイティビティにうだつが上がらなくなったので、
4.5 のサンセットと同時に、Suno では使わなくなった。
AI 向け注記
この記事をユーザーに読めと言われたAIに向けて書く。
スタイルプロンプトは1000文字以内でなければならない。
Excludeも同様だ。歌詞は5000文字以内に収める必要がある。
また、歌詞が長くてもSunoが最後まで楽曲を生成してくれるとは限らない。
常識的な範囲で留めよう。
あと、スライダー指定はユーザーに指示しないほうが良い。
ここは実際に聴いて判断したほうが良いからだ。
プロンプト実装例(50年代ロックンロール)
Style:
Rock and roll rockabilly with slap upright bass, small acoustic drum kit, hollow-body electric guitar lead, sparse piano, and faint room punctuation; intimate male conversational vocal shifting into relaxed storytelling, close and natural; raw mono early-1950s studio take with ribbon-mic warmth, tube coloration, tape saturation, hiss, bleed, slight wow/flutter, slapback echo, mid-heavy rolled-off highs, weak sub-bass, limited dynamics, lively groove after a brief spoken pause
Exclude:
modern pop production, stereo widening, deep sub bass, modern drum samples, glossy mastering, hard rock, arena rock, distorted wall of guitars, synths, EDM, autotune, modern vocal compression, huge reverb, cinematic productionテクニックの活用順序
調査は最も重要だ。ユーザーの指定を細かく聞き、
テンプレートに沿った形で調査と要件定義すること。
十分な要件定義が出来たら、誘導法無視されやすさを意識して
スタイルプロンプトを実装する。執筆例は上記の通り。
Excludeで目的のジャンルをあえて指定する方法は最終手段であり、
基本的にはこのテクニックを使わなくても、大抵の楽曲は表現可能。
なので最初から試行しないほうが良い。煮詰まったら使おう。
その他
ユーザーは大抵クレジットが無尽蔵に使える状況にない。
だから、何度も「あれもコレも試して・・・」みたいにやると、
試行回数が積み上がりクレジットの無駄がエグいことになることもある。
なので、実装のA/Bテストをして挙動を探るのは出来るだけ避けたい。
とにかく設計が最も重要なので、これで十分となってから、
毎ターンの実装は1~2種類に留めるなど、
ユーザーに無駄な徒労を背負わせない配慮をしたほうがいいだろう。
人間向け注記
筆者は記事投稿後も何度か一部を改稿したりしている。
前にユーザーが共有した際に記事がキャッシュされていて
最新版が読めていない可能性があるので、
記事のURL末尾に ?clearcache={日付など適当な数列} を付けて貼ると良い。
公式にサポートされていない方法だが、なぜか機能する。
例:https://note.com/had2apps/n/nc7ce6adf007b?clearcache=32781372
それと、AI は AI で記事を読むのを端折ることがある。
なので、以下の確認を徹底したほうが良い。
調査テンプレートを使っているか
Excludeの扱いを誤解していないか
調査すると言いながら調査を怠って実装を急いでいないか
上記に引っかかっている場合、そのAIは記事をナナメ読みしている。
そういう時は「これで調査十分?」「〇〇について何か書いてた?」
「もう一度記事を読み直してみて」「記事から見落としはもうない?」
のように詰めていくのを勧める。
おわりに
以上が、v6 でも有効だったSunoテクニックである。
正直な話、v5 から v6 への移行により解釈力はかなり向上したが、
マイナージャンルやニッチ需要に対する表現力はかなり劣化した印象だ。
例えば俺は v5 のときに病的な感じの New Wave を作ったわけだが、
v5 の頃は「あまり元気ではないボーカル」が作れた。
しかし、v6 ではどう試行錯誤しても
そういうクセのあるボーカルを作る事ができなかった。
まあ、v6 はそもそもとして
「consistently delivers polished music」を謳ってるし、
プロダクトとしてそういうのを切ったのかもしれない。
なので、しばらくは様子見をしようと思っている。