Skip to main content

Cinema Service Overview

상태: 현재 구현 기준

기준일: 2026-08-21

Cinema는 SurfAI 내부 /cinema에서 동작하는 AI 영화 제작 워크스페이스다. 사용자는 Prompt를 직접 조립하는 대신 시나리오를 구조화하고 Scene의 Beat와 Shot을 설계한다. Shot 계획을 승인하면 같은 Shot 화면에서 이미지용 Frame Prompt와 영상용 Motion Prompt를 얻는다.

현재 제품 구조

화면 탐색은 다음 다섯 단계만 사용한다.

Scenario -> Sequence -> Scene -> Beat -> Shot

Frame과 Motion은 별도 제작 계층이나 별도 승인 화면이 아니다. 승인된 Shot에 귀속되는 두 개의 독립 Prompt다.

설계 원칙

  1. 시나리오 구조 분석은 단계별 분석과 통합 분석을 모두 제공하되 같은 Proposal·승인 데이터를 만든다.
  2. Beat는 사건·감정 변화, Shot은 카메라로 포착할 화면이며 M:N Mapping으로 연결한다.
  3. Shot이 카메라, 렌즈, 구도, Blocking, Performance, 환경, 조명, 오디오와 길이의 원천 데이터다.
  4. AI는 구조 분석과 편집안을 제안하고, 사용자가 검토·저장한 값만 정식 데이터가 된다.
  5. Shot 승인 후 Frame Prompt와 Motion Prompt를 함께 생성한다.
  6. 두 Prompt는 서로 독립적이다. Frame 이미지가 없어도 Motion Prompt를 만들 수 있다.
  7. 이전 Shot, 선택 Frame, 경계 관계, Render Plan, Scene Proxy는 Prompt 생성 조건이 아니다.
  8. 공용 Asset은 복제하지 않고 프로젝트가 선택한 AssetVersion을 참조한다.
  9. Prompt는 Shot에서 파생되는 편집 가능한 산출물이며 Shot 변경 시 재생성할 수 있다.

사용자 흐름

Project와 ScriptRevision
-> 단계별 또는 통합 구조 분석
-> Sequence와 Scene 승인
-> Beat 분석·편집·승인
-> Shot 설계·AI 편집·채택·계획 확정
-> Shot별 Frame Prompt와 Motion Prompt 검토·편집·복사

Shot 편집기의 AI 편집은 사용자 명령을 받아 현재 제안의 변경안을 만든다. 변경 요약과 실제 필드값을 검토해 편집 폼에 반영한 뒤 일반 저장 절차로 확정한다.

Prompt Package

CinemaShotPromptPackage는 Shot별로 하나의 현재 패키지를 관리한다.

필드의미
shotId원천 Shot
statusGENERATING, READY, FAILED
framePrompt단일 이미지 생성을 위한 독립 Prompt
motionPrompt단일 Shot 영상 생성을 위한 독립 Prompt
shotDefinitionVersion생성 요청 당시의 Shot 정의 버전. 완료 결과가 최신 Shot 기준인지 검사
promptVersionPrompt compiler와 출력 계약의 버전
profileKey, provider, model생성에 사용한 LLM 실행 정보

직접 이미지·영상 생성 기능을 다시 연결할 때도 이 패키지를 입력으로 사용한다. 별도 Render Plan이나 Generation Attempt 테이블을 복구하지 않는다.

제거된 이전 제작 구조

배포 전 개발 데이터에 대한 보존 요구가 없으므로 다음 구조는 2026-08-21 마이그레이션에서 물리적으로 삭제했다.

  • 별도 FrameSpec·MotionSpec Shot 컬럼
  • Render Plan, Context Run, Prompt Draft, Generation Attempt
  • Edit Relation과 Edit Relation Proposal
  • Scene Proxy, Source Observation, Depth Map, Camera Revision, Guide Render
  • 이전 Shot 경계와 선택 Frame에 의존하던 생성 조건

관련 controller와 service도 Cinema module에서 등록하지 않는다. 세부 목록은 Cinema Legacy Removal Policy를 따른다.

문서 구성

문서다루는 범위
제품 모델 및 사용자 흐름구조 분석부터 Shot Prompt까지의 현재 UX
Script Revision과 Proposal분석 기준 snapshot과 승인 계약
계층형 데이터 모델Project부터 Shot Prompt Package까지의 소유권
에셋과 연속성공용 AssetVersion과 프로젝트 Binding
제작 및 생성 파이프라인Shot Prompt 생성·편집·향후 직접 생성 연결
Context Director와 Field Routing선택적 문맥 해석 방향
Edit Relation 기록삭제된 연결 설계 실험의 결정 기록
LLM Runtime과 Model ProfileProvider Adapter와 Structured Output
저장 구조와 무결성본문 참조와 현재 Prompt 저장 계약
Shot Prompt Package현재 Shot Prompt Package 계약
Scene Proxy 실험 기록삭제된 RGB·Depth 실험의 결정 기록
Structure, Shot & Dependencies현재 기준 계약
구현 체크리스트구현 상태와 다음 작업
Legacy Removal Policy구형 스키마 물리 삭제 범위
결정 기록 및 로드맵확정 결정과 후속 순서

용어

용어정의
ScriptRevision저장 시 생성되고 분석 기준으로 사용되는 불변 시나리오 버전
ProposalSet특정 입력 snapshot으로 생성된 편집 가능한 AI 제안 묶음
Sequence하나의 서사 목적을 이루는 Scene 묶음
Scene같은 장소와 시간에서 진행되는 사건과 제작 문맥
Beat의미 있는 사건, 행동, 감정 또는 관계 변화
Shot카메라가 끊기기 전까지의 화면 단위이자 Prompt의 원천 사양
Beat-Shot MappingShot이 다루는 Beat와 역할을 표현하는 M:N 연결
Shot Prompt Package한 Shot의 독립 Frame Prompt와 Motion Prompt 묶음