Skip to content

Commit 1865764

Browse files
authored
Merge pull request #2442 from bghira/feature/heartmula
HeartMuLa reimplementation
2 parents b80ec54 + 7389485 commit 1865764

40 files changed

Lines changed: 3975 additions & 31 deletions

README.es.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ Para detalles de despliegue, consulta la [Guía Enterprise](/documentation/exper
8787
| **Flux.1** | 12B |||* || int8/fp8/nf4 || CLIP-L + T5-XXL |
8888
| **Flux.2** | 32B |||* || int8/fp8/nf4 || Mistral-3 Small |
8989
| **ACE-Step** | 3.5B |||* || int8 || UMT5 |
90+
| **HeartMuLa** | 3B |||* || int8 || Ninguno |
9091
| **Chroma 1** | 8.9B |||* || int8/fp8/nf4 || T5-XXL |
9192
| **Auraflow** | 6.8B |||* || int8/fp8/nf4 || UMT5-XXL |
9293
| **PixArt Sigma** | 0.6B-0.9B ||||| int8 || T5-XXL |
@@ -139,6 +140,7 @@ Hay guías detalladas de inicio rápido disponibles para todos los modelos sopor
139140
- **[Guía de Flux.2](/documentation/quickstart/FLUX2.md)** - **NUEVO**. Último y enorme modelo Flux con codificador de texto Mistral-3
140141
- **[Guía de Z-Image](/documentation/quickstart/ZIMAGE.md)** - LoRA Base/Turbo con adaptador asistente + aceleración TREAD
141142
- **[Guía de ACE-Step](/documentation/quickstart/ACE_STEP.md)** - **NUEVO**. Entrenamiento de modelo de generación de audio (text-to-music)
143+
- **[Guía de HeartMuLa](/documentation/quickstart/HEARTMULA.md)** - **NUEVO**. Entrenamiento de modelo de audio autoregresivo (text-to-audio)
142144
- **[Guía de Chroma](/documentation/quickstart/CHROMA.md)** - Transformer de flow-matching de Lodestone con schedules específicos de Chroma
143145
- **[Guía de Stable Diffusion 3](/documentation/quickstart/SD3.md)** - Entrenamiento full y LoRA con ControlNet
144146
- **[Guía de Stable Diffusion XL](/documentation/quickstart/SDXL.md)** - Pipeline completo de entrenamiento SDXL

README.hi.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ SimpleTuner एक पूर्ण मल्टी‑यूज़र प्र
8787
| **Flux.1** | 12B |||* || int8/fp8/nf4 || CLIP-L + T5-XXL |
8888
| **Flux.2** | 32B |||* || int8/fp8/nf4 || Mistral-3 Small |
8989
| **ACE-Step** | 3.5B |||* || int8 || UMT5 |
90+
| **HeartMuLa** | 3B |||* || int8 || कोई नहीं |
9091
| **Chroma 1** | 8.9B |||* || int8/fp8/nf4 || T5-XXL |
9192
| **Auraflow** | 6.8B |||* || int8/fp8/nf4 || UMT5-XXL |
9293
| **PixArt Sigma** | 0.6B-0.9B ||||| int8 || T5-XXL |
@@ -139,6 +140,7 @@ SimpleTuner एक पूर्ण मल्टी‑यूज़र प्र
139140
- **[Flux.2 Guide](/documentation/quickstart/FLUX2.md)** - **NEW!** Mistral‑3 टेक्स्ट encoder के साथ नवीनतम विशाल Flux मॉडल
140141
- **[Z-Image Guide](/documentation/quickstart/ZIMAGE.md)** - Base/Turbo LoRA with assistant adapter + TREAD acceleration
141142
- **[ACE-Step Guide](/documentation/quickstart/ACE_STEP.md)** - **NEW!** ऑडियो जनरेशन मॉडल प्रशिक्षण (text‑to‑music)
143+
- **[HeartMuLa Guide](/documentation/quickstart/HEARTMULA.md)** - **NEW!** ऑटोरिग्रेसिव ऑडियो जनरेशन मॉडल प्रशिक्षण (text‑to‑audio)
142144
- **[Chroma Guide](/documentation/quickstart/CHROMA.md)** - Lodestone का flow‑matching transformer, Chroma‑specific schedules के साथ
143145
- **[Stable Diffusion 3 Guide](/documentation/quickstart/SD3.md)** - ControlNet के साथ full और LoRA प्रशिक्षण
144146
- **[Stable Diffusion XL Guide](/documentation/quickstart/SDXL.md)** - पूर्ण SDXL प्रशिक्षण पाइपलाइन

README.ja.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ SimpleTunerには、エンタープライズグレードの機能を備えた完
8787
| **Flux.1** | 12B |||* || int8/fp8/nf4 || CLIP-L + T5-XXL |
8888
| **Flux.2** | 32B |||* || int8/fp8/nf4 || Mistral-3 Small |
8989
| **ACE-Step** | 3.5B |||* || int8 || UMT5 |
90+
| **HeartMuLa** | 3B |||* || int8 || なし |
9091
| **Chroma 1** | 8.9B |||* || int8/fp8/nf4 || T5-XXL |
9192
| **Auraflow** | 6.8B |||* || int8/fp8/nf4 || UMT5-XXL |
9293
| **PixArt Sigma** | 0.6B-0.9B ||||| int8 || T5-XXL |
@@ -139,6 +140,7 @@ SimpleTunerには、エンタープライズグレードの機能を備えた完
139140
- **[Flux.2ガイド](/documentation/quickstart/FLUX2.md)** - **NEW!** Mistral-3テキストエンコーダーを搭載した最新の巨大なFluxモデル
140141
- **[Z-Imageガイド](/documentation/quickstart/ZIMAGE.md)** - アシスタントアダプター + TREAD高速化を備えたBase/Turbo LoRA
141142
- **[ACE-Stepガイド](/documentation/quickstart/ACE_STEP.md)** - **NEW!** 音声生成モデルトレーニング(text-to-music)
143+
- **[HeartMuLaガイド](/documentation/quickstart/HEARTMULA.md)** - **NEW!** 自己回帰の音声生成モデルトレーニング(text-to-audio)
142144
- **[Chromaガイド](/documentation/quickstart/CHROMA.md)** - ChromaSpecificスケジュールを持つLodestoneのflow-matching transformer
143145
- **[Stable Diffusion 3ガイド](/documentation/quickstart/SD3.md)** - ControlNet付きのFullおよびLoRAトレーニング
144146
- **[Stable Diffusion XLガイド](/documentation/quickstart/SDXL.md)** - 完全なSDXLトレーニングパイプライン

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ For deployment details, see the [Enterprise Guide](/documentation/experimental/s
8787
| **Flux.1** | 12B |||* || int8/fp8/nf4 || CLIP-L + T5-XXL |
8888
| **Flux.2** | 32B |||* || int8/fp8/nf4 || Mistral-3 Small |
8989
| **ACE-Step** | 3.5B |||* || int8 || UMT5 |
90+
| **HeartMuLa** | 3B |||* || int8 || None |
9091
| **Chroma 1** | 8.9B |||* || int8/fp8/nf4 || T5-XXL |
9192
| **Auraflow** | 6.8B |||* || int8/fp8/nf4 || UMT5-XXL |
9293
| **PixArt Sigma** | 0.6B-0.9B ||||| int8 || T5-XXL |
@@ -139,6 +140,7 @@ Detailed quickstart guides are available for all supported models:
139140
- **[Flux.2 Guide](/documentation/quickstart/FLUX2.md)** - **NEW!** Latest enormous Flux model with Mistral-3 text encoder
140141
- **[Z-Image Guide](/documentation/quickstart/ZIMAGE.md)** - Base/Turbo LoRA with assistant adapter + TREAD acceleration
141142
- **[ACE-Step Guide](/documentation/quickstart/ACE_STEP.md)** - **NEW!** Audio generation model training (text-to-music)
143+
- **[HeartMuLa Guide](/documentation/quickstart/HEARTMULA.md)** - **NEW!** Autoregressive audio generation model training (text-to-audio)
142144
- **[Chroma Guide](/documentation/quickstart/CHROMA.md)** - Lodestone's flow-matching transformer with Chroma-specific schedules
143145
- **[Stable Diffusion 3 Guide](/documentation/quickstart/SD3.md)** - Full and LoRA training with ControlNet
144146
- **[Stable Diffusion XL Guide](/documentation/quickstart/SDXL.md)** - Complete SDXL training pipeline

README.pt-BR.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ Para detalhes de deploy, veja o [guia enterprise](/documentation/experimental/se
8787
| **Flux.1** | 12B |||* || int8/fp8/nf4 || CLIP-L + T5-XXL |
8888
| **Flux.2** | 32B |||* || int8/fp8/nf4 || Mistral-3 Small |
8989
| **ACE-Step** | 3.5B |||* || int8 || UMT5 |
90+
| **HeartMuLa** | 3B |||* || int8 || Nenhum |
9091
| **Chroma 1** | 8.9B |||* || int8/fp8/nf4 || T5-XXL |
9192
| **Auraflow** | 6.8B |||* || int8/fp8/nf4 || UMT5-XXL |
9293
| **PixArt Sigma** | 0.6B-0.9B ||||| int8 || T5-XXL |
@@ -139,6 +140,7 @@ Guias detalhados estao disponiveis para todos os modelos suportados:
139140
- **[Guia Flux.2](/documentation/quickstart/FLUX2.pt-BR.md)** - **NOVO!** Modelo Flux enorme com text encoder Mistral-3
140141
- **[Guia Z-Image](/documentation/quickstart/ZIMAGE.pt-BR.md)** - Base/Turbo LoRA com adaptador assistente + aceleracao TREAD
141142
- **[Guia ACE-Step](/documentation/quickstart/ACE_STEP.pt-BR.md)** - **NOVO!** Treinamento de modelo de geracao de audio (texto-para-musica)
143+
- **[Guia HeartMuLa](/documentation/quickstart/HEARTMULA.pt-BR.md)** - **NOVO!** Treinamento de modelo de audio autoregressivo (texto-para-audio)
142144
- **[Guia Chroma](/documentation/quickstart/CHROMA.pt-BR.md)** - Transformer flow-matching da Lodestone com schedules especificos
143145
- **[Guia Stable Diffusion 3](/documentation/quickstart/SD3.pt-BR.md)** - Treino full e LoRA com ControlNet
144146
- **[Guia Stable Diffusion XL](/documentation/quickstart/SDXL.pt-BR.md)** - Pipeline completo de treino SDXL

README.zh.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ SimpleTuner 包含完整的多用户训练平台,具有企业级功能——**
8787
| **Flux.1** | 12B |||* || int8/fp8/nf4 || CLIP-L + T5-XXL |
8888
| **Flux.2** | 32B |||* || int8/fp8/nf4 || Mistral-3 Small |
8989
| **ACE-Step** | 3.5B |||* || int8 || UMT5 |
90+
| **HeartMuLa** | 3B |||* || int8 |||
9091
| **Chroma 1** | 8.9B |||* || int8/fp8/nf4 || T5-XXL |
9192
| **Auraflow** | 6.8B |||* || int8/fp8/nf4 || UMT5-XXL |
9293
| **PixArt Sigma** | 0.6B-0.9B ||||| int8 || T5-XXL |
@@ -139,6 +140,7 @@ SimpleTuner 包含完整的多用户训练平台,具有企业级功能——**
139140
- **[Flux.2 指南](/documentation/quickstart/FLUX2.md)** - **新!** 带有 Mistral-3 文本编码器的最新超大 Flux 模型
140141
- **[Z-Image 指南](/documentation/quickstart/ZIMAGE.md)** - 带助手适配器的 Base/Turbo LoRA + TREAD 加速
141142
- **[ACE-Step 指南](/documentation/quickstart/ACE_STEP.md)** - **新!** 音频生成模型训练(文本到音乐)
143+
- **[HeartMuLa 指南](/documentation/quickstart/HEARTMULA.md)** - **新!** 自回归音频生成模型训练(文本到音频)
142144
- **[Chroma 指南](/documentation/quickstart/CHROMA.md)** - Lodestone 的 flow-matching transformer,带 Chroma 特定调度
143145
- **[Stable Diffusion 3 指南](/documentation/quickstart/SD3.md)** - 全秩和 LoRA 训练,支持 ControlNet
144146
- **[Stable Diffusion XL 指南](/documentation/quickstart/SDXL.md)** - 完整的 SDXL 训练流程
Lines changed: 198 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,198 @@
1+
# Inicio rapido de HeartMuLa
2+
3+
En este ejemplo, entrenaremos el modelo HeartMuLa oss 3B de generacion de audio.
4+
5+
## Vision general
6+
7+
HeartMuLa es un transformador autoregresivo de 3B parametros que predice tokens de audio discretos a partir de etiquetas y letras. Los tokens se decodifican con HeartCodec para producir formas de onda.
8+
9+
## Requisitos de hardware
10+
11+
HeartMuLa es un modelo de 3B parametros, lo que lo hace relativamente liviano comparado con modelos grandes de generacion de imagenes como Flux.
12+
13+
- **Minimo:** GPU NVIDIA con 12GB+ de VRAM (p. ej., 3060, 4070).
14+
- **Recomendado:** GPU NVIDIA con 24GB+ de VRAM (p. ej., 3090, 4090, A10G) para batch sizes mayores.
15+
- **Mac:** Compatible via MPS en Apple Silicon (requiere ~36GB+ de memoria unificada).
16+
17+
### Requisitos de almacenamiento
18+
19+
> ⚠️ **Advertencia sobre dataset de tokens:** HeartMuLa se entrena con tokens de audio precomputados. SimpleTuner no genera tokens durante el entrenamiento, asi que tu dataset debe proporcionar metadatos `audio_tokens` o `audio_tokens_path`. Los archivos de tokens pueden ser grandes, asi que planifica el espacio en disco.
20+
21+
> 💡 **Consejo:** Usar cuantizacion `int8-quanto` permite entrenar en GPUs con menos VRAM (p. ej., 12GB-16GB) con minima perdida de calidad.
22+
23+
## Requisitos previos
24+
25+
Asegurate de tener un entorno Python 3.10+ funcional.
26+
27+
```bash
28+
pip install simpletuner
29+
```
30+
31+
## Configuracion
32+
33+
Se recomienda mantener tus configuraciones organizadas. Crearemos una carpeta dedicada para esta demo.
34+
35+
```bash
36+
mkdir -p config/heartmula-training-demo
37+
```
38+
39+
### Ajustes criticos
40+
41+
Crea `config/heartmula-training-demo/config.json` con estos valores:
42+
43+
<details>
44+
<summary>Ver ejemplo de config</summary>
45+
46+
```json
47+
{
48+
"model_family": "heartmula",
49+
"model_type": "lora",
50+
"model_flavour": "3b",
51+
"pretrained_model_name_or_path": "HeartMuLa/HeartMuLa-oss-3B",
52+
"resolution": 0,
53+
"mixed_precision": "bf16",
54+
"base_model_precision": "int8-quanto",
55+
"data_backend_config": "config/heartmula-training-demo/multidatabackend.json"
56+
}
57+
```
58+
</details>
59+
60+
### Ajustes de validacion
61+
62+
Anade estos valores a tu `config.json` para monitorear el progreso:
63+
64+
- **`validation_prompt`**: Etiquetas o una descripcion del audio (p. ej., "Pop upbeat con sintetizadores brillantes").
65+
- **`validation_lyrics`**: (Opcional) Letras para que el modelo cante. Usa una cadena vacia para instrumentales.
66+
- **`validation_audio_duration`**: Duracion en segundos para clips de validacion (predeterminado: 30.0).
67+
- **`validation_guidance`**: Escala de guidance (empieza alrededor de 1.5 - 3.0).
68+
- **`validation_step_interval`**: Con que frecuencia generar muestras (p. ej., cada 100 pasos).
69+
70+
### Funciones experimentales avanzadas
71+
72+
<details>
73+
<summary>Mostrar detalles experimentales avanzados</summary>
74+
75+
76+
SimpleTuner incluye funciones experimentales que pueden mejorar significativamente la estabilidad y el rendimiento del entrenamiento.
77+
78+
* **[Scheduled Sampling (Rollout)](../experimental/SCHEDULED_SAMPLING.md):** reduce el sesgo de exposicion y mejora la calidad de salida dejando que el modelo genere sus propias entradas durante el entrenamiento.
79+
80+
> ⚠️ Estas funciones aumentan la sobrecarga computacional del entrenamiento.
81+
82+
</details>
83+
84+
## Configuracion del dataset
85+
86+
HeartMuLa requiere un dataset **especifico para audio** con tokens precomputados.
87+
88+
Cada muestra debe proporcionar:
89+
90+
- `tags` (cadena)
91+
- `lyrics` (cadena; puede estar vacia)
92+
- `audio_tokens` o `audio_tokens_path`
93+
94+
Los arrays de tokens deben ser 2D con forma `[frames, num_codebooks]` o `[num_codebooks, frames]`.
95+
96+
> 💡 **Nota:** HeartMuLa no usa un codificador de texto separado, asi que no se requiere un backend de text-embeds.
97+
98+
### Opcion 1: Dataset de Hugging Face (tokens en columnas)
99+
100+
Crea `config/heartmula-training-demo/multidatabackend.json`:
101+
102+
<details>
103+
<summary>Ver ejemplo de config</summary>
104+
105+
```json
106+
[
107+
{
108+
"id": "heartmula-demo-data",
109+
"type": "huggingface",
110+
"dataset_type": "audio",
111+
"dataset_name": "your-org/heartmula-audio-tokens",
112+
"metadata_backend": "huggingface",
113+
"caption_strategy": "huggingface",
114+
"config": {
115+
"audio_caption_fields": ["tags"],
116+
"lyrics_column": "lyrics"
117+
}
118+
}
119+
]
120+
```
121+
</details>
122+
123+
Asegurate de que tu dataset incluya columnas `audio_tokens` o `audio_tokens_path` junto con los campos de texto.
124+
125+
### Opcion 2: Archivos de audio locales + metadatos de tokens
126+
127+
Crea `config/heartmula-training-demo/multidatabackend.json`:
128+
129+
<details>
130+
<summary>Ver ejemplo de config</summary>
131+
132+
```json
133+
[
134+
{
135+
"id": "my-audio-dataset",
136+
"type": "local",
137+
"dataset_type": "audio",
138+
"instance_data_dir": "datasets/my_audio_files",
139+
"caption_strategy": "textfile",
140+
"metadata_backend": "discovery",
141+
"disabled": false
142+
}
143+
]
144+
```
145+
</details>
146+
147+
Asegurate de que tu backend de metadatos suministre `audio_tokens` o `audio_tokens_path` para cada muestra.
148+
149+
### Estructura de datos
150+
151+
Coloca tus archivos de audio en `datasets/my_audio_files`. SimpleTuner soporta una amplia gama de formatos incluyendo:
152+
153+
- **Sin perdida:** `.wav`, `.flac`, `.aiff`, `.alac`
154+
- **Con perdida:** `.mp3`, `.ogg`, `.m4a`, `.aac`, `.wma`, `.opus`
155+
156+
> ℹ️ **Nota:** Para soportar formatos como MP3, AAC y WMA, debes tener **FFmpeg** instalado en tu sistema.
157+
158+
Para etiquetas y letras, coloca archivos de texto correspondientes junto a tus archivos de audio si usas `caption_strategy: textfile`:
159+
160+
- **Audio:** `track_01.wav`
161+
- **Etiquetas (Prompt):** `track_01.txt` (Contiene la descripcion de texto, p. ej., "Una balada de jazz lenta")
162+
- **Letras (Opcional):** `track_01.lyrics` (Contiene el texto de las letras)
163+
164+
Proporciona los arrays de tokens mediante metadatos (por ejemplo, entradas `audio_tokens_path` que apunten a archivos `.npy` o `.npz`).
165+
166+
<details>
167+
<summary>Ejemplo de estructura del dataset</summary>
168+
169+
```text
170+
datasets/my_audio_files/
171+
├── track_01.wav
172+
├── track_01.txt
173+
├── track_01.lyrics
174+
└── track_01.tokens.npy
175+
```
176+
</details>
177+
178+
> ⚠️ **Nota sobre letras:** HeartMuLa espera una cadena de letras para cada muestra. Para datos instrumentales, proporciona una cadena vacia en lugar de omitir el campo.
179+
180+
## Entrenamiento
181+
182+
Inicia el entrenamiento especificando tu entorno:
183+
184+
```bash
185+
simpletuner train env=heartmula-training-demo
186+
```
187+
188+
Este comando le dice a SimpleTuner que busque `config.json` dentro de `config/heartmula-training-demo/`.
189+
190+
> 💡 **Consejo (Continuar entrenamiento):** Para continuar un fine-tuning desde una LoRA existente, usa la opcion `--init_lora`:
191+
> ```bash
192+
> simpletuner train env=heartmula-training-demo --init_lora=/path/to/existing_lora.safetensors
193+
> ```
194+
195+
## Solucion de problemas
196+
197+
- **Errores de validacion:** Asegurate de no intentar usar funciones de validacion centradas en imagenes como `num_validation_images` > 1 (mapeado conceptualmente al batch size para audio) o metricas basadas en imagen (puntaje CLIP).
198+
- **Problemas de memoria:** Si te quedas sin memoria, intenta reducir `train_batch_size` o habilitar `gradient_checkpointing`.

0 commit comments

Comments
 (0)