Anymatix Chatterbox pack (from fetcher)
The adapter that feeds a downloaded voice pack into Chatterbox's dropdown without patching Chatterbox
- model_pack_name
Voice cloning in ComfyUI usually means Chatterbox, the community TTS pack where a "voice pack" is a folder of weights under models/tts/chatterbox and you pick one from a dropdown. The friction: AnymatixFetcher hands you a voice pack as a plain STRING, and ComfyUI refuses to let a STRING output wire into a dropdown/COMBO input - the graph compiler treats them as incompatible types, even when the value would be right. AnymatixChatterboxPackFromFetchedName exists to bridge exactly that gap. It takes the STRING pack name from a fetcher and re-emits it as a properly typed COMBO value that Chatterbox's own widgets will accept.
That's the whole job, and the node description says it plainly: "Converts AnymatixFetcher STRING pack id to Chatterbox COMBO input (no ComfyUI-Chatterbox edits)." No edits to Chatterbox, no patching - the bridge works from the outside, which is the polite way to do it when you don't control the upstream pack.
How it works
The clever bit is how the node learns what a valid pack name is. It reads the real list of voice packs by loading Chatterbox's own handler module - if ComfyUI-Chatterbox/modules/chatterbox_handler.py exists next to this pack - and uses that list as its allowed output values. If Chatterbox isn't installed, it degrades to a single placeholder option (resembleai_default_voice) so the node still validates without crashing. When you run it, it checks that the fetched name is genuinely one of the installed packs, because a voice pack folder has to exist on disk before Chatterbox can use it.
Two things to know:
- The fetcher has to run first. The node's own docstring says it: files must exist under
models/tts/chatterbox/<pack>before this will pass. If the pack was never downloaded, you get an error listing what is installed. - It's Chatterbox-specific. The optional sibling only loads if ComfyUI-Chatterbox is present, so this node silently doesn't help other TTS packs.
Inputs and output
- fetched_pack_name (STRING) - wire
AnymatixFetcher's output here; the fetcher's URL type should be one of the chatterbox pack types so it downloads into the right folder. - Output: model_pack_name (COMBO) → Chatterbox's model-pack dropdown input.
Install
Same pack, plus one extra requirement - the sibling it bridges to:
cd ComfyUI/custom_nodes
git clone https://github.com/Anymatix/anymatix-comfy-nodes
git clone https://github.com/.../ComfyUI-Chatterbox # the TTS pack itself
Then restart. Without Chatterbox installed, this node still appears but has nothing real to feed.
Issues to expect
The classic failure is ordering: you wire the graph, hit run, and the node refuses because the voice pack isn't on disk yet - the fetcher ran but downloaded to the wrong place, or never ran because ComfyUI skipped it as an orphan. Remember this pack marks fetchers as always-execute precisely to avoid that, so if the pack is genuinely missing, check the download's destination folder before assuming the bridge is broken.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| fetched_pack_name | STRING | Wire AnymatixFetcher output (chatterbox_model_pack) here. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model_pack_name | resembleai_default_voice | — |