vignette/docs/avatar-art/personas/P7/review-notes.md
2026-06-28 12:18:20 +09:00

104 lines
6.8 KiB
Markdown

# P7 Live2D 래스터 파츠 프롬프트 검토 노트
## 범위
- 검토 대상: `docs/avatar-art/personas/P7/generation-plan.json`, `docs/avatar-art/personas/P7/prompts/*.txt`
- 기준: `docs/avatar-art/seoyeon/live2d-psd-v2/detailed-parts/detailed-parts-manifest.json`의 900x1125 파츠 구조, `alphaBox`, `originPercent`, preview 합성 구조
- 추가 지시 이후 `generation-plan.json`과 기존 prompt 파일은 수정하지 않았고, 이 노트만 추가했다.
## 현재 판단
현재 프롬프트 방향은 P7 도현의 핵심 인상인 `고3 남학생`, `입시 번아웃`, `무기력`, `낮은 에너지`, `짧은 흑갈색 머리`, `무채색 교복/카디건`을 잡고 있어 캐릭터 방향 자체는 맞다. 다만 실제 이미지 생성에 바로 넘기기에는 좌표/캔버스 요구와 prompt 파일 완결성에서 보정이 필요하다.
## 주요 리스크
1. `generation-plan.json`은 53개 파츠의 `promptFile`을 참조하지만, 현재 `prompts/`에는 20개 파일만 있다. 이 상태로 runner를 돌리면 누락 파츠에서 바로 실패하거나 일부 얼굴/눈썹만 생성되는 반쪽 산출물이 된다.
2. prompt 본문이 `Canvas: portrait 4:5 composition for later normalization to 900x1125`라고 되어 있다. 요구사항은 "각 파츠는 900x1125 투명 캔버스 기준"이므로 `later normalization` 표현은 제거하는 편이 맞다.
3. prompt 본문이 `Background: perfectly flat solid #00ff00 chroma-key background`라고 되어 있다. 이번 요구는 투명 캔버스 기준이므로, 생성기가 투명 PNG를 못 만드는 경우의 후처리 전략은 별도 메모로 두고 prompt 자체는 `transparent background / alpha outside alphaBox`를 우선해야 한다.
4. 대부분의 prompt가 파츠별 외형 차이를 충분히 설명하지 않고 공통 템플릿에 `Part id`와 좌표만 바꾼 형태다. 눈/입/눈썹/눈물처럼 표정 차이가 중요한 파츠는 P7 특성에 맞는 세부 문구가 더 필요하다.
5. P7은 반자발적이고 무덤덤한 내담자다. `tear-*` 파츠는 과한 울음보다 "눈가가 젖어 보이는 정도"로 제한해야 한다. 눈물 파츠 우선순위는 낮게 유지하는 게 맞다.
6. 서연 기준 구조에는 `ribbon`이 있지만 P7 남학생에는 그대로 쓰면 어색하다. `ribbon`은 "느슨하게 풀린 넥타이 매듭" 또는 "교복 넥타이/끈"으로 명시해야 한다.
## 누락 prompt 파일
아래 33개가 `generation-plan.json`에 참조되어 있으나 현재 파일이 없다.
- `prompts/blush-left.txt`
- `prompts/blush-right.txt`
- `prompts/body.txt`
- `prompts/clavicle.txt`
- `prompts/ear-left.txt`
- `prompts/ear-right.txt`
- `prompts/eye-left.txt`
- `prompts/eye-right.txt`
- `prompts/eyelid-lower-left.txt`
- `prompts/eyelid-lower-right.txt`
- `prompts/eyelid-upper-left.txt`
- `prompts/eyelid-upper-right.txt`
- `prompts/face.txt`
- `prompts/hair-back-base.txt`
- `prompts/hair-back-left.txt`
- `prompts/hair-back-right.txt`
- `prompts/hair-bangs.txt`
- `prompts/hair-side-left-2.txt`
- `prompts/hair-side-right-2.txt`
- `prompts/highlight-left.txt`
- `prompts/highlight-right.txt`
- `prompts/mouth-anxious.txt`
- `prompts/mouth-open.txt`
- `prompts/mouth-open-small.txt`
- `prompts/mouth-startled.txt`
- `prompts/mouth-tired.txt`
- `prompts/mouth-warm.txt`
- `prompts/neck.txt`
- `prompts/nose.txt`
- `prompts/outfit.txt`
- `prompts/outfit-inner.txt`
- `prompts/outfit-outer.txt`
- `prompts/ribbon.txt`
## 우선순위 보정 제안
- Priority 1: `face-base`, `face`, `hair-front`, `hair-bangs`, `body`, `neck`, `outfit`, `outfit-inner`, `outfit-outer`
- Priority 2: `eye-*`, `eye-white-*`, `iris-*`, `pupil-*`, `lash-*`, `eyelid-*`, `brow-*`, `mouth-*`, `nose`, `ear-*`
- Priority 3: `hair-side-*`, `hair-back-*`, `blush-*`, `clavicle`, `ribbon`
- Priority 4: `tear-*`, `hair-back-base`
현재 plan의 큰 방향은 이 기준과 대체로 맞지만, `neck`은 몸통/얼굴 연결 파츠라 priority 1 유지가 타당하고, `tear-*`는 priority 4가 타당하다.
## 프롬프트 문구 보정 제안
공통 헤더는 아래처럼 바꾸는 게 낫다.
```text
Generate exactly one isolated Live2D raster part on a 900x1125 transparent PNG canvas.
Keep all pixels outside the source alphaBox fully transparent.
Preserve the source alphaBox and originPercent exactly; do not recenter, crop, scale up, or fill the empty canvas.
Do not create a sheet, contact sheet, labels, guides, background color, frame, shadow, full character, or extra parts.
```
P7 공통 캐릭터 문구는 아래 정도가 적절하다.
```text
Persona P7 Dohyun: Korean male high school senior, exam burnout, low energy, guarded and self-deprecating. Short slightly messy side-part black-brown hair, tired lowered eyelids, muted warm skin tone, grey school cardigan or blazer over a white shirt, understated anime Live2D style.
```
파츠별 보정은 아래처럼 잡아라.
- `hair-front`, `hair-bangs`: 장발 느낌 금지. 짧고 조금 눌린 사이드파트, 앞머리가 눈썹 근처에 내려오되 눈을 덮지 않게.
- `face-base`, `face`: 여성적 볼륨/광대 홍조 과장 금지. 턱선은 부드럽지만 남학생으로 읽히게.
- `eye-*`, `eyelid-*`: 큰 반짝임보다 졸리고 낮은 시선. 윗눈꺼풀이 약간 무겁고 아래눈꺼풀에 피로선이 있어야 한다.
- `iris-*`, `pupil-*`, `highlight-*`: 홍채는 어두운 회갈색. 하이라이트는 작고 약하게 해서 무기력한 상태를 유지한다.
- `brow-*`: 기본 눈썹은 수평에 가깝고 무심함. sad 눈썹은 과한 울상보다 안쪽만 아주 약하게 처지게.
- `mouth-neutral`: 일자에 가까운 닫힌 입. 냉소나 분노가 아니라 "별로 할 말 없음"에 가까워야 한다.
- `mouth-warm`: 큰 미소 금지. 상담 말미의 `피식` 정도로 아주 작게 풀린 입.
- `mouth-tired`: 입꼬리가 살짝 내려가고 힘이 빠진 선.
- `mouth-anxious`: 말하려다 삼키는 긴장, 작은 비대칭.
- `mouth-open*`: 과장된 놀람 금지. 짧게 대답하거나 낮은 톤으로 말하는 입 모양.
- `outfit*`: 깔끔한 모델 교복보다 약간 구겨진 카디건/블레이저, 느슨한 셔츠 목. 학업 소진이 보이되 불량학생처럼 보이면 안 된다.
- `ribbon`: 리본이 아니라 느슨한 넥타이 매듭 또는 교복 끈 파츠로 생성해야 한다.
- `tear-*`: 흐르는 눈물보다 눈가에 맺힌 작은 수분선. 평소 표정에는 꺼둘 선택 파츠로 보는 게 맞다.
## 최종 권고
이미지 생성 전에 먼저 prompt 파일 수를 53개로 맞추고, 모든 prompt에서 `#00ff00 chroma-key background``later normalization` 문구를 제거해야 한다. 그 다음 priority 1 파츠만 먼저 생성해서 합성 preview를 확인하고, 얼굴/머리/복장이 P7 남학생으로 안정적으로 읽힌 뒤 표정 파츠를 확장하는 순서가 맞다.