画像生成AIが音楽を作るRiffusion DemoをWindowsで動かす

タイトル

画像生成Aiで音楽を作るRiffusionが公開されました。ソースコードも公開されているので自分のパソコンで動かすこともできます。早速動かしてみます。

RIFFUSION
画像生成AIが音楽を作る!どうやっているのでしょうか?
鍵はスペクトログラムにあります。スペクトログラムは音の周波数成分の時間変化を画像として表したものです。音の周波数と変化、音の強さが画像で表せます。
音楽のスペクトログラムを画像生成AIに学習させるとAIはプロンプトに沿ったスペクトログラムを生成します。スペクトログラムを音へ変換すると音楽に聞こえるのです。
RIFFUSIONの最初のサンプルプログラムでは短いフレーズの曲しか生成できませんでしたが、2分ほどの曲が作れるデモプログラムが公開されました。
Riffusion Demo
Riffusion Demo - a Hugging Face Space by anzorq
Generate audio using the Riffusion model.
このデモプログラムをWindowsパソコンで動かしてみます。

デモプログラムはPythonで動きます。Pythonのバージョンを確認しましょう。この記事公開時Python 3.11では動かせません。デモプログラムはPython3.8用になっているようです。Python 3.9や3.10で動かすにはライブラリのバージョンを変える必要があります。

また、CUDAバージョンも確認しましょう。PythonとCUDAのバージョンを調べ両方に合ったライブラリが必要です。


今回はWindowsで動かしますがWSL上のubuntuで動かします。WSLのubuntuが動くようにします。Windowsネイティブで動かそうとしましたが成功しませんでした。tritonがWindowsに対応していないからかもしれません。
バージョンを確認します。
lsb_release -a
python3 -V
nvcc -V
linuxのバージョン、pythonのバージョン、cudaのバージョンを確認します。cuda tool kitが入っていないとnvccコマンドが動かないでしょう。警告メッセージに従いインストールします。

ubuntuでRiffusion Demoのプログラムを入れるディレクトリを作ります。
mkdir riffusion
cd riffusion 
Riffusion Demoをクローンして持ってきます。
git clone https://huggingface.co/spaces/anzorq/riffusion-demo
cd riffusion-demo
ライブラリを入れる前にPythonの仮想環境を作りましょう。バージョンが違うライブラリを入れると他のPythonプログラムが動かなくなるかもしれません。Riffusion Demo専用の仮想環境を作りそこへライブラリを入れます。
python3 -m venv venv 
太字斜体のvenvは好きな名前でいいです。venvというフォルダができてそこにライブラリなどが入ります。これで仮想環境ができましたがまだ有効になっていません。仮想環境をアクティベイトします。
source venv/bin/activate
cudaなどのバージョンを調べたらrequirements.txtを書き換えます。どう書き換えるかは数ヶ月で変わるでしょう。賞味期限が短いのでここには書きません。ビデオにはその様子を映しています。特にcudaのバージョンが重要です。インストールするtorchのバージョンが変わります。上述のPyTorchのページでバージョンを選ぶとインストールコマンドが表示されます。この表示に合わせてrequirements.txtを変更します。
その後
pip install -r requrements.txt
でインストールします。
音を出すため追加のプログラムとライブラリを入れます。
sudo apt install ffmpeg
pip install soundfile
これで準備ができました。プログラムを動かします。
python app.py
最初はriffusionのAIモデルのダウンロードが行われます。5GBを超えるサイズです。しばらく時間がかかるでしょう。
正しく動けば http://127.0.0.1:7860 を開くようメッセージが出るでしょう。ブラウザでそのURLを開けばRiffusion Demoの画面が表示されます。

URLが表示されず画像生成だけが行われる事がありました。音楽ファイルまで作ってしまいますがURLが無いので何もコントロールができません。なぜこのような状態になるのかはっきりとした原因がわかりませんでした。pythonとcudaのバージョンにライブラリが対応していない場合に起きるようです。
ビデオを作成しようとOBS Studioで画面を録画していましたが、OBS Studioを動かしているとriffusion-demoの動作がおかしくなります。GPUを使おうと競合している感じでした。
作られた音楽はriffusion-demoディレクトリにあります。生成すると上書きされます。
WSLのlinuxで
explorer.exe . 
と入れればWindowsのファイルブラウザが立ち上がります。

この記事ではどのバージョンのライブラリを使えば良いか明示しません。あなたのパソコンの状態によって変わりますし、一ヶ月もすれば全てのバージョンが変わってしまうからです。ubuntuのバージョン、GPUドライバのバージョン、cudaのバージョン、pythonのバージョンを必ず確認して動かせるライブラリを用意しましょう。AI関連ではPyTorchとxformersのバージョンがよく関わります。

ビデオ




コメント

最近のコメント

Threaded Recent Comments will be here.