# 자동차(좁은 실내) 샷 실험 — 실사+스케치 vs fp 배치도 2안 비교 (2026-08-10)

## 0. 병목 (2026-08-10 파악 — 데이터 근거)

자동차 내부 지목 6샷(S13sh3·S13sh4·S15sh3·S15sh5·S18sh1·S18sh5)의 8/9
전수 판정 서술을 읽으면, 판정 축이 전부 **"배경본(SHOT BACKGROUND)의
기하를 그대로 유지했는가"** 다. 이긴 후보들은 전부 "배경본 완벽 유지"로
이겼는데도 육안으로 이상하다 — **기준으로 삼는 배경본 자체가 실제 차
내부 구조(핸들 수·좌석 배치·미러 광학·시점)와 다르기 때문**이다. 틀린
기준 위에서는 유지를 잘할수록 최종이 틀린다.

기존 대응(8/7 팩 v15 `geom_authority` — "세고 유지하라" 텍스트 계약)은
채택돼 돌았지만: 계약 적용본이 이긴 3샷도 지목됐고(품질 부족), 2샷은
2택1 에서 자기 산출이 탈락했고, S18sh5 는 분류 자체가 누락됐다. 오늘
G+Q 재검증에서 S18sh1 은 심판이 "초기 후보 전부 실패"를 선언했다.

→ 실험이 풀 문제: **구조적으로 옳은 기준 이미지를 어떻게 만들고, 인물
삽입 시 시점·좌석 관계를 어떻게 고정하나.**

## 1. 합의 (2026-08-10 사용자)

- 접근 A(실사+스케치 조합)와 B(fp 좌석 배치도)를 **동시에 만들어 비교**.
- 현행 프로덕션 최종본이 자연 대조군(이미 있음 — 추가 비용 0).

## 2. 실험 설계

### 2.1 대상 (소량부터 — 합의 관례)

3샷 제안 — 결함 유형이 갈리도록:

| 샷 | 시점 | 구조 난점 |
|---|---|---|
| S13sh3 | 조수석 쪽에서 운전석·뒷좌석 | 핸들 각도·뒷좌석 인물 관계 |
| S15sh5 | 운전석 쪽에서 캐빈 너머 뒷좌석 | 룸미러 반사(광학 가능성) |
| S18sh1 | 조수석(대시보드 옆) | 대시보드·기어·미러 유무 — 전 후보 실패 선언 샷 |

확장(나머지 3샷+confined 19샷)은 1차 결과를 보고 별도 결정.

### 2.2 공통 입력 (전부 기존 데이터 — 하드코딩 금지)

- **브리프 전문** = `records.json[tag].prompt` — 차종("older SUV")·시점·
  핵심 구조물(steering wheel, rearview mirror)·시간대가 이미 데이터로
  있다. 청킹·요약 없이 전문.
- 엔티티 참조(인물 정본) = record.refs 해석(카나리아 `resolve_refs` 재사용).
- 현행 최종본 = recipe `{tag}_sel.png` (대조군).

### 2.3 A안 — 실사 참조 + 러프 스케치 (뼈대/표면 분리의 자동차판)

1. **검색**: 브리프의 차종·시점으로 실사 내부 사진 1~2장.
   검색 규칙 준수 — 질의는 원어, 잠금 문장을 지시문 맨 앞에, 한 대상=
   한 물음=한 검색(당연한 것은 검색하지 않는다 — "그 차종의 그 좌석
   시점 내부"만), 나간 질의를 기록.
2. **러프 마네킹 스케치**: 실사 사진을 참조로 **i2i 작화**(코드로 그리기
   절대 금지) — 인물 자리 마네킹·시점만 러프 연필로. 세밀 금지(하류가
   화풍을 물려받는다). 방향·좌석 관계는 텍스트 결정론 주입과 짝.
3. **무인 배경본**: 실사 사진(구조·표면 기준) + 브리프 장소 절 →
   nb2 i2i. 실사가 기준이므로 "재투영"이 아니라 실사 기반 재조명.
4. **인물 삽입**: 배경본 + 스케치 + 엔티티 참조 → 기존 Step2 계약
   (`stage_head_geom` — 프로덕션 부품 재사용).

### 2.4 B안 — fp 좌석 배치도

1. **배치도 작화**: 브리프 장소 절 → 위에서 본 좌석 배치도 + 카메라
   위치 마커를 **i2i 작화**(코드 금지). 기존 floor_plan 실험 부품
   (카메라 위치/높이/렌즈/프레이밍 텍스트 산출 — W17 계열) 재사용.
2. **무인 배경본**: 배치도 + 카메라 텍스트 → nb2. ★알려진 약점을
   정직하게 안고 간다: 도면→시점 변환을 모델에 맡기는 부분이 실측상
   취약(lane 쐐기 반대 작화 — 도면이 정확해도 모델이 안 따름). 이
   실험의 목적 하나가 그 약점이 실내에서도 재현되는지 확인이다.
3. **인물 삽입**: A안과 같은 Step2 계약(`stage_head_geom`)을 쓰되
   **스케치 참조 없이** 배경본+엔티티만 — 배치도는 위에서 본 도면이라
   시점 참조가 아니므로 Step2 에 넣지 않는다(카메라 텍스트만 동반).
   두 안의 차이가 "기준 이미지를 무엇으로 만들었나"로만 갈리게 한다.

### 2.5 판정 — 기준을 배경본에서 실제 구조로

- 후보 = A안 최종 · B안 최종 · 현행 프로덕션 최종(대조군) — 샷당 3후보.
- **G+Q 이중 판정 재사용**(오늘 검증된 부품: 같은 계약·`ask_qwen_structured`
  ·`call_structured`). 단 판정 헤더를 실험 전용으로 바꾼다:
  **"배경본 유지" 축을 빼고** ①실제 차량 구조로서의 정합(핸들 수·좌석
  배치·미러 광학·시점 일관 — v7 built_space 축 원문 재사용) ②브리프
  충실(샷 텍스트·인물) 로만 본다. 병목 진단이 "기준=배경본"의 함정이므로
  판정에서도 그 기준을 제거해야 비교가 순수하다.
- **상대 비교만** — 절대 문턱 금지, 좌우(제시 순서) 바꿔 2회(flip),
  두 번 다 이긴 쪽만 승. 판정 결과·격차를 기록.
- **최종 판단은 육안** — LLM/VLM 완성도는 실험 반복+육안이 기준
  (판정은 선별 보조).

### 2.6 산출·갤러리·기록

- 산출: `artifact/20260810_car_interior_ab/` — 샷별 [검색 사진 / 스케치 /
  배치도 / A·B 배경본 / A·B 최종 / 현행 최종 / 판정문].
- 갤러리 HTML 첫 줄 `<meta charset="utf-8">`, 8940 서브패스, LAN IP 안내.
- **기록 의무**: 검색·이미지·판정 전 호출 `record_provider_call`/기존
  계측 경로(Opik+llm_call_log). 나간 검색 질의 원문 저장.
- 실험 코드: `backend/car_interior_ab_experiment.py`(실험 스크립트 관례)
  — 프로덕션 코드 무변경, 부품 import 재사용.

## 3. 비용 (개산)

샷당: 검색 1~2 + 스케치 i2i 1 + 배치도 i2i 1 + 배경본 nb2 2(A·B) +
인물 삽입 nb2 2 + 판정 (3후보 flip 2회 × G+Q) ≈ 이미지 6장 + 판정 8회.
3샷 ≈ 이미지 18장 + 판정 24회 + 검색 3~6회. 소량 범위.

## 4. 성공 기준·다음 단계

- 성공 신호: A 또는 B 최종이 현행 대비 **flip 2회 모두 승** + 육안으로
  지목 결함(핸들·미러·좌석)이 해소.
- 승자가 나오면: 프로덕션 편입 설계(분류 confined 샷 경로 교체 여부·
  2택1 과의 관계·S18sh5 분류 누락 수리 포함)는 **별도 설계·합의**로.
- 둘 다 패배면: 결과 갤러리를 근거로 다음 가설(예: 검색 사진을 Step2
  까지 동반, 시점 스케치 추가)을 새로 합의.

## 5. 범위 밖

- 프로덕션 코드·팩 변경(실험 승자 확정 후 별도).
- S18sh5 분류 누락 수리(별도 조사 — (a) 항목).
- confined 19샷 전체 확장(1차 결과 후).
