Nodes/ComfyUI-MelBandRoFormer/Mel-Band RoFormer Model Loader
ComfyUI Node

Mel-Band RoFormer Model Loader

The half-boring node that loads a vocal-separation model — it lives in your diffusion_models folder

By kijai·Created about a year ago·Updated 7 months ago· 249
Mel-Band RoFormer Model Loader
    • model
    model_name

    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 .safetensors in models/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=True load 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.

    CategoryMel-Band RoFormer

    Inputs (1)

    NameTypeDefaultDescription
    model_nameCOMBOThese models are loaded from the 'ComfyUI/models/diffusion_models' -folder

    Outputs (1)

    NameTypeDescription
    modelMELROFORMERMODEL