Skip to main content

촬영 준비 단계 설계

기준일: 2026-03-11

이 문서는 Scene 생성 전에 거치는 공통 촬영 준비 단계의 목적과 MVP 범위를 정의합니다.

1. 목적

  1. Scene(i2i/i2v) 생성 전에 현재 사용할 외형 구성을 먼저 선택한다.
  2. 레거시 look 선택 개념을 제거하고, 현재 도메인 기준인 outfit 중심으로 정리한다.
  3. 향후 헤어, 메이크업 등 외형 프리셋 카테고리로 확장 가능한 UI/상태 모델을 미리 확보한다.

2. 라우트

  • 이미지 준비: /personas/[id]/prepare/image
  • 비디오 준비: /personas/[id]/prepare/video

준비 단계가 끝나면 다음 페이지로 이동한다.

  • 이미지 생성: /personas/[id]/generate/image
  • 비디오 생성: /personas/[id]/generate/video

3. MVP 선택 규칙

  1. 현재 활성 카테고리는 착장(outfit) 하나만 사용한다.
  2. Scene 생성 계약은 여전히 outfitId 필수 기준을 유지한다.
  3. 준비 단계는 미래 확장을 고려한 일반 구조를 갖되, 실제 동작은 outfit 선택만 처리한다.

4. 페이지 구조

기본 레이아웃은 CreateWorkspaceShell을 재사용한다.

4.1 좌측 영역

  • 현재 페르소나 요약
  • 선택 안내 및 가드 메시지

4.2 중앙 영역

  • 카테고리별 가로 스크롤 섹션
  • MVP 활성 섹션
    • 착장
  • 추후 확장 섹션
    • 헤어
    • 메이크업

4.3 우측 영역

  • 현재 선택된 착장 상세
  • 향후 외형 조합 요약으로 확장

4.4 하단 레일

  • 이전
  • 다음

5. 선택 상태 모델

미래 확장을 고려해 선택 상태는 아래 형태를 권장한다.

type ScenePreparationSelection = {
outfitId: string | null;
hairStyleId: string | null;
makeupId: string | null;
};

MVP에서는 outfitId만 실제로 사용한다.

6. 생성 페이지 전달 계약

MVP 기준으로 준비 단계에서 다음 값을 생성 페이지에 전달한다.

  • personaId
  • outfitId
  • mode(image|video)

현재는 outfitId가 없으면 생성 페이지로 직접 진입할 수 없다.

7. 안전 가드

  1. 저장된 착장이 없으면 다음 버튼을 비활성화한다.
  2. 준비 단계에서 선택되지 않은 상태로는 Scene 생성 페이지로 이동할 수 없다.
  3. 생성 페이지에 직접 진입했을 때 outfitId가 없으면 준비 단계로 되돌린다.

8. 미래 확장 메모

준비 단계는 장기적으로 외형 구성 선택 페이지 역할을 맡는다.

추후 확장 예시:

  • 헤어스타일 preset
  • 메이크업 preset
  • 기타 persona 외형 preset

다만 MVP 동안 backend Scene 계약은 outfitId 중심을 유지한다.

9. 관련 문서