로컬 음악 생성
로컬 음악 생성 속도와 하드웨어 비교: RTF를 제대로 읽는 법
음악 모델의 속도표는 측정 범위부터 서로 다릅니다. 어떤 표는 이미 메모리에 올라간 모델의 샘플링 시간만 재고, 어떤 표는 가사 계획과 디코딩까지 포함합니다. RTF1는 생성에 든 시간과 만들어진 오디오 길이의 비율이며, 실시간 배수는 그 역수입니다. 이 가이드는 확인 가능한 공식 수치만 나란히 두고, 비어 있는 조건은 비어 있다고 표시합니다. GPU2 구매 전에는 원하는 모델과 소프트웨어 백엔드가 그 장치에서 실제로 동작하는지 먼저 확인하세요.
먼저 같은 종류의 결과물을 비교하세요
텍스트에서 짧은 효과음을 만드는 모델, 가사와 보컬이 있는 노래를 만드는 모델, 이미 있는 멜로디를 확장하는 모델은 맡은 일이 다릅니다. 생성 길이와 조건도 다르므로 처리 시간만 나열하면 오해하기 쉽습니다. 비교 전에 원하는 작업, 출력 길이, 스테레오 여부, 보컬·가사 포함 여부를 고정하세요.
예를 들어 ‘30초짜리 보컬 없는 신스팝 루프’를 만들고 싶다면, 먼저 모든 후보가 텍스트 조건의 반주를 생성할 수 있는지 확인합니다. 가사 노래 전용 경로와 효과음 생성 경로를 억지로 한 줄에 세우지 마세요. 공통 작업을 지원하는 모델끼리만 나란히 재고, 지원하지 않는 후보는 속도표에서 제외하는 이유를 적으면 구매 선택이 더 명확해집니다.
비교 단위도 결과물에 맞추세요. 곡 생성은 한 곡에 걸린 시간과 실제 길이를 기록하고, 긴 노래를 여러 번 이어 만드는 방식이면 각 세그먼트 수와 이어 붙이기 시간을 함께 적습니다. 배치를 키우면 여러 곡을 한 번에 만드는 처리량3이 달라질 수 있지만, 한 곡이 빨라졌다는 뜻은 아닙니다. 단일 요청 지연시간과 시간당 처리량을 서로 다른 지표로 보고하세요.
RTF와 실시간 배수는 서로 반대 방향입니다
RTF(real-time factor)는 생성에 걸린 벽시계 시간 ÷ 출력 음성의 재생 시간입니다. 60초 오디오를 30초에 만들면 RTF 0.5, 즉 실시간의 2배 속도입니다. 120초가 걸리면 RTF 2이며 실시간보다 느립니다. 어떤 저장소는 ‘34배’처럼 역수인 실시간 배수를 RTF라고 부르기도 하므로, 정의와 단위를 먼저 읽고 필요하면 원시 초 단위로 다시 계산하세요.
모델을 불러오는 시간과 오디오를 만드는 시간을 나누세요
첫 실행에는 체크포인트4 읽기, 메모리 할당, 컴파일이나 커널 준비가 들어갈 수 있습니다. 이미 적재된 뒤의 연속 생성 시간은 이 비용을 빼므로 새로 앱을 켜는 사용자의 대기 시간과 다릅니다. 첫 요청(콜드 스타트)과 준비 완료 후 요청(웜 런)을 각각 기록하고, 전체 사용자 대기시간도 별도로 남기세요.
공식 자료에서 확인되는 숫자와 빈칸
아래는 공식 저장소나 모델 카드에 나온 수치입니다. 다만 공개 문구에도 증거의 수준 차이가 있습니다. 구버전 ACE-Step 표와 ACE-Step 1.5 README의 속도 주장은 서로 다른 모델 버전이며, 후자는 프로파일러로 재현한 기기별 결과표가 아닙니다. 빈칸은 속도가 느리다는 뜻이 아니라 이 조사에서 조건을 확인할 수 있는 숫자를 찾지 못했다는 뜻입니다.
| 모델·공식 근거 | 기기·실행 경로 | 공개된 속도·출력 조건 | 빠진 조건 |
|---|---|---|---|
| ACE-Step (구버전) | RTX 4090; MacBook M2 Max. 저장소 실행 스크립트; 런타임 상세 미기재 | 27 steps: 4090 34.48×(1분 렌더 1.74초), M2 Max 2.27×(26.43초). 60 steps: 4090 15.63×(3.84초), M2 Max 1.03×(58.25초). 출처에 공개된 실시간 배수와 분당 생성 시간 그대로 | 정확한 모델/커밋, 샘플 수, 배치, 프롬프트, 웜업·로딩 포함 여부, 반복·분산 미기재 |
| ACE-Step 1.5 | README 주장: A100 ‘full song’ <2초(일부 조건 0.5–10초), RTX 3090 <10초. macOS MLX 스크립트와 프로파일러 CUDA/MPS/CPU, LLM용 vLLM/PyTorch/MLX 경로 문서화 | 공식 프로파일러는 길이·배치·thinking·steps 및 계획/DiT/VAE/저장/전체 시간을 계측하지만, 재현 가능한 장치별 시간표는 별도 미공개 | full song 길이, 체크포인트, 배치, think/steps, cold/warm, 측정 정의·분산 미기재. 요약 주장을 다른 버전/장치에 일반화하지 않음 |
| YuE2-3B (HF pipeline) | 모델 카드 실행 조건: Linux, Python 3.10+, BF16 NVIDIA GPU 24GB. HF 경로는 PyTorch 2.10, Transformers 4.57.6, CUDA graphs/FlashAttention, BF16 AR/NAR + FP32 VAE, 무양자화 | RTX 4090: full 71.04초/214.85초 오디오(준비 후 32회), melody 68.68/214.67초, off 57.91/196.88초. H800: full 54.74/224.96초(1회). 동기화한 파이프라인 호출 시간이며 초기 경로 탐색과 저장은 제외합니다. | GPU 결과는 한 장치의 공식 카드 측정. H800은 n=1. 호출당 후보 1개. 초기 로딩과 저장을 포함한 사용자 대기시간과 다름 |
| YuE2-Turbo | 오픈소스 추론/서빙 구현, 동일 YuE2 가중치·32 flow steps 주장. 단일 5090 테스트 | RTX 5090 32GB, warm: 단일요청 RTF 0.290→0.173(1.68×). 동시 4요청 system RTF 0.317→0.096(3.31× throughput). PyTorch 2.10/CUDA 12.8/vLLM 0.19/BF16. 서로 다른 지표 | 자체 README의 측정: 단일요청은 3곡×3회, 동시처리는 4요청×3웨이브. 원본 YuE2와 다른 서빙 구현 결과이며 4090 값 아님 |
| HeartMuLa-oss-3B | 공식 예제 기본은 CUDA; 모델·codec 장치 지정 및 lazy-load 가능 | ‘RTF ≈ 1.0’만 표기. 장치·길이는 미기재 | 측정 정의, 모델 세부 버전, 길이, 샘플 수, cold/warm, Apple 경로 미기재 |
| Stable Audio Open 1.0 | 모델 카드 예제: CUDA 또는 CPU PyTorch. MPS/MLX 속도표 없음 | 최대 47초, 44.1kHz stereo. tools 예제 100 steps/30초; diffusers 예제 200 steps/10초. 장치별 속도 미공개 | 사용 예시는 성능 측정이 아님. GPU 모델과 생성 시간·웜업·종단간 범위 미기재 |
| MusicGen / AudioCraft | GPU 중심 공식 안내; medium 모델에 약 16GB GPU 메모리 권장. 공식 Apple MLX 경로 없음 | 300M/1.5B/3.3B 모델 안내. 기기별 생성 시간 표 미기재 | GPU, 출력 길이, 스텝/토큰, 디코드 포함 시간, cold/warm 구분 미기재 |
공식 문서에서 확인한 하드웨어 속도 근거와 미기재 조건
ACE-Step (구버전)
- 기기·실행 경로
- RTX 4090; MacBook M2 Max. 저장소 실행 스크립트; 런타임 상세 미기재
- 공개된 속도·출력 조건
- 27 steps: 4090 34.48×(1분 렌더 1.74초), M2 Max 2.27×(26.43초). 60 steps: 4090 15.63×(3.84초), M2 Max 1.03×(58.25초). 출처에 공개된 실시간 배수와 분당 생성 시간 그대로
- 빠진 조건
- 정확한 모델/커밋, 샘플 수, 배치, 프롬프트, 웜업·로딩 포함 여부, 반복·분산 미기재
ACE-Step 1.5
- 기기·실행 경로
- README 주장: A100 ‘full song’ <2초(일부 조건 0.5–10초), RTX 3090 <10초. macOS MLX 스크립트와 프로파일러 CUDA/MPS/CPU, LLM용 vLLM/PyTorch/MLX 경로 문서화
- 공개된 속도·출력 조건
- 공식 프로파일러는 길이·배치·thinking·steps 및 계획/DiT/VAE/저장/전체 시간을 계측하지만, 재현 가능한 장치별 시간표는 별도 미공개
- 빠진 조건
- full song 길이, 체크포인트, 배치, think/steps, cold/warm, 측정 정의·분산 미기재. 요약 주장을 다른 버전/장치에 일반화하지 않음
YuE2-3B (HF pipeline)
- 기기·실행 경로
- 모델 카드 실행 조건: Linux, Python 3.10+, BF16 NVIDIA GPU 24GB. HF 경로는 PyTorch 2.10, Transformers 4.57.6, CUDA graphs/FlashAttention, BF16 AR/NAR + FP32 VAE, 무양자화
- 공개된 속도·출력 조건
- RTX 4090: full 71.04초/214.85초 오디오(준비 후 32회), melody 68.68/214.67초, off 57.91/196.88초. H800: full 54.74/224.96초(1회). 동기화한 파이프라인 호출 시간이며 초기 경로 탐색과 저장은 제외합니다.
- 빠진 조건
- GPU 결과는 한 장치의 공식 카드 측정. H800은 n=1. 호출당 후보 1개. 초기 로딩과 저장을 포함한 사용자 대기시간과 다름
YuE2-Turbo
- 기기·실행 경로
- 오픈소스 추론/서빙 구현, 동일 YuE2 가중치·32 flow steps 주장. 단일 5090 테스트
- 공개된 속도·출력 조건
- RTX 5090 32GB, warm: 단일요청 RTF 0.290→0.173(1.68×). 동시 4요청 system RTF 0.317→0.096(3.31× throughput). PyTorch 2.10/CUDA 12.8/vLLM 0.19/BF16. 서로 다른 지표
- 빠진 조건
- 자체 README의 측정: 단일요청은 3곡×3회, 동시처리는 4요청×3웨이브. 원본 YuE2와 다른 서빙 구현 결과이며 4090 값 아님
HeartMuLa-oss-3B
- 기기·실행 경로
- 공식 예제 기본은 CUDA; 모델·codec 장치 지정 및 lazy-load 가능
- 공개된 속도·출력 조건
- ‘RTF ≈ 1.0’만 표기. 장치·길이는 미기재
- 빠진 조건
- 측정 정의, 모델 세부 버전, 길이, 샘플 수, cold/warm, Apple 경로 미기재
Stable Audio Open 1.0
- 기기·실행 경로
- 모델 카드 예제: CUDA 또는 CPU PyTorch. MPS/MLX 속도표 없음
- 공개된 속도·출력 조건
- 최대 47초, 44.1kHz stereo. tools 예제 100 steps/30초; diffusers 예제 200 steps/10초. 장치별 속도 미공개
- 빠진 조건
- 사용 예시는 성능 측정이 아님. GPU 모델과 생성 시간·웜업·종단간 범위 미기재
MusicGen / AudioCraft
- 기기·실행 경로
- GPU 중심 공식 안내; medium 모델에 약 16GB GPU 메모리 권장. 공식 Apple MLX 경로 없음
- 공개된 속도·출력 조건
- 300M/1.5B/3.3B 모델 안내. 기기별 생성 시간 표 미기재
- 빠진 조건
- GPU, 출력 길이, 스텝/토큰, 디코드 포함 시간, cold/warm 구분 미기재
각 시간 항목이 답하는 질문은 다릅니다

YuE2 모델 카드의 RTX 4090 속도는 모드별로 읽으세요
YuE2 공식 모델 카드는 세 가지 생성 모드를 RTX 4090에서 비교합니다. RTX 4090 값은 모델 준비 후 32회 생성한 평균이며, GPU 메모리는 NVML 기준 전체 실행 피크입니다.
출력 초는 각 실행 결과의 오디오 길이이고 생성 초는 모델 카드의 동기화된 pipeline10 호출 시간입니다. 행별 RTF는 생성 초 ÷ 오디오 초로 계산한 참고값입니다.
카드 설명상 최초 입력 경로 해석과 결과 저장은 시간에서 빠져 있으므로 앱 실행부터 저장까지의 대기시간으로 읽으면 안 됩니다.
| 장치·모드 | 오디오 길이 | 생성 시간 | 계산 RTF | GPU 메모리 피크 |
|---|---|---|---|---|
| RTX 4090 · full | 214.85초 | 71.04초 | 0.331 | 11.18 GiB |
| RTX 4090 · melody | 214.67초 | 68.68초 | 0.320 | 11.02 GiB |
| RTX 4090 · off | 196.88초 | 57.91초 | 0.294 | 11.09 GiB |
| H800 · full (1회) | 224.96초 | 54.74초 | 0.243 | 10.34 GiB |
YuE2-3B 공식 모델 카드의 시간과 메모리 측정
RTX 4090 · full
- 오디오 길이
- 214.85초
- 생성 시간
- 71.04초
- 계산 RTF
- 0.331
- GPU 메모리 피크
- 11.18 GiB
RTX 4090 · melody
- 오디오 길이
- 214.67초
- 생성 시간
- 68.68초
- 계산 RTF
- 0.320
- GPU 메모리 피크
- 11.02 GiB
RTX 4090 · off
- 오디오 길이
- 196.88초
- 생성 시간
- 57.91초
- 계산 RTF
- 0.294
- GPU 메모리 피크
- 11.09 GiB
H800 · full (1회)
- 오디오 길이
- 224.96초
- 생성 시간
- 54.74초
- 계산 RTF
- 0.243
- GPU 메모리 피크
- 10.34 GiB
공정한 비교를 위해 실행 조건을 기록하세요
같은 프롬프트와 가사, 같은 출력 길이·샘플레이트·채널, 같은 품질 관련 설정을 사용하고 모델 체크포인트·코드 버전·백엔드·정밀도·스텝 수를 기록합니다. 장치 이름뿐 아니라 운영체제와 드라이버/프레임워크 버전도 남기세요. 첫 실행과 워밍업 후 반복을 분리하고 최소 여러 번 재서 중앙값과 범위를 기록합니다. 실패, OOM, 잘린 출력도 숨기지 않습니다.
실제로는 작은 기록표 하나면 시작할 수 있습니다. 예를 들어 ‘모델/리비전, 장치, 백엔드, 정밀도, 길이, 스텝, 첫 실행초, 웜업 뒤 1~5회 초, 출력 실제 길이, peak 메모리, 상태’를 열로 둡니다. 같은 프롬프트와 설정을 그대로 복사해 모델별 요청을 만들고, 각 결과 파일과 로그에 같은 실험 ID를 붙이세요. 설정을 바꾼 실행은 새 행으로 분리합니다.
예를 들어 한 번은 첫 실행이 42초, 다음 다섯 번의 중앙값이 18초, 출력 길이가 30초였다고 합시다. 웜 생성의 conventional RTF는 18÷30=0.60, 실시간 배수는 약 1.67×입니다.
첫 실행까지 포함한 새 실행 대기는 42초로 따로 설명합니다. 원본 표기가 1.67×라면 ‘RTF’라는 말만 옮기지 말고 이처럼 무엇을 나눈 값인지 표기하면 독자가 속도 방향을 뒤집지 않습니다.
비교 뒤에는 숫자만으로 승자를 정하지 말고 질문을 나눠 해석하세요. 매번 앱을 켜고 한 곡을 만들면 첫 실행 대기가 중요하고, 하루 종일 서버를 켜두면 웜 런 중앙값과 처리량이 더 중요할 수 있습니다.
긴 결과에서 DiT나 오디오 토큰 생성이 지배적인지, 짧은 결과에서 계획·로딩 고정비가 크게 보이는지도 단계별 시간으로 살펴봅니다. 음질 설정이나 출력 길이를 낮춰 얻은 빠른 숫자는 원래 설정 결과와 별도 비교로 표시합니다.
LLM 토큰/초에서 음악 생성 속도를 추정하지 마세요
음악 모델에서 텍스트 계획 단계만 LLM일 수 있으며 전체 오디오는 확산 반복, 오디오 토큰 자동회귀, 디코딩에서 만들어집니다. 초당 텍스트 토큰 수가 빠른 장치라도 다른 단계가 느릴 수 있습니다. 오디오 생성에서는 초당 오디오 프레임11·토큰, 확산 스텝, 전체 오디오 길이와 end-to-end 초를 함께 봐야 합니다.

하드웨어는 지원 경로와 작업량에 맞춰 고르세요
NVIDIA CUDA12, Apple MPS, MLX13는 서로 바꿔 끼울 수 있는 이름이 아니라 각 프로젝트가 실제로 구현·지원해야 하는 실행 경로입니다. ACE-Step 1.5 문서는 CUDA/MPS와 LLM의 vLLM·PyTorch14·MLX 경로를 안내하지만, 모델 구성별 성능은 직접 확인해야 합니다.
YuE2 문서의 기준은 Linux와 24GB BF1615 NVIDIA GPU입니다. HeartMuLa 공식 예제는 CUDA를 기본으로 합니다.
Mac의 통합 메모리16나 RTX 5090의 사양만으로 미지원 경로를 해결하거나 처리량을 추정할 수는 없습니다.
점수표보다 먼저 들어 보고 사용 조건을 살피세요
가사 선명도, 프롬프트 반영, 곡 구조, 음색은 하나의 보편 점수로 정리하기 어렵습니다. 짧은 샘플을 직접 들어보고 원하는 작업에 맞춰 판단하세요. 모델 가중치와 코드의 라이선스가 다를 수 있으므로 배포·상업 이용 전 해당 버전의 약관과 학습 데이터 안내를 확인하고, 권리자가 허락하지 않은 가사·음원이나 유명인의 목소리를 입력·복제하지 않도록 주의하세요.

용어 각주
실시간 계수 — 생성에 걸린 시간을 출력의 재생 시간으로 나눈 값입니다. 조건을 맞춰 비교할 때 값이 작을수록 생성이 빠릅니다.
본문으로 돌아가기GPU — 많은 계산을 병렬로 처리하는 프로세서입니다. AI 모델 실행에서는 모델 계산을 맡습니다.
본문으로 돌아가기처리량 — 일정 시간 동안 처리하거나 생성한 작업량입니다. 토큰/초, 요청/초처럼 단위를 함께 확인해야 비교할 수 있습니다.
본문으로 돌아가기체크포인트 — 학습된 모델의 가중치 등을 저장한 파일입니다. 같은 모델 계열도 버전이나 용도에 따라 다른 체크포인트를 쓸 수 있습니다.
본문으로 돌아가기토큰 — 모델이 입력이나 출력을 나누어 처리하는 단위입니다. 토큰 하나가 글자 하나나 일정한 시간 길이에 해당하지는 않습니다.
본문으로 돌아가기확산 모델 — 노이즈를 단계적으로 제거하거나 변환해 데이터를 생성하는 모델 계열입니다. 이미지·음성·영상 등에서 쓰이며 단계 수와 구현은 모델마다 다릅니다.
본문으로 돌아가기VAE — Variational Autoencoder의 약자입니다. 입력을 압축된 잠재 표현으로 바꾸거나, 그 표현에서 결과를 복원하는 데 쓰입니다.
본문으로 돌아가기대규모 언어 모델 — 대량의 텍스트 데이터로 학습해 텍스트를 처리하고 생성하는 언어 모델입니다. 기능과 지원 입력은 모델마다 다릅니다.
본문으로 돌아가기DiT — Diffusion Transformer의 약자입니다. 트랜스포머 구조를 이용해 확산 과정에서 노이즈가 있는 표현을 단계적으로 다듬는 모델 구조입니다.
본문으로 돌아가기파이프라인 — 입력부터 결과까지 이어지는 처리 단계의 묶음입니다. 각 단계에서 서로 다른 모델이나 도구를 사용할 수 있습니다.
본문으로 돌아가기프레임 — 영상의 한 장면을 이루는 단일 이미지입니다. 초당 프레임 수와 프레임 해상도는 서로 다른 속성입니다.
본문으로 돌아가기CUDA — NVIDIA GPU에서 범용 계산을 실행하기 위한 소프트웨어 플랫폼입니다. CUDA용으로 만든 프로그램은 다른 GPU에서 그대로 동작한다고 보장되지 않습니다.
본문으로 돌아가기MLX — Apple silicon용 머신러닝 프레임워크입니다. Apple silicon의 통합 메모리 구조를 활용하며, 지원 모델과 기능은 MLX 도구별로 다릅니다.
본문으로 돌아가기PyTorch — AI 모델을 만들고 실행하는 소프트웨어 프레임워크입니다. 모델과 함께 호환되는 PyTorch 버전 및 하드웨어 지원도 확인해야 합니다.
본문으로 돌아가기BF16 — 모델의 수를 저장하고 계산하는 16비트 부동소수점 형식입니다. 사용 가능 여부는 하드웨어와 실행 프로그램에 달려 있습니다.
본문으로 돌아가기통합 메모리 — CPU와 GPU가 같은 물리 메모리 풀을 공유하는 구조입니다. 메모리 용량이 자동으로 늘어나는 것은 아니며, 실제 사용 가능량은 시스템에 따라 다릅니다.
본문으로 돌아가기