# ✨ 06 — 사용자 편집

> **목표**: AI가 만든 결과를 **사람(감독·작가)이 검토하고 수정**하여 최종 품질을 맞춥니다.

---

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

AI는 **85% 정도**로 괜찮은 결과를 만듭니다. 나머지 **15%는 사람의 판단**이 필요합니다:

- "이 얼굴 표정이 의도와 다름"
- "이 앵글은 너무 평범해"
- "이 씬에 칼이 보여야 하는데 빠졌어"
- "이 색감이 작품 톤과 안 맞아"

영화 제작에서 **최종 컨펌은 사람**이 하듯, 이 도구도 동일합니다.

---

## 편집 가능한 요소

```mermaid
flowchart TD
    Edit[✨ 편집 대상] --> Ent[👥 엔티티]
    Edit --> Prompt[📝 프롬프트]
    Edit --> Img[🖼️ 이미지]
    Edit --> Struc[🏗️ 구조]

    Ent --> E1[인물/소품 추가·제거]
    Ent --> E2[인물 설명 수정]
    Ent --> E3[의상 변경]

    Prompt --> P1[T2I 프롬프트 직접 수정]
    Prompt --> P2[씬 설명 수정]
    Prompt --> P3[T2I 재변환 트리거]

    Img --> I1[재생성]
    Img --> I2[앵글 조정]
    Img --> I3[색감 조정]
    Img --> I4[대표 이미지 선택]
    Img --> I5[변형 선택]

    Struc --> S1[샷 선택/해제]
    Struc --> S2[샷 의존 관계 수정]
    Struc --> S3[재분석]
```

---

## 편집 1: 엔티티 추가·제거

### 예시 시나리오

**문제**: 씬 5에서 "수리영이 칼을 들고 있다"는 묘사인데 AI가 칼을 생략함.

**해결**:
1. 해당 샷의 **"엔티티 관리"** 열기
2. 후보 목록에서 **칼(P03)** 선택 후 "추가"
3. T2I 프롬프트에 자동으로 칼 마커 삽입
4. 이미지 재생성

### UI 동작

```
현재 샷의 등장 요소:
  👤 C01 수리영 [제거 버튼]
  🏠 L01 옥탑방 [제거 버튼]

➕ 추가 가능한 요소:
  🎒 P03 칼  [추가 버튼]
  🎒 P01 손목시계  [추가 버튼]
  👤 C02 민숙  [추가 버튼]
```

### 뒤에서 일어나는 일

사용자가 "칼 추가" 클릭:
1. `visible_entities_json`에 `P03` 추가
2. T2I 프롬프트에 `, P03` (또는 `[[칼]]`) 마커 주입
3. 서버에 PATCH 요청
4. 관련 캐시 무효화
5. 다음 이미지 생성 시 칼 반영

---

## 편집 2: 프롬프트 직접 수정

### 예시 시나리오

**문제**: AI가 생성한 프롬프트가 "serious expression"이지만, 감독은 "분노에 찬 표정"을 원함.

**해결**:
1. 샷 카드에서 **"프롬프트 편집"** 버튼
2. 영문 텍스트 박스 열림:
   ```
   A Korean woman in her late 30s with long straight
   black hair, serious expression, ...
   ```
3. `serious` → `furious, enraged` 로 수정
4. 저장 → 재생성

### T2I 재변환 트리거

때로는 **씬 설명(한글)** 을 수정합니다. 그러면 영문 T2I 프롬프트는 **자동 재변환 필요**:
- `still_frame_prompt` (한글 묘사) 수정
- 시스템이 "재변환 필요" 표시
- 다음 이미지 생성 시 영문 프롬프트 자동 재계산

---

## 편집 3: 이미지 조정

### 재생성

**동일 프롬프트로 새 이미지**:
- 버튼 클릭 한 번
- AI가 다른 변형 생성 (매번 조금씩 다름)
- 3~4번 재생성 후 마음에 드는 것 선택

### 앵글 편집 (fal.ai)

**생성된 이미지를 다른 각도로**:

```mermaid
flowchart LR
    Orig[원본 이미지] --> Adjust[앵글 조정<br/>슬라이더 3개]
    Adjust --> New[fal.ai가<br/>새 각도로 재생성]

    Adjust -.수평 +30도.-> New
    Adjust -.수직 -15도.-> New
    Adjust -.줌 1.2배.-> New
```

**예시**: 정면 → 살짝 옆모습으로

### 색감 편집

**자연어 지시**:
- "더 어둡게"
- "노을빛 느낌으로"
- "무채색, 흑백에 가깝게"

AI가 프롬프트로 변환해 재생성.

### 앵글 + 색감 동시 적용

한 번의 작업으로 **앵글 변경 + 색감 조정** 적용 가능 (fal.ai 통합 처리).

### 대표 이미지 선택

한 샷에 여러 변형(A/B/C) 생성됨. 사용자가 **"이 변형이 대표"** 지정.

---

## 편집 4: 샷 선택/해제

### 예시 시나리오

**문제**: 씬 10에 5개 샷 중 AI가 샷 1, 3만 선택. 감독은 샷 2도 필요하다고 판단.

**해결**:
1. 씬 10 카드 열기
2. 펼치기 메뉴에서 **"선택 안 된 샷 목록"** 보기
3. 샷 2 옆 "+ 추가" 버튼
4. 선택된 샷 목록에 포함 → 이미지 생성 대상

### UI

```
씬 10 (5 shots total)
✅ 샷 1: 수리영이 문을 연다
✅ 샷 3: 창밖을 본다
▶ 선택 안 된 2개 샷 [펼치기]
     샷 2: 사진을 발견한다  [+ 추가]
     샷 4: 서랍을 닫는다     [+ 추가]
```

---

## 편집 5: 샷 의존 관계 변경

### 예시 시나리오

**문제**: AI가 샷 7을 **이전 씬 배경**과 연결시켰는데, 실제로는 **다른 씬 이미지**를 참조해야 함.

**해결**:
1. 샷 7의 "의존 관계 편집"
2. 다른 씬 선택
3. 저장 → 다음 재생성 시 새 참조 반영

---

## 편집 6: 재분석

### 예시 시나리오

**문제**: 시나리오 PDF를 새 버전으로 교체했는데 분석 결과가 오래됨.

**해결**:
1. **"재분석"** 버튼
2. 특정 단계부터 다시 실행 가능:
   - 씬 세그먼테이션부터 (전체 재분석)
   - 인물 추출부터
   - 이미지 생성부터

### 사용자 편집 보존

**핵심 원칙**: 사용자가 수정한 내용은 **재분석 후에도 유지**됩니다.
- 엔티티 추가/제거 보존
- 프롬프트 수정 보존
- 이미지 선택 보존

---

## 편집 전후 예시

### Before (AI 자동 생성)
```
S3 샷 5-B:
  등장: C01 (수리영), C03 (인우)
  프롬프트: "...serious expression..."
  생성 이미지: 정면, 중간 밝기
  상태: ✓ 완료
```

### After (사용자 편집)
```
S3 샷 5-B:
  등장: C01 (수리영), C03 (인우), P01 (손목시계)  ← 사용자 추가
  프롬프트: "...furious expression..."  ← 사용자 수정
  생성 이미지: 살짝 옆에서, 어둡게  ← 앵글 + 색감 편집
  상태: ✓ 완료 (수동 보정됨)
```

---

## HiTL (Human-in-the-Loop) 원칙

이 도구는 **"완전 자동"** 도 **"완전 수동"** 도 아닌 **중간 지점**을 지향:

```mermaid
flowchart LR
    Auto[🤖 완전 자동] -.불량.-> Bad[❌ 품질 불안정]
    Manual[✋ 완전 수동] -.너무 느림.-> Slow[⏰ 한 편 몇 주]
    HiTL[🤝 HiTL] --> Good[✓ 빠르고 품질 OK]

    style HiTL fill:#22c55e,color:#000
    style Good fill:#22c55e,color:#000
```

**AI가 85% 자동**, **사람이 15% 보정** → 빠르면서 품질 유지.

---

## 앞으로 개선할 부분

현재 편집 UI는 개발자 관점에서 만들어진 부분이 많음. 영화 현장 실무에 맞게 **다음과 같이 개선** 예정:

### 1. 시각 중심 편집
- 이미지 위에 **펜으로 표시**
- "여기에 인물 추가" 영역 선택

### 2. 자연어 편집
- "이 샷 너무 멀어, 더 가까이"
- AI가 자동으로 프롬프트 변환

### 3. 근거 표시 (Provenance)
- "왜 이 인물이 이 의상을 입었나?" → 근거 제시
- "기획서 12쪽 + 인물 카드 설정" 표시

### 4. 일괄 편집
- "모든 씬에서 수리영을 **더 나이 들게**"
- 전역 수정 한 번에 반영

> **자세한 논의**: `docs/product-roadmap-discussion.md` 참조

---

## 편집 워크플로 추천

1. **전체 훑어보기**: 씬 순서대로 생성 이미지 쭉 확인
2. **문제 샷 체크**: 마음에 안 드는 것들 플래그
3. **일괄 재분석 여부 판단**: 전체가 문제면 재분석, 일부만이면 개별 편집
4. **개별 편집**:
   - 엔티티 수정
   - 프롬프트 편집
   - 이미지 재생성 (3~4회 돌려보기)
   - 앵글/색감 미세 조정
5. **대표 이미지 확정**
6. **웹북 생성**

---

## 이 단계가 잘못되면?

🚫 **편집이 반영 안 됨**:
- 캐시 무효화 실패
- **해결**: 이제 React Query로 해결됨

🚫 **재분석 시 편집 사라짐**:
- 자동 덮어쓰기 방지
- **해결**: 사용자 편집 플래그로 보존

🚫 **편집 UI 어려움**:
- 개발자 용어가 많음
- **해결**: 진행 중 (v0.7.0 계획)

---

## 모든 단계 완료 후

편집 완료 → **웹북 PDF 생성** → 최종 출력.

PDF 생성 단계는 **단순한 레이아웃 작업**이라 이 문서에서는 생략.

---

## 🎉 가이드 끝

이제 여러분은 TheRoad Scene Lab이 **시나리오 PDF를 어떻게 웹북으로 변환하는지** 이해했습니다.

**6단계를 다시 정리**:
1. 📄 **시나리오 읽기** — PDF → 깨끗한 씬별 텍스트
2. 👥 **등장 요소 발견** — 인물/장소/소품 카드화
3. 📷 **샷 설계** — 씬 → Beat → Shot → 선택
4. 🎭 **연출 결정** — 카메라/의상/배경/일관성
5. 🖼️ **이미지 만들기** — 참조 → 합성 → 씬 → 검증
6. ✨ **사용자 편집** — HiTL로 최종 품질 보정

---

## 다음에 궁금하다면

- **전체 흐름 시각화**: `frontend/public/pipeline_explained.html` (브라우저)
- **제품 발전 논의**: `docs/product-roadmap-discussion.md`
- **변경 이력**: `CHANGELOG.md`
- **기술 상세**: `docs/architecture/` (개발자용)
