from dataclasses import dataclass from PIL import Image from pydantic import BaseModel class Box(BaseModel): """포스터 기준 정규화 박스(0~1).""" x0: float y0: float x1: float y1: float cx: float cy: float text: str | None = None class Focal(BaseModel): name: str cx: float cy: float class Regions(BaseModel): festival_name: str | None title_style: str | None recommended_mode: str poster_size: tuple[int, int] regions: dict[str, Box] focal_points: list[Focal] vlm_raw: dict @dataclass class DetectResult: data: Regions grid: Image.Image check: Image.Image