페르소나 서비스 개요
기준일: 2026-04-23 (Scene studio prompt 및 영상 시작 이미지 흐름 반영)
페르소나 서비스는 Persona -> Coordi -> Outfit -> Scene 흐름으로 구성됩니다.
MVP 핵심 원칙
coordis(코디)와outfits(착장)는 별도 테이블로 분리한다.outfits.coordiId는 필수이며, 착장은 반드시 특정 코디를 기반으로 생성된다.- 공유는 원본 참조가 아니라 내 계정 복제 방식으로만 허용한다.
- 착장 생성 기본 배치는 4장(batch_size=4) 으로 고정한다.
- 사진 Scene 생성 시 기본 입력 이미지는 페르소나 이미지 + 선택 착장 이미지다.
- 영상 Scene 생성 시 기본 입력 이미지는 등록된 사진 1장이며, 이 사진을 단독 시작 이미지로 사용한다.
- 사진 Scene 생성에서는 추가 참조 이미지 1장을 허용하고, 영상 Scene 생성에서는 사용자가 직접 이미지를 업로드하지 않는다.
- Persona 생성은 MVP 동안 realistic-only 정책을 사용한다.
- 생성 프롬프트는
studio + dynamic + user계층으로 분리한다. - Scene 생성에도
studio prompt를 사용하며, 품질/입력 보존/영상 일관성 규칙은 모두 이 레이어로 통일한다. 기본 에셋은 공개 범위가 아니라 시스템 제공 출처로 분리한다.
도메인 경계
personas: 정체성(얼굴/체형/피부 톤 등) 기반 이미지coordis: 패션 중심 재사용 코디(이미지 + 선택 텍스트 프롬프트)outfits:persona + coordi로 생성한 페르소나 종속 결과 이미지default assets: 관리자가 직접 업로드한 시스템 제공 샘플 자산
기본 에셋 정책
용어
기본 에셋(Default Asset)은 서비스 온보딩과 탐색 편의를 위해 관리자가 제공하는 시스템 자산이다.PUBLIC/PRIVATE는 공개 범위다.USER/SYSTEM은 자산 출처다.- 두 개념은 서로 대체되지 않는다.
분리 원칙
기본 에셋은PUBLIC의 별칭으로 취급하지 않는다.- 페르소나/코디/착장에는
assetSource = USER | SYSTEM축을 별도로 둔다. - 관리자가 직접 업로드한 사진/영상은
creations가 아니라 별도 에셋 저장 모델로 관리한다. - 일반 유저는
SYSTEM에셋을 읽기 전용으로만 본다. - 향후 편집이 필요하면 원본 수정이 아니라
내 계정으로 복제흐름으로 확장한다.
사용자 경험 원칙
- 각 좌측 목록 영역에
기본 에셋 포함체크박스를 둔다. - 기본값은
포함이다. - 체크 해제 시에는 사용자 자산만 표시한다.
- 기본 에셋은 일반 유저에게 수정/삭제 액션을 노출하지 않는다.
관리자 경험 원칙
- 관리자 메뉴에
기본 에셋 관리를 별도로 둔다. - 탭은
페르소나,코디,착장,이미지/영상으로 분리한다. - 관리자는 각 에셋에 대해 업로드, 썸네일, 연결 대상, 정렬 순서, 활성화 상태를 관리한다.
MVP에서는 coordi_cards를 사용하지 않습니다.
페이지 흐름
/personas- 목록 + 새 페르소나(생성/등록)
/personas/[id]- 탭:
코디 | 착장 - 코디 생성/복제/선택, 착장 생성/선택
- 탭:
/personas/[id]/prepare/image|video- Scene 생성 전 촬영 준비 단계
- 사진 준비는
착장선택 중심으로 동작한다. - 영상 준비는 해당 페르소나에 등록된
사진선택 중심으로 동작한다. - 사진 준비는 향후
헤어,메이크업등 외형 프리셋 카테고리로 확장 가능
/personas/[id]/generate/image|video- 사진 생성은 준비 단계에서 선택한
outfit또는 페르소나 단독 입력을 기준으로 Scene 생성 - 영상 생성은 준비 단계에서 선택한
imageId사진을 단독 시작 이미지로 사용해 Scene 생성
- 사진 생성은 준비 단계에서 선택한
생성 입력 계약
A) 코디 생성
- 단일 기능: 코디 생성 (
t2i/i2i통합) - 입력:
text_1,text_2- 필요 시 참조 이미지(i2i)
- 출력:
- 패션 중심 코디 이미지 + 코디 프롬프트
B) 착장 생성
- 입력:
personaId(대상 페르소나)coordiId(필수)
- 기본 배치: 4장
- 출력:
- 착장 후보 4장 (선택 저장)
C) Scene 생성
사진 Scene 생성:
- 입력:
personaId(필수)outfitId(선택)- 추가 참조 이미지 1장 (선택)
- 주입:
image_1 = personaimage_2 = outfit(착장 선택 시)- 추가 참조 이미지는 착장 여부에 따라 다음 빈 이미지 슬롯에 배치
text_1,text_2=studio prompt + user prompt기준으로 생성
영상 Scene 생성:
- 입력:
personaId(필수)imageId(필수, 해당 페르소나에 등록된 사진 결과)
- 주입:
image_1 = selected registered photobatch_size = 1text_1,text_2=studio prompt + user prompt기준으로 생성
- 사용자가 직접 시작 이미지를 업로드하지 않는다.
프롬프트 표시:
- 생성 레시피의
최종 프롬프트는dynamic + user관점의 사용자 제어 값을 보여준다. studio prompt는 기본적으로 접힌 상태로 분리하고, 필요 시 사용자가 펼쳐 확인/수정할 수 있다.- 영상 일관성 규칙은 별도 영역으로 구분하지 않고 영상 Scene의
studio prompt에 포함한다.
촬영 준비 단계 원칙
- Scene 생성 전에는 반드시 준비 단계를 거친다.
- 사진 준비 단계의 기본 선택 단위는
outfit이다. - 영상 준비 단계의 기본 선택 단위는 등록된
photo다. - 사진 준비 단계는 미래 확장을 고려해
외형 구성 선택 페이지로 설계한다. 헤어,메이크업등의 외형 프리셋 카테고리는 추후 추가한다.
저장 계약
creations.snapshot 필수 키
text_1,text_2personaId,coordiId,outfitIdfeatureKey,workflowGroupId,variantId
projection
resolved_prompt,resolved_negative_prompt,ratio,refs
creation_results
seed,resultIndex,s3Path,thumbnailS3Path
기본 에셋 저장 방향
엔티티 필드
personas,coordis,outfitsassetSource: USER | SYSTEM- 필요 시
isArchived또는isActive - 필요 시
sortOrder
별도 미디어 저장소
- 관리자 업로드 이미지/영상은 별도 테이블(예:
persona_media_assets)로 관리한다. - 이유:
creations는 생성 비용, 레시피, 워크플로우, 결과 이력의 의미를 가진다.- 기본 이미지/영상은 생성물이 아니라 운영용 카탈로그 자산이다.
- 따라서 두 모델을 분리해야 의미와 권한이 명확해진다.
Feature Key (MVP)
PERSONA_PROFILE_IMAGE_GENPERSONA_COORDI_GEN(코디 생성 통합 키)PERSONA_OUTFIT_GENPERSONA_TO_IMAGE_GENPERSONA_TO_VIDEO_GEN
프롬프트 정책
- Persona / Coordi / Outfit 생성은
studio + dynamic + user -> final규칙을 따른다. - 저장 프롬프트에는
studio를 남기지 않고dynamic + user만 보존한다. - Persona는 realistic-only를 사용하며,
style,personality태그는 MVP 범위에서 제외한다.