Initial commit

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
dinlo
2026-05-31 18:43:18 +08:00
commit b553c957f3
30 changed files with 1879 additions and 0 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
+27
View File
@@ -0,0 +1,27 @@
# utils/api_client.py
import requests
import json
import logging
logger = logging.getLogger("ComfyGallery.API")
class ComfyAPIClient:
def __init__(self, base_url: str = "http://127.0.0.1:8000"):
self.base_url = base_url.rstrip("/")
def send_prompt(self, prompt_json_str: str) -> bool:
if not prompt_json_str:
return False
try:
prompt_data = json.loads(prompt_json_str)
payload = {"prompt": prompt_data}
url = f"{self.base_url}/prompt"
response = requests.post(url, json=payload, timeout=4)
if response.status_code == 200:
return True
else:
logger.error(f"Ошибка API ComfyUI: {response.status_code} - {response.text}")
return False
except Exception as e:
logger.error(f"Не удалось подключиться к ComfyUI по адресу {self.base_url}: {e}")
return False
+33
View File
@@ -0,0 +1,33 @@
# utils/logger.py
import logging
import sys
from pathlib import Path
from typing import Optional
def setup_logger(log_file: Optional[Path] = None) -> logging.Logger:
""" Настраивает логирование работы приложения в консоль и в файл comfygallery.log """
logger = logging.getLogger("ComfyGallery")
logger.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# Вывод в консоль
console_handler = logging.StreamHandler(sys.stdout)
console_handler.setFormatter(formatter)
logger.addHandler(console_handler)
# Вывод в файл
if log_file is None:
log_file = Path("comfygallery.log")
try:
log_file.parent.mkdir(parents=True, exist_ok=True)
file_handler = logging.FileHandler(log_file, encoding='utf-8')
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
except Exception as e:
logger.error(f"Не удалось инициализировать файловый логгер: {e}")
return logger
logger = setup_logger()
+35
View File
@@ -0,0 +1,35 @@
# utils/settings.py
import json
import os
from typing import List, Dict, Any
SETTINGS_FILE = "settings.json"
DEFAULT_SETTINGS = {
"comfyui_url": "http://127.0.0.1:8000", # Новый порт по умолчанию
"tracked_paths": [os.path.abspath("./test_output")]
}
def load_settings() -> Dict[str, Any]:
""" Загружает настройки из файла settings.json. """
if not os.path.exists(SETTINGS_FILE):
save_settings(DEFAULT_SETTINGS)
return DEFAULT_SETTINGS
try:
with open(SETTINGS_FILE, "r", encoding="utf-8") as f:
data = json.load(f)
# Заполняем пропущенные ключи значениями по умолчанию
for k, v in DEFAULT_SETTINGS.items():
if k not in data:
data[k] = v
return data
except Exception:
return DEFAULT_SETTINGS
def save_settings(settings: Dict[str, Any]):
""" Сохраняет настройки в файл settings.json. """
try:
with open(SETTINGS_FILE, "w", encoding="utf-8") as f:
json.dump(settings, f, indent=4, ensure_ascii=False)
except Exception as e:
print(f"Ошибка сохранения настроек: {e}")