94 lines
6.3 KiB
Markdown
94 lines
6.3 KiB
Markdown
# P5 도윤 래스터 파츠 프롬프트 검토 노트
|
|
|
|
작성일: 2026-06-27
|
|
|
|
## 검토 범위
|
|
|
|
- 대상: `docs/avatar-art/personas/P5/generation-plan.json`, `docs/avatar-art/personas/P5/prompts/*.txt`
|
|
- 기준: `docs/avatar-art/seoyeon/live2d-psd-v2/detailed-parts/detailed-parts-manifest.json`, `preview-neutral.png`, `preview-sad.png`, `detailed-parts-contact.png`
|
|
- 제약: 이미지 생성 없음. 기존 `generation-plan.json`과 `prompts/*.txt`는 수정하지 않음.
|
|
|
|
## 총평
|
|
|
|
현재 구성은 P5 도윤의 핵심 설정인 `중3 남학생`, `또래관계 소외감`, `무던한 척하지만 눈치 보는 방어`, `guarded baseline`을 대부분 반영하고 있다. 특히 시트 금지, 900x1125 투명 캔버스, `alphaBox`/`originPercent` 유지 지시가 모든 prompt에 반복되어 있어 공통 runner가 파츠별 생성에 쓰기 좋다.
|
|
|
|
다만 이 계획은 서연 PSD v2의 여성형 긴 머리/리본 구조를 남학생 도윤에게 재매핑하는 작업이라, prompt만으로는 좌표 안정성이 부족할 수 있다. 실제 생성 단계에서는 alpha mask 검증과 후처리 클램프가 반드시 필요하다.
|
|
|
|
## 보정 우선순위
|
|
|
|
### 1. `face`와 `face-base`의 역할을 분리해야 한다
|
|
|
|
서연 v2의 neutral/sad layer order는 `face-base`를 사용하고, `face`는 합성 순서에 직접 들어가지 않는다. 그런데 현재 계획에서는 `face`와 `face-base`가 모두 priority 1이다. 이 상태로 둘 다 생성하면 후속 작업자가 둘 다 핵심 파츠로 오해할 수 있다.
|
|
|
|
제안:
|
|
- `face-base`를 실제 합성용 피부 베이스로 유지한다.
|
|
- `face`는 QA용 전체 얼굴 reference 또는 deprecated-compatible 파츠로 낮춘다.
|
|
- 다음 revision에서는 `face.priority`를 5로 낮추거나 `usage: reference-only` 같은 필드를 추가하는 편이 맞다.
|
|
|
|
### 2. `body`와 `neck` 중복 alphaBox는 과도한 불투명 중첩을 만들 수 있다
|
|
|
|
`body`와 `neck`은 같은 alphaBox와 origin을 공유한다. `body`가 목과 어깨 기본 체형을 포함하고, `neck`도 목 파츠를 포함하도록 되어 있어 둘을 동시에 합성하면 목 피부가 두 번 쌓일 수 있다.
|
|
|
|
제안:
|
|
- 실제 합성에서는 `body`를 기본 체형, `neck`을 선택적 교체용 파츠로 분리한다.
|
|
- `neck` prompt는 목만 남기고 어깨/가슴 영역은 투명하게 두는 방향으로 더 강하게 제한하는 게 좋다.
|
|
|
|
### 3. 짧은 머리 변환은 mask 기반 후처리가 필요하다
|
|
|
|
서연 원본의 `hair-back-left/right`, `hair-side-left/right-2` alphaBox는 긴 머리용으로 매우 크다. 현재 prompt에서 "lower area transparent"를 요구하고 있지만, 이미지 생성기가 큰 alphaBox를 채우려는 경향이 있으면 도윤이 장발처럼 보일 가능성이 있다.
|
|
|
|
제안:
|
|
- `hair-side-left-2`, `hair-side-right-2`, `hair-back-left`, `hair-back-right`는 생성 후 visible alpha가 귀/목덜미 주변을 벗어나지 않는지 검사한다.
|
|
- lower canvas에 긴 곡선 실루엣이 생기면 폐기한다.
|
|
- 이 네 파츠는 prompt 품질보다 후처리 alpha clamp가 더 중요하다.
|
|
|
|
### 4. `ribbon` 슬롯은 명칭 충돌을 계속 경계해야 한다
|
|
|
|
파일 id가 `ribbon`이라 모델이 bow ribbon을 생성할 위험이 있다. 현재 prompt가 "boy's tie, not a bow"를 명시한 점은 적절하다.
|
|
|
|
제안:
|
|
- runner가 prompt 앞에 part id만 강하게 주입한다면 `ribbon`이라는 단어가 오히려 리본 생성을 유도할 수 있다.
|
|
- 공통 runner system prompt에는 `for P5, ribbon slot means loose necktie, never bow ribbon`을 별도 override로 넣는 게 좋다.
|
|
|
|
### 5. `lash-*`는 남학생 눈매선으로 계속 통제해야 한다
|
|
|
|
`lash-left/right`는 파일명 때문에 여성형 속눈썹이 나오기 쉽다. 현재 prompt는 "upper eye line", "no mascara"를 포함해 방향은 맞다.
|
|
|
|
제안:
|
|
- 실제 생성 결과가 두꺼운 속눈썹처럼 나오면 즉시 재생성한다.
|
|
- P5는 `guarded`, `skeptical`, `tired`가 핵심이므로 긴 속눈썹보다 낮은 윗눈꺼풀과 직선 눈매가 중요하다.
|
|
|
|
### 6. 표정 파츠는 P5의 핵심 정서에 맞게 잘 잡혔다
|
|
|
|
잘 잡힌 부분:
|
|
- `brow-sad-*`: 외로움/수치심, 친구 무리 배제 후 참는 표정에 적합하다.
|
|
- `mouth-anxious`: "말해봤자 찌질해 보일까 봐"라는 자동사고와 잘 맞는다.
|
|
- `mouth-neutral`, `mouth-tired`: "그냥 뭐", "별로" 같은 방어적 무심함에 맞다.
|
|
- `tear-*`: 큰 울음이 아니라 억제된 수분감으로 잡은 점이 P5에 맞다.
|
|
|
|
보정 제안:
|
|
- `mouth-open`은 alphaBox가 커서 너무 활짝 웃거나 외치는 입이 나올 수 있다. 생성 시 조용한 상담 대화용 작은 개방감을 유지해야 한다.
|
|
- `mouth-warm`은 신뢰 형성 후 아주 작은 미소여야 한다. 밝은 웃음으로 가면 P5의 초기 라포 톤과 어긋난다.
|
|
|
|
### 7. alphaBox/origin은 prompt가 아니라 검증 데이터로 다뤄야 한다
|
|
|
|
프롬프트에 좌표를 넣는 건 필요하지만 충분하지 않다. 생성 모델은 픽셀 좌표를 엄밀히 지키지 않는다.
|
|
|
|
제안:
|
|
- 생성 후 각 PNG의 실제 alpha bbox를 계산해 `generation-plan.json`의 `alphaBox`와 비교한다.
|
|
- 허용 오차는 얼굴/눈/입 파츠 2~4px, 헤어/복장 파츠 8~16px 정도가 현실적이다.
|
|
- 초과 시 crop/pad 후처리를 하되, originPercent 기준 위치는 움직이지 않는다.
|
|
|
|
## 후속 runner 체크리스트
|
|
|
|
- 53개 prompt 파일과 53개 part 항목이 1:1로 매칭되는지 확인한다.
|
|
- 모든 결과물은 단일 900x1125 transparent PNG여야 한다.
|
|
- contact sheet나 다중 후보 이미지는 실패로 처리한다.
|
|
- `hair-back-base`는 완전 투명 placeholder가 맞다.
|
|
- `ribbon.png`는 bow가 아니라 느슨한 넥타이여야 한다.
|
|
- `face.png`와 `neck.png`는 실제 합성 순서에서 쓰는지 먼저 확인한 뒤 priority를 재조정한다.
|
|
- P5 기본 표정 검수는 `neutral`보다 `guarded/skeptical/tired/lonely` 쪽 합성 결과를 우선 본다.
|
|
|
|
## 결론
|
|
|
|
현재 prompt 세트는 방향성이 맞다. 바로 생성에 넘겨도 큰 컨셉 오류는 없지만, `face`/`face-base`, `body`/`neck`, 긴 머리 슬롯의 세 가지는 후속 생성 전에 정리하지 않으면 합성 단계에서 혼선이 날 가능성이 높다. 내 판단으로는 prompt 문장 자체보다 생성 후 alpha 검증과 파츠 사용 우선순위 정리가 더 큰 리스크다.
|