6.3 KiB
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을 선택적 교체용 파츠로 분리한다. neckprompt는 목만 남기고 어깨/가슴 영역은 투명하게 두는 방향으로 더 강하게 제한하는 게 좋다.
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, 헤어/복장 파츠 816px 정도가 현실적이다. - 초과 시 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 검증과 파츠 사용 우선순위 정리가 더 큰 리스크다.