はじめに
MAGNeTはメタ社が開発したテキストから音楽を生成するモデルで、モデルファイルとコードが公開されているため、ローカルで実行することが出来ます。
セットアップ
本家のGitHubにWebUIのデモが含まれているので、それを使用します。
まず、以下の様にDockerfileとdocker-compose.ymlを作成します。
-
Dockerfile
-
FROM pytorch/pytorch:2.1.0-cuda12.1-cudnn8-runtime RUN apt update && \ apt install -y --no-install-recommends git ffmpeg && \ apt clean && \ rm -rf /var/lib/apt/lists/* RUN git clone https://github.com/facebookresearch/audiocraft.git . RUN pip install -e . EXPOSE 7860 ENTRYPOINT ["python3"] CMD ["demos/magnet_app.py", "--listen", "0.0.0.0"]
-
docker-compose.yml
-
services: audiocraft: build: . image: audiocraft ports: - 7860:7860 volumes: - $HOME/.cache:/root/.cache deploy: resources: reservations: devices: - driver: nvidia count: all capabilities: [gpu]
両ファイルを同一フォルダに置いて、以下を実行するとGUIが立ち上がります。
docker compose up -d
終了させる時には、以下を実行します
docker compose down
音楽生成
http://localhost:7860/ にアクセスするとMAGNeTのWebUIが開きます。
プロンプトを入力し、モデルを選択して、Submitを押すと生成が始まります。
モデルは6種類の中から選択できます。
モデル名 | モデルサイズ | 生成される音楽の長さ | 生成対象 |
---|---|---|---|
magnet-small-10secs | 300M | 10秒 | 音楽 |
magnet-medium-10sec | 1.5B | 10秒 | 音楽 |
magnet-small-30secs | 300M | 10秒 | 音楽 |
magnet-medium-30secs | 1.5B | 30秒 | 音楽 |
audio-magnet-small | 300M | - | 効果音 |
audio-magnet-medium | 1.5B | - | 効果音 |
プロンプトとモデルは下部のExamplesから選択すこともできます。
Submitを押して、暫く待つと生成された音楽が右側に現れ、再生やダウンロードができます。
プロンプトに従って雰囲気のある音楽が生成されました。
まとめ
MAGNeTで音楽を生成してみました。プロントに従ってそれっぽい音楽が生成できることを確認しました。