YuE2: generación musical abierta con partituras editables y agentes de IA
YuE2 convierte letras y prompts de estilo en partituras musicales editables, canciones de calidad puntera, versiones cover zero-shot y revisiones dirigidas por agentes.
YuE2: generación musical abierta con partituras editables y agentes de IA
La mayoría de los generadores musicales de IA ocultan el proceso de composición tras una única operación de prompt a audio. Esto los hace cómodos, pero difíciles de controlar: si la armonía es incorrecta, la melodía se desvía o el arreglo necesita cambiar, la solución habitual es regenerarlo todo y esperar obtener un resultado mejor.
YuE2 adopta un enfoque diferente. Primero crea un plan musical explícito y editable —que contiene información sobre la melodía y los acordes— y después lo renderiza como una grabación estéreo completa. El resultado es un sistema abierto de generación musical diseñado no solo para crear, sino también para producir covers zero-shot, editar partituras y desarrollar flujos de trabajo agénticos.
¿Qué diferencia a YuE2?
YuE2 admite tres flujos de trabajo relacionados:
- Creación: proporciona letras y un prompt de estilo, y genera una partitura y una canción completa.
- Generación de covers: transcribe una grabación de origen, conserva su melodía y la reinterpreta con un estilo nuevo.
- Edición agéntica: permite que una persona o un agente de IA revise la armonía, la melodía, la letra, el tempo, la instrumentación o la estructura de la canción antes de renderizar otra versión.
La idea central es una cadena musical de caja blanca. En lugar de tratar el audio como un artefacto final opaco, YuE2 expone la composición intermedia para que pueda inspeccionarse, reproducirse, modificarse y regenerarse.
El repositorio informa de que YuE2 es competitivo con Suno v5 y v6 en WildSongBench. Su configuración best-of-8 alcanza un SongBench Avg de 6.9632, la media más alta observada entre las configuraciones evaluadas. El benchmark incluye 192 prompts, aunque los autores señalan que la pequeña diferencia entre los sistemas punteros no demuestra significación estadística.
De las letras a una partitura editable
La arquitectura combina una columna vertebral de mezcla de transformadores autorregresiva/no autorregresiva con flow matching y un autoencoder variacional:
- El modelo predice de forma autorregresiva un plan simbólico y tokens musicales semánticos.
- Los latentes acústicos se generan mediante flow matching.
- Un VAE decodifica esos latentes en audio estéreo a 48 kHz.
La API por etapas hace visibles estos pasos:
plan() → generate_semantic() → synthesize() → decode()
Esta separación resulta útil para los desarrolladores. Puedes reutilizar un plan exacto, seleccionar un decodificador, conservar artefactos intermedios y comparar varias realizaciones de audio sin descartar la composición.
La creación, la generación de covers y la edición se diferencian principalmente por el origen de la partitura:
- YuE2 genera la partitura a partir de las letras y el estilo.
- SheetSage2 transcribe una grabación de origen a una partitura de melodía.
- Un usuario o agente edita una composición ABC existente.
Instalar y ejecutar YuE2 localmente
El entorno de inicio rápido actual está dirigido a Linux, Python 3.12 y una GPU NVIDIA con compatibilidad con BF16 y 24 GB de VRAM. Los archivos del modelo se descargan de Hugging Face durante el primer uso, y la canalización predeterminada produce audio estéreo de 48 kHz sin cuantizar.
git clone https://github.com/multimodal-art-projection/YuE.git
cd YuE
python3.12 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install .
python examples/generate.py \
--output outputs/first-song
El directorio generado es más que una exportación de audio. Conserva la partitura, los tokens semánticos, los latentes acústicos, la configuración de generación y las identidades de los modelos. Mantener estos artefactos hace que los experimentos sean reproducibles y proporciona material para ediciones posteriores.
La interfaz de Python es igualmente compacta:
import json
from pathlib import Path
from yue2 import YuE2Pipeline
request = json.loads(
Path("examples/song.json").read_text(encoding="utf-8")
)
with YuE2Pipeline.from_pretrained(
"m-a-p/YuE2-3B",
device="cuda",
) as pipe:
song = pipe(**request)
song.save_artifacts("outputs/my-song")
print(song.truncated)
Elige el modo de generación adecuado
YuE2 expone una configuración cot que controla cuánto se utiliza la planificación simbólica:
| Configuración | Comportamiento |
|---|---|
cot="full" |
Genera un plan editable de melodía y acordes; es el modo predeterminado para canciones nuevas. |
cot="melody" |
Usa un plan de melodía con acompañamiento libre; se recomienda para covers. |
cot="off" |
Genera directamente a partir de las letras y el estilo. |
También puedes proporcionar una partitura ABC mediante abc=.... La generación con partitura completa ofrece más control sobre la armonía, mientras que el condicionamiento basado únicamente en la melodía deja que el acompañamiento se adapte libremente al estilo objetivo.
Genera un cover zero-shot
Un flujo de trabajo de cover comienza con la transcripción. Usa SheetSage2 para extraer la melodía de origen como notación ABC, revisa la transcripción y después proporciona a YuE2 nuevas letras o un estilo objetivo diferente.
Para los covers, el repositorio recomienda cot="melody" y una partitura sin símbolos de acordes. Esto conserva la melodía esencial y permite que YuE2 cree un acompañamiento nuevo que encaje con el género solicitado.
from pathlib import Path
from yue2 import YuE2Pipeline
with YuE2Pipeline.from_pretrained(
"m-a-p/YuE2-3B",
device="cuda",
) as pipe:
cover = pipe(
style=(
"English, jazz-funk, warm lead vocal, Rhodes, "
"bass and drums"
),
lyrics=Path("cover-lyrics.txt").read_text(encoding="utf-8"),
abc=Path("cover-score/score.abc").read_text(encoding="utf-8"),
cot="melody",
seed=42,
)
cover.save_artifacts("outputs/cover")
La evaluación de covers zero-shot resulta destacable: en 948 obras, YuE2 con partitura completa alcanza un mAP CLEWS de 0.647, frente a 0.006 sin partitura. Esto se logra con el generador general, en lugar de un modelo ajustado específicamente para covers. Los covers basados únicamente en la melodía sacrifican parte de la fidelidad al origen a cambio de una mayor libertad para cambiar el arreglo.
SheetSage2 se ejecuta en un entorno separado y carga automáticamente su codificador MERT2. El repositorio incluye una guía completa de transcripción y generación, además de un ejemplo de melodía original para la generación condicionada por partitura sin procesar primero una grabación.
Edita la composición en lugar de regenerarla a ciegas
La partitura simbólica es la interfaz más importante de YuE2 para los desarrolladores. Primero exporta un plan:
import json
from pathlib import Path
from yue2 import YuE2Pipeline
request = json.loads(
Path("examples/song.json").read_text(encoding="utf-8")
)
with YuE2Pipeline.from_pretrained(
"m-a-p/YuE2-3B",
device="cuda",
) as pipe:
plan = pipe.plan(**request)
plan.save("outputs/plan")
Copia outputs/plan/score.abc a un archivo editable, como edited.abc. Después puedes revisar manualmente o mediante un agente la armonía, la melodía, el tempo, la instrumentación o la estructura. Renderiza la partitura modificada con:
python examples/generate.py \
--request examples/song.json \
--abc-file edited.abc \
--cot full \
--output outputs/edited
Esto no es una edición que conserve la forma de onda. YuE2 genera una grabación completa nueva a partir de la composición editada; no conserva el audio original más allá de los cambios simbólicos. Esta distinción es importante al diseñar flujos de trabajo de producción o comparar versiones.
Edición musical agéntica
El repositorio incluye un paquete skills/yue2-music/ para agentes compatibles con directorios de habilidades del tipo SKILL.md. Enseña a un agente a:
- Generar canciones a partir de letras y prompts de estilo.
- Transcribir y versionar grabaciones.
- Editar partituras ABC.
- Comprobar invariantes musicales.
- Organizar comparaciones de escucha.
El entorno de ejecución de Python se instala por separado con pip install .; instalar el paquete de habilidades no sustituye al entorno del modelo.
Una solicitud útil para un agente podría ser:
Usa la habilidad yue2-music para crear una canción de piano pop en inglés. Conserva el audio y la partitura originales. Crea una segunda versión con armonía de jazz, conserva la melodía vocal y el orden de las letras, y dame ambas versiones para compararlas.
El proyecto demuestra este estilo de interacción con The Last Train: nueve pasos de edición y catorce versiones transforman una canción de pop mandarín en jazz en inglés, incluyendo una armonía nueva y un solo de saxofón. Cada versión puede escucharse junto con su conversación, partitura, prompt y letras.
Resultados de WildSongBench
El benchmark presentado utiliza 192 prompts de WildSongBench y el decodificador del benchmark, YuE2-Vae-legacy. YuE2 estándar selecciona entre dos candidatos, mientras que best-of-8 selecciona entre ocho.
| Sistema / configuración | SongBench Avg | AudioBox PQ | MuLan | PER |
|---|---|---|---|---|
| YuE2 best-of-8 | 6.9632 | 8.2714 | 0.5051 | 9.79% |
| Mureka 9 | 6.9377 | 8.0226 | 0.4394 | 11.69% |
| Suno v5 | 6.8721 | 8.1698 | 0.5428 | 8.10% |
| YuE2 | 6.7316 | 8.2598 | 0.5068 | 8.44% |
| Suno v5.5 | 6.7150 | 8.1955 | 0.5089 | 5.96% |
| Suno v4.5 | 6.6995 | 8.2541 | 0.5022 | 5.80% |
| Suno v6 | 6.5562 | 8.1296 | 0.4916 | 7.58% |
| Suno v6 Wild | 6.4195 | 8.1785 | 0.4999 | 7.45% |
| LeVo 2 | 6.3247 | 8.3966 | 0.3542 | 26.12% |
| MiniMax Music 2.6 | 6.3222 | 8.1711 | 0.4251 | 24.55% |
| MiniMax Music 3 | 6.2830 | 8.2825 | 0.3928 | 6.27% |
| HeartMuLa | 6.2483 | 8.2933 | 0.3823 | 10.71% |
| Muse | 6.0349 | 8.0517 | 0.3937 | 33.42% |
| ACE-Step 1.5 | 6.0118 | 8.0518 | 0.4372 | 7.46% |
| DiffRhythm 2 | 5.2428 | 7.9782 | 0.3782 | 18.41% |
| YuE 1 | 4.9165 | 7.8683 | 0.2623 | 36.38% |
| SongBloom | 4.2350 | 8.1539 | 0.2697 | 19.19% |
La tabla debe interpretarse como una comparación con múltiples métricas, no como una única clasificación. SongBench Avg favorece a YuE2 best-of-8, mientras que otros sistemas lideran métricas individuales. Los autores advierten explícitamente que las posiciones y las pequeñas diferencias no deben considerarse una prueba de significación estadística.
Modelos y recursos relacionados
YuE2 forma parte de un conjunto más amplio de herramientas de IA musical:
- YuE2-3B: generación, planificación simbólica, covers y edición.
- YuE2-Vae: decodificador predeterminado para generación y escucha.
- YuE2-Vae-legacy: decodificador utilizado en el protocolo del benchmark presentado.
- SheetSage2: transcripción de audio a partitura.
- MERT-v2-FullSong: representaciones de canciones completas utilizadas por SheetSage2.
- MERT-v2-30s: representaciones para grabaciones cortas.
- WildSongBench: prompts de evaluación y recursos del benchmark.
La extracción de características MERT2 es opcional para la generación ordinaria; YuE2 no requiere descargar un modelo MERT2 separado.
Licencias y consideraciones prácticas
El código, la documentación y la habilidad para agentes del repositorio actual están licenciados bajo Apache 2.0. Los pesos de los modelos tienen una licencia independiente CC BY-NC 4.0, y los componentes de terceros conservan sus licencias originales. La rama archivada YuE-v1 conserva su licencia original, mientras que los archivos antiguos yue2-v0.1.6 mantienen las licencias incluidas originalmente.
Esta separación es importante para las implementaciones comerciales. Apache 2.0 cubre el código fuente, pero no concede automáticamente derechos comerciales sobre los pesos de los modelos ni sobre los recursos de terceros. Revisa todas las licencias aplicables antes de lanzar un producto o distribuir contenido generado.
Por qué importa YuE2
La principal contribución de YuE2 no es simplemente otro checkpoint de texto a canción. Propone una abstracción más controlable para la música generativa: componer con símbolos y crear después con sonido. Las partituras hacen que el sistema sea más fácil de inspeccionar, permiten experimentos deterministas o semideterministas y ofrecen una interfaz común para personas y agentes.
Para los desarrolladores, esto abre varios flujos de trabajo prácticos: renderizar por lotes variantes de arreglos, evaluar ediciones frente a invariantes musicales, crear herramientas conversacionales de composición y conservar los artefactos de razonamiento detrás de cada versión de audio. Con una GPU compatible con BF16 y 24 GB, además de los modelos publicados, YuE2 ofrece una vía especialmente abierta desde un prompt de letras hasta una producción musical editable y reproducible.