Mel-Band RoFormer Model Loader
The half-boring node that loads a vocal-separation model — it lives in your diffusion_models folder
- model
This is the boring half of a two-node pack, and that's fine. The other half - the MelBandRoFormerSampler - is where the magic happens. The loader just picks a model file and hands you a model you can't do anything with until you wire it into that sampler. But there's exactly one gotcha hiding here, and it trips up basically everyone: the model does not live where you expect.
What this is actually for
Music source separation - splitting a song into vocals and instruments - running entirely inside ComfyUI. Mel-Band RoFormer is a transformer architecture from the 2023 paper "Mel-Band RoFormer for Music Source Separation" (arXiv 2310.01809) that became a community favorite for vocal stems, in large part because of open weights like the KimberleyJensen vocal model this pack is based on. Kijai - the same person behind ComfyUI-WanVideoWrapper and KJNodes, and the guy who's shipped day-one fixes and fp8 conversions for basically every video model release since - wrapped it as a two-node pack and converted the weights to a single-file safetensors.
How it works
The loader builds a MelBandRoformer with a fixed architecture (384-dim, depth 6, 60 mel bands, 44.1kHz sample rate) and loads the state dict straight from a file. The one quirk is where it looks: the dropdown pulls from ComfyUI/models/diffusion_models. Audio model, "diffusion" folder - yes, it's confusing, but it's how the node is wired. Drop it in checkpoints and the list stays empty.
The only input, and the output
- model_name - a dropdown of every
.safetensorsinmodels/diffusion_models. That's it. There's nothing else to tune here, which is the nice thing about this node. - Output: model (type
MELROFORMERMODEL), which only the MelBandRoFormerSampler accepts. You can't accidentally plug it into anything else, and you can't feed it to anything else either.
Install
Two ways, pick one:
# ComfyUI-Manager: search "Mel-Band RoFormer" and install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/kijai/ComfyUI-MelBandRoFormer
Then restart ComfyUI. Manager handles the Python deps (rotary_embedding_torch and einops, from the pack's requirements.txt) - they're lightweight, nothing heavy like a full audio toolkit.
The actual model is the part people miss:
# from https://huggingface.co/Kijai/MelBandRoFormer_comfy
# download MelBandRoformer_fp16.safetensors (456 MB) into:
ComfyUI/models/diffusion_models/
Grab the fp16 and skip the fp32 (913 MB). At 456 MB this thing is tiny by diffusion standards, and fp16 vs fp32 doesn't change how separation sounds. The README's comfy_models\diffusion_models path is a typo - the real folder is ComfyUI/models/diffusion_models.
Where people get burned
- Dropdown is empty - the model isn't in
models/diffusion_models. Double-check the folder name; this is the number one support question. strict=Trueload error - the loader expects Kijai's exact converted state dict against a fixed config. A raw training checkpoint won't match. Use his converted file, don't try to roll your own.- VRAM - not a thing here. A 456 MB model is nothing on any GPU made in the last decade; this pack won't be what OOMs you.
That's the whole node. Load a file, get a model, hand it to the sampler.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | COMBO | These models are loaded from the 'ComfyUI/models/diffusion_models' -folder |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model | MELROFORMERMODEL | — |