Load SoPro Model
The boring loader that makes SoPro TTS work
- model
Load SoPro Model is the least interesting node in this pack and the one everything else hangs off. It doesn't generate anything, doesn't clone anything, and its only job is to pull a TTS model into memory and hand it to the other two nodes. That's exactly why you should understand it - the name is a lie in one sense: it calls no API, needs no key, and downloads nothing until your first run.
SoPro is the voice-cloning model behind this three-node pack (vjumpkung/comfyui-sopro-tts): a lightweight multilingual text-to-speech model that clones a voice from a short reference clip. Its whole pitch is that it's small enough to be fast - and genuinely CPU-friendly - which puts it in the light corner of the audio-in-ComfyUI story, alongside Kokoro, rather than the heavyweight Chatterbox corner. Audio was never designed into ComfyUI; it's a bolted-on layer, so packs like this are how it happens. This loader is the front door.
What it actually does
Under the hood this node is a thin wrapper around SoproTTS.from_pretrained(...) from the sopro Python package (the pack pins sopro>=2.0.5,<3). On the first execution it pulls the model from Hugging Face and caches it, then every run after that is local and offline. The model handle it produces is a custom SOPRO_MODEL type that only the other two nodes in this pack understand - you won't see it in any preview or audio node.
The inputs that matter
Most people touch two fields and forget the rest:
- model - the Hugging Face repo ID, defaulting to
samuel-vitorino/sopro-v2-turbo. This is the download you pay for on first run. Point it at a local SoPro artifact directory instead and you skip the download entirely. - device -
autouses ComfyUI's current torch device (your GPU if it's in play).cpu,cuda, andmpsare there if you want to force it. - quantization -
int8quantizes SoPro's autoregressive weights, and the README is explicit: CPU only. Ask for int8 with a GPU device and you're just asking it wrong. - revision - an optional Hugging Face branch, tag, or commit, ignored for local directories.
The single output, model, is the SOPRO_MODEL handle that feeds Prepare SoPro Voice Reference and SoPro Text to Speech. That's it. If the node's installed, your first run is slow, every run after is fast.
How to install it
Two routes, same result. Via ComfyUI Manager, search for "comfyui-sopro-tts". Or:
cd ComfyUI/custom_nodes
git clone https://github.com/vjumpkung/comfyui-sopro-tts
cd comfyui-sopro-tts
pip install -r requirements.txt # into the SAME python that runs ComfyUI
Then restart ComfyUI. This pack is written against ComfyUI's newer V3 node API (from comfy_api.latest import io, no NODE_CLASS_MAPPINGS), so it needs a current ComfyUI - that's "new," not "broken," if your install is old.
Where people get burned
The classic failure is a runtime error like cannot import name 'SoproTTS' from 'sopro'. That's almost always the portable-install trap: the sopro package got pip-installed into a different Python than the one ComfyUI actually runs on (one reddit user chased this across three python_embedded folders before realizing it was "all the different python versions"). Fix it by running pip install in the exact interpreter ComfyUI uses, then restart. And if you picked int8, make sure device is cpu - the quantization path is CPU-only and won't do what you expect elsewhere.
It's a loader. It's supposed to be boring. Get the Python environment right once and it quietly does its one job for every workflow you build on top of it.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| model | STRING | samuel-vitorino/sopro-v2-turbo | Hugging Face repository ID or local SoPro artifact directory. |
| device | COMBO | auto | Auto uses ComfyUI's current torch device. |
| quantization | COMBO | none | Int8 quantizes the autoregressive weights and is supported on CPU only. |
| revision | STRING | Optional Hugging Face branch, tag, or commit. Ignored for local directories. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model | SOPRO_MODEL | — |