Nodes/ComfyUI-MMAudio-Suite/MMAudioSuite ModelLoader
ComfyUI Node

MMAudioSuite ModelLoader

The MMAudio diffusion-model loader, minus the original pack's footguns

By Takenoko3333·Created 10 months ago·Updated 9 months ago· 5
MMAudioSuite ModelLoader
    • mmaudio_model
    mmaudio_model
    base_precisionfp16

    If you've ever finished a Wan or Hunyuan render and wished the silent clip made noise, this is where that starts. MMAudio is the flow-matching model that takes your video frames and turns them into a matching soundtrack - the KB calls it the foley workhorse, and it really is: it's the standard final audio stage for local video pipelines. MMAudioSuiteModelLoader is the "checkpoint loader" of that pipeline. It loads the MMAudio diffusion model itself, and everything else in the pack hangs off its output.

    There's a story behind why you'd use this pack instead of the original wrapper. ComfyUI-MMAudio was Kijai's node set, and it served everyone for a long time - until it quietly stopped tracking newer ComfyUI versions. The community noticed: "seems MMAudio is not supported anymore with the latest version of ComfyUI." This suite is a fix-fork by Takenoko3333 that applies the upstream bug-fix PR (pr52) and tidies the loaders. Same model, fewer headaches.

    How it works

    The loader reads a .safetensors from ComfyUI/models/mmaudio and does two genuinely useful things the original pack didn't:

    • Auto-detects which MMAudio you're holding. It checks the shape of audio_input_proj.0.bias in the weights: 448 channels means the small model (7 heads, 12 layers), 896 means the large one (14 heads, 21 layers). It also sniffs the t_embed weights to tell v1 from v2. No separate "small vs large" dropdown to get wrong - you just pick the file.
    • Keeps it off your GPU until sampling. Weights load onto the offload device at your chosen precision and stay there. The actual VRAM hit happens later, in the Sampler, when the model is JIT-moved to the card and offloaded again after. That lazy-loading behavior is one of the practical reasons this fork is friendlier than the original, which grabbed VRAM early.

    One quirk worth knowing: it peeks at the filename for 44 or 16 to pick the right sequence config (CONFIG_44K vs CONFIG_16K). That's how it knows the token layout for the sample rate. Keep the sample rate in the file name, and don't rename models to something clever.

    The inputs and output that matter

    • mmaudio_model - a dropdown of everything in ComfyUI/models/mmaudio. Pick mmaudio_large_44k_v2_fp16.safetensors for the standard 44.1 kHz path.
    • base_precision - fp16 is the default and the right call. Reach for fp32 only if you're debugging garbage output; bf16 if you're on an RTX 40-series or AMD card and want the same quality with a touch less memory pressure.

    The single output is mmaudio_model (type MMAUDIO_MODEL), which feeds the MMAudioSuite Sampler node's mmaudio_model input. That's the whole wiring story.

    Install and models

    ComfyUI Manager (search "ComfyUI-MMAudio-Suite") or the manual route:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Takenoko3333/ComfyUI-MMAudio-Suite.git
    

    then restart ComfyUI. On the Windows portable build, if dependencies don't auto-install, run python_embeded\python.exe -m pip install -r ComfyUI\custom_nodes\ComfyUI-MMAudio-Suite\requirements.txt - that pulls librosa, torchdiffeq, einops, timm, omegaconf, open_clip_torch, accelerate and ftfy. librosa drags in numba, which is the slow part of the install; give it a minute.

    Models live in ComfyUI/models/mmaudio and come from Kijai's safetensors repo on HuggingFace - this pack is a wrapper, not a model author. The big file, mmaudio_large_44k_v2_fp16.safetensors, is roughly 2 GB. If the node shows an empty dropdown, that folder is empty; nothing to configure until the files are there.

    Where people get burned

    The classic failure is the empty dropdown - models not downloaded. After that, the "only 2 seconds of audio" complaint people hit in the original wrapper usually traces back to the Sampler's duration, not this loader. And because detection is automatic, a corrupt or mismatched weight file will error loudly at load time rather than silently misbehave later. That loud failure is a feature; read the console, check the filename, try fp32 once if the output is noise.

    CategoryMMAudioSuite

    Inputs (2)

    NameTypeDefaultDescription
    mmaudio_modelCOMBOThese models are loaded from the 'ComfyUI/models/mmaudio' -folder
    base_precisionCOMBOfp163 options: fp16, fp32, bf16

    Outputs (1)

    NameTypeDescription
    mmaudio_modelMMAUDIO_MODEL