Skip to main content

SongBloom: Coherent Song Generation via Interleaved Autoregressive Sketching and Diffusion Refinement

Paper Hugging Face Demo Page

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.

img

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.

Metadata

Release files for tts-webui.songbloom 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for tts-webui.songbloom 0.1.1
File Interpreter ABI Platform
tts_webui_songbloom-0.1.1-py3-none-any.whl Python 3 none any Details

Release files / tts_webui_songbloom-0.1.1-py3-none-any.whl

Download URL tts_webui_songbloom-0.1.1-py3-none-any.whl
Size 5.7 MB
Tags Python 3
SHA-256 checksum
How to use checksums
03146595dd23f402e9f2da45d92657c9ca6f1ad05b783fd2321f399aa9a038e2
BLAKE2b-256 checksum
How to use checksums
51e045c8f6df17f0f1867a03a142164f8eadfbf5a39c583621a0253919df8b40
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.18

Release history Release notifications | RSS feed

This release

0.1.1 This release

1 release file

0.1.0

1 release file

0.0.2

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page