Structure Analysis, Shot Design, and Dependency DAG
상태: 현재 제품 계약
기준일: 2026-08-21
Cinema는 영화의 계층을 유지하되 생성 준비를 여러 화면과 승인 단계로 쪼개지 않는다. 사용자는 Scene까지 구조화한 뒤 Beat와 Shot을 설계하며, Shot을 승인하면 같은 화면에서 독립적인 Frame Prompt와 Motion Prompt를 얻는다.
1. 핵심 결정
- 데이터 소유 계층은
Project -> ScriptRevision -> Sequence -> Scene을 유지한다. - Beat와 Shot은 Scene 아래 독립 엔티티이고 M:N Mapping으로 연결한다.
- 시나리오에서 Scene까지는 단계별 분석과 통합 분석을 모두 제공한다.
- 두 분석 모드는 같은 Proposal, validator, 승인 엔티티를 사용한다.
- 사용자 탐색은
Scenario -> Sequence -> Scene -> Beat -> Shot의 5단계다. - Shot은 원문 표현 목적, Beat Mapping, 인물, 카메라, 렌즈, 구도, 길이를 포함하는 최종 제작 단위다.
- 별도 FrameSpec, MotionSpec, Render Plan 승인 단계는 두지 않는다.
- Shot 승인 시 Frame Prompt와 Motion Prompt를 함께 생성한다.
- 두 Prompt는 현재 Shot만 소비하며 서로를 선행 조건으로 삼지 않는다.
- Shot 편집은 수동 편집과 AI 변경 제안을 모두 지원한다.
- 상위 변경은 선택적 의존성 DAG로 실제 영향을 받은 결과만 표시한다.
- 이전 경계, Scene Proxy, Generation Attempt, Edit Relation 스키마는 호환용으로 보존하지 않는다.
2. 탐색 계층과 파생 관계
Project
-> ScriptRevision
-> Sequence
-> Scene
-> Beats
-> Shots
파생 관계는 다음과 같다.
ScriptRevision
-> Sequence Proposals
-> Scene Proposals
-> Beat Proposals
-> Shot Proposals
-> Approved Shots
-> Shot Prompt Packages
ShotPromptPackage는 현재 Shot에서 파생된다. Frame Prompt가 Motion Prompt를 만들거나 Motion Prompt가 Frame Prompt를 만드는 순환 관계는 없다.
3. 시나리오 구조 분석
3.1 단계별 분석
ScriptRevision
-> Sequence Proposal 검토·승인
-> Sequence별 Scene Proposal 검토·승인
긴 시나리오, 경계가 모호한 원문, Sequence 구조를 직접 통제하려는 작업에 적합하다.
3.2 통합 분석
사용자에게는 한 번의 실행처럼 보이지만 서버는 내부적으로 같은 표준 단계를 실행한다.
원문 정규화
-> 작품 정보와 본문 분리
-> Sequence Proposal 생성·검증
-> 승인된 Sequence별 Scene Proposal 생성·검증
-> 실패 범위만 재시도
-> 사용자 검토
통합 분석은 Sequence를 생략하거나 별도 중첩 결과를 만드는 기능이 아니다. 단계별 분석과 동일한 정식 Sequence와 Scene에서 합류한다.
3.3 원문 추적
Proposal은 ScriptRevision과 원문 범위를 참조한다. validator는 범위 존재, 순서, 중복, 작품 정보 분리, marker와 인용문의 실제 존재를 확인한다. 실패 시 전체 분석이 아니라 실패 범위만 다시 실행한다.
4. Scene 이후 제작 흐름
Approved Scene
-> Beat 제안
-> Beat 채택·확정
-> Shot 제안
-> Shot 수동 또는 AI 편집
-> Shot 채택·확정
-> Shot별 Frame Prompt + Motion Prompt
4.1 Beat
Beat는 카메라가 아니라 사건과 변화의 단위다. 원문 범위, 서사 기능, 사건, 감정, 의도, 관찰 가능한 Performance, 연출 메모를 Shot 설계의 근거로 제공한다. 별도 Blocking 필드는 두지 않으며 필요한 움직임은 원문과 관찰 가능한 행동 안에서만 해석한다.
4.2 Shot
Shot
├── 목적
├── Beat Mappings
├── Character Mappings
├── Shot Size
├── Camera Angle과 Height
├── Lens
├── Camera Movement
├── Composition
├── Subject
├── Duration
└── Director Notes
모든 활성 Beat는 하나 이상의 Shot에 연결되어야 하고, 모든 활성 Shot은 하나 이상의 Beat를 참조해야 한다. 같은 Shot 안에서 동일 Beat Mapping은 중복될 수 없다.
Scene Staging Plan, Spatial Design, 공간 anchor, 인물별 위치·방향 계약은 Shot의 별도 원천 데이터로 두지 않는다. LLM은 매핑된 Beat의 정확한 원문 범위와 서사·감정·행동 정보에서 해당 Shot에 필요한 표현만 결정한다.
5. Shot AI 편집
AI 편집은 현재 Shot Proposal과 Mapping을 읽고 사용자 지시에 따른 변경안과 요약을 반환한다.
- 사용자가 Shot 편집 창에서 지시를 입력한다.
- AI가 변경 제안과 요약을 반환한다.
- 사용자가 변경 요약을 검토하고 form에 반영한다.
- 사용자가 일반 저장 버튼으로 확정한다.
AI 응답이 DB를 즉시 수정하지 않는다. 채택되어 읽기 전용인 Proposal은 채택을 취소한 뒤 편집한다.
6. Shot Prompt Package
승인 Shot 하나당 CinemaShotPromptPackage 하나를 둔다.
CinemaShotPromptPackage
├── shotId
├── shotDefinitionVersion
├── framePrompt
├── motionPrompt
├── status
└── model execution metadata
6.1 Frame Prompt
현재 Shot이 담당하는 원문 범위의 대표적인 정지 순간, 피사체, 카메라, 렌즈, 구도, 조명과 시각 스타일에 집중한다. 피사체 배치와 환경은 원문 표현에 필요한 만큼만 Prompt에 포함하며 별도 공간·블로킹 계획을 참조하지 않는다. 이전 Shot 이미지, 시작·종료 Frame 전략, 경계 관계, Scene Proxy를 요구하지 않는다.
6.2 Motion Prompt
현재 Shot이 담당하는 원문 범위의 행동, Performance, 카메라 움직임, 시선, 시간 cue, 리듬, 대사와 사운드에 집중한다. 별도 공간·블로킹 계획, Frame Prompt, 생성된 이미지, 선택 결과를 요구하지 않는다.
6.3 생성과 편집
- Shot 계획 확정 직후 두 Prompt를 비동기로 생성한다.
- 사용자는 각각 수정, 저장, 복사할 수 있다.
- 재생성은 현재 Shot 정의만 다시 읽는다.
- Shot 정의가 바뀌면 해당 Shot의
definitionVersion을 올리고 그 Package만 다시 만든다. - 다른 Shot의 Prompt는 연쇄 재생성하지 않는다.
이미지·영상 직접 생성을 다시 연결할 때는 이 Package를 입력으로 사용한다. 삭제된 Render Plan이나 Generation Attempt 스키마를 복구하지 않는다.
7. 선택적 의존성 DAG
7.1 목적과 상태
상위 항목 하나가 바뀌었다는 이유로 모든 하위 결과를 삭제하거나 재분석하지 않는다. MVP dependency group은 narrative, performance, camera, asset, direction, compiler다.
| 상태 | 의미 | 기본 동작 |
|---|---|---|
CURRENT | 소비한 입력과 현재 값이 일치 | 그대로 사용 |
RECOMPILE_NEEDED | 의미 분석은 유효하고 파생 Prompt만 오래됨 | Prompt 재구성 |
REVIEW_NEEDED | 기존 결과를 유지하며 영향 구역 확인 필요 | 변경안 검토 |
REANALYSIS_NEEDED | 의미 단위가 바뀌어 LLM 재분석 필요 | 영향 범위만 재분석 |
7.2 변경 영향
| 변경 | 영향 |
|---|---|
| Sequence 제목 | 관련 표시와 Prompt 재구성 |
| Sequence·Scene 연출 메모 | 관련 하위 결과 검토 |
| Scene 원문 범위 | 해당 Scene의 Beat 재분석 |
| Beat 사건·Performance | Mapping된 Shot만 검토 |
| Beat 제목만 수정 | 표시와 관련 Prompt 재구성 |
| Shot 카메라·렌즈·구도·길이 | 해당 Shot Prompt Package 재구성 |
| Character Mapping | 해당 Shot Prompt Package 재구성 |
| compiler/profile version | 관련 Prompt Package 재구성 |
7.3 구현 방식
MVP는 Graph DB가 아니라 cycle이 없는 코드 registry를 사용한다. 사용자에게 그래프를 직접 보여주지 않고 각 화면에 현재 상태, 변경 원인, 필요한 다음 동작만 표시한다.
8. 삭제한 이전 제작 구조
다음 구조는 새 흐름과 경쟁하는 두 번째 원천 데이터가 되므로 삭제했다.
- Shot Render Plan과 Context Run
- 별도 FrameSpec·MotionSpec 컬럼
- Prompt Draft version 체계
- Generation Attempt와 선택 Frame 의존성
- 이전 Shot 5축 경계
- Scene Proxy·Camera Revision·Guide Render
- Edit Relation과 Proposal
- Perception·Observation·Depth Map
- Scene Staging Plan과 Shot Spatial Design
삭제 목록과 마이그레이션은 Cinema Legacy Removal Policy를 따른다.
9. 구현 상태
| 작업 | 상태 |
|---|---|
| 단계별·통합 구조 분석 공통 엔티티 | 구현됨 |
| 5단계 제작 내비게이션 | 구현됨 |
| Shot 제안, Mapping, 채택·확정 | 구현됨 |
| Shot 수동 편집 | 구현됨 |
| Shot AI 편집 제안·검토·반영 | 구현됨 |
| Shot별 독립 Frame·Motion Prompt | 구현됨 |
| Scene 공간·블로킹 및 Shot Spatial Design 제거 | 구현됨 |
| 구형 제작 DB 스키마 삭제 | 구현 및 로컬 적용 완료 |
| 최소 Dependency DAG의 새 Package 연결 | 후속 작업 |
| 이미지·영상 직접 생성 재연결 | 후속 작업 |
10. MVP 제외 범위
- 범용 Graph DB와 사용자 편집형 DAG
- 사용자용 모델·Provider 선택기
- Frame과 Motion 사이 자동 동기화
- 이전 또는 다음 Shot 자동 참조
- Scene Proxy 기반 3D 일관성 보장
- Shot Prompt를 원천 데이터로 취급하는 방식
11. 완료 판단
- 사용자는 시나리오를 단계별 또는 통합 방식으로 Scene까지 구조화할 수 있다.
- Beat와 Shot의 M:N Mapping이 유지된다.
- Shot 편집 창에서 AI 변경안을 검토한 뒤 저장할 수 있다.
- Shot 계획 확정 후 같은 화면에서 Frame Prompt와 Motion Prompt를 확인할 수 있다.
- 두 Prompt는 이미지 선택이나 서로의 완료 여부 없이 생성된다.
- Shot 하나의 변경은 다른 Shot을 자동 무효화하지 않는다.
- 구형 제작 테이블과 활성 API 경로가 남아 있지 않다.