# TheRoad Scene Lab — 제품 기획서 (PO)

> 시나리오를 업로드하고, AI 분석을 시작하면, 삽화를 만들어서 웹북으로 완성해주는 서비스

---

## 1. 제품 개요

TheRoad Scene Lab은 **영화/드라마 시나리오 PDF**를 업로드한 뒤 AI 분석을 시작하면:

1. 등장인물, 배경, 소품, 의상(아웃룩)을 추출하고
2. 씬을 분할하여 대표 장면을 선정하고 — **몽타주/회상/꿈/V.O. 등 씬 유형을 자동 분류**
3. 각 요소의 참조 이미지를 먼저 생성한 뒤, 참조 이미지를 기반으로 씬 삽화를 생성하고
4. 최종 웹북(PDF)으로 편집합니다

```mermaid
flowchart LR
    A[시나리오 PDF] -->|업로드| B[AI 분석 시작]
    B --> C[참조 이미지 생성]
    C --> D[씬 이미지 생성]
    D --> E[웹북 분할 & PDF 출력]

    style A fill:#f9f,stroke:#333
    style E fill:#9f9,stroke:#333
```

---

## 2. 사용자 여정

### 2.1 프로젝트 생성

| 단계 | 설명 |
|------|------|
| 로그인 | 관리자/크리에이터 계정으로 접속 |
| 대시보드 | "새 프로젝트 만들기" 클릭 |
| 팀 구성 | 멤버 초대 및 역할 지정 |

### 2.2 시나리오 업로드 & AI 분석

업로드와 분석은 **별도 단계**입니다. 시나리오를 업로드한 뒤, 사용자가 "분석 시작" 버튼을 눌러야 AI 분석이 시작됩니다.

```mermaid
sequenceDiagram
    actor U as 사용자
    participant S as Scene Lab
    participant AI as AI 엔진

    U->>S: 시나리오 PDF 업로드
    S-->>U: 업로드 완료 (텍스트 추출됨)

    U->>S: "분석 시작" 버튼 클릭
    S->>AI: 분석 시작 (백그라운드)
    loop SSE 실시간 진행률
        S-->>U: 요소 추출 중... 씬 분석 중...
    end
    AI-->>S: 분석 완료
    S->>AI: GPT 교차 검증
    AI-->>S: 검증 결과
    S-->>U: 결과 확인 가능
```

**분석 결과물:**
- **등장인물**: 이름, 외모 특징, 의상(아웃룩) 자동 식별
- **배경/장소**: 시각적 특징과 분위기 추출
- **소품**: 스토리에 중요한 물건 식별
- **의상(아웃룩)**: 인물별 의상 디자인과 조합 자동 매핑
- **씬 분할**: 시나리오를 장면 단위로 자동 분할 (기본 40~55개, 분할 기준값 조정 가능)
- **씬 유형 분류**: 몽타주/회상/꿈/V.O. 등 씬 타입 자동 판별
- **대표 순간 선정**: 각 씬에서 이미지로 만들 가장 극적인 순간
- **V.O. 캐릭터 제외**: 음성만 등장하는 인물(V.O.)은 화면 내 가시 엔티티에서 자동 제외
- **GPT 교차 검증**: 분석 결과를 GPT가 별도로 검증하여 누락/오류 보정
- **에피소드 간 학습**: 이전 에피소드의 분석 결과를 참고하여 일관성 유지

### 2.3 이미지 생성

참조 이미지를 **먼저** 생성한 뒤, 참조 이미지를 활용하여 씬 이미지를 생성합니다.

```mermaid
flowchart TD
    A[분석 완료] --> B["1단계: 참조 이미지 생성"]
    B --> B1[인물 얼굴 참조]
    B --> B2[인물+의상 조합 참조]
    B --> B3[배경/소품 참조]

    B1 & B2 & B3 --> C["2단계: 씬 이미지 생성"]
    C --> C1["씬당 N개 변형 생성 (각각 다른 카메라 앵글/구도)"]
    C1 --> C2["복합 랭킹으로 최적 이미지 자동 선택"]
    C2 --> D[사용자 검수]

    style D fill:#ff9,stroke:#333
```

**참조 이미지** (요소당 1장 대표 + 조합별 추가 생성)
- 인물: 얼굴 대표 이미지 1장 (AI가 생성 후 품질 검증)
- 인물+의상 조합: 캐릭터별 의상 조합마다 합성 이미지 별도 생성
- 배경: 장소의 대표 이미지
- 소품: 물건의 시각적 참조

**씬 이미지** (씬당 기본 3개, 설정 가능)
- N개 변형을 한 번에 생성 — **각 변형마다 다른 카메라 앵글/구도를 적용하여 다양성 확보**
- **복합 랭킹(Multi-signal ranking)**: AI 검증 점수 + GPT Vision 선택을 종합하여 최적 이미지 자동 선택
- 사용자가 다른 이미지를 대표로 변경 가능
- 필요시 앵글/색감 편집을 수동으로 요청 가능 (별도 작업)
- **WorldGuide 스타일 규칙**: 프로젝트 단위의 must_maintain(유지 필수)/must_avoid(금지) 규칙이 모든 이미지 생성에 자동 적용

### 2.4 검수 & 수정

```mermaid
flowchart LR
    A[이미지 검토] --> B{만족?}
    B -->|Yes| C[승인]
    B -->|No| D[수정 요청]
    D --> D1[프롬프트 수정]
    D --> D2[재생성]
    D --> D3[직접 업로드]
    D --> D4["앵글/색감 편집 (선택)"]
    D1 & D2 & D3 & D4 --> A

    style C fill:#9f9,stroke:#333
```

**검수 기능:**
- 이미지별 승인 / 수정필요 상태 관리
- 수정 메모 작성 가능
- 일괄 재생성 (수정필요 이미지만)
- 커스텀 프롬프트로 개별 재생성
- 사용자가 직접 이미지 업로드
- 앵글/색감 편집: 원본 이미지 기반으로 카메라 각도나 색감을 수동 변경 (선택 사항)
- **글로벌 토스트 알림**: 모든 에러/성공 상태를 화면 상단 토스트로 즉시 표시
- **SceneVariationCard 아코디언**: 변형 카드가 3개 섹션(이미지/프롬프트/메타)으로 접히는 아코디언 레이아웃

### 2.5 웹북 & PDF 출력

```mermaid
flowchart LR
    A[시나리오 1편] --> B["웹북 N편으로 분할 (기본 4~5편, 조정 가능)"]
    B --> C[PDF 렌더링]
    C --> D[다운로드]
    D --> E["PDF 품질 검증 (수동)"]

    style D fill:#9f9,stroke:#333
```

- 시나리오 1편 → 웹북 N편으로 분할 (기본 4~5편, 분할 수 조정 가능)
- 각 웹북에 해당 씬 이미지 자동 삽입
- PDF 다운로드 후, 필요시 사용자가 품질 검증 요청 (별도 수동 액션)
- 품질 검증: 텍스트 가독성, 이미지 배치 등을 AI가 점검

---

## 3. 주요 화면

### 3.1 대시보드
프로젝트 목록을 한눈에 확인하고 새 프로젝트를 생성합니다.

### 3.2 프로젝트 상세
프로젝트 개요, 멤버 관리, 활동 로그를 탭으로 확인합니다.

| 탭 | 설명 |
|----|------|
| 개요 | 프로젝트 정보, 상태, 에피소드 현황 |
| 멤버 | 멤버 초대, 역할 지정, 멤버 관리 |
| 활동 | 프로젝트 내 모든 작업 이력 |

### 3.3 에피소드 관리
시나리오 PDF를 업로드하고, "분석 시작" 버튼으로 AI 분석을 실행합니다. **SSE(Server-Sent Events)를 통해 진행률을 실시간으로 확인합니다** (폴링 방식 대체).

### 3.4 씬 편집기 (핵심 화면)
각 씬의 대표 이미지를 확인하고, 수정하고, 변형을 생성합니다.

| 기능 | 설명 |
|------|------|
| 씬 목록 | 모든 씬을 시나리오 순서대로 |
| **씬 점프 내비게이션** | 특정 씬 번호로 바로 이동 |
| 원문 보기 | 해당 씬의 시나리오 원문 |
| 이미지 프롬프트 | AI가 생성한 이미지 설명 (편집 가능) |
| 이미지 갤러리 | N개 변형 + 대표 이미지 선택 |
| 엔티티 매핑 | 이 씬에 등장하는 인물/배경/소품/아웃룩 |
| 세그먼트 미리보기 | 씬 분할 기준값 조정 및 미리보기 |
| **아코디언 레이아웃** | 씬 정보를 섹션별로 접고 펼치기 |
| **키보드 단축키** | 빠른 탐색 및 작업을 위한 단축키 지원 |

### 3.5 엔티티 관리
인물, 배경, 소품, 의상(아웃룩)을 관리합니다.

| 탭 | 내용 |
|----|------|
| 전체 | 모든 요소 |
| 인물 | 캐릭터 (얼굴 참조 이미지) |
| 배경 | 장소 참조 이미지 |
| 소품 | 물건 참조 이미지 |
| 아웃룩 | 의상 디자인 |
| 인물+아웃룩 | 캐릭터별 의상 조합 이미지 관리 |

- **텍스트 검색**: 엔티티 이름/설명으로 빠르게 필터링

### 3.6 스타일 규칙 편집
프로젝트 단위 스타일 규칙을 확인하고 수정합니다. AI가 시나리오 분석 후 자동 생성한 화풍/분위기 규칙을 사용자가 조정할 수 있습니다.

### 3.7 이미지 검수
모든 생성 이미지를 상태별로 필터링하고 일괄 관리합니다.
- **씬 컨텍스트 뱃지**: 각 이미지 카드에 해당 씬의 유형/위치 정보를 뱃지로 표시

### 3.8 출력 스튜디오
웹북 생성 → PDF 렌더링 → 다운로드 → (선택) 품질 검증을 순서대로 진행합니다.

### 3.9 관리자 화면
시스템 관리자가 사용자 계정을 관리하고 전체 활동 로그를 확인합니다.

---

## 4. AI가 하는 일

```mermaid
flowchart TD
    subgraph 분석["1단계: 분석"]
        A1[시나리오 전문 읽기]
        A2[인물/배경/소품 추출]
        A3[의상 아웃룩 식별 & 인물 매핑]
        A4["씬 분할 (정규식 + AI 보조) & 대표 순간 선정"]
        A4b["씬 유형 분류 (몽타주/회상/꿈/V.O.)"]
        A5[씬별 이미지 프롬프트 생성]
        A5b["WorldGuide 스타일 규칙 생성 (must_maintain/must_avoid)"]
        A6["GPT 교차 검증 — 누락/오류 보정"]
        A1 --> A2 --> A3 --> A4 --> A4b --> A5 --> A5b --> A6
    end

    subgraph 참조이미지["2단계: 참조 이미지 생성"]
        B1[인물 얼굴 이미지 생성]
        B2[인물+의상 조합 이미지 생성]
        B3[배경/소품 이미지 생성]
        B4[생성 이미지 AI 품질 검증]
        B5[부적합 시 자동 재생성]
        B1 & B2 & B3 --> B4 --> B5
    end

    subgraph 씬이미지["3단계: 씬 이미지 생성"]
        C1["참조 이미지를 활용하여 씬당 N개 변형 생성 (구도 다양성)"]
        C2["복합 랭킹 — 검증 점수 + AI 선택 종합 판단"]
        C1 --> C2
    end

    subgraph 출력["4단계: 출력"]
        D1["시나리오 → 웹북 분할 (분할 수 조정 가능)"]
        D2[이미지 배치 & PDF 생성]
        D1 --> D2
    end

    분석 --> 참조이미지 --> 씬이미지 --> 출력
```

---

## 5. 프로젝트 규모 예시

아래 수치는 시나리오 특성에 따라 달라질 수 있으며, 일부 설정은 조정 가능합니다.

| 항목 | 수량 | 비고 |
|------|------|------|
| 시나리오 | 1편 (약 25,000자) | |
| 추출 인물 | 13~16명 | 시나리오에 따라 상이 |
| 추출 배경 | 7~10개 | 시나리오에 따라 상이 |
| 추출 소품 | 5~8개 | 시나리오에 따라 상이 |
| 의상(아웃룩) | 20~25벌 | 자동 추출, 중복 병합 |
| 분할 씬 | 40~55개 | 분할 기준값 조정 가능 |
| 참조 이미지 | 요소별 1장 + 인물-의상 조합별 추가 | |
| 씬 이미지 | 씬당 기본 3개 (설정 가능) | AI가 최적 1개 자동 선택 |
| 출력 웹북 | 기본 4~5편 PDF (조정 가능) | |
| LLM 호출 수 | ~412회 | 로깅 기준, 시나리오 1편 전체 처리 |
| 분석 소요 시간 | 약 10분 | 시나리오 분량에 따라 상이 |
| 이미지 생성 시간 | 약 40분 | 동시 생성 수에 따라 상이 |

---

## 6. 안전 장치

| 기능 | 설명 |
|------|------|
| 콘텐츠 검열 | 부적절한 이미지 자동 감지 & 프롬프트 수정 후 재시도 |
| 이중 검증 | 이미지 생성 AI와 별도 AI가 품질 교차 검증 |
| 중단/재개 | 서버 오류 시 진행 상태 저장, 이어서 생성 가능 |
| 작업 이력 | 모든 AI 호출 기록 저장 (프롬프트, 결과, 소요 시간) |
| 활동 로그 | 누가 무엇을 수정했는지 전체 기록 |
| **작업 관리자** | 동일 작업 중복 실행 방지 — 이미 진행 중인 분석/생성이 있으면 새 요청 차단 |
| **파이프라인 캐시** | 콘텐츠 해시(content hash) 기반으로 동일 입력 재처리 스킵 |
| **헬스체크** | DB 연결 상태, API 키 유효성 등을 주기적으로 모니터링 |
