Stable Audio 3をCodexでGradio化。Macで動く音楽生成WebUIを作ってみた

Stable Audio 3が出た! ということで、さっそくCodexに構築してもらいました。
今回はMacアプリではなく、Gradioを使ったWebUIです。
ローカルで動かしつつ、ブラウザから操作できる形にしてもらいました。

Stable Audio 3はインスト向き。Macでの生成がかなり速い

Stable Audio 3を少し触ってみた印象としては、ボーカルは弱めです。
日本語プロンプトの通りもあまり良くないので、現時点ではインストゥルメンタル用途で使うのが自然だと思います。
その一方で、著作権まわりをクリアしたデータで学習されていると説明されているので、安心して使いやすいのは嬉しいところです。
さらにMac向けには、Appleシリコン専用のオープンソース機械学習フレームワークであるMLXにも対応しています。
自分の環境では、3分ほどの楽曲が22秒程度で生成されました。(M4 Pro Mac mini)
これはかなりいいです。

Codexへの指示はこれだけ

Codexには、ほぼこれだけ指示しました。

stable-audio-3をGradioで構築してください。
Gradioは日本語UIで。
GitHubリポジトリはこちら。

https://github.com/Stability-AI/stable-audio-3

これだけで、12分ほどで音楽生成WebUIが完成しました。
面倒な設定や細かい指示はほとんどなし。ここまでできるのか、という感じです。まあ色々エラーがありましたが、問題なしです。ちなみにCodexは5.4非常に高いを使用。以前5.5非常に高いを使用したら制限レートの消費が早いことはやいこと。それでグレードダウンして使用してます。

プロンプトは英語の方が追従性が高い

プロンプトは英語で入れた方が良さそうです。
ドキュメントにも、次のような制限が書かれています。
音声や音声生成用に設計されていません
英語の説明に基づいて学習しました。他の言語はパフォーマンスが低下します

実際に、日本語のプロンプトと、それを英訳したプロンプトの両方で試してみました。
結果としては、英語の方が明らかに追従性が高い印象です。
日本語でもまったく動かないわけではありません。
ただ、狙った雰囲気や構成に近づけたいなら、今のところ英語で書いた方が安定します。

プロンプト:哀愁のボサノバ
プロンプト:melancholic bossa nova

雑なプロンプトだと、雑な曲になる

最初はかなり適当にプロンプトを入れていました。
たとえば「ambient piano」「cinematic electronic」くらいの短い指定です。
もちろん曲にはなります。破綻も少ないです。
ただ、どうしても繰り返しが多く、面白みに欠ける曲になりがちでした。
そこでプログラム内の reprompt.py を見てみました。
これは、ユーザーが入力したプロンプトを解釈して、味付けするためのプログラムです。
中を見ると、プロンプトのテンプレートやサンプルがかなり入っていました。
内容としては、だいたい次のような考え方です。

  1. ジャンルやスタイル、必要に応じて「upbeat」「dreamy」「aggressive」のような形容詞から始める
  2. トラックを特徴づける主要な楽器を列挙する
    パッド、倍音、エフェクト、フィールドレコーディングなど、空間や奥行きを作る要素を入れる
  3. ドラム、ハイハット、コンガ、ブラシ、ポリリズムなどのリズム要素を含める
    「緊張感のあるサスペンス」「明るく高揚感のある」など、ムードやエネルギーを自然な文章に入れる
  4. BPMを指定する
  5. トラックの長さを秒単位で指定する
  6. すべての要素を、ひとつの自然な文章にまとめる

このあたりを参考にして、自分用にプロンプトビルダーの構成を作りました。

TrackType: Music
VocalType: Instrumental
Genre:
Style:
Title: Untitled
Instruments:
Mood & energy:
Production style:
BPM:

これで、かなり表現力は上がりました。
楽器を指定すれば、それらしい音が鳴ります。
ジャンルの方向性も、だいたい合っています。
ムードやBPMも、ある程度は反映されます。
ただ、ここで少し気になるところも出てきました。

Title: Run Toward Tomorrow(20260526)

プロンプト:TrackType: Music\nVocalType: Instrumental\nGenre: J-Pop\nStyle: Action Adventure\nChord progression: F△7 – E7 – Am7 – C7\nSong structure: Intro, Verse, Pre-Chorus, Chorus, Verse, Pre-Chorus, Interlude, Bridge, Chorus, Outro\nTitle: Run Toward Tomorrow\nMain Instruments: synthesizer\nInstruments: Percussion, Strings Pad, Electronic drums, Distortion guitar, Electric bass\nMood & energy: Shimmering\nProduction style: Studio quality\nBPM: 170 – 190″
注)\nは改行マーク

まとまりすぎると、逆に面白くない

プロンプトを細かく指定すると、曲としてはきれいにまとまります。
破綻も少なく、ジャンル感もあります。
ただ、平均的な曲になりやすい。
「おっ、これは」と思うような意外性が、あまり出てきません。
予期しない展開や、変な魅力のある音が出てこないので、作っていて少し物足りなさがあります。
これは、こちらが構成を固めすぎているのかもしれません。
AIの想像力というか、創造力のようなものを、逆に削ってしまっている感じもあります。
もう少しシンプルに投げた方が、面白い結果になる場面もありそうです。
このあたりは、ACE-Step 1.5 XLの方が面白いものが出てくる印象があります。
Stable Audio 3は、安定していて扱いやすい。
ACE-Step 1.5 XLは、もう少し予想外のものが出る。
そんな違いを感じました。

アンビエント ミニマルミュージック CMYK(20260527)

CYAN
MAGENTA
YELLOW
KEY PLATE

Gradio版は便利だけど、少し物足りない

最初に作ってもらったGradio版は、かなりシンプルな作りでした。
生成するだけなら問題ありません。
ただ、使っているうちに不満も出てきます。
設定値を保存できない。
生成したファイルの一覧が見られない。
前に作った曲をすぐ聴き返せない。
プロンプトやSeedをあとから確認しづらい。
音楽生成は、何度も試して比較する作業になります。
そうなると、単純な生成画面だけでは少し足りません。
そこで、Codexに追加で改造してもらいました。

改造内容はこちら
  • 高音質 mediumをデフォルト選択にする
  • 生成した曲の管理
    ・生成した曲をリスト表示する
    ・クリックすると曲が再生される
    ・ゴミ箱アイコンをクリックすると表示もファイルも削除される。
  • 隠す項目 別タブ
    ・モデル
    ・生成モード
    ・Hgging Faceトークン
    ・ステップ数
    ・CFGスケール
    ・保存形式
    ・省メモリデコード
    ・現在の実行先〜実行結果
    ・エラーログ
  • 長さ(秒)
    ・デフォルトで180にする
    ・スライダーを長くして、細かい調整をしやすくする
  • Seed
    ・ランダム時にシード値を表示する。-1ではなく
    ・ランダムボタンを配置
  • 削除
    ・スペクトログラム
  • 生成進捗バーの色をもう少し目立つ色に
  • 生成が終わったら通知オンを鳴らす
  • 設定をJSONで保存/読み込み
    ・モデル
    ・生成モード
    ・プロンプト
    ・ネガティブプロンプト
    ・長さ
    ・ステップ数
    ・CFGスケール
    ・Seed
    ・省メモリデコード
    ・ファイル名
    など
  • プロンプトの入力を選択式または記入式にする

・各項目を選択式または記入式にする。
・選択肢はcsvで提供
 項目はABC順になっているので、似ている・同じようなものはできるだけまとめて再配置して(Mood、Styleなど)
 有名、著名、代表的な項目を上位にして
 また間違った翻訳は訂正して

【プロンプト構成】

TrackType: Music または SFX
VocalType: Instrumental(一つ選択)
Genre: Bossa Nova(複数選択可)
Style: Bright (一つ選択)
Chord progression: C – F – Am – G(一つ選択)
Song structure: Intro, Verse, Chorus, Verse, Chorus, Outro (一つ選択)
Title: Untitled (記入式)
Main Instruments: Piano, Flute(複数選択可)
Instruments: Guitar, Bass, Drums, Strings, (複数選択可)
Mood & energy: Buoyant (一つ選択)
Production style: Studio quality (一つ選択)
BPM: 105 – 129(一つ選択)

生成・曲ライブラリ・詳細設定の3タブ構成へ

改造後は、画面を3つのタブに分けました。

生成タブ

生成タブには、プロンプトビルダー、曲の長さ、Seed、生成ボタン、曲の再生エリアなどを配置しました。
プロンプトを毎回ゼロから書くのではなく、ジャンル、スタイル、楽器、ムード、BPMなどを項目ごとに選択または入力できるようにしています。
これで、プロンプトの抜けや曖昧さがかなり減りました。自由に記入する欄も設けてあります。

曲ライブラリタブ

曲ライブラリでは、これまで生成した曲の一覧を見られるようにしました。
生成した曲をその場で再生できるので、前に作ったものとの比較がしやすくなります。
この機能があるだけで、かなり使い勝手が変わります。
音楽生成は、1曲作って終わりではありません。
何曲も出して、その中から良いものを拾う作業です。
だから、ライブラリ機能はほぼ必須だと思います。

詳細設定タブ

詳細設定では、モデル、生成モード、ステップ数、CFGスケール、保存形式、JSON保存・読み込みなどをまとめました。
ステップ数は、音楽をどれだけ時間をかけて丁寧に仕上げるかの設定です。
CFGスケールは、プロンプトにどれだけ忠実に従わせるかを調整する項目です。
このあたりはあまり触る必要がなく、8ステップで全然問題ないのでこちらに移しました。
JSONの保存・読み込みも便利です。
気に入った設定を残しておけば、あとから同じ方向性で再生成できます。

Stable Audio 3は「安心して試せる」音楽生成モデル

Stable Audio 3を触ってみて感じたのは、かなり実用寄りのモデルだということです。
Macで速く動く。
Gradioで簡単にWebUI化できる。
インスト曲ならそれなりにまとまる。
ライブラリや設定保存を足せば、試作環境として十分使えます。
一方で、面白さや意外性という意味では、まだ物足りないところもあります。
きれいにまとまりすぎる分、予定調和になりやすい。
ここはプロンプトの作り方次第かもしれません。
細かく指定しすぎず、少し余白を残した方が、面白い結果になる可能性もあります。
Macでここまで速く動くなら、しばらく遊べそうです。日本語ボーカル機能がつけば最高ですけどね。

それではおやすみなさい。

Good night (20260528)

プロンプト:TrackType: Music\nVocalType: Instrumental\nGenre: New Age\nTitle: Good night\nMain Instruments: synthesizer\nInstruments: Percussion, Strings Pad, Mellow drum, Upright bass, Acoustic Piano\nMood & energy: Relaxing\nProduction style: Studio quality\nBPM: 60 – 79

構成・ヘッダー他画像:Chat GPT

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次