Nodes/ComfyUI_PersonaPlexMF/PersonaPlex Model Loader
ComfyUI Node

PersonaPlex Model Loader

The unglamorous node that makes batch speech-to-speech possible

By squarewulf·Created 7 months ago·Updated 5 months ago· 11
PersonaPlex Model Loader
    • personaplex_model
    moshi_modelmodel.safetensors
    mimi_modeltokenizer-e351c8d8-checkpoint125.safetensors
    tokenizertokenizer_spm_32k_3.model
    devicecuda
    cpu_offloadfalse
    auto_download_modelstrue
    auto_download_voicestrue

    PersonaPlex Model Loader is the boring half of the batch-inference path, and it's honest about it: it takes three model files, loads them, and hands you a bundle you feed straight into the PersonaPlex Inference node. No UI, no audio, no web server. It exists because the offline version of PersonaPlex needs three separate pieces of a puzzle before it can generate a single spoken word, and this node is what puts them together.

    Use it when you want to process audio files rather than have a live chat - turn-based speech-to-speech, the way you'd run a diffusion model over a folder of images instead of sitting there with a prompt box.

    How it works

    PersonaPlex is built on the Moshi architecture, and that shows up in what the loader has to juggle. It loads:

    • The Moshi LM - the 7B language model (model.safetensors, ~14GB) that predicts both text and audio tokens.
    • Two Mimi codecs - one to encode your incoming audio, a second "other_mimi" to decode the model's spoken reply. That's the dual-stream design: listening and speaking happen concurrently, so the model can react mid-sentence.
    • A SentencePiece text tokenizer for the text stream.

    The node also makes sure the voice preset files (voices/*.pt) exist - those are the speaker embeddings the inference node uses - and it does all of this on a meta-device, so loading a 14GB model doesn't require 14GB of free RAM before offloading kicks in.

    Model files, and where they live: all three default filenames (model.safetensors, tokenizer-e351c8d8-checkpoint125.safetensors, tokenizer_spm_32k_3.model) map to the nvidia/personaplex-7b-v1 repository on Hugging Face, and the loader scans ComfyUI/models/personaplex/ to populate the dropdowns. If the files aren't there, auto_download_models (default true) grabs them on first run. Expect that first execution to stall for a long time on a multi-gigabyte download.

    The inputs that matter

    • device - cuda or cpu. You want cuda. CPU technically works but you'll watch grass grow.
    • cpu_offload - the low-VRAM lever. Uses accelerate's device_map="auto" to shuffle layers between GPU and system RAM. The README calls 12GB the minimum with this on, and warns it's slower. Keep it off if you have a 24GB card.
    • auto_download_models / auto_download_voices - flip these off if you'd rather download manually or already staged the files.

    The honest VRAM talk

    The README advertises 8-bit and 4-bit quantization to get this running on 8–16GB cards, and there's even a quantize.py in the repo. But the node as shipped doesn't actually expose a quantize input - you get the full-precision model, period. So budget accordingly: ~14GB of weights plus the codecs and activation overhead, which lands closer to 20GB+ in practice. That matches what the community reports around the underlying model (people on RTX 3090/4090s run it, but nobody's having fun on a 12GB card without offloading). If the README's quantization promise shows up in a later build, great - until then, treat "8GB VRAM" as aspirational.

    Output: one thing, personaplex_model (type PERSONAPLEX_MODEL) - the loaded bundle of model, codecs, tokenizer, sample rate and voice directory. It only plugs into PersonaPlex Inference, which is a feature: it guarantees the model is actually loaded before you burn GPU cycles on a prompt.

    Installing and troubleshooting

    Same story as the rest of the pack - see the pack README, but the short version is clone into custom_nodes, then:

    pip install -r requirements.txt
    pip install -e personaplex_src/moshi
    

    The two errors you're most likely to hit here are a stale sphn (must be >=0.1.4,<0.2) and a conflicting moshi package (pip install -e personaplex_src/moshi fixes it). If you get a FileNotFoundError naming a model file, the auto-download didn't finish or you disabled it - drop the files into ComfyUI/models/personaplex/ yourself.

    Categoryaudio/PersonaPlex

    Inputs (7)

    NameTypeDefaultDescription
    moshi_modelCOMBOmodel.safetensors1 options: model.safetensors
    mimi_modelCOMBOtokenizer-e351c8d8-checkpoint125.safetensors1 options: tokenizer-e351c8d8-checkpoint125.safetensors
    tokenizerCOMBOtokenizer_spm_32k_3.model1 options: tokenizer_spm_32k_3.model
    deviceCOMBOcuda2 options: cuda, cpu
    cpu_offloadBOOLEANfalse
    auto_download_modelsBOOLEANtrue
    auto_download_voicesBOOLEANtrue

    Outputs (1)

    NameTypeDescription
    personaplex_modelPERSONAPLEX_MODEL