From 380cdee0cb0dacc98275fc107d52dade9444c43b Mon Sep 17 00:00:00 2001 From: Artem Akymenko Date: Sun, 19 Jul 2026 07:50:41 +0000 Subject: [PATCH] refactor(pyqt): use create_pipeline_for_job() in LoadPipelineThread Replace direct create_pipeline() call with domain function for consistent provider validation and device resolution. --- abogen/pyqt/gui.py | 18 +++--------------- abogen/utils.py | 10 +++++----- 2 files changed, 8 insertions(+), 20 deletions(-) diff --git a/abogen/pyqt/gui.py b/abogen/pyqt/gui.py index 229c989..9454a61 100644 --- a/abogen/pyqt/gui.py +++ b/abogen/pyqt/gui.py @@ -7,7 +7,7 @@ import base64 import re from abogen.pyqt.queue_manager_gui import QueueManager from abogen.pyqt.queued_item import QueuedItem -from abogen.domain.device import select_device as _select_device + import abogen.hf_tracker as hf_tracker import hashlib # Added for cache path generation from PyQt6.QtWidgets import ( @@ -2427,15 +2427,9 @@ class abogen(QWidget): self.update_log((gpu_msg, gpu_ok)) self.update_log("Loading modules...") - # Determine device based on GPU availability - if gpu_ok: - device = _select_device() - else: - device = "cpu" - lang_code = self.selected_lang or "a" load_thread = LoadPipelineThread( - pipeline_loaded_callback, lang_code=lang_code, device=device + pipeline_loaded_callback, lang_code=lang_code, use_gpu=gpu_ok ) load_thread.start() @@ -2873,15 +2867,9 @@ class abogen(QWidget): ) self.loading_movie.start() - # Determine device based on GPU availability - if self.gpu_ok: - device = _select_device() - else: - device = "cpu" - lang = self.selected_lang or "a" load_thread = LoadPipelineThread( - self._on_pipeline_loaded_for_preview, lang_code=lang, device=device + self._on_pipeline_loaded_for_preview, lang_code=lang, use_gpu=self.gpu_ok ) load_thread.start() diff --git a/abogen/utils.py b/abogen/utils.py index 56812e8..df95457 100644 --- a/abogen/utils.py +++ b/abogen/utils.py @@ -530,18 +530,18 @@ def prevent_sleep_end(): class LoadPipelineThread(Thread): - def __init__(self, callback, lang_code="a", device="cpu"): + def __init__(self, callback, lang_code="a", use_gpu=True): super().__init__() self.callback = callback self.lang_code = lang_code - self.device = device + self.use_gpu = use_gpu def run(self): try: - from abogen.tts_plugin.utils import create_pipeline + from abogen.domain.pipeline_factory import create_pipeline_for_job - backend = create_pipeline( - "kokoro", lang_code=self.lang_code, device=self.device + backend = create_pipeline_for_job( + "kokoro", language=self.lang_code, use_gpu=self.use_gpu ) self.callback(backend, None) except Exception as e: