# 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 남학생으로 안정적으로 읽힌 뒤 표정 파츠를 확장하는 순서가 맞다.