All posts
Open Source & Dev Tools

오픈소스 YuE2, Suno와 견주는 하얀 상자 음악 생성

오픈소스 YuE2가 상징 계획(symbolic planning) 방식으로 만든 멜로디·코드 악보를 편집할 수 있게 했어요. WildSongBench에서 Suno와 경쟁하는 스코어를 내면서도, 무게 중심은 코드가 Apache 2.0, 모델은 CC BY-NC 4.0으로 열려 있어요.

Sep 15, 2026 6분 읽기

YuE2가 이번 주 GitHub 트렌딩에 올랐어요

별 8.6천 개, 포크 924개. 오늘 하루 새로 붙은 스타만 578개가 나왔어요.

HKUST, M·A·P, 스탠퍼드, NYU가 함께 만든 오픈소스 음악 생성 프로젝트예요. 슬로건은 '기호로 작곡하고, 소리로 완성한다'예요. 가사와 스타일 프롬프트를 주면 멜로디·코드 계획을 먼저 쓰고, 그 계획을 보컬과 반주를 갖춘 완성된 곡으로 실현해요.

코드는 Apache 2.0, 모델 가중치는 CC BY-NC 4.0으로 모두 열렸어요.

기존 음악 생성 모델의 한계는 '블랙박스'였어요

Suno 같은 상용 서비스는 가사와 스타일만 넣으면 결과물을 주지만, 그 곡조가 왜 그렇게 나왔는지는 확인하거나 고칠 수 없어요. 보컬 톤이라거나 반주 구성을 바꾸고 싶어도 텍스트 프롬프트에 기대는 수밖에 없죠.

열린 모델들이 속속 나왔지만, 대부분 그 구조 자체는 비슷했어요. 1세대 YuE도 그래서 블랙박스에 가까웠고요.

핵심: 상징 계획이라는 '하얀 상자'

YuE2의 첫 번째 차이는 백색 상자 접근이에요. 곡을 만들기 전에 멜로디와 코드를 명시적인 악보(score)로 뽑아두고, 렌더링 전에 사람이나 에이전트가 그 내용을 읽고 바꿀 수 있게 했어요.

이름이 symbolic planning(상징 계획)인 이유도 여기에 있어요. 텍스트만으로 곡을 짜는 대신, ABC 악보 같은 기호적 표현으로 계획을 세우는 거예요. 실행 시 기본값인 cot="full" 모드는 편집 가능한 멜로디·코드 계획을 내고, cot="off"는 기존처럼 가사와 스타일에서 바로 생성해요.

YuE2 아키텍처: 스타일과 가사가 편집 가능한 악보, 의미 토큰, 음향 레이턴트, 오디오로 이어짐출처: multimodal-art-projection/YuE GitHub 리포

내부 동작은 단계형 파이프라인으로 열려 있어요

하나의 AR–NAR Mixture-of-Transformers 백본이 악보와 의미 토큰을 자기회귀적으로 예측하고, 플로 매칭으로 음향 레이턴트를 만든 뒤 VAE가 스테레오 오디오로 디코딩해요. 공개된 Python API는 plan()generate_semantic()synthesize()decode() 단계로 구성돼요.

import json
from pathlib import Path
from yue2 import YuE2Pipeline

request = json.loads(Path("examples/song.json").read_text())
with YuE2Pipeline.from_pretrained("m-a-p/YuE2-3B", device="cuda") as pipe:
    song = pipe(**request)
    song.save_artifacts("outputs/my-song")

출력 폴더에는 오디오뿐 아니라 악보, 의미 토큰, 음향 레이턴트, 생성 설정, 모델 정보까지 함께 남아요.

만들기·커버·에이전트 편집, 세 가지 동작

YuE2가 다루는 작업은 생성에서 한 발 더 나아가요.

  • 만들기: 가사 + 스타일 → 악보 → 전체 곡
  • 커버: 원곡 녹음을 전사해 새 스타일로 재해석
  • 에이전트 편집: 악보·스타일·가사 요청을 대화로 고쳐 새 녹음 생성

커버는 cot="melody" 모드와 코드 기호 없는 악보로 진행해요.

전체 악보 기반 커버는 948개 작품에서 CLEWS mAP 0.647을 냈어요. 같은 조건에서 악보 없이 돌리면 0.006에 그쳐요. 커버 전용 파인튜닝 없이 같은 생성 체크포인트로 낸 수치예요.

에이전트 편집은 리포에 담긴 yue2-music 스킬 패키지가 담당해요. 악보를 고치고, 화성·멜로디·형식을 바꾸고, 청취 비교를 정리하는 일을 에이전트가 하도록 가르쳐요. 데모에서는 'The Last Train' 곡을 만다린 팝에서 잉글리시 재즈로, 새 화성과 색소폰 솔로를 얹어 9단계·14개 버전으로 편집해요.

WildSongBench에서 Suno와 나란히

자동 평가 벤치마크 WildSongBench(192개 프롬프트, 2026년 9월 12일)에서 YuE2의 best-of-8 설정이 SongBench Avg 6.9632로 평가된 설정 중 최고 평균을 기록했어요.

시스템 / 설정SongBench Avg ↑AudioBox PQ ↑MuLan ↑PER ↓
YuE2 (best-of-8)6.96328.27140.50519.79%
Mureka 96.93778.02260.439411.69%
Suno v56.87218.16980.54288.10%
YuE26.73168.25980.50688.44%
Suno v5.56.71508.19550.50895.96%
Suno v66.55628.12960.49167.58%

숫자는 리포에 정리된 Suno v5/v6와의 공식 비교표를 따른 거예요. 다만 리포는 이런 순위가 통계적 유의성을 확립하진 않는다고 덧붙여요. 지표마다 순위가 달라져서, 하나의 점수로 누가 낫다고 단정하긴 어려워요.

YuE2와 Suno의 WildSongBench 음질·텍스트 정렬 비교 차트출처: multimodal-art-projection/YuE GitHub 리포

생성 말고 이해·전사 모델도 함께 열렸어요. 음악 이해 모델 MERT2는 MARBLE 15개 지표 중 14개 SOTA, 오디오→악보 전사 모델 SheetSage2는 13개 지표 중 10개 SOTA를 기록했어요.

열려 있지만 만만하지 않은 실행 조건

설치 환경은 Linux, Python 3.12, NVIDIA GPU(BF16 지원)·24GB VRAM이에요. 48kHz 스테레오를 양자화 없이 출력하고, 모델 파일은 첫 실행 때 Hugging Face에서 내려받아요.

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 .
python examples/generate.py --output outputs/first-song

이것이 중요한 이유와 주의할 점

YuE2가 의미 있는 이유는 성능 지표 하나가 아니라, 곡 뼈대를 눈으로 보고 손으로 만질 수 있는 인터페이스를 열어줬다는 점이에요. 상용의 '결과물'에서 오픈소스의 '편집 가능한 악보'로 무게 중심이 옮겨가는 예다요.

에이전트 편집 데모가 보여주는 스킬 패키지 흐름도 눈여겨볼 만해요. SKILL.md 단위로 음악 편집 워크플로를 에이전트에 주입하는 방식이라, 같은 패턴이 다른 도메인으로 퍼질 여지가 있어요.

한계도 분명해요. 모델 가중치가 CC BY-NC 4.0이라 상업 이용이 제약되고, 24GB VRAM 요구는 개인 환경엔 다소 높아요.

'에이전트 편집'은 악보를 고쳐 통째로 새 녹음을 만들지, 원음파를 보존하며 부분 수정하는 방식은 아니에요. YuE2의 공식 기술 보고서도 아직 준비 중이라, 상세한 내용은 원문 데모와 리포 기준으로 확인해야 해요.

참고 링크

#YuE2#오픈소스#음악 생성#Suno#백색상자
Robeedau

Curated, fact-checked, and edited by a single operator before publishing.