api-and-interface-desi…
Guides stable API and interface design. Use when designing APIs, module boundaries, or any public interface. Use when creating REST or GraphQL endpoints,…
HeartMuLa: Suno-like song generation from lyrics + tags.
$ npx -y skills add kevinnft/ai-agent-skills --skill heartmula --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/heartmulaContext preview
The summary Claude sees to decide when to auto-load this skill.
HeartMuLa: Suno-like song generation from lyrics + tags.
name: heartmula
description: "HeartMuLa: Suno-like song generation from lyrics + tags."
version: 1.0.0
metadata:
hermes:
tags: [music, audio, generation, ai, heartmula, heartcodec, lyrics, songs]
related_skills: [audiocraft]
origin: aggregated
source_license: MIT
source_repo: NousResearch/hermes-agent
source_url: https://github.com/NousResearch/hermes-agent/tree/main/skills/media/heartmula
language: enHeartMuLa is a family of open-source music foundation models (Apache-2.0) that generates music conditioned on lyrics and tags, with multilingual support. Generates full songs from lyrics + tags. Comparable to Suno for open-source. Includes:
cd ~/ # 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`:
In the `setup_caches` method of the `HeartMuLa` class, add 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` creates model on meta device first; `Llama3ScaledRoPE.rope_init()` skips cache building on meta tensors, then never rebuilds after weights are loaded to real device.
**Patch 2 - HeartCodec loading fix** in `src/heartlib/pipelines/music_generation.py`:
Add `ignore_mismatched_sizes=True` to ALL `HeartCodec.from_pretrained()` calls (there are 2: the eager load in `__init__` and the lazy load in the `codec` property).
**Why**: VQ codebook `initted` buffers have shape `[1]` in checkpoint vs `[]` in model. Same data, just scalar vs 0-d tensor. Safe to ignore.
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 3 can be downloaded in parallel. Total size is several GB.
HeartMuLa uses CUDA by default (`--mula_device cuda --codec_device cuda`). No extra setup needed if the user has an NVIDIA GPU with PyTorch CUDA support installed.
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) |
1. **Do NOT use bf16 for HeartC
191 attribution-first agent skills for Hermes Agent, Claude Code, Cursor — one installer, 28 categories, searchable catalog. See NOTICE for upstream attribution.
Repo: kevinnft/ai-agent-skills
Guides stable API and interface design. Use when designing APIs, module boundaries, or any public interface. Use when creating REST or GraphQL endpoints,…
Tests in real browsers. Use when building or debugging anything that runs in a browser. Use when you need to inspect the DOM, capture console errors, analyze…
Automates CI/CD pipeline setup. Use when setting up or modifying build and deployment pipelines. Use when you need to automate quality gates, configure test…
Conducts multi-axis code review. Use before merging any change. Use when reviewing code written by yourself, another agent, or a human. Use when you need to…
Simplifies code for clarity. Use when refactoring code for clarity without changing behavior. Use when code works but is harder to read, maintain, or extend…
Optimizes agent context setup. Use when starting a new session, when agent output quality degrades, when switching between tasks, or when you need to configure…