Community코딩 & 개발github.com

kizuna-intelligence/song-generation

MiniMax Music 3(2026년 8월 공개된 오픈 곡 생성 모델)로 가사와 곡 설명을 바탕으로 최대 약 5분 분량의 노래(일본어 가사 포함)를 로컬 GPU에서 생성합니다. 「곡 만들어 줘」, 「MV용 오리지널 곡」, 「이 가사로 노래 만들어 줘」, 「BGM 작곡해 줘」 등의 요청에 사용합니다. 생성된 곡은 biim-motion 스킬의 MV 모드에 그대로 전달할 수 있습니다.

song-generation란 무엇인가요?

이 스킬은 MiniMax Music 3(diffusers 버전)를 사용하여 텍스트 프롬프트와 가사로부터 노래를 생성하는 오픈소스 AI 음악 생성 기술을 제공합니다. GPU 1장으로 구동되며, 약 24GB의 VRAM이 필요하지만 `--offload cpu` 옵션으로 22GB, `--offload stream` 옵션으로 8GB(느림)까지 절약할 수 있습니다. AMD Radeon AI PRO R9700(ROCm 6.4, PyTorch 2.9.1)에서 검증되었으며, NVIDIA GPU도 공식 지원합니다. 가중치는 약 27GB로, 디스크 공간을 미리 확인해야 합니다. 노래는 영어 프롬프트(장르, 템포, 분위기, 보컬 상세, 편곡 구조)와 일본어 가사를 포함한 JSON 파일로 정의하며, `[intro]`, `[verse]`, `[chorus]` 등의 섹션 태그를 지원합니다. 생성된 WAV 파일(44.1kHz 스테레오)은 biim-motion 스킬의 MV 모드에 바로 전달하여 뮤직비디오로 제작할 수 있습니다. 이 스킬은 Cursor, Claude Code 등 다양한 AI 에이전트 플랫폼에서 사용할 수 있습니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/kizuna-intelligence/kokuren-mv/tree/main/skills/song-generation

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

곡 만들기 (MiniMax Music 3)

조사한 것 중 가장 최신의 오픈 곡 생성 모델, MiniMax Music 3를 사용합니다. 다른 후보와 라이선스 비교는 references/models.md를 참조하세요.

이 스킬의 디렉토리를 $SKILL로 표기합니다 (로딩 시 표시되는 Base directory).

전제 조건

  • GPU 1장으로 동작합니다 (diffusers 버전). 필요한 VRAM은 기본 설정에서 약 24GB, --offload cpu로 약 22GB, --offload stream으로 8GB(느림)입니다.
  • 동작 확인 완료: AMD Radeon AI PRO R9700 (32GB, ROCm 6.4의 PyTorch 2.9.1). 60초 곡이 약 5분, 실제 시간의 약 5배가 걸렸습니다. NVIDIA GPU에서는 아직 테스트하지 않았습니다 (공식적으로는 CUDA 가정).
  • 가중치는 약 27GB입니다. 디스크 여유 공간을 먼저 확인하세요.
  • 공식 고속 방법(SGLang-Omni)은 CUDA GPU 2장이 필요하므로 이 스킬에서는 사용하지 않습니다.

1. 환경 준비 (최초 1회)

이미 환경이 있다면 사용합니다 (클론 완료한 MiniMax-Music3 아래의 .venv* 등). 없으면 만듭니다.

git clone https://github.com/MiniMax-AI/MiniMax-Music3.git && cd MiniMax-Music3
uv venv -p 3.12 .venv && source .venv/bin/activate
# NVIDIA: uv pip install torch torchaudio
# AMD:    uv pip install torch torchaudio --index-url https://download.pytorch.org/whl/rocm6.4
uv pip install "diffusers==0.41.0" transformers accelerate soundfile huggingface_hub
# SGLang 버전만 사용하는 파일은 다운로드하지 않습니다. --exclude는 패턴마다 붙입니다.
hf download MiniMaxAI/MiniMax-Music3 --exclude "qwen_7B/qwen_7B/model-*" \
  --exclude flowmatching_vae.pth --exclude dav.pth --exclude "figures/*"
  • 모델 카드에는 미병합 시대의 diffusers 커밋을 넣는 절차가 나와 있지만, 그렇게 하면 transformer를 읽을 수 없습니다. 병합된 릴리스(0.40.0 이후, 확인 완료 0.41.0)를 사용하세요.
  • Hugging Face 캐시(HF_HOME)의 디스크가 가득 차면, 여유 공간이 있는 위치로 HF_HOME을 지정하세요.
  • HF_HUB_OFFLINE=1로 설정하면 transformer 읽기가 실패합니다. 설정하지 마세요.

2. 가사와 곡 설명 작성

song.json을 만듭니다.

{
  "name": "yoru-no-machi",
  "prompt": "Global Metadata: Japanese city pop, mid-tempo around 100 BPM, nostalgic night-drive mood that lifts into a bright chorus; polished 80s-inspired production. Vocal Details: warm female lead vocal singing in Japanese, airy in the verse, fuller with light harmonies in the chorus. Arrangement: intro with electric piano and slap bass; verse adds tight drums and muted guitar; chorus opens up with synth brass and lush pads; short outro on electric piano.",
  "lyrics": "[intro]\n\n[verse]\n夜の街を ひとり歩く\nネオンの色が 揺れている\n\n[chorus]\nこのまま 朝まで\n君の声 探してる\n\n[outro]",
  "duration": 180
}
  • 곡 설명(prompt)은 영어로 Global Metadata(장르, 템포, 감정의 흐름, 음색), Vocal Details(목소리 성별, 음색, 창법, 하모니), Arrangement(섹션별 악기 출입)의 세 부분으로 나누어 작성합니다.
  • 목소리 성별과 음색을 반드시 작성합니다. 작성하지 않으면 노래가 사라지고 반주만 나올 수 있습니다. 일본어로 노래하게 하려면 singing in Japanese도 작성합니다.
  • 자세히 쓰고 싶을 때는 MiniMax 공식 스킬 music-caption-rewriter를 사용할 수 있습니다 (npx skills add MiniMax-AI/MiniMax-Music3 --skill music-caption-rewriter, 또는 클론한 skills/music-caption-rewriter를 ~/.claude/skills/로 복사).
  • 가사(lyrics)는 일본어 한자・가나 그대로 작성해도 좋습니다 (확인 완료). [intro] [verse] [pre-chorus] [chorus] [bridge] [instrumental] [solo] [outro] 태그는 반드시 단독 행에 놓습니다. 태그와 같은 행의 가사는 무시됩니다 (스크립트가 감지하여 중단).
  • 1행은 짧게 하고, 같은 위치의 행은 글자 수를 맞춥니다. 섹션 사이는 빈 행으로 구분합니다 (곡 생성 모델 전반의 팁. MiniMax Music 3에서 효과를 비교하지는 않았습니다).
  • duration은 상한 초수(10~300)입니다. 모델이 그보다 일찍 끝낼 수도 있습니다. [intro]를 넣으면 전주가 길어지기 쉽습니다 (60초 시제에서 약 25초).
  • 실제 곡・가수 이름을 내세워 모방하지 마세요 (라이선스 금지 사항. 아래 참조).

3. 생성

python $SKILL/scripts/generate.py song.json --out-dir songs/ --seeds 1 2 3
  • 같은 설정이라도 seed에 따라 다른 곡이 됩니다. 2~3안을 만들어 사용자에게 듣고 선택하게 합니다. Claude는 소리를 들을 수 없으므로, 좋고 나쁨을 스스로 판단하여 결정하지 마세요.
  • 시간이 걸리므로 (R9700에서 실제 시간의 약 5배 + 로딩), 백그라운드에서 실행하고 완료를 기다립니다.
  • 출력: <name>-seed<N>.wav (44.1kHz 스테레오), 동명의 .json (seed, 길이, 프롬프트, 가사, 소요 시간), <name>-lyrics.txt (태그를 제외한 표시용 가사).
  • 가사가 제대로 불렸는지는 음성 인식으로 확인할 수 있습니다 (faster-whisper 필요). 전주 부분에서는 Whisper가 가사를 반복하는 오인식을 하기 쉽습니다.
python $SKILL/scripts/check_lyrics.py songs/*.wav --language ja

4. MV로 만들기

선택한 곡은 biim-motion 스킬의 MV 모드에 그대로 전달합니다.

  • assets.music: 선택한 WAV
  • musicLyrics: <name>-lyrics.txt의 내용 (태그 없음)
  • musicMood: prompt의 분위기를 일본어로 짧게 정리한 것
  • MV의 reports/delivery.md 채택 자료에 「MiniMax Music 3로 생성 (seed, prompt, `lyrics」)」를 기록합니다.

라이선스 (MiniMax-Music3 Community License)

원문은 https://huggingface.co/MiniMaxAI/MiniMax-Music3/blob/main/LICENSE 를 참조하세요. 요점만 적습니다 (법적 조언은 아닙니다).

  • 상용 제품・서비스에서 사용하려면, 그 화면에 「MiniMax-Music3」라고 눈에 띄게 표시해야 합니다. 연간 매출이 2000만 달러를 초과하는 경우, MiniMax의 서면 허가가 별도로 필요합니다.
  • 부속된 Acceptable Use Policy를 준수하고, 제3자의 지적 재산권을 침해하지 않습니다.
  • 상용으로 사용할 예정이 있을 때는 생성 전에 사용자에게 이 조건을 알려야 합니다.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

관련 스킬