refactor(pyqt): use create_pipeline_for_job() in LoadPipelineThread

Replace direct create_pipeline() call with domain function for
consistent provider validation and device resolution.
This commit is contained in:
Artem Akymenko
2026-07-19 07:57:09 +00:00
parent c76cf74efc
commit 380cdee0cb
2 changed files with 8 additions and 20 deletions
+3 -15
View File
@@ -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()
+5 -5
View File
@@ -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: