Воркед
This commit is contained in:
1 parent
ac32c55ab9
commit
ee94d8e529
1138 files changed
+55771
-77901
No files matched your search
+46
-19
@@ -2,6 +2,17 @@ from PyQt6.QtWidgets import (QWidget, QVBoxLayout, QHBoxLayout,
|
||||
QComboBox, QLabel)
|
||||
from PyQt6.QtCore import pyqtSignal
|
||||
import requests
|
||||
from typing import List, Dict
|
||||
import os
|
||||
from dotenv import load_dotenv
|
||||
|
||||
# Загружаем переменные окружения
|
||||
load_dotenv()
|
||||
|
||||
class Sampler:
|
||||
def __init__(self, name: str, title: str = None):
|
||||
self.name = name
|
||||
self.title = title or name
|
||||
|
||||
class SamplerManager(QWidget):
|
||||
sampler_changed = pyqtSignal(str)
|
||||
@@ -71,28 +82,25 @@ class SamplerManager(QWidget):
|
||||
layout.addStretch()
|
||||
|
||||
def load_samplers(self):
|
||||
"""Загрузить список доступных сэмплеров"""
|
||||
"""Загрузка списка сэмплеров с сервера"""
|
||||
try:
|
||||
response = requests.get(f"{self.api_url}/sdapi/v1/samplers")
|
||||
if response.status_code == 200:
|
||||
samplers = response.json()
|
||||
current_sampler = self.sampler_combo.currentText()
|
||||
samplers_data = response.json()
|
||||
self.samplers = [
|
||||
Sampler(sampler['name'], sampler.get('title'))
|
||||
for sampler in samplers_data
|
||||
]
|
||||
|
||||
self.sampler_combo.clear()
|
||||
for sampler in samplers:
|
||||
self.sampler_combo.addItem(sampler.get('name', ''))
|
||||
|
||||
# Восстанавливаем выбранный сэмплер, если он всё ещё доступен
|
||||
index = self.sampler_combo.findText(current_sampler)
|
||||
if index >= 0:
|
||||
self.sampler_combo.setCurrentIndex(index)
|
||||
elif self.sampler_combo.count() > 0:
|
||||
# По умолчанию выбираем Euler a
|
||||
default_index = self.sampler_combo.findText("Euler a")
|
||||
if default_index >= 0:
|
||||
self.sampler_combo.setCurrentIndex(default_index)
|
||||
# По умолчанию выбираем Euler a
|
||||
self.current_sampler = next(
|
||||
(sampler for sampler in self.samplers if sampler.name == "Euler a"),
|
||||
self.samplers[0] if self.samplers else None
|
||||
)
|
||||
except Exception as e:
|
||||
print(f"Ошибка при загрузке сэмплеров: {str(e)}")
|
||||
print(f"Ошибка загрузки сэмплеров: {str(e)}")
|
||||
self.samplers = []
|
||||
self.current_sampler = None
|
||||
|
||||
def on_sampler_changed(self, sampler_name):
|
||||
"""Обработка смены сэмплера"""
|
||||
@@ -103,6 +111,25 @@ class SamplerManager(QWidget):
|
||||
self.api_url = new_url
|
||||
self.load_samplers()
|
||||
|
||||
def get_samplers(self):
|
||||
"""Возвращает список доступных сэмплеров"""
|
||||
return self.samplers
|
||||
|
||||
def get_sampler_names(self):
|
||||
"""Возвращает список имен сэмплеров"""
|
||||
return [sampler.name for sampler in self.samplers]
|
||||
|
||||
def get_current_sampler(self):
|
||||
"""Получить текущий выбранный сэмплер"""
|
||||
return self.sampler_combo.currentText()
|
||||
"""Возвращает текущий сэмплер"""
|
||||
return self.current_sampler
|
||||
|
||||
def set_current_sampler(self, sampler_name: str) -> bool:
|
||||
"""Установка текущего сэмплера"""
|
||||
sampler = next(
|
||||
(s for s in self.samplers if s.name == sampler_name),
|
||||
None
|
||||
)
|
||||
if sampler:
|
||||
self.current_sampler = sampler
|
||||
return True
|
||||
return False
|
||||
Reference in new issue
Block a user