| 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) |
|
|