| | import os |
| | import constants |
| | from pathlib import Path |
| | from time import time |
| | from utils import get_image_file_extension |
| |
|
| |
|
| | def join_paths( |
| | first_path: str, |
| | second_path: str, |
| | ) -> str: |
| | return os.path.join(first_path, second_path) |
| |
|
| |
|
| | def get_file_name(file_path: str) -> str: |
| | return Path(file_path).stem |
| |
|
| |
|
| | def get_app_path() -> str: |
| | app_dir = os.path.dirname(__file__) |
| | work_dir = os.path.dirname(app_dir) |
| | return work_dir |
| |
|
| |
|
| | def get_configs_path() -> str: |
| | config_path = join_paths(get_app_path(), constants.CONFIG_DIRECTORY) |
| | return config_path |
| |
|
| |
|
| | class FastStableDiffusionPaths: |
| | @staticmethod |
| | def get_app_settings_path() -> str: |
| | configs_path = get_configs_path() |
| | settings_path = join_paths( |
| | configs_path, |
| | constants.APP_SETTINGS_FILE, |
| | ) |
| | return settings_path |
| |
|
| | @staticmethod |
| | def get_results_path() -> str: |
| | results_path = join_paths(get_app_path(), constants.RESULTS_DIRECTORY) |
| | return results_path |
| |
|
| | @staticmethod |
| | def get_css_path() -> str: |
| | app_dir = os.path.dirname(__file__) |
| | css_path = os.path.join( |
| | app_dir, |
| | "frontend", |
| | "webui", |
| | "css", |
| | "style.css", |
| | ) |
| | return css_path |
| |
|
| | @staticmethod |
| | def get_models_config_path(model_config_file: str) -> str: |
| | configs_path = get_configs_path() |
| | models_path = join_paths( |
| | configs_path, |
| | model_config_file, |
| | ) |
| | return models_path |
| |
|
| | @staticmethod |
| | def get_upscale_filepath( |
| | file_path_src: str, |
| | scale_factor: int, |
| | format: str, |
| | ) -> str: |
| | if file_path_src: |
| | file_name_src = get_file_name(file_path_src) |
| | else: |
| | file_name_src = "fastsdcpu" |
| |
|
| | extension = get_image_file_extension(format) |
| | upscaled_filepath = join_paths( |
| | FastStableDiffusionPaths.get_results_path(), |
| | f"{file_name_src}_{int(scale_factor)}x_upscale_{int(time())}{extension}", |
| | ) |
| | return upscaled_filepath |
| |
|
| | @staticmethod |
| | def get_lora_models_path() -> str: |
| | lora_models_path = join_paths(get_app_path(), constants.LORA_DIRECTORY) |
| | return lora_models_path |
| |
|
| | @staticmethod |
| | def get_controlnet_models_path() -> str: |
| | controlnet_models_path = join_paths( |
| | get_app_path(), constants.CONTROLNET_DIRECTORY |
| | ) |
| | return controlnet_models_path |
| |
|
| | @staticmethod |
| | def get_gguf_models_path() -> str: |
| | models_path = join_paths(get_app_path(), constants.MODELS_DIRECTORY) |
| | guuf_models_path = join_paths(models_path, "gguf") |
| | return guuf_models_path |
| |
|
| |
|
| | def get_base_folder_name(path: str) -> str: |
| | return os.path.basename(path) |
| |
|
| |
|
| | def ensure_path(path: str) -> None: |
| | """Ensure that the directory exists.""" |
| | if not os.path.exists(path): |
| | os.makedirs(path, exist_ok=True) |
| |
|