ComfyUI Node

Load Audio Model

One loader for the two models nobody else in ComfyUI wants to load

By jplenio·Created 29 days ago·Updated about 11 hours ago· 89
Load Audio Model
    • model
    ◄kind▾►

    You opened a workflow from a music pack, you found a node called Load Audio Model with a single widget that looks like two dropdowns glued together, and you have no idea what it wants. Fair. It's the smallest node in the Plenio Music Production System and it's the one standing between you and two optional stages.

    What it is and why it exists

    Plenio is Johannes Plenio's music-production pack for ComfyUI: a Song Brief, a local writer model, YuE2 or MiniMax Music 3 renders the song, then mastering and export. Two optional stages sit between the render and the master - Refine (48 kHz) (audio super-resolution) and Separate Stems (plus Sung Pitch, which reuses the same separation model). Each of those needs a model file that ComfyUI's own loaders don't know about, because they aren't checkpoints, diffusion models or audio encoders.

    So Plenio registers two folders with ComfyUI and gives you one loader that reaches into either. That's the whole job. If you're not using Refine, Stems or Sung Pitch, you can ignore this node forever.

    How it works

    The kind input is a dynamic combo - you pick the kind first, and the second dropdown fills with the files found in that kind's folder:

    • super-resolution → ComfyUI/models/audio_sr (what Refine's model engine wants)
    • separation → ComfyUI/models/audio_separation (what Separate Stems and Sung Pitch want)

    The file list is a directory scan for .safetensors, .bin and .ckpt, and the weights are read with weights_only=True - which is why a .bin file like UniverSR's works here at all. Architectures are checked when the model is used, not guessed at: hand a super-resolution file to Separate Stems and you get a message saying the model isn't a separation model, instead of a shape-mismatch traceback twenty seconds into the run.

    Inputs and outputs

    • kind (required) - the nested choice described above: kind, then model, the file inside that folder.
    • model (output, type PLENIO_AUDIO_MODEL) - wire it into Refine (48 kHz)'s model input, or Separate Stems' model input (which is required there).

    That's it. One widget in, one wire out.

    Installing it

    You need the pack, and you need the model files - Plenio ships no weights, ever.

    ComfyUI Manager: Custom Nodes Manager → search Plenio Music Production System → install → restart. Or by hand:

    cd ComfyUI/custom_nodes
    git clone https://github.com/jplenio/Plenio-Music-Production-System
    

    Heads up on the version: Plenio needs ComfyUI 0.37.0 or newer, because it builds on ComfyUI's native YuE2, SheetSage2, MiniMax Music 3 and text-generation nodes rather than reimplementing them. That's also why the pack's requirements.txt says nothing extra is needed - dependencies = [] in its pyproject.toml. In a hobby where every audio pack seems to drag a conflicting transformers pin behind it, a node pack that installs zero Python packages is worth knowing about.

    Then the two files this node actually reads:

    | File | Folder (ComfyUI/models/…) | Size | |---|---|---| | pytorch_model.bin (UniverSR, for Refine) | audio_sr | 229 MB | | model_bs_roformer_ep_17_sdr_9.6568.ckpt (BS-RoFormer, for Stems / Sung Pitch) | audio_separation | 527 MB |

    Create the folders if they don't exist. ComfyUI's missing models dialog will offer the downloads when you open a template that needs them, and Plenio's own 0 · System Check template tells you which files of which template you already have. Keep the filenames as released - templates resolve them by name.

    Common issues

    The second dropdown is empty or missing your file. The folder doesn't exist, is empty, or the file has a suffix outside .safetensors / .bin / .ckpt. Make the folder, drop the file in, then refresh the ComfyUI frontend (the folder listing is cached).

    The <kind> model X is not in models/<folder>. The node's own message, and its hint is the fix: download it with the missing-model dialog, or put it in that folder and refresh.

    "A file of another architecture is refused." You picked a super-resolution file under separation or vice versa. Both models live in different folders on purpose; keep them there.

    You don't need this node at all if Refine is set to resample only - that engine is pure math and no file. This is also the reason Plenio's Refine has no silent fallback: the engine is a visible choice, and if you set model without wiring this node's output, the run stops and tells you.

    One licence footnote, since these get swallowed into a song's release record: UniverSR's weights are CC BY 4.0 with MIT inference code, BS-RoFormer's checkpoint is MIT-adjacent but trained on MUSDB18-HQ, whose dataset terms are research-oriented. The pack writes the licences of whatever you used into the .plenio.json next to your export. If you ever ship a song commercially, that's the file to read - non-commercial model terms have a long history of quietly killing projects, and it's better to check before the release than after.

    CategoryPlenio/Audio

    Inputs (1)

    NameTypeDefaultDescription
    kindCOMBOsuper-resolution: for HQ 2 · Regenerate Highs and Refine (48 kHz); separation: for Separate Stems.

    Outputs (1)

    NameTypeDescription
    modelPLENIO_AUDIO_MODELThe loaded model, for HQ 2 and Refine (super-resolution) or Separate Stems.