from __future__ import annotations from dataclasses import dataclass from enum import Enum from typing import List class Implementation(Enum): VECT = "Vectorised" class MatchSpace(Enum): LAB = "Lab (perceptual)" RGB = "RGB (euclidean)" @dataclass class Config: # Core grid: int = 32 out_w: int = 768 out_h: int = 768 tile_size: int = 32 # Hugging Face tile source (always used) hf_dataset: str = "Kratos-AI/KAI_car-images" hf_split: str = "train" hf_limit: int = 200 # Increased for better tile diversity hf_cache_dir: str = None # Optional Hugging Face datasets cache directory # Pipeline impl: Implementation = Implementation.VECT match_space: MatchSpace = MatchSpace.LAB # Quantization use_uniform_q: bool = False q_levels: int = 8 use_kmeans_q: bool = False k_colors: int = 8 # Creative tile_norm_brightness: bool = False allow_rotations: bool = False # Caching tiles_cache_dir: str = None # Optional on-disk cache for preprocessed tiles # Benchmark do_bench: bool = False bench_grids: List[int] = None