SongBloom package for tts-webui
Project description
SongBloom: Coherent Song Generation via Interleaved Autoregressive Sketching and Diffusion Refinement
We propose SongBloom, a novel framework for full-length song generation that leverages an interleaved paradigm of autoregressive sketching and diffusion-based refinement. SongBloom employs an autoregressive diffusion model that combines the high fidelity of diffusion models with the scalability of language models. Specifically, it gradually extends a musical sketch from short to long and refines the details from coarse to fine-grained. The interleaved generation paradigm effectively integrates prior semantic and acoustic context to guide the generation process. Experimental results demonstrate that SongBloom outperforms existing methods across both subjective and objective metrics and achieves performance comparable to the state-of-the-art commercial music generation platforms.
Models
| Name | Size | Max Length | Prompt type | 🤗 |
|---|---|---|---|---|
| songbloom_full_150s | 2B | 2m30s | 10s wav | link |
| songbloom_full_150s_dpo | 2B | 2m30s | 10s wav | link |
| songbloom_mulan_150s | 2B | 2m30s | 10s wav / text description | coming soon |
| ... |
Updates
- Jun 2025: Release the songbloom_full_150s and inference script
- Sep 2025: Release the songbloom_full_150s model with DPO post-training
Getting Started
Prepare Environments
conda create -n SongBloom python==3.8.12
conda activate SongBloom
# yum install libsndfile
# pip install torch==2.2.0 torchaudio==2.2.0 --index-url https://download.pytorch.org/whl/cu118 # For different CUDA version
pip install -r requirements.txt
Data Preparation
A .jsonl file, where each line is a json object:
{
"idx": "The index of each sample",
"lyrics": "The lyrics to be generated",
"prompt_wav": "The path of the style prompt audio",
}
One example can be refered to as: example/test.jsonl
The prompt wav should be a 10-second, 48kHz audio clip.
For details on lyric formatting, see docs/lyric_format.md.
Inference
source set_env.sh
python3 infer.py --input-jsonl example/test.jsonl
# For GPUs with low VRAM like RTX4090, you should set the dtype as bfloat16
python3 infer.py --input-jsonl example/test.jsonl --dtype bfloat16
# SongBloom also supports flash-attn (optional). To enable it, please install flash-attn (v2.6.3 is used during training) manually and set os.environ['DISABLE_FLASH_ATTN'] = "0" in infer.py:8
Citation
@article{yang2025songbloom,
title={SongBloom: Coherent Song Generation via Interleaved Autoregressive Sketching and Diffusion Refinement},
author={Yang, Chenyu and Wang, Shuai and Chen, Hangting and Tan, Wei and Yu, Jianwei and Li, Haizhou},
journal={arXiv preprint arXiv:2506.07634},
year={2025}
}
License
SongBloom (codes and weights) is released under the Apache License 2.0.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tts_webui_songbloom-0.1.1-py3-none-any.whl.
File metadata
- Download URL: tts_webui_songbloom-0.1.1-py3-none-any.whl
- Upload date:
- Size: 5.7 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
03146595dd23f402e9f2da45d92657c9ca6f1ad05b783fd2321f399aa9a038e2
|
|
| MD5 |
e74833fbad1f77e394d261d9b5bec598
|
|
| BLAKE2b-256 |
51e045c8f6df17f0f1867a03a142164f8eadfbf5a39c583621a0253919df8b40
|