소스 정보
- 저장소
- Sidiora-Labs/ion-agent
- 최근 소스 활동
- 2026년 7월 26일 10:19
- 감지된 SKILL.md 언어
- 영어
- 스타
- 11
- 포크
- 2
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/Sidiora-Labs/ion-agent --skill heartmula명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | heartmula |
| description | HeartMuLa: Suno-like song generation from lyrics + tags. |
| version | 1.0.0 |
| platforms | ["linux","macos","windows"] |
| metadata | {"ion":{"tags":["music","audio","generation","ai","heartmula","heartcodec","lyrics","songs"],"related_skills":["audiocraft"]}} |
HeartMuLa is a family of open-source music foundation models (Apache-2.0) designed to produce music conditioned on lyrics and tags, with multilingual capabilities. It generates complete songs from lyrics plus tags and serves as an open-source counterpart to Suno. The suite includes:
--lazy_load true (loads/unloads models sequentially)--mula_device cuda:0 --codec_device cuda:1 to split across GPUscd ~/ # or desired directory
git clone https://github.com/HeartMuLa/heartlib.git
cd heartlib
uv venv --python 3.10 .venv
. .venv/bin/activate
uv pip install -e .
IMPORTANT: As of Feb 2026, the pinned dependencies have conflicts with newer packages. Apply these fixes:
# Upgrade datasets (old version incompatible with current pyarrow)
uv pip install --upgrade datasets
# Upgrade transformers (needed for huggingface-hub 1.x compatibility)
uv pip install --upgrade transformers
Patch 1 - RoPE cache fix in src/heartlib/heartmula/modeling_heartmula.py:
Inside the setup_caches method of the HeartMuLa class, insert RoPE
reinitialization after the reset_caches try/except block and before the
with device: block:
# Re-initialize RoPE caches that were skipped during meta-device loading
from torchtune.models.llama3_1._position_embeddings import Llama3ScaledRoPE
for module in self.modules():
if isinstance(module, Llama3ScaledRoPE) and not module.is_cache_built:
module.rope_init()
module.to(device)
Why: from_pretrained initially creates the model on a meta device;
Llama3ScaledRoPE.rope_init() skips cache creation on meta tensors and never
rebuilds them once weights are moved to a real device.
Patch 2 - HeartCodec loading fix in src/heartlib/pipelines/music_generation.py:
Add ignore_mismatched_sizes=True to every HeartCodec.from_pretrained() call
(there are two: the eager load in __init__ and the lazy load in the codec
property).
Why: VQ codebook initted buffers are shape [1] in the checkpoint but
[] in the model. Same data, just scalar vs 0-d tensor. Safe to skip.
cd heartlib # project root
hf download --local-dir './ckpt' 'HeartMuLa/HeartMuLaGen'
hf download --local-dir './ckpt/HeartMuLa-oss-3B' 'HeartMuLa/HeartMuLa-oss-3B-happy-new-year'
hf download --local-dir './ckpt/HeartCodec-oss' 'HeartMuLa/HeartCodec-oss-20260123'
All three downloads can run in parallel. Total size is several GB.
HeartMuLa defaults to CUDA (--mula_device cuda --codec_device cuda). No extra
configuration is needed when the system has an NVIDIA GPU with PyTorch CUDA
support.
torch==2.4.1 ships with CUDA 12.1 support out of the boxtorchtune may report version 0.4.0+cpu — this is purely package metadata;
it still delegates to CUDA through PyTorch--mula_device cpu --codec_device cpu,
but expect generation to be extremely slow (potentially 30-60+ minutes for
a single song vs ~4 minutes on GPU). CPU mode also demands significant RAM
(~12GB+ free). If the user lacks an NVIDIA GPU, suggest a cloud GPU service
(Google Colab free tier with T4, Lambda Labs, etc.) or the online demo at
https://heartmula.github.io/ instead.cd heartlib
. .venv/bin/activate
python ./examples/run_music_generation.py \
--model_path=./ckpt \
--version="3B" \
--lyrics="./assets/lyrics.txt" \
--tags="./assets/tags.txt" \
--save_path="./assets/output.mp3" \
--lazy_load true
Tags (comma-separated, no spaces):
piano,happy,wedding,synthesizer,romantic
or
rock,energetic,guitar,drums,male-vocal
Lyrics (use bracketed structural tags):
[Intro]
[Verse]
Your lyrics here...
[Chorus]
Chorus lyrics...
[Bridge]
Bridge lyrics...
[Outro]
| Parameter | Default | Description |
|---|---|---|
--max_audio_length_ms | 240000 | Max length in ms (240s = 4 min) |
--topk | 50 | Top-k sampling |
--temperature | 1.0 | Sampling temperature |
--cfg_scale | 1.5 | Classifier-free guidance scale |
--lazy_load | false | Load/unload models on demand (saves VRAM) |
--mula_dtype | bfloat16 | Dtype for HeartMuLa (bf16 recommended) |
--codec_dtype | float32 | Dtype for HeartCodec (fp32 recommended for quality) |