Initial release: Comfy-Studio v1.0.0
Десктопная галерея и менеджер изображений ComfyUI (PyQt6 + SQLite): - мультипапочный мониторинг (watchdog), грид миниатюр, drag-and-drop - теги, избранное, рейтинг, поиск по промтам - парсер метаданных ComfyUI (PNG/WebP/JPEG), редактор workflow/prompt JSON - перевод выделенного текста через контекстное меню (настраиваемые языки) - отправка промта в очередь ComfyUI с внедрением правок и нового seed - полноэкранный просмотр, локализация ru/en, тёмная тема Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
"""
|
||||
Загрузка и сохранение пользовательских настроек (settings.json рядом с проектом).
|
||||
"""
|
||||
|
||||
import json
|
||||
import logging
|
||||
from typing import Dict, Any
|
||||
|
||||
from comfy_studio.core.config import SETTINGS_PATH, DEFAULT_COMFYUI_URL
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
DEFAULT_SETTINGS: Dict[str, Any] = {
|
||||
"comfyui_url": DEFAULT_COMFYUI_URL,
|
||||
"tracked_paths": [],
|
||||
"language": "ru", # "ru" | "en"
|
||||
"thumbnail_size": 130,
|
||||
"translate_languages": ["ru", "en"], # языки в контекстном меню перевода
|
||||
}
|
||||
|
||||
|
||||
def load_settings() -> Dict[str, Any]:
|
||||
"""Загружает настройки, недостающие ключи добираются из DEFAULT_SETTINGS."""
|
||||
if not SETTINGS_PATH.exists():
|
||||
save_settings(DEFAULT_SETTINGS)
|
||||
return dict(DEFAULT_SETTINGS)
|
||||
try:
|
||||
with open(SETTINGS_PATH, "r", encoding="utf-8") as f:
|
||||
data = json.load(f)
|
||||
for k, v in DEFAULT_SETTINGS.items():
|
||||
data.setdefault(k, v)
|
||||
return data
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка чтения настроек: {e}")
|
||||
return dict(DEFAULT_SETTINGS)
|
||||
|
||||
|
||||
def save_settings(settings: Dict[str, Any]) -> bool:
|
||||
try:
|
||||
with open(SETTINGS_PATH, "w", encoding="utf-8") as f:
|
||||
json.dump(settings, f, indent=4, ensure_ascii=False)
|
||||
return True
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка сохранения настроек: {e}")
|
||||
return False
|
||||
Reference in New Issue
Block a user