animede/momo-song-v5

HTML

1

10 commits

updated Oct 13, 2026

See the code

README

Momo Song v5

現在の段階: v5.0.0公開候補版。主要な生成・楽譜・ダウンロード経路は統合確認済みです。

歌詞生成(LLM)、YuE2による作曲、楽譜(ABC)の表示・編集・再生成、背景演出を統合したWebアプリケーションです。 YuE2 の「ホワイトボックス作曲」 (音声化前に楽譜を確認・編集できる)を活かした楽譜ワークフローを追加しています。 サーバ側には YUE2-Refined-Engine を使用します。 公開版では、楽譜プランからの編集に対応する修正を含むサーバーリビジョンを固定します。 現在の基準リビジョンはb64625fで、対応修正の公開後にこの記載を確定します。

Momo Song v5で生成曲を再生している画面

主な機能

  • ローカル/リモートLLM(OpenAI互換API)による歌詞・曲解説の生成
  • YuE2による作曲(48kHz FLAC)。作曲モード full(楽譜+コード) / melody / off を選択可能
  • 楽譜パネル: ABC記譜のテキスト編集とビジュアル五線譜表示(abcjs)の切り替え、 「この楽譜で再生成」「同じ楽譜で別テイク」「楽譜のみ生成→確認して音声化」、楽譜PDF出力(任意機能)
  • 生成が長さ上限で切り詰められた場合の警告表示、ABC方言(YuE2ネイティブ)の編集ルールチートシート
  • インストゥルメンタル生成(検証済みのプロンプト戦略+任意のASR自動検査)
  • 曲に合う背景画像の生成(任意)・音量/周波数連動の演出・ループ生成・履歴と一括ダウンロード

楽譜ワークフロー

生成されたABC楽譜は、テキストとビジュアル五線譜を切り替えて確認できます。編集した楽譜からの再生成や、 同じ楽譜を使った別テイクの生成にも対応します。

生成曲とビジュアル楽譜を表示したMomo Song v5の画面

必要なもの

依存必須/任意備考
YUE2-Refined-Engine必須YuE2音楽生成APIサーバ。BF16対応NVIDIA GPU、VRAM実測9〜15GB
OpenAI互換LLM API必須作詞用。Gemma系で動作確認(gemma-4-31B / gemma-4-E4B)
背景画像生成任意off / PNG対応リモートAPI / ローカル(SDXL+LCM-LoRA または Iris-3B Turbo、UIで切替)。無効・失敗時は選択中の初期背景を維持
faster-whisper入りvenv任意インスト生成のASR検査(MOMO_ASR_PYTHON)
SheetSage2レンダラ任意楽譜PDF出力。tools/setup_score_renderer.shで取得(CC BY-NC 4.0)

セットアップ

python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
cp .env.example .env
# .env のLLM/YuE2接続先を環境に合わせて編集

start.shは.envがあれば自動的に読み込みます。Pythonプロセス内で llama-cpp-pythonを使う任意のローカルLLMバックエンドが必要な場合は、次をインストールします。 後述の独立したllama-serverを使う構成では、Momo Songのvenvへの追加導入は不要です。

.venv/bin/pip install -r requirements-local-llm.txt

背景画像を同じGPUでローカル生成する場合(任意):

.venv/bin/pip install -r requirements-image.txt
# .envで IMAGE_BACKEND=local を設定

画像エンジンはIMAGE_ENGINEで切り替えます。既定のsdxlはSDXL+LCM-LoRA、irisは Iris-3B+4-step Turbo LoRAです。irisでは作詞LLMへの画像プロンプト指示も英語の説明文向けに切り替わり、 UIの縦横比のまま約1MP(16:9なら1344×768)で生成します。導入はtools/setup_iris.shです。 画像生成が有効なら、UIの「表示パラメータ → 画像エンジン」で曲ごとに切り替えられます(IMAGE_ENGINEは既定値)。

画像を生成しない場合はIMAGE_BACKEND=offのままで構いません。リモート画像APIのPNG仕様、 ローカル画像エンジン(SDXL/Iris)の設定、LLM要件は 外部サービス要件にまとめています。 RTX PRO 4000 Blackwellでは、YuE2待機中との共存状態で896×512をウォーム平均約3.72秒、 GPU使用量の増分約5.8GiBで生成できました。詳細は 画像生成の実測を参照してください。

LLM作詞、YuE2音楽生成、背景画像、レスポンス化を含む全フローは、完成音声に対して約2.24倍速、 3分曲換算で約80〜81秒でした。計測条件と内訳は 全生成フローの実測を参照してください。

Gemma 4 E2BをCPU版llama-serverのOpenAI互換APIとして使うこともできます。i5-12400Fの CPU native buildではprompt 146 token/s、生成21 token/s、実作詞フロー約31秒を確認しています。 CPU LLM実測も参照してください。

外部LLMが停止している場合だけCPU版へ切り替えるには、.envで LLM_FALLBACK_ENABLED=true、LLM_FALLBACK_SERVER_BIN、LLM_FALLBACK_MODEL_PATHを設定します。 設定例と動作条件は外部サービス構成を参照してください。

楽譜PDF出力を使う場合(任意):

./tools/setup_score_renderer.sh   # SheetSage2レンダラ取得 + Playwright/Chromium導入

1台のPCで全機能を動かす構成

音楽生成、作詞LLM、背景画像生成、Web UIはすべて1台のPCで実行できます。 検証時はRTX PRO 4000 Blackwell 24GBを使い、次の構成で動作させました。

ブラウザ
  └─ Momo Song v5                  http://127.0.0.1:64654
       ├─ Gemma 4 E4B llama-server   http://127.0.0.1:64651/v1
       ├─ YUE2-Refined-Engine        http://127.0.0.1:8002
       └─ ローカルDiffusers          Momo Songプロセス内(ポートなし)

任意の障害時経路
  └─ Gemma 4 E2B CPU fallback     http://127.0.0.1:64650/v1

1. ローカルLLMを起動

検証では、llama.cppのllama-serverとGemma 4 E4B Q4_K_Mを使用しました。 パスとGPU番号は環境に合わせて変更してください。CUDA_VISIBLE_DEVICES=1を指定すると、 その物理GPUは各プロセス内でcuda:0として見えます。

LLAMA_SERVER_BIN=/path/to/llama.cpp/build/bin/llama-server
GEMMA_MODEL_PATH=/path/to/gemma-4-E4B-it-Q4_K_M.gguf

CUDA_VISIBLE_DEVICES=1 "$LLAMA_SERVER_BIN" \
  --model "$GEMMA_MODEL_PATH" \
  --host 127.0.0.1 \
  --port 64651 \
  --n-gpu-layers 999 \
  --main-gpu 0 \
  --ctx-size 8192 \
  --parallel 1 \
  --cache-type-k q4_0 \
  --reasoning off \
  --jinja

LLMをGPUに常駐させない場合は、CPU LLM実測の Gemma 4 E2B構成を通常のLLMまたはフォールバックとして利用できます。

2. 1台構成用の.env

次の設定で、LLMとYUE2-Refined-Engineはループバック経由、画像はローカル推論になります。

MOMO_HOST=127.0.0.1
MOMO_PORT=64654

LLM_API_URL=http://127.0.0.1:64651/v1
LLM_API_KEY=local-not-required
LLM_MODEL=unsloth/gemma-4-E4B-it-GGUF:Q4_K_M
LLM_REQUEST_TIMEOUT=120

YUE2_API_URL=http://127.0.0.1:8002
# YUE2_DIR=/absolute/path/to/YUE2-Refined-Engine

# 検証機で使用した物理GPU番号。利用環境に合わせて変更する。
CUDA_VISIBLE_DEVICES=1

IMAGE_BACKEND=local
# UIの画像エンジン既定値。irisを使う場合は tools/setup_iris.sh で導入
IMAGE_ENGINE=sdxl
IMAGE_MODEL_ID=Linaqruf/animagine-xl-2.0
IMAGE_LCM_LORA_ID=latent-consistency/lcm-lora-sdxl
IMAGE_CPU_OFFLOAD=true
IMAGE_STEPS=4
IMAGE_GUIDANCE_SCALE=1.0

CPUフォールバックも同時に有効化する場合は、上記に次を追加します。

LLM_FALLBACK_ENABLED=true
LLM_FALLBACK_SERVER_BIN=/path/to/llama.cpp/build-cpu-native/bin/llama-server
LLM_FALLBACK_MODEL_PATH=/path/to/gemma-4-E2B-it-Q4_K_M.gguf
LLM_FALLBACK_API_URL=http://127.0.0.1:64650/v1
LLM_FALLBACK_MODEL=local-gemma
LLM_FALLBACK_THREADS=6

Gemma 4 E4Bを起動せず、CPU版Gemma 4 E2Bだけを使う場合は、上記の LLM_API_URLとLLM_MODELも次の値へ置き換えます。この構成では、初回接続時に CPU版llama-serverが自動起動します。

LLM_API_URL=http://127.0.0.1:64650/v1
LLM_MODEL=local-gemma
LLM_FALLBACK_ENABLED=true

3. Gemma 4 E2BをCPU実行する最小VRAM構成

Gemma 4 E4BをGPUで動かさず、Gemma 4 E2B Q4_K_MをCPUフォールバックとして 使用する場合、LLMのVRAM使用量はほぼ0にできます。この場合の設計上の最小GPUは 12GB級です。

処理VRAM目安
Gemma 4 E2B CPUほぼ0GB
YuE2 fast-lowvramピーク約9GB
ローカル画像生成(SDXL)画像生成フェーズの増分約5.8GB
ローカル画像生成(Iris int8)画像生成フェーズのピーク約7.8GB
設計上の最小GPU12GB級
安全余裕を含む推奨16GB以上
全フロー実測済み24GB

YuE2と画像生成は直列実行するため、上記の約9GBと画像生成分を同時に 確保するわけではありません。ただし、12GB GPUでの音楽・画像を含む全フローは未実測です。 IrisのCPU offloadは重みのピン留めコピー約7.2GiBをシステムRAMに常駐させます。 実運用ではドライバメモリや一時バッファを考慮し、16GB以上を推奨します。 また、CPU LLMと画像モデルのCPU offloadには別途システムRAMが必要です。

12GB級GPUを使う場合は、.envで次を指定します。

YUE2_PROFILE=fast-lowvram
YUE2_MEMORY_BUDGET_GIB=12

IMAGE_BACKEND=local
IMAGE_CPU_OFFLOAD=true
IMAGE_STEPS=4
IMAGE_GUIDANCE_SCALE=1.0

既定のYUE2_PROFILE=fastは音楽生成だけでVRAMピークが約15GBに達するため、 12GB級GPUでは使用せず、fast-lowvramへ切り替えてください。

4. 音楽・画像・Web UIを起動

別ターミナルで次を実行します。start.shはYUE2-Refined-Engineを自動起動し、 モデルの準備完了後にMomo Songを起動します。背景画像モデルは初回の画像生成時に遅延ロードされます。

./start.sh

検証した実行順序は「LLMによる作詞→YuE2による音楽生成→ローカル画像エンジンによる背景画像生成」です。 YuE2と画像生成を直列化することでVRAMピークの重なりを避け、画像生成後はCPU offloadで 画像モデルをCPU側へ戻します。検証時の処理時間とVRAM使用量は 全生成フローの実測とローカル背景画像生成の実測を参照してください。

起動

YUE2-Refined-Engineだけをバックグラウンドで起動する場合:

./start_yue2_server.sh
# ログの確認
tail -f yue2_api_server.log

YUE2-Refined-Engineの起動からMomo Songの起動まで一括で行う場合:

./start.sh    # YUE2-Refined-Engine起動→model_ready待ち→UI起動
# ブラウザで http://localhost:64654

環境変数は .env.example を参照してください。 Webアプリ自身の生存確認は http://localhost:64654/health で行えます。

start_yue2_server.shとstart.shは、既にYuE2 APIが動いていればそのまま利用します。動いていない場合は、YUE2_DIRまたは YUE2_RUN_SCRIPTで指定した起動スクリプトを実行します。未指定時は、このリポジトリと同じ階層にある YUE2-Refined-Engine/を探索します。

テスト

外部APIやGPUを使用しない基本テストは次のコマンドで実行できます。

.venv/bin/python -m unittest discover -s tests -v

実際の楽曲生成を含む確認には、別途YuE2 APIと作詞LLM APIが必要です。

セキュリティ上の注意

このアプリにはユーザー認証や生成回数制限がありません。既定では127.0.0.1だけで待ち受けます。 インターネットへ直接公開せず、必要な場合は認証・アクセス制限を備えたリバースプロキシの内側で運用してください。

YuE2向けプロンプトについて

  • styleは「言語, ジャンル形容, ボーカルの性格, 楽器の質感, フレージング, BPM」の記述文 (タグ羅列ではない)をLLMに生成させ、サーバ側でBPM/キー/言語を合成します
  • 歌詞は [Verse]/[Chorus]/[Bridge]/[Outro] タグ付き。行数がほぼ曲の長さになります(1行≒8秒)
  • インストゥルメンタルは「ボーカル関連語を一切含まない肯定形の器楽記述+[Instrumental]歌詞」方式 (否定形の"no vocals"より安定することをASR検証で確認)。さらにMOMO_ASR_PYTHON設定時は 生成後に歌声を自動検査し、検出時は再生成します

ライセンス

本リポジトリのソースコードの著作権者: © 2026 YUZUKI (animede)。著作権表示と NOTICE の内容は、Apache-2.0 第4条に基づき再配布時も保持してください。

  • 本リポジトリのコード: Apache License 2.0
  • static/*.png: 本プロジェクトの配布用画像素材(再配布確認済み)
  • 同梱の abcjs: MIT。その他は THIRD_PARTY_NOTICES.md を参照
  • YuE2/SheetSage2のモデル重みは本リポジトリに含まれません(CC BY-NC 4.0、各上流の条件に従ってください)

変更履歴は CHANGELOG.md、v5.0.0の公開文面は リリースノート案、脆弱性の連絡方法は SECURITY.mdを参照してください。 公開前の確認状況は docs/RELEASE_CHECKLIST.md にまとめています。

animede/momo-song-v5

HTML

1

10 commits

updated Oct 13, 2026

See the code

README

Momo Song v5

現在の段階: v5.0.0公開候補版。主要な生成・楽譜・ダウンロード経路は統合確認済みです。

歌詞生成(LLM)、YuE2による作曲、楽譜(ABC)の表示・編集・再生成、背景演出を統合したWebアプリケーションです。 YuE2 の「ホワイトボックス作曲」 (音声化前に楽譜を確認・編集できる)を活かした楽譜ワークフローを追加しています。 サーバ側には YUE2-Refined-Engine を使用します。 公開版では、楽譜プランからの編集に対応する修正を含むサーバーリビジョンを固定します。 現在の基準リビジョンはb64625fで、対応修正の公開後にこの記載を確定します。

Momo Song v5で生成曲を再生している画面

主な機能

  • ローカル/リモートLLM(OpenAI互換API)による歌詞・曲解説の生成
  • YuE2による作曲(48kHz FLAC)。作曲モード full(楽譜+コード) / melody / off を選択可能
  • 楽譜パネル: ABC記譜のテキスト編集とビジュアル五線譜表示(abcjs)の切り替え、 「この楽譜で再生成」「同じ楽譜で別テイク」「楽譜のみ生成→確認して音声化」、楽譜PDF出力(任意機能)
  • 生成が長さ上限で切り詰められた場合の警告表示、ABC方言(YuE2ネイティブ)の編集ルールチートシート
  • インストゥルメンタル生成(検証済みのプロンプト戦略+任意のASR自動検査)
  • 曲に合う背景画像の生成(任意)・音量/周波数連動の演出・ループ生成・履歴と一括ダウンロード

楽譜ワークフロー

生成されたABC楽譜は、テキストとビジュアル五線譜を切り替えて確認できます。編集した楽譜からの再生成や、 同じ楽譜を使った別テイクの生成にも対応します。

生成曲とビジュアル楽譜を表示したMomo Song v5の画面

必要なもの

依存必須/任意備考
YUE2-Refined-Engine必須YuE2音楽生成APIサーバ。BF16対応NVIDIA GPU、VRAM実測9〜15GB
OpenAI互換LLM API必須作詞用。Gemma系で動作確認(gemma-4-31B / gemma-4-E4B)
背景画像生成任意off / PNG対応リモートAPI / ローカル(SDXL+LCM-LoRA または Iris-3B Turbo、UIで切替)。無効・失敗時は選択中の初期背景を維持
faster-whisper入りvenv任意インスト生成のASR検査(MOMO_ASR_PYTHON)
SheetSage2レンダラ任意楽譜PDF出力。tools/setup_score_renderer.shで取得(CC BY-NC 4.0)

セットアップ

python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
cp .env.example .env
# .env のLLM/YuE2接続先を環境に合わせて編集

start.shは.envがあれば自動的に読み込みます。Pythonプロセス内で llama-cpp-pythonを使う任意のローカルLLMバックエンドが必要な場合は、次をインストールします。 後述の独立したllama-serverを使う構成では、Momo Songのvenvへの追加導入は不要です。

.venv/bin/pip install -r requirements-local-llm.txt

背景画像を同じGPUでローカル生成する場合(任意):

.venv/bin/pip install -r requirements-image.txt
# .envで IMAGE_BACKEND=local を設定

画像エンジンはIMAGE_ENGINEで切り替えます。既定のsdxlはSDXL+LCM-LoRA、irisは Iris-3B+4-step Turbo LoRAです。irisでは作詞LLMへの画像プロンプト指示も英語の説明文向けに切り替わり、 UIの縦横比のまま約1MP(16:9なら1344×768)で生成します。導入はtools/setup_iris.shです。 画像生成が有効なら、UIの「表示パラメータ → 画像エンジン」で曲ごとに切り替えられます(IMAGE_ENGINEは既定値)。

画像を生成しない場合はIMAGE_BACKEND=offのままで構いません。リモート画像APIのPNG仕様、 ローカル画像エンジン(SDXL/Iris)の設定、LLM要件は 外部サービス要件にまとめています。 RTX PRO 4000 Blackwellでは、YuE2待機中との共存状態で896×512をウォーム平均約3.72秒、 GPU使用量の増分約5.8GiBで生成できました。詳細は 画像生成の実測を参照してください。

LLM作詞、YuE2音楽生成、背景画像、レスポンス化を含む全フローは、完成音声に対して約2.24倍速、 3分曲換算で約80〜81秒でした。計測条件と内訳は 全生成フローの実測を参照してください。

Gemma 4 E2BをCPU版llama-serverのOpenAI互換APIとして使うこともできます。i5-12400Fの CPU native buildではprompt 146 token/s、生成21 token/s、実作詞フロー約31秒を確認しています。 CPU LLM実測も参照してください。

外部LLMが停止している場合だけCPU版へ切り替えるには、.envで LLM_FALLBACK_ENABLED=true、LLM_FALLBACK_SERVER_BIN、LLM_FALLBACK_MODEL_PATHを設定します。 設定例と動作条件は外部サービス構成を参照してください。

楽譜PDF出力を使う場合(任意):

./tools/setup_score_renderer.sh   # SheetSage2レンダラ取得 + Playwright/Chromium導入

1台のPCで全機能を動かす構成

音楽生成、作詞LLM、背景画像生成、Web UIはすべて1台のPCで実行できます。 検証時はRTX PRO 4000 Blackwell 24GBを使い、次の構成で動作させました。

ブラウザ
  └─ Momo Song v5                  http://127.0.0.1:64654
       ├─ Gemma 4 E4B llama-server   http://127.0.0.1:64651/v1
       ├─ YUE2-Refined-Engine        http://127.0.0.1:8002
       └─ ローカルDiffusers          Momo Songプロセス内(ポートなし)

任意の障害時経路
  └─ Gemma 4 E2B CPU fallback     http://127.0.0.1:64650/v1

1. ローカルLLMを起動

検証では、llama.cppのllama-serverとGemma 4 E4B Q4_K_Mを使用しました。 パスとGPU番号は環境に合わせて変更してください。CUDA_VISIBLE_DEVICES=1を指定すると、 その物理GPUは各プロセス内でcuda:0として見えます。

LLAMA_SERVER_BIN=/path/to/llama.cpp/build/bin/llama-server
GEMMA_MODEL_PATH=/path/to/gemma-4-E4B-it-Q4_K_M.gguf

CUDA_VISIBLE_DEVICES=1 "$LLAMA_SERVER_BIN" \
  --model "$GEMMA_MODEL_PATH" \
  --host 127.0.0.1 \
  --port 64651 \
  --n-gpu-layers 999 \
  --main-gpu 0 \
  --ctx-size 8192 \
  --parallel 1 \
  --cache-type-k q4_0 \
  --reasoning off \
  --jinja

LLMをGPUに常駐させない場合は、CPU LLM実測の Gemma 4 E2B構成を通常のLLMまたはフォールバックとして利用できます。

2. 1台構成用の.env

次の設定で、LLMとYUE2-Refined-Engineはループバック経由、画像はローカル推論になります。

MOMO_HOST=127.0.0.1
MOMO_PORT=64654

LLM_API_URL=http://127.0.0.1:64651/v1
LLM_API_KEY=local-not-required
LLM_MODEL=unsloth/gemma-4-E4B-it-GGUF:Q4_K_M
LLM_REQUEST_TIMEOUT=120

YUE2_API_URL=http://127.0.0.1:8002
# YUE2_DIR=/absolute/path/to/YUE2-Refined-Engine

# 検証機で使用した物理GPU番号。利用環境に合わせて変更する。
CUDA_VISIBLE_DEVICES=1

IMAGE_BACKEND=local
# UIの画像エンジン既定値。irisを使う場合は tools/setup_iris.sh で導入
IMAGE_ENGINE=sdxl
IMAGE_MODEL_ID=Linaqruf/animagine-xl-2.0
IMAGE_LCM_LORA_ID=latent-consistency/lcm-lora-sdxl
IMAGE_CPU_OFFLOAD=true
IMAGE_STEPS=4
IMAGE_GUIDANCE_SCALE=1.0

CPUフォールバックも同時に有効化する場合は、上記に次を追加します。

LLM_FALLBACK_ENABLED=true
LLM_FALLBACK_SERVER_BIN=/path/to/llama.cpp/build-cpu-native/bin/llama-server
LLM_FALLBACK_MODEL_PATH=/path/to/gemma-4-E2B-it-Q4_K_M.gguf
LLM_FALLBACK_API_URL=http://127.0.0.1:64650/v1
LLM_FALLBACK_MODEL=local-gemma
LLM_FALLBACK_THREADS=6

Gemma 4 E4Bを起動せず、CPU版Gemma 4 E2Bだけを使う場合は、上記の LLM_API_URLとLLM_MODELも次の値へ置き換えます。この構成では、初回接続時に CPU版llama-serverが自動起動します。

LLM_API_URL=http://127.0.0.1:64650/v1
LLM_MODEL=local-gemma
LLM_FALLBACK_ENABLED=true

3. Gemma 4 E2BをCPU実行する最小VRAM構成

Gemma 4 E4BをGPUで動かさず、Gemma 4 E2B Q4_K_MをCPUフォールバックとして 使用する場合、LLMのVRAM使用量はほぼ0にできます。この場合の設計上の最小GPUは 12GB級です。

処理VRAM目安
Gemma 4 E2B CPUほぼ0GB
YuE2 fast-lowvramピーク約9GB
ローカル画像生成(SDXL)画像生成フェーズの増分約5.8GB
ローカル画像生成(Iris int8)画像生成フェーズのピーク約7.8GB
設計上の最小GPU12GB級
安全余裕を含む推奨16GB以上
全フロー実測済み24GB

YuE2と画像生成は直列実行するため、上記の約9GBと画像生成分を同時に 確保するわけではありません。ただし、12GB GPUでの音楽・画像を含む全フローは未実測です。 IrisのCPU offloadは重みのピン留めコピー約7.2GiBをシステムRAMに常駐させます。 実運用ではドライバメモリや一時バッファを考慮し、16GB以上を推奨します。 また、CPU LLMと画像モデルのCPU offloadには別途システムRAMが必要です。

12GB級GPUを使う場合は、.envで次を指定します。

YUE2_PROFILE=fast-lowvram
YUE2_MEMORY_BUDGET_GIB=12

IMAGE_BACKEND=local
IMAGE_CPU_OFFLOAD=true
IMAGE_STEPS=4
IMAGE_GUIDANCE_SCALE=1.0

既定のYUE2_PROFILE=fastは音楽生成だけでVRAMピークが約15GBに達するため、 12GB級GPUでは使用せず、fast-lowvramへ切り替えてください。

4. 音楽・画像・Web UIを起動

別ターミナルで次を実行します。start.shはYUE2-Refined-Engineを自動起動し、 モデルの準備完了後にMomo Songを起動します。背景画像モデルは初回の画像生成時に遅延ロードされます。

./start.sh

検証した実行順序は「LLMによる作詞→YuE2による音楽生成→ローカル画像エンジンによる背景画像生成」です。 YuE2と画像生成を直列化することでVRAMピークの重なりを避け、画像生成後はCPU offloadで 画像モデルをCPU側へ戻します。検証時の処理時間とVRAM使用量は 全生成フローの実測とローカル背景画像生成の実測を参照してください。

起動

YUE2-Refined-Engineだけをバックグラウンドで起動する場合:

./start_yue2_server.sh
# ログの確認
tail -f yue2_api_server.log

YUE2-Refined-Engineの起動からMomo Songの起動まで一括で行う場合:

./start.sh    # YUE2-Refined-Engine起動→model_ready待ち→UI起動
# ブラウザで http://localhost:64654

環境変数は .env.example を参照してください。 Webアプリ自身の生存確認は http://localhost:64654/health で行えます。

start_yue2_server.shとstart.shは、既にYuE2 APIが動いていればそのまま利用します。動いていない場合は、YUE2_DIRまたは YUE2_RUN_SCRIPTで指定した起動スクリプトを実行します。未指定時は、このリポジトリと同じ階層にある YUE2-Refined-Engine/を探索します。

テスト

外部APIやGPUを使用しない基本テストは次のコマンドで実行できます。

.venv/bin/python -m unittest discover -s tests -v

実際の楽曲生成を含む確認には、別途YuE2 APIと作詞LLM APIが必要です。

セキュリティ上の注意

このアプリにはユーザー認証や生成回数制限がありません。既定では127.0.0.1だけで待ち受けます。 インターネットへ直接公開せず、必要な場合は認証・アクセス制限を備えたリバースプロキシの内側で運用してください。

YuE2向けプロンプトについて

  • styleは「言語, ジャンル形容, ボーカルの性格, 楽器の質感, フレージング, BPM」の記述文 (タグ羅列ではない)をLLMに生成させ、サーバ側でBPM/キー/言語を合成します
  • 歌詞は [Verse]/[Chorus]/[Bridge]/[Outro] タグ付き。行数がほぼ曲の長さになります(1行≒8秒)
  • インストゥルメンタルは「ボーカル関連語を一切含まない肯定形の器楽記述+[Instrumental]歌詞」方式 (否定形の"no vocals"より安定することをASR検証で確認)。さらにMOMO_ASR_PYTHON設定時は 生成後に歌声を自動検査し、検出時は再生成します

ライセンス

本リポジトリのソースコードの著作権者: © 2026 YUZUKI (animede)。著作権表示と NOTICE の内容は、Apache-2.0 第4条に基づき再配布時も保持してください。

  • 本リポジトリのコード: Apache License 2.0
  • static/*.png: 本プロジェクトの配布用画像素材(再配布確認済み)
  • 同梱の abcjs: MIT。その他は THIRD_PARTY_NOTICES.md を参照
  • YuE2/SheetSage2のモデル重みは本リポジトリに含まれません(CC BY-NC 4.0、各上流の条件に従ってください)

変更履歴は CHANGELOG.md、v5.0.0の公開文面は リリースノート案、脆弱性の連絡方法は SECURITY.mdを参照してください。 公開前の確認状況は docs/RELEASE_CHECKLIST.md にまとめています。