Shot Prompt Package
기존 문서의 Shot Render Plan 구조는 제거되었다. 파일 ID와 경로는 문서 링크 호환을 위해 유지한다.
1. 목적
승인된 Shot 하나에서 이미지와 영상에 사용할 Prompt를 단순하게 얻는다. 별도 생성 준비 상태, Frame·Motion 승인, 이전 이미지 선택을 요구하지 않는다.
2. 데이터 계약
CinemaShotPromptPackage
├── id
├── projectId
├── shotId (unique)
├── status
├── shotDefinitionVersion
├── framePrompt
├── motionPrompt
├── profileKey / provider / model / modelSnapshot
├── providerResponseId
├── promptVersion
├── errorCode / errorMessage
├── generatedAt
├── createdAt
└── updatedAt
Shot당 현재 Package 하나를 둔다. Prompt 자체의 변경 이력이 필요해지면 별도 불변 revision 테이블을 추가할 수 있지만 현재 MVP에는 도입하지 않는다.
3. 생성 규칙
- Shot 계획을 확정한다.
- 승인된 Shot, Mapping, Beat와 Character 문맥을 읽는다.
- Package를
GENERATING상태로 만든다. - LLM이
framePrompt와motionPrompt를 구조화 응답으로 반환한다. - 현재 Shot의
definitionVersion이 요청 시점의shotDefinitionVersion과 같으면READY로 저장한다. - 실패하면
FAILED와 원인을 저장하고 재시도를 허용한다.
4. 독립성
| Prompt | 포함하는 정보 | 요구하지 않는 정보 |
|---|---|---|
| Frame | 정적 순간, 피사체, 배치, 카메라, 환경, 조명 | 이전 Frame, 종료 Frame, Motion 결과 |
| Motion | 행동, 연기, 카메라, 시선, 시간, 대사, 사운드 | 생성된 Frame, 선택 이미지, 이전 Shot 경계 |
5. 편집과 충돌
- PATCH 요청은 변경할
framePrompt와motionPrompt중 하나 이상을 보낸다. - 각 Prompt는 최대 30,000자이며 현재 계약에는 별도 낙관적 version이 없다.
- 사용자가 수정한 두 Prompt는 함께 또는 독립적으로 저장할 수 있다.
- 수동 수정은 Shot 사양을 역으로 변경하지 않는다.
- 명시적 재생성은 두 Prompt를 현재 Shot 기준으로 다시 만든다.
6. 삭제된 Render Plan과의 차이
| 이전 구조 | 현재 구조 |
|---|---|
| FrameSpec·MotionSpec 별도 승인 | Shot이 전체 사양 소유 |
| Render Plan 확정 필요 | Shot 계획 확정만 필요 |
| 선택 Frame과 경계 최신성 검사 | 해당 의존성 없음 |
| Context Run·Prompt Draft·Package 다단계 | Shot Prompt Package 한 단계 |
| Generation Attempt 전용 테이블 | 직접 생성 연결 시 공통 생성 이력 사용 |