Nodes/DiffSynth-ComfyUI/DiffSynth: MiniMax Music 3 Loader
ComfyUI Node

DiffSynth: MiniMax Music 3 Loader

MiniMax Music 3 Loader — six files between you and a song

By modelscope·Created about a month ago·Updated a day ago· 8
DiffSynth: MiniMax Music 3 Loader
  • model_configs
  • tokenizer_config
  • vram_limit
  • pipe
◄torch_dtypebfloat16►
◄devicecuda►
◄redirect_common_filestrue►

Music is the thinnest layer in the local generation stack, and the honest summary of it is this: Suno still wins the "make me a good song" job, ACE-Step is what open weights actually has, and everything else is a smaller bet. That's the context for this loader. MiniMax is the lab most of this community knows as the maker of Hailuo, and its music line has been closed for years - Music 3 is the version you can download and run yourself.

It's a multi-model pipeline, which is why the merge node in front of it looks busy.

Required inputs

  • model_configs - the merged list. The pack's template wires five components out of MiniMax/MiniMax-Music3: language_model/model*.safetensors, rvq_depth_decoder/diffusion_pytorch_model.safetensors, transformer/diffusion_pytorch_model*.safetensors, condition_encoder/diffusion_pytorch_model.safetensors and vocoder/diffusion_pytorch_model.safetensors. Read that list again and the architecture is fairly legible: a language model that conditions, a flow transformer doing the generation, an RVQ depth decoder and a vocoder turning the latent back into audio.
  • torch_dtype - bfloat16 default.
  • device - cuda or cpu.

The optional inputs

tokenizer_config - the repo's tokenizer/ folder, wired as its own ModelConfig with a blank origin_file_pattern so the whole directory comes down. Your lyrics and prompt go through this before anything reaches the transformer.

redirect_common_files (default true) - the flag that stops the loader from pulling duplicate shared components. On a five-file pipeline, leave it on.

vram_limit - from a VRAM Limit node, so the loader knows your actual ceiling minus a reserve.

Install

ComfyUI Manager, search DiffSynth-ComfyUI, install, restart. Or:

pip install git+https://github.com/modelscope/DiffSynth-Studio.git
cd ComfyUI/custom_nodes
git clone https://github.com/modelscope/DiffSynth-ComfyUI.git

Then open general_minimax_music3 from the Template tab - it's a two-node graph after the loader, and it already has the prompt and lyric formatting that actually works.

Where people get burned

Dropping one of the five model files. With this many components, a missing config is the most likely cause of a mysterious load failure. Compare your merge node's wiring against the template's, socket by socket.

Expecting a text-to-song one-liner. The pipeline wants structure: a descriptive prompt for genre, tempo and arrangement, and lyrics with section tags. Garbage in, karaoke out.

Assuming local beats Suno. It doesn't, in the sense that matters most - clean vocals on a catchy original. What it does beat is the API: no per-song cost, no upload, no terms-of-service conversation about your lyrics. If you want control and unlimited retries instead of the best possible vocal, this is a reasonable trade.

CategoryDiffSynth/loader

Inputs (6)

NameTypeDefaultDescription
torch_dtypeCOMBObfloat163 options: bfloat16, float16, float32
deviceCOMBOcuda2 options: cuda, cpu
model_configsDIFFSYNTH_MODEL_CONFIG_LIST—
tokenizer_configoptDIFFSYNTH_MODEL_CONFIG—
redirect_common_filesoptBOOLEANtrue—
vram_limitoptDIFFSYNTH_VRAM_LIMIT—

Outputs (1)

NameTypeDescription
pipeDIFFSYNTH_PIPE—