o2o-ado2-short-form/_brief/03_energy-matching.md

106 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
title: Energy Auto-Matching Logic
owner: Creative Director / Head of Marketing Ops
status: v0.1 (2026-05-28)
phase: PoC #2 — 문서 결정표 (Phase 2에서 src/energy_matcher 로 코드화)
---
# Energy Auto-Matching Logic (제품 IP)
브랜드 인텔리전스 → `energy_score` (0~100) → 3개 Energy Profile 중 1개 자동 선택.
각 프로파일은 **고유한 카메라 어휘·컷 리듬·트랜지션·음악**을 강제하여 영상 문법을 결정한다.
> 핵심: 영상 톤을 사람이 매번 고르지 않는다. 인텔리전스가 산출한다. 펜션이 바뀌면 점수가 바뀌고, 점수가 프로파일을, 프로파일이 영상 문법을 결정한다.
---
## 1. energy_score 산출
4개 신호의 가중 합 (각 -25 ~ +25, 합산 후 0~100 정규화).
```
raw = amenity_signal + persona_signal + selling_point_signal + photo_signal
energy_score = clamp( 50 + raw, 0, 100 )
```
### 1.1 amenity_signal (-25 ~ +25)
| 어메니티 신호 | 점수 |
|---|---|
| 수영장(특히 대형)·워터파크 | +25 |
| 파티룸·스파·자쿠지·루프탑 | +15 |
| 액티비티(글램핑·카라반·뷰포인트) | +10 |
| 일반 데크·바베큐 | 0 |
| 미니멀·독채·프라이빗 | -15 |
| 정숙·디지털디톡스·웰니스 | -25 |
### 1.2 persona_signal (-25 ~ +25)
| 1차 페르소나 | 점수 |
|---|---|
| 20대 그룹·파티·액티비티 | +25 |
| 감성사진 크리에이터(20-34) | +12 |
| 커플여행(20-30대) | 0 |
| 힐링커플(30대) | -12 |
| 번아웃 회복 1인 | -25 |
### 1.3 selling_point_signal (-25 ~ +25)
인텔리전스 `selling_points` Top3의 카테고리로 판정.
| 셀링포인트 우세 | 점수 |
|---|---|
| 스펙터클·뷰·포토스팟·액티비티 | +20 |
| 입지·접근성·숏브레이크 | +5 |
| 브랜드컨셉·야간감성 | -5 |
| 힐링·프라이버시·정숙 | -20 |
### 1.4 photo_signal (-25 ~ +25)
입력 사진셋의 시각 특성 (사람 판단 또는 CLIP 분류).
| 사진 특성 | 점수 |
|---|---|
| 주간·다채로운 색·물/풍경 와이드 | +20 |
| 액티비티·사람·움직임 | +12 |
| 중립 | 0 |
| 야간·저조도·정적 | -12 |
| 미니멀·실내·단색 톤 | -20 |
---
## 2. 3 Energy Profiles
| 항목 | **A. Still Cinema** | **B. Rhythm Reveal** | **C. Maximum Viral** |
|---|---|---|---|
| energy_score | **035** | **3670** | **71100** |
| 정체성 | 정적·다이내믹 하이브리드 | 레퍼런스 매칭 | 공격적 바이럴 |
| 카메라 어휘 | 느린 push_in·dolly 위주 **+ 액센트 1~2개**(push_crash, speed_ramp) | orbit·crane·dolly_through·fpv + push 혼합 | push_crash·dolly_zoom·fpv_drone·공격적 orbit |
| 컷 길이 | 1.5~2.5s | 0.8~1.5s | 0.4~0.9s |
| 컷 수(8s) | 4~5 | 6~9 | 8~14 |
| 트랜지션 | 매치컷·소프트 디졸브·젠틀 휩 | 휩팬·스피드램프컷·라이트플래시·매치컷 | 줌펀치·글리치·플래시·J컷 |
| 비트싱크 | 느슨(액센트만) | 중간(주요 컷) | 하드(전 컷) |
| 음악 | 앰비언트 슬로빌드 | 트렌드 업비트 | 바이럴 오디오 |
| 자막 모션 | 페이드+미세 상승 | 슬라이드+팝 | 글리치+스냅 |
| 대표 케이스 | 머뭄, 한옥스테이, 료칸형, 웰니스 | 70m풀 글램핑, 뷰맛집, 풀빌라 | 워터파크·파티펜션·대형글램핑 |
**공통 원칙**: Profile A라도 액센트 무브를 최소 1개 의무화 → 절대 단조롭지 않게. (PoC #1 실패 교훈)
---
## 3. 적용 절차 (PoC = 수작업 결정표)
1. 인텔리전스 JSON에서 amenities/personas/selling_points 추출
2. photo_signal은 사진셋 육안 판정
3. 4신호 점수 → energy_score 계산
4. 점수 구간 → Profile 확정
5. Profile의 카메라어휘·컷리듬·트랜지션을 샷리스트·Remotion data에 주입
### Phase 2 자동화 (후속)
`engine/higgsfield_shorts/src/energy_matcher` 모듈:
- input: 인텔리전스 JSON + 사진 CLIP 분류 결과
- output: `{ energy_score, profile, camera_vocabulary[], cut_rhythm, transitions[], music_brief }`
- Content Agent가 호출 → 샷리스트 자동 생성 → Higgsfield 생성 → Remotion data 주입
---
## 4. 가드레일
- 모든 프로파일 공통: 펜션 구조·위치·어메니티 사실 왜곡 금지 (분위기·카메라무브만 과장)
- 숙박 카피 민감성: 식민지 유산 어휘(적산가옥/일제 등) 금지 → 미학 어휘 (feedback_lodging_copy_sensitivity 참조)
- AI 디스클로저: 엔드카드에 "AI로 재해석…" 의무 노출