jebin2's picture
new ch
bb49e0d
from dataclasses import dataclass
import os
from dotenv import load_dotenv
load_dotenv()
@dataclass
class Config:
"""Configuration settings for the comic-to-video pipeline."""
org_input_path: str = ""
input_path: str = ""
current_path = os.path.abspath(os.path.join(os.path.dirname(__file__)))
EPOCH = int(os.getenv('EPOCH', '200'))
YOLO_BASE_MODEL_NAME = os.getenv('YOLO_BASE_MODEL_NAME', 'yolo11s-seg')
yolo_base_model_path: str = f'{current_path}/{YOLO_BASE_MODEL_NAME}.pt'
YOLO_MODEL_NAME = f"{os.getenv('YOLO_MODEL_NAME', 'comic_panel')}_{YOLO_BASE_MODEL_NAME}"
yolo_trained_model_path: str = f'{current_path}/{YOLO_MODEL_NAME}.pt'
black_overlay_input_path: str = ""
output_folder: str = "temp_dir"
distance_threshold: int = 70
vertical_threshold: int = 30
text_cood_file_name: str = "detect_and_group_text.json"
min_text_length: int = 2
min_area_ratio: float = 0.05
min_width_ratio: float = 0.15
min_height_ratio: float = 0.15
# Additional parameters for BorderPanelExtractor
panel_filename_pattern: str = r"panel_\d+_\((\d+), (\d+), (\d+), (\d+)\)\.jpg"
"""Configuration class to manage environment variables and paths."""
DEFAULT_IMAGE_SIZE = 640
SUPPORTED_EXTENSIONS = ['jpg', 'jpeg', 'png', 'JPG', 'JPEG', 'PNG']
def get_text_cood_file_path(config: Config):
return f'{config.output_folder}/{config.text_cood_file_name}'