aboutsummaryrefslogtreecommitdiff
path: root/app/backends/audiocpp/models.py
diff options
context:
space:
mode:
authorhistoria <historiavg@proton.me>2026-08-30 20:42:02 -0400
committerhistoria <historiavg@proton.me>2026-08-30 20:42:02 -0400
commita0e3050c6e1e43df3941077afa4ade9a1c4d6ce4 (patch)
treed8492bbcbbf6850afc127bae862abe68e1198c0c /app/backends/audiocpp/models.py
parent93f106aac2d6411c80a911adac62cd12f80e58be (diff)
downloadtts-audiobook-generator-a0e3050c6e1e43df3941077afa4ade9a1c4d6ce4.tar.gz
fix: non-clone models correctly supported in tui, restart server when needed
Diffstat (limited to 'app/backends/audiocpp/models.py')
-rw-r--r--app/backends/audiocpp/models.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/app/backends/audiocpp/models.py b/app/backends/audiocpp/models.py
index f2c4e5e..d81dcfc 100644
--- a/app/backends/audiocpp/models.py
+++ b/app/backends/audiocpp/models.py
@@ -313,10 +313,16 @@ def _build_tree_families(catalog: List[dict]) -> List[dict]:
"""Shape the catalog into the checkbox_tree widget's family list."""
families: List[dict] = []
for entry in catalog:
- capabilities = ["tts"]
- if "clone" in entry["tasks"]:
+ tasks = set(entry["tasks"])
+ # Clone-only families (e.g. Chatterbox) cannot synthesize without
+ # a reference voice, so they do not advertise plain "tts".
+ clone_only = _catalog.is_clone_only_family(entry["family"], tasks)
+ capabilities = []
+ if not clone_only:
+ capabilities.append("tts")
+ if "clone" in tasks or clone_only:
capabilities.append("cloning")
- if "design" in entry["tasks"]:
+ if "design" in tasks:
capabilities.append("design")
name = entry["display_name"]
options = []