こんにちは!悠です!
今回はAUTOMATIC1111版「Stable Diffusion WebUI」で、テキストから様々な種類の音楽を作成できる拡張機能「Riffusion(sd-webui-riffusion)」の使い方を紹介していきます。
イラストと同じようにプロンプトだけで音楽を生成できる面白い拡張機能ですので、ぜひ皆さんも遊んでみて下さいね!

「Riffusion」はまだ発展途上の技術のようで、いわゆるテンプレプロンプトがありません。誰でもまだ見ぬ何かを開拓できる可能性がありますよ!
「Riffusion」とは?
「Riffusion」では、テキストから直接mp3形式の音楽を生成するわけではなく、一度下のようなスペクトログラム画像を生成し、それを使って音楽に変換します。

スペクトログラム画像
Q:スペクトログラムとは?
A:周波数分析を時間的に連続して行い、色によって強さを表すことで、強さ、周波数、時間の3次元表示を行う技術
音楽を画像の形式に落とし込む技術と思えばわかりやすいですね。
このスペクトログラム画像をWebUIで生成し、拡張機能によって音楽に変換することで、様々な楽曲、または人の歌声のようなものを再現するのが「Riffusion」の特徴です。
「Riffusion」の使い方
今回使う拡張機能「sd-webui-riffusion」のリポジトリはこちら。
「Riffusion」自体のリポジトリはこちらです。
Google Colaboratory版の場合
下記の方法で紹介している「maintained by Akaibu」のノートブックを使って、拡張機能「sd-webui-riffusion」を導入していきます。
まだご覧になっていない方は、まず最初にこちらを準備しておいてください。


Google Driveからモデルデータを読み込むセルの下に新しくセルを作成し、下記のコードを入力してください。
#sd-webui-riffusionをインストール
%cd /content/stable-diffusion-webui/extensions/
!git clone https://github.com/enlyth/sd-webui-riffusion /content/stable-diffusion-webui/extensions/sd-webui-riffusion
%cd /content/stable-diffusion-webui
ローカル版の場合
「Extensions」→「Install from URL」の「URL for extension’s git repository」に下記のURLを入力しInstallをクリックしましょう。
https://github.com/enlyth/sd-webui-riffusion
WebUIを再起動して、Riffusionのタブが追加されていれば導入完了です。
ffmpegをインストール
「sd-webui-riffusion」を使うにはffmpegをインストールしておく必要があります。
下の記事でやり方を紹介しています。

「Riffusion」の使い方
「Riffusion」を使って音楽を生成するには、まず専用のモデルデータを導入する必要があります。
下記のHugging Faceのページから「riffusion-model-v1.ckpt」をダウンロードしてください。14GBもある超巨大ファイルです。

DLした後は普通のモデルと同じく、「~\webui\models\Stable-diffusion」に保存しましょう。なおモデルデータが大きすぎて、WebUIで切り替える際にかなりの読み込み時間が発生します。
WebUIを起動し、txt2imgの一番下にあるScriptからRiffusion Audio Generatorを選択します。
Riffusion enabledにチェックを入れてください。
次に画像生成時と同じくプロンプトを入力します。ネガティブも使えるそうです。
プロンプトに関してはgospel、jazz、rockなどの楽曲ジャンルや、guitar、pianoなどの楽器名、海外の有名なアーティスト名も有効なようです。(参考になりそうなページ)

vocaloid,hatsune miku,anime
Generateボタンを押すとスペクトログラム画像が生成されます。サンプラーやステップ数は特に関係ない気がします。
一応私が使った設定は次の通りです。
- Steps: 20
- Sampler: DPM++ 2M Karras
- CFG scale: 7
- Size: 512x512
- Model hash: 99a6eb51c1
- Model: riffusion-model-v1
- Clip skip: 2
- Version: v1.4.0
スペクトログラム画像が出力されたら、Scriptの欄にあるオレンジ色のRefresh Inline Audioをクリックしてください。
再生バーが表示されるので、クリックすると音楽を再生できます。(ちなみにちゃんとボカロっぽい音楽になっていました。)
生成したmp3音源は「~\webui\extensions\sd-webui-riffusion\outputs」に保存されています。
ちなみにRiffusionのタブでは、フォルダ内に保存したスペクトログラム画像を一括で音楽に変換できるっぽいです。
「Riffusion」を使っていて気付いたこと
ここでは私が「Riffusion」を使っていて気付いたことや、参考になりそうなサイトを紹介します。
512×512の画像では5秒程度の音源
512×512のスペクトログラム画像を音楽に変換すると、約5秒程度の音源になります。
また、768×512(横長)だと7秒、512×768(縦長)だと5秒程度です。
ですので、横長の画像ほど音楽の再生時間が長くなるようです。
複数枚のスペクトログラム画像を用意し、各画像間の補完画像を用意することで1分以上の音楽を生成することも出来るみたいですね。

出典:https://www.riffusion.com/about
Riffusion関連で参考になりそうな記事
下記のページ内に、専用のサブレディットやDiscordへのリンクがまとめられています。
Riffusionの情報を集めるのに活用できそうですね。
まとめ
以上が「Stable Diffusion」で、テキストから様々な種類の音楽を作成できる拡張機能「Riffusion(sd-webui-riffusion)」の使い方の紹介でした。
Mov2movを使った動画の生成と比べても、比較的簡単に取り組むことができるので、いろんな曲を生成して遊んでみてはいかがでしょうか?
では、ここまで読んでいただきありがとうございました。
コメント
これも面白いですね!
stableなんでもできますな
AI音声もアツくなってきてるのでやりかた知った際は教えてほしいです
こんばんはです!
ほんとに底知れませんよねStable Diffusion!
来年が楽しみ過ぎます…!
AI音声、承知しました~!かなり先になるかもしれませんが、いつか調べてみようと思います!