diff options
Diffstat (limited to 'app/backends/audiocpp/models.py')
| -rw-r--r-- | app/backends/audiocpp/models.py | 12 |
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 = [] |
