Files
dinlo 34a40ae759 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>
2026-07-02 14:09:57 +08:00

46 lines
1.5 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""
Загрузка и сохранение пользовательских настроек (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