Spaces:
Running
Running
File size: 2,691 Bytes
6bcacf9 8c39361 415da73 6bcacf9 62b032f 7bfdfed 6bcacf9 8c39361 415da73 8c39361 415da73 6bcacf9 415da73 6bcacf9 415da73 6bcacf9 415da73 6bcacf9 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
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()
|