# known_issue.md ## `recommended_mode` — 죽은 필드 `models/detect.py`의 `Regions.recommended_mode`는 현재 아무 데서도 읽히지 않는다. `detect.py`가 `title_style == "calligraphy"`이면 `layered`, 아니면 `camera`로 채우기만 한다. 원본 리포에는 렌더 경로가 둘 있었다. - `layered` — 포스터를 레이어로 분해해 제목 글자는 원본 픽셀 그대로 유지하고 배경만 움직인다. 붓글씨는 획이 조금만 흐트러져도 글자가 아니게 되므로 calligraphy를 이쪽으로 보냈다. - `camera` — 포스터를 통째로 두고 카메라만 움직인다(팬·줌). 이식한 export에는 둘 다 없다. 레이어 렌더러는 애초에 제외됐고, 실제 렌더는 생성형 i2v이며 그 프롬프트는 오히려 `Locked-off camera: the poster never moves`로 카메라 이동을 금지한다. 판단 유보로 필드는 남겨둔다. 레이어 경로를 되살리지 않기로 하면 지운다. ## `GridBox` 좌표 순서가 강제되지 않는다 `answers/detect_answer.py`의 `GridBox`는 `x0 < x1`, `y0 < y1`을 보장하지 않는다. 프롬프트에도 순서 조건이 없고 스키마에도 밸리데이터가 없다. VLM이 뒤집어 답하면 `detect.py`의 `tighten_box()`가 `right <= left or bottom <= top`에 걸려 `None`을 돌려주고, 호출부는 VLM 원값을 그대로 쓰는 fallback으로 떨어진다. 그 결과 `x0 > x1`인 `Box`가 그대로 만들어지고, `check_overlay()`의 `draw.rectangle`에서 PIL이 예외를 낸다. 원본 CLI(`detect_regions.py`)에도 같은 구멍이 있다. 막으려면 프롬프트에 순서 조건을 넣거나 `GridBox`에 밸리데이터를 단다.