Initial commit
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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
|
||||
@@ -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()
|
||||
@@ -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}")
|
||||
Reference in New Issue
Block a user