Newnai2 / backend /config.py
Logankunfall's picture
Upload 21 files
6ddb2f2 verified
from __future__ import annotations
from pydantic import BaseModel
from typing import Optional
from pathlib import Path
import json
CONFIG_FILE = Path(__file__).parent / "config.json"
class AppConfig(BaseModel):
# 将 token 重命名为 key
key: Optional[str] = None
# 图片生成默认参数(与原项目保持一致的关键项)
model: str = "nai-diffusion-3"
sampler: str = "k_euler"
steps: int = 28
scale: float = 5.0
cfg_rescale: float = 0.0
noise_schedule: Optional[str] = "karras"
uc_preset: int = 4
quality_toggle: bool = True
legacy_uc: bool = False
# 通用配置
port: int = 7860
save_output: bool = True
# 输出根目录(默认:项目根/output)
output_dir: str = str(Path(__file__).resolve().parent.parent / "output")
# 提示音配置
sound_enabled: bool = False
sound_url: Optional[str] = "/ring/ring.mp3"
def load_config() -> AppConfig:
if CONFIG_FILE.exists():
with open(CONFIG_FILE, "r", encoding="utf-8") as f:
data = json.load(f)
return AppConfig(**data)
cfg = AppConfig()
save_config(cfg)
return cfg
def save_config(cfg: AppConfig) -> None:
CONFIG_FILE.parent.mkdir(parents=True, exist_ok=True)
with open(CONFIG_FILE, "w", encoding="utf-8") as f:
json.dump(cfg.model_dump(), f, ensure_ascii=False, indent=2)