fastsdcpu / app_settings.py
rupeshs's picture
updated appsettings
7bfdfed
raw
history blame contribute delete
No virus
2.69 kB
import yaml
from os import path, makedirs
from models.settings import Settings
from paths import FastStableDiffusionPaths
from utils import get_models_from_text_file
from constants import (
OPENVINO_LCM_MODELS_FILE,
LCM_LORA_MODELS_FILE,
SD_MODELS_FILE,
LCM_MODELS_FILE,
)
from copy import deepcopy
class AppSettings:
def __init__(self):
self.config_path = FastStableDiffusionPaths().get_app_settings_path()
self._stable_diffsuion_models = ["Lykon/dreamshaper-8"]
self._lcm_lora_models = ["latent-consistency/lcm-lora-sdv1-5"]
self._openvino_lcm_models = ["rupeshs/sd-turbo-openvino"]
self._lcm_models = ["stabilityai/sd-turbo"]
@property
def settings(self):
return self._config
@property
def stable_diffsuion_models(self):
return self._stable_diffsuion_models
@property
def openvino_lcm_models(self):
return self._openvino_lcm_models
@property
def lcm_models(self):
return self._lcm_models
@property
def lcm_lora_models(self):
return self._lcm_lora_models
def load(self, skip_file=False):
if skip_file:
print("Skipping config file")
settings_dict = self._load_default()
self._config = Settings.parse_obj(settings_dict)
else:
if not path.exists(self.config_path):
base_dir = path.dirname(self.config_path)
if not path.exists(base_dir):
makedirs(base_dir)
try:
print("Settings not found creating default settings")
with open(self.config_path, "w") as file:
yaml.dump(
self._load_default(),
file,
)
except Exception as ex:
print(f"Error in creating settings : {ex}")
exit()
try:
with open(self.config_path) as file:
settings_dict = yaml.safe_load(file)
self._config = Settings.parse_obj(settings_dict)
except Exception as ex:
print(f"Error in loading settings : {ex}")
def save(self):
try:
with open(self.config_path, "w") as file:
tmp_cfg = deepcopy(self._config)
tmp_cfg.lcm_diffusion_setting.init_image = None
yaml.dump(tmp_cfg.dict(), file)
except Exception as ex:
print(f"Error in saving settings : {ex}")
def _load_default(self) -> dict:
defult_config = Settings()
return defult_config.dict()