PersonaPlex Model Loader
The unglamorous node that makes batch speech-to-speech possible
- personaplex_model
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-cudaorcpu. You wantcuda. CPU technically works but you'll watch grass grow.cpu_offload- the low-VRAM lever. Usesaccelerate'sdevice_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.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| moshi_model | COMBO | model.safetensors | 1 options: model.safetensors |
| mimi_model | COMBO | tokenizer-e351c8d8-checkpoint125.safetensors | 1 options: tokenizer-e351c8d8-checkpoint125.safetensors |
| tokenizer | COMBO | tokenizer_spm_32k_3.model | 1 options: tokenizer_spm_32k_3.model |
| device | COMBO | cuda | 2 options: cuda, cpu |
| cpu_offload | BOOLEAN | false | — |
| auto_download_models | BOOLEAN | true | — |
| auto_download_voices | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| personaplex_model | PERSONAPLEX_MODEL | — |