# 👥 02 — 등장 요소 발견

> **목표**: 시나리오에서 **인물·장소·소품**을 찾아내고, 각각의 **시각적 특징을 정리한 카드**로 만듭니다.

---

## 왜 이 단계가 필요한가?

AI에게 한 번에 "이 시나리오 전체의 인물을 찾아줘"라고 시키면:
- 주인공과 조연의 구분이 흐림
- 같은 인물이 이름만 다르게 불리면 2명으로 착각 (예: "민숙" / "엄마")
- 빠지는 소품이 많음

그래서 **3단계로 나눠서** 인물·장소·소품을 각각 찾습니다.

---

## 전체 흐름

```mermaid
flowchart LR
    Scenes[📄 씬들<br/>55개] --> Shots[샷 목록]

    Shots --> EC[👤 인물 찾기]
    Shots --> EL[🏠 장소 찾기]
    Shots --> EP[🎒 소품 찾기]

    EC --> M[요소 병합]
    EL --> M
    EP --> M

    M --> F[🔍 필터<br/>저빈도 제거]
    F --> D[📝 상세 정보]
    D --> T[🎨 T2I 프롬프트]
    T --> Cards[✓ 카드 완성<br/>C01, L01, P01...]

    style Scenes fill:#2a2d35,stroke:#6386FF,color:#fff
    style Cards fill:#2a2d35,stroke:#22c55e,color:#fff
    style M fill:#a78bfa,color:#000
```

---

## 단계 1: 샷 추출 (준비 작업)

실제로는 인물을 찾기 **전에**, 먼저 각 씬을 **"의미 있는 순간들(샷)"로 쪼갭니다**. 샷 단위로 인물이 등장하므로.

**예시**: 씬 1 "옥탑방"이라는 씬 안에 여러 순간이 있음.
- 샷 1-1: 수리영이 TV 보는 모습
- 샷 1-2: 엄마에게서 전화 온 장면
- 샷 1-3: 수리영이 짐 챙기는 모습

이 샷 목록을 기반으로 **"누가 나왔는가"** 를 찾아냅니다.

---

## 단계 2: 인물 찾기 (Characters)

**무엇을 하나요?**
각 샷에서 나오는 **모든 인물**을 찾습니다.

**AI가 찾아내는 정보**:
- 이름 (예: 수리영)
- 별명 (예: "엄마", "딸") — 같은 인물 식별용
- 나이 (예: 38)
- 외모 특징 (예: 긴머리, 해녀복)
- 인종/국적 (중요! 한국인인지, 일본인인지 명시 안 하면 AI가 임의로 그려버림)

**예시**:

```
인물 카드 — 수리영
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ID: C01
이름: 수리영
별명: ["딸", "수리영"]
나이: 38
인종: 한국인 (Korean)
외모:
  - 긴 검정 머리
  - 진지하고 강단 있는 표정
  - 40대 중반의 듬직한 체격
성격: 어머니 실종에 대한 집착, 두려움과 용기의 공존
```

```
인물 카드 — 민숙
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ID: C02
이름: 민숙
별명: ["엄마", "민숙 씨"]
나이: 60대
인종: 한국인 (Korean)
외모:
  - 짧은 파마머리
  - 해녀복 또는 평상복 (작품 중 여러 상태)
  - 손목에 붉은 표식
특이사항: 작품 초반에 이미 사망 (회상/환영으로만 등장)
```

---

## 단계 3: 장소 찾기 (Locations)

**무엇을 하나요?**
씬이 펼쳐지는 **공간**을 찾습니다.

**예시**:

```
장소 카드 — 옥탑방
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ID: L01
이름: 옥탑방 (인천 변두리)
시각 특징:
  - 낡은 벽지, 좁은 원룸
  - 낡은 TV와 싱크대
  - 작은 창문으로 들어오는 도시 불빛
분위기: 외로움, 불안, 저소득 생활
```

```
장소 카드 — 금월도행 여객선
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ID: L02
이름: 금월도행 여객선 (인천항)
시각 특징:
  - 오래된 낡은 목재와 철제 구조
  - 안개 자욱한 바다 배경
  - 갈매기, 구명조끼
분위기: 신비, 위험, 미지의 여정
```

---

## 단계 4: 소품 찾기 (Props)

**무엇을 하나요?**
시나리오에서 **중요한 물건들**을 찾습니다.

**중요한 소품의 조건**:
- 이야기 전개에 필요 (증거, 단서, 선물 등)
- 감독이 시각적으로 강조하고 싶은 것
- 작품 분위기를 상징하는 물건

**예시**:

```
소품 카드 — 민숙의 손목시계
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ID: P01
이름: 민숙의 손목시계
설명: 낡은 은색 시계, 금이 간 유리
상징: 죽은 엄마와 연결된 마지막 물건
등장 씬: S3, S8, S15
```

```
소품 카드 — 정체불명의 사진
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ID: P02
이름: 정체불명의 사진
설명: 흐릿한 얼굴이 찍힌 구형 필름 사진
상징: 단서 또는 수수께끼
등장 씬: S12
```

---

## 단계 5: 요소 병합 (Entity Merge)

**왜 필요한가?**
3개의 추출 단계(인물/장소/소품)가 끝나면, **중복이 있을 수 있습니다**.

**중복 예시**:
- 샷 1에서 "수리영"으로 추출
- 샷 5에서 "딸"로 추출
- → 같은 인물인데 2개 카드로 분리됨

**AI가 병합**:
- 별명 매칭: "수리영" = "딸"
- 외모 매칭: 두 카드의 설명이 유사
- → 하나로 통합 (`C01`)

---

## 단계 6: 요소 필터 (Entity Filter)

**왜 필요한가?**
추출하다 보면 **별로 안 중요한 요소**도 카드로 만들어집니다:
- 한 번만 언급된 소품 (나무, 의자, 식기)
- 지나가는 엑스트라 (거리의 행인 1명)

이런 것들은 카드 만들고 이미지 생성하면 **낭비**입니다. AI가 **빈도와 중요도**를 판단해 필터링.

**기준**:
- 3개 미만 씬에 등장하는 요소 → **제거 후보**
- LLM이 "이 요소가 작품에 중요한가?" 판단

**예시**:
- ❌ 제거: "식탁 위 컵" (한 번만 언급, 별 의미 없음)
- ✅ 유지: "민숙의 손목시계" (3번 등장, 중요 단서)

---

## 단계 7: 요소 상세 + T2I 프롬프트

**최종 작업**:
1. 각 요소의 **시각적 상세**를 더 풍부하게 작성
2. AI 이미지 생성용 **T2I 프롬프트** 만들기 (영문)

**T2I 프롬프트 예시**:

**수리영 (C01)** 을 위한 영문 프롬프트:
```
A Korean woman in her late 30s, long straight black hair,
serious and intense expression, modest casual clothing,
urban working-class background, photorealistic portrait,
soft natural lighting, medium shot.
```

**옥탑방 (L01)** 을 위한 영문 프롬프트:
```
A small, worn-down rooftop apartment in Incheon suburbs,
Korea. Faded wallpaper, old TV, tiny window showing
city lights at night, cramped and lonely atmosphere,
cinematic lighting.
```

---

## 최종 결과

**카드 개수 예시** (금월도 1부):
- 👤 인물: 7명 (수리영, 민숙, 인우, 경찰, 기자 등)
- 🏠 장소: 5곳 (옥탑방, 부둣가, 여객선, 금월도 해변, CCTV 상황실)
- 🎒 소품: 4개 (손목시계, 사진, 휴대폰, 구명조끼)

각 카드는 **짧은 ID**를 받습니다:
- C01, C02, ... (Character)
- L01, L02, ... (Location)
- P01, P02, ... (Prop)

이 ID가 **이후 모든 단계에서 일관된 참조**에 사용됩니다.

---

## 특수 케이스들

### 변신/빙의 캐릭터

**예시**: 판타지 작품에서 "사람이 동물로 변신"하는 경우, 같은 인물의 **두 형태**를 별도 카드로 관리합니다.

```
C05: 도깨비 (인간 형태)
C05-V1: 도깨비 (귀신 형태)
```

### 의상 변화 (Outlook)

한 인물이 작품 중 **여러 의상**을 입는 경우, **의상별 하위 카드**를 만듭니다:
- C01 (수리영 본체)
  - O01: 평상복
  - O02: 해녀복
  - O03: 장례복

이렇게 하면 씬마다 **"C01은 O02 의상"** 식으로 정확히 지정 가능.

### 죽은 인물

**사망 플래그**를 붙여, 이후 씬에서 AI가 "민숙 씨가 잠이 들었습니다 ☠️" 같이 혼동하지 않도록 처리.

---

## 이 단계가 잘못되면?

🚫 **인물 누락**: 이후 씬 이미지에서 해당 인물이 안 그려짐.
**해결**: 사용자가 수동으로 카드 추가.

🚫 **중복 카드**: 같은 인물이 2명으로 인식.
**해결**: 병합 단계에서 대부분 해결, 남은 건 사용자 편집.

🚫 **T2I 프롬프트 부실**: 이미지 품질 저하.
**해결**: 사용자가 프롬프트 직접 수정.

---

## 실제 예시: 금월도 1부 처리 결과

- 👤 인물 카드: 수리영(C01), 민숙(C02), 인우(C03), 경찰(C04) 등 7개
- 🏠 장소 카드: 옥탑방(L01), 부둣가(L02), 금월도(L03) 등 5개
- 🎒 소품 카드: 손목시계(P01), 사진(P02) 등 4개
- **총 16개 엔티티**

---

## 다음 단계

이제 **누가 나오는지**를 알았습니다.
다음은 각 씬의 **중요한 순간(샷)** 을 어떻게 설계할지 볼 차례입니다.

→ [03-shot-design.md](./03-shot-design.md) — 샷 설계
