File size: 6,052 Bytes
c19a2af cb6ac65 95d5414 c19a2af cb6ac65 c19a2af | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 | ---
license: apache-2.0
language:
- en
- zh
- ja
- ko
- es
pipeline_tag: text-to-audio
library_name: heartlib
tags:
- music
- lyrics-to-music
- heartmula
- heartcodec
- mirror
base_model:
- HeartMuLa/HeartMuLa-oss-3B-happy-new-year
- HeartMuLa/HeartMuLa-RL-oss-3B-20260123
- HeartMuLa/HeartMuLa-oss-3B
- HeartMuLa/HeartCodec-oss-20260123
- HeartMuLa/HeartMuLaGen
---
# HeartMuLa · Æmotion Studio Mirror
Consolidated mirror of the **HeartMuLa** lyrics-to-music model family
([upstream GitHub](https://github.com/HeartMuLa/heartlib),
[paper](https://arxiv.org/abs/2601.10547),
[demo](https://heartmula.github.io/)). Used by
[MAESTRO](https://github.com/AEmotionStudio) (Æmotion Studio's open-source DAW)
for one-click downloads of any (mula, codec) pair from a single repo.
Last refresh: **2026-05-10**.
## Why a mirror?
Upstream distributes the model in three separate repos (a tokenizer/config
repo plus per-variant weight repos). MAESTRO's runner expects all of them
assembled on disk in heartlib's canonical `pretrained_path` layout, and
each user otherwise has to clone three repos and stitch them together by
hand. This mirror does the stitching once: each `checkpoints/<variant>/`
subfolder is **self-contained** — drop it in as `pretrained_path` and
`HeartMuLaGenPipeline.from_pretrained(...)` Just Works.
## Layout
```
AEmotionStudio/heartmula-models/
├── README.md ← this file
├── LICENSE ← Apache-2.0
└── checkpoints/
├── heartmula-3b-happy-new-year/ ← recommended mula
│ ├── HeartMuLa-oss-3B/
│ │ ├── config.json
│ │ ├── model-00001-of-00004.safetensors
│ │ ├── ...
│ │ └── model.safetensors.index.json
│ ├── tokenizer.json
│ ├── gen_config.json
│ ├── README.md ← upstream mula card
│ └── LICENSE
├── heartmula-3b-rl/ ← RL-refined mula
├── heartmula-3b-base/ ← original mula
├── heartmula-3b-happy-new-year-bf16/ ← pre-converted bf16
├── heartmula-3b-rl-bf16/ ← pre-converted bf16
├── heartmula-3b-base-bf16/ ← pre-converted bf16
└── heartcodec-20260123/ ← codec
├── HeartCodec-oss/
│ ├── config.json
│ ├── model-00001-of-00002.safetensors
│ ├── model-00002-of-00002.safetensors
│ └── model.safetensors.index.json
├── README.md
└── LICENSE
```
## Variants
| Subfolder | Source | Size | Description |
|---|---|---|---|
| `heartmula-3b-happy-new-year/` | [HeartMuLa/HeartMuLa-oss-3B-happy-new-year](https://huggingface.co/HeartMuLa/HeartMuLa-oss-3B-happy-new-year) | ~15.8 GB | Recommended mula (fp32). Best lyrics controllability + overall quality. |
| `heartmula-3b-rl/` | [HeartMuLa/HeartMuLa-RL-oss-3B-20260123](https://huggingface.co/HeartMuLa/HeartMuLa-RL-oss-3B-20260123) | ~15.8 GB | RL-refined mula (fp32). Stronger style/tag adherence. |
| `heartmula-3b-base/` | [HeartMuLa/HeartMuLa-oss-3B](https://huggingface.co/HeartMuLa/HeartMuLa-oss-3B) | ~15.8 GB | Original mula release (fp32). Kept for reproducibility against the paper. |
| `heartmula-3b-happy-new-year-bf16/` | (re-cast from fp32) | ~8 GB | Pre-converted bf16 of the recommended mula. Same runtime quality as the fp32 mirror — heartlib already loads at bf16 dtype either way. Half the download. |
| `heartmula-3b-rl-bf16/` | (re-cast from fp32) | ~8 GB | Pre-converted bf16 of the RL mula. |
| `heartmula-3b-base-bf16/` | (re-cast from fp32) | ~8 GB | Pre-converted bf16 of the base mula. |
| `heartcodec-20260123/` | [HeartMuLa/HeartCodec-oss-20260123](https://huggingface.co/HeartMuLa/HeartCodec-oss-20260123) | ~6.7 GB | Codec (fp32). Pairs with any mula variant. Heartlib explicitly warns against lower-precision codec output. |
Shared `tokenizer.json` (9 MB) + `gen_config.json` (~100 B) come from
[HeartMuLa/HeartMuLaGen](https://huggingface.co/HeartMuLa/HeartMuLaGen)
and are duplicated into every mula variant subfolder so each is
self-contained — codec subfolders don't need them.
## Usage
**Direct (heartlib)** — clone any one mula + one codec into a single
directory and pass that as `pretrained_path`:
```bash
hf download \
--repo-id AEmotionStudio/heartmula-models \
--include "checkpoints/heartmula-3b-happy-new-year/**" \
--local-dir ./ckpt-mula
hf download \
--repo-id AEmotionStudio/heartmula-models \
--include "checkpoints/heartcodec-20260123/**" \
--local-dir ./ckpt-codec
# Then merge the two into one pretrained_path before calling
# HeartMuLaGenPipeline.from_pretrained — see heartlib README.
```
**MAESTRO** — open the AI Workstation, switch to **Create**, click the
HeartMuLa card, then download the (mula, codec) pair the panel
recommends. The runner synthesizes the merged `pretrained_path`
automatically and routes it to heartlib.
## License
- **Code (heartlib):** Apache-2.0 — [github.com/HeartMuLa/heartlib](https://github.com/HeartMuLa/heartlib).
- **Weights:** Apache-2.0 — verified against each upstream's model card metadata.
- **This mirror:** redistributed under Apache-2.0 with attribution.
See `LICENSE` at the repo root + each variant's `LICENSE` for the full text.
## Citation
```bibtex
@misc{yang2026heartmulafamilyopensourced,
title={HeartMuLa: A Family of Open Sourced Music Foundation Models},
author={Dongchao Yang and others},
year={2026},
eprint={2601.10547},
archivePrefix={arXiv},
primaryClass={cs.SD}
}
```
## Maintainer
Mirror prepared by [Æmotion Studio](https://huggingface.co/AEmotionStudio)
for the [MAESTRO](https://github.com/AEmotionStudio) DAW. Refresh the
mirror with `python backend/scripts/mirror_heartmula_to_aemotion.py`.
|