m-a-p/YuE2-3B — new model trending #30 on Hugging Face
M-A-P released YuE2-3B, an open music generation model that outperforms Suno v5 on WildSongBench and runs locally on a 24GB GPU.
The M-A-P (multimodal-art-projection) team released YuE2-3B, an open-weights music generation model that turns lyrics and a style prompt into full songs with vocals and accompaniment. It uses an AR-NAR Mixture-of-Transformers backbone with symbolic planning and flow matching through a VAE, and supports editable scores (melody and chords, including ABC notation) plus agentic editing workflows. On 192 WildSongBench prompts it reports a SongBench average of 6.9632 (best-of-8) versus 6.8721 for Suno v5, claimed as state of the art among evaluated open and proprietary models. It runs 48 kHz stereo inference locally on a single 24GB NVIDIA GPU without quantization, with companion releases including YuE2-Vae, MERT-v2 encoders, the WildSongBench dataset, and SheetSage2.
- Open-weights model generates complete songs with vocals from lyrics and style prompts.
- Editable score workflow supports melody/chord planning in ABC notation and agentic revisions.
- Reports SongBench average 6.9632 on WildSongBench, ahead of Suno v5's 6.8721.
- Runs 48 kHz stereo inference locally on a single 24GB GPU without quantization.
- Companion releases include YuE2-Vae, MERT-v2 encoders, WildSongBench, and SheetSage2.
Full article2,363 words · extracted from huggingface.co · click to collapse
<p align="center">
<img src="assets/logo.png" alt="YuE logo" width="144" />
</p>
<h1 align="center">🤗 YuE2-3B</h1>
<p align="center"><strong>Frontier music generation with editable scores</strong></p>
<p align="center">
<a href="https://github.com/multimodal-art-projection/YuE"><img alt="GitHub" src="https://img.shields.io/badge/GitHub-YuE-181717?logo=github&logoColor=white" height="20" /></a>
<a href="https://discord.gg/ssAyWMnMzu"><img alt="Join Discord" src="https://img.shields.io/discord/842440537755353128?label=Discord&color=5865F2&logo=discord&logoColor=white" height="20" /></a>
</p>
<p align="center">
<a href="https://map-yue2.github.io/">🎧 Demo</a>
·
<a href="#quick-start">🚀 Quick start</a>
·
<a href="#cover-an-existing-song">🎙️ Cover</a>
·
<a href="#export-a-plan-edit-it-and-generate">🤖 Edit</a>
·
<a href="#speed-and-resources" title="Speed and resources">⚡ Speed</a>
·
<a href="#benchmarks">📊 Benchmarks</a>
·
<a href="#citation">📚 Citation</a>
</p>
<p align="center">
<a href="https://huggingface.co/m-a-p/YuE2-3B"><img alt="🤗 YuE2-3B" src="https://img.shields.io/badge/YuE2--3B-374151?logo=huggingface&logoColor=FFD21E" height="20" /></a>
<a href="https://huggingface.co/m-a-p/YuE2-Vae"><img alt="🤗 YuE2-Vae" src="https://img.shields.io/badge/YuE2--Vae-374151?logo=huggingface&logoColor=FFD21E" height="20" /></a>
<a href="https://huggingface.co/m-a-p/YuE2-Vae-legacy"><img alt="🤗 YuE2-Vae-legacy" src="https://img.shields.io/badge/YuE2--Vae--legacy-374151?logo=huggingface&logoColor=FFD21E" height="20" /></a>
<a href="https://huggingface.co/m-a-p/MERT-v2-30s"><img alt="🤗 MERT-v2-30s" src="https://img.shields.io/badge/MERT--v2--30s-374151?logo=huggingface&logoColor=FFD21E" height="20" /></a>
<a href="https://huggingface.co/m-a-p/MERT-v2-FullSong"><img alt="🤗 MERT-v2-FullSong" src="https://img.shields.io/badge/MERT--v2--FullSong-374151?logo=huggingface&logoColor=FFD21E" height="20" /></a>
<a href="https://huggingface.co/datasets/m-a-p/WildSongBench"><img alt="🤗 WildSongBench" src="https://img.shields.io/badge/WildSongBench-374151?logo=huggingface&logoColor=FFD21E" height="20" /></a>
<a href="https://huggingface.co/m-a-p/SheetSage2"><img alt="SheetSage2" src="https://img.shields.io/badge/SheetSage2-374151?logo=huggingface&logoColor=FFD21E" height="20" /></a>
</p>
**YuE2 is an open music generation model that rivals Suno v5.** Turn lyrics and a style prompt into a complete song with vocals and accompaniment, then shape its melody and chords through an editable score.
**State-of-the-art results on WildSongBench.** YuE2 (best-of-8) achieves the highest SongBench average among all evaluated open and proprietary models: **6.9632**, compared with **6.8721** for Suno v5.

*Frontier song quality and text alignment on 192 WildSongBench prompts. YuE2 uses symbolic planning; Bo8 means best-of-8.*
- **Compose and edit:** melody + chords, melody-only, or direct generation; bring your own ABC score.
- **Edit with an agent:** turn musical feedback into score, style and lyric revisions, then let YuE2 render the next version. [Hear the editing process](https://map-yue2.github.io/#agentic-music-editing).
- **Run locally:** 48 kHz stereo songs on a 24GB GPU, without quantization.
- **Build on it:** Hugging Face loading, text guidance (CFG), and separate planning and synthesis APIs.

*One AR–NAR Mixture-of-Transformers backbone writes the score and semantic tokens, then generates acoustic latents through flow matching. The VAE turns them into stereo audio.*
<a id="listen"></a>
## 🎧 Listen to YuE2
<a id="text-to-music"></a>
### 🎶 Text-to-music
Original songs generated from lyrics and a style prompt.
**Cyber Metal · English · 5:00**
<audio controls preload="none" aria-label="Cyber Metal" src="https://huggingface.co/m-a-p/YuE2-3B/resolve/main/assets/audio/cyber-metal.mp3"></audio>
**今晚不眠 · Mandarin funk / nu-disco · 3:24**
<audio controls preload="none" aria-label="今晚不眠" src="https://huggingface.co/m-a-p/YuE2-3B/resolve/main/assets/audio/tonight-awake.mp3"></audio>
**Passion · English rock · 3:55**
<audio controls preload="none" aria-label="Passion" src="https://huggingface.co/m-a-p/YuE2-3B/resolve/main/assets/audio/passion.mp3"></audio>
*All three songs use [🤗 YuE2-Vae](https://huggingface.co/m-a-p/YuE2-Vae).*
<a id="cover-song"></a>
### 🎙️ Cover songs
Existing songs reimagined in a new style.
[Make your own cover →](#cover-an-existing-song)
**Auld Lang Syne · Jazz-funk cover · 3:10**
<audio controls preload="none" aria-label="Auld Lang Syne — Jazz-funk cover" src="https://huggingface.co/m-a-p/YuE2-3B/resolve/main/assets/audio/auld-lang-syne-jazz-funk-cover.mp3"></audio>
**最炫民族风 · Ballad cover · 4:45**
<audio controls preload="none" aria-label="最炫民族风 — Ballad cover" src="https://huggingface.co/m-a-p/YuE2-3B/resolve/main/assets/audio/zuixuan-ballad-cover.mp3"></audio>
**Jingle Bells · Heavy metal cover · 1:09**
<audio controls preload="none" aria-label="Jingle Bells — Heavy metal cover" src="https://huggingface.co/m-a-p/YuE2-3B/resolve/main/assets/audio/jingle-bells-heavy-metal-cover.mp3"></audio>
<a id="agentic-editing"></a>
### 🤖 Agentic editing
**[Explore the agentic editing demo →](https://map-yue2.github.io/#agentic-music-editing)**
Follow **The Last Train** through **9 steps and 14 versions**, from Mandarin pop to English jazz with modern harmony and a saxophone solo built around two complete statements of “Twinkle, Twinkle, Little Star.” Hear the full songs and inspect the conversation, scores, prompts and lyrics at each step.
[Try editing with an agent →](#export-a-plan-edit-it-and-generate)
<a id="quick-start"></a>
## 🚀 Quick start
Linux · Python 3.10+ · 24GB NVIDIA GPU with BF16 support. Install the inference package:
```bash
python -m pip install huggingface-hub==0.36.2
hf download m-a-p/YuE2-3B yue2_infer-0.1.5-py3-none-any.whl --local-dir .
python -m pip install ./yue2_infer-0.1.5-py3-none-any.whl
```
[Create](#generate-a-song) · [Cover](#cover-an-existing-song) · [Edit & agentic edit](#export-a-plan-edit-it-and-generate)
Load the pipeline once for the examples below:
```python
from pathlib import Path
from yue2 import YuE2Pipeline
pipe = YuE2Pipeline.from_pretrained("m-a-p/YuE2-3B", device="cuda")
```
<a id="generate-a-song"></a>
### 🎶 Create
Turn a style prompt and lyrics into a complete song with vocals and accompaniment.
Use the [style and full lyrics from 今晚不眠](examples/tonight-awake.json), the funk / nu-disco demo above.
```python
import json
from huggingface_hub import hf_hub_download
repo = "m-a-p/YuE2-3B"
prompt_path = hf_hub_download(repo, "examples/tonight-awake.json")
demo = json.loads(Path(prompt_path).read_text(encoding="utf-8"))
style, lyrics = demo["style"], demo["lyrics"]
song = pipe(style=style, lyrics=lyrics, cot="full", seed=demo["seed"])
song.save("song.flac")
song.save_artifacts("outputs/song") # ABC, tokens, latents, audio and settings
```
Defaults are ready to use: `cot="full"` and [🤗 YuE2-Vae](https://huggingface.co/m-a-p/YuE2-Vae).
| Option | What it does |
|---|---|
| `cot="full"` | Melody + chord planning (default) |
| `cot="melody"` | Melody-only planning; recommended for covers |
| `cot="off"` | Generate without a symbolic plan |
| `cfg_scale=1.2` | Experiment with stronger text guidance |
<a id="cover-an-existing-song"></a>
### 🎙️ Cover
Start from an existing recording and give it a new arrangement.
**For covers, we recommend melody-only mode (`cot="melody"`).**
1. **Get the score:** transcribe the existing song with [🤗 SheetSage2](https://huggingface.co/m-a-p/SheetSage2) and save its melody ABC **without chord symbols** as `melody.abc`.
2. **Get the lyrics:** ask an agent to find them online, or transcribe the singing with [Qwen3-ASR](https://huggingface.co/Qwen/Qwen3-ASR-1.7B) or the [Gemini API](https://ai.google.dev/gemini-api/docs/audio). Check the words, organize them into sections matching the recording, and save them as `cover_lyrics.txt`.
Text extracted automatically; images, tables and formatting may be missing. Original: https://huggingface.co/m-a-p/YuE2-3B