Collage Video Studio
제작을 재개 가능한 프로젝트로 관리합니다. 창의적 의도는 project.json에, 생성된 결과물은 state.json에, 공급자 실행 내역은 JSONL 매니페스트에, 파생된 출력물은 media/, qa/, reports/, exports/에 저장합니다.
요청 처리
대화를 읽고 제공된 프로젝트 디렉토리를 검사한 후, 사용자가 이미 제공한 정보를 다시 묻지 마십시오.
| 사용자 의도 | 행동 |
|---|---|
| 시작, 만들기, 생성 | 초기화 및 스토리 초안 작성 |
| 계속, 재개, 다음 단계 | project_ops.py next 실행 및 단일 작업 수행 |
| 상태, 차단됨, 실패 | studio.py status --verbose 실행 후 가장 작은 단위 진단 |
| 저장, 체크포인트 | 불변 프로젝트/상태 체크포인트 생성 |
| 돌아가기, 복원 | 체크포인트 목록 표시; 사용자가 선택한 체크포인트만 복원 |
| 감사, 확인, 게시 준비 | 기술 QA 수행 후 인간 창의적 검토 |
| 보고서, 패키지, 인계 | 근거 기반 보고서 및 이식 가능한 아카이브 생성 |
| 공급자 추가 또는 변경 | 백엔드 계약을 읽고 어댑터 구현 |
프로젝트나 사용 가능한 브리프가 없으면 아이디어/소스, 목표 러닝타임, 언어만 물어보세요. 사용자나 대상 플랫폼에서 이미 프레임을 고정하지 않는 한 --aspect auto를 사용하세요. 첫 비트맵 검토에서 해상도 종횡비와 그 이유를 표시하세요.
입력 모드 선택
topic: 아이디어로 내레이션과 비주얼 생성.footage: 기존 공연 영상을 타이밍과 오디오는 유지한 채 스타일 변경.photo: 실제 인물 사진이나 제품 사진 하나를 생성된 장면에 고정.
원본 사진이나 영상은 절대 변경하지 마세요.
초기화
이 스킬 디렉토리를 찾은 후 다음을 실행하세요:
python scripts/studio.py doctor
python scripts/studio.py init <project-dir> --mode topic \
--topic "<주제>" --duration 30 --aspect auto --language ko
참고 문서:
- production-standard-v6.md 모든 새 포트폴리오 제작 전에 먼저 읽으세요. 공식 Remotion 영화, 제작 이력, 전체 영화 다양성, 반응형 감독, 액션 증명, 프로젝트 전체 구도 증명을 의무화합니다.
- production-protocol-v5.md 모든 새 제작 전에 먼저 읽으세요. 시나리오, 스토리보드, 소스 패밀리, 공급자 지출, 타이밍, 수정, 증명, 런타임 무효화를 바인딩합니다.
- story-system.md 비트를 작성하기 전에 읽으세요.
- visual-system.md 테마나 프롬프트를 작성하기 전에 읽으세요.
- layered-motion.md 레이어를 독립적으로 움직이거나 결정론적 시차가 필요한 경우 읽으세요.
- advanced-layer-primitives.md 등록된 소스 패밀리, 포즈 시퀀스, 지속적인 가시성, 루핑 스트립 또는 시드 기반 모티프 필드를 제작하기 전에 읽으세요.
- editorial-composition.md 재귀 그룹, 편집 가능한 텍스트/데이터 그래픽, 카메라 결합 시차 또는 반응형 감독 계획을 제작하기 전에 읽으세요.
- semantic-contracts.md 명명된 정체성, 공간 토폴로지, 메커니즘 설명 또는 인포그래픽을 생성하기 전에 읽으세요.
- quality-gates.md 컷아웃이나 컴파일된 장면을 승인하기 전에 읽으세요.
- responsive-direction.md 둘 이상의 종횡비로 전달할 때 읽으세요.
- provider-lifecycle.md 유료 생성, 거부, 복구, 대체 또는 의도적인 아티팩트 재사용 전에 읽으세요.
- production-profiles.md 유료 생성 전에 읽으세요. 초안/균형/전체 깊이 수준, 정확한 시도 예산, 아티팩트 지문 및 QA 무효화를 정의합니다.
- directed-motion.md 포트폴리오급 레이어 샷을 애니메이션하기 전에 읽으세요. 기본 동작, 물리적 원인, 3단계 타이밍, 밀도 및 홀드를 정의합니다.
- motion-audit.md 팔로워 레이어 추가, 접촉 잠금 또는 전달 전 변환 점프 확인 시 읽으세요.
- smooth-keyframes.md 해부학적 사실감보다 부드러운 재생이 중요한 사람이나 사물을 애니메이션할 때 읽으세요.
- articulated-rigs.md 사람, 동물 또는 메커니즘이 연결된 어깨, 팔꿈치, 날개, 바퀴 또는 힌지 동작이 필요할 때 읽으세요.
- locomotion.md 관절이 있는 캐릭터의 루트를 프레임 전체에서 움직이기 전에 읽으세요. 번갈아 디딘 발과 전신 걷기 사이클 검토를 정의합니다.
- production-standard.md 포트폴리오급 종이 애니메이션, 제작된 포즈, 자연스러운 음성 및 소셜 비디오 전달 품질을 위해 읽으세요.
- production-closure.md Remotion 편집기, 정확한 내레이션 중심 프레임, 의미론적 실행, 등록된 깊이 스택 및 세 가지 증명 유형을 위해 읽으세요.
- voice-continuity.md 내레이션을 작성, 생성 또는 승인하기 전에 읽으세요.
- delivery-qa.md 렌더링 또는 떨리는 동작, 얼어붙은 샷 꼬리 또는 최종 믹스 음량 진단 전에 읽으세요.
- aspect-direction.md 가로 또는 세로를 고정하기 전에 읽으세요.
- project-schema.md 파일 또는 백엔드 편집 시 읽으세요.
- operations.md 재개, 복구 또는 작업 실행 시 읽으세요.
- replicate-backend.md 번들 프로덕션 백엔드용.
- acceptance.md 완료를 주장하기 전에 읽으세요.
게이트 1 — 스토리 승인
creative.arc, beats, shots를 채우세요.
승인 전에 정확히 세 개의 시나리오를 컴파일하고, 하나의 정확한 한도를 승인하며, 리듬감 있는 스토리보드를 컴파일하세요:
먼저 버전 관리된 스타일 카드, 종횡비 및 시차 수집 결정을 기록하세요:
python scripts/intake.py choose --aspect <16:9|9:16|1:1> \
--style <style-id> --parallax <none|restrained|cinematic> \
--note "<인간 결정>" --output <project-dir>/build/intake-decision.json
python scripts/production_protocol.py scenarios project.json \
--output build/scenarios.json
python scripts/production_protocol.py approve build/scenarios.json <profile> \
--note "<인간 결정>" --output build/scenario-decision.json
python scripts/production_protocol.py storyboard project.json \
build/scenarios.json build/scenario-decision.json \
--output build/storyboard.json
선택된 한도를 production.approved_visual_attempt_cap에 복사하세요. 프로필은 상한선이자 실행 하한선입니다. 복구 예비를 자동으로 사용하지 마세요.
- 오프닝은 3초 이내에 이해 가능해야 합니다.
- 각 비트에는 하나의 주장 또는 감정적 전환이 있어야 합니다.
- 정체성, 토폴로지, 메커니즘 및 인포그래픽 주장에 대한 의미론적 계약을 선언하세요.
- 모든 사실 주장에는 해당 비트 내에 증명 순간이 있어야 합니다.
- 모든 장면에는 최소 세 개의 연속적인 리듬 단계(설정, 액션/피크, 최종 증명 순간)가 있어야 하며, 최종 단계는 정규화된
0.82이후에 유지되어야 합니다. - 중요한 사운드와 시각적 액션을 동일한 증명 ID로 하나의 이벤트 카탈로그에 바인딩하세요.
transition_intent를 reveal, compare, traverse, explain, emphasize, change-time 또는 change-place 중에서 설정하고, 컴파일러가 일관된 메커니즘을 선택하도록 하세요.- 컨텍스트와 디테일을 선호합니다: 내레이션 비트당 두 가지 다양한 샷.
- 일반 제작 샷은 3~6초 사이로 유지하세요.
- 구체적인
element_motion을 작성하고 "동적으로 만드세요"와 같은 표현은 사용하지 마세요. - 감독된 레이어 작업의 경우
shot.direction.primary_action,physical_cause및motion_density를 추가하세요. 하나의 샷은 하나의 읽을 수 있는 기본 동작을 가져야 합니다. - 영상의 경우 비트
start_s및end_s를 설정하세요. - 사진의 경우
source.anchor_policy를 정의하세요.
실행:
python scripts/studio.py validate <project-dir> --stage story
비트 맵을 사용자에게 보여주세요. 승인 전에 미디어를 생성하지 마세요. 승인 후:
python scripts/studio.py approve <project-dir> --gate story --note "사용자 승인"
python scripts/project_ops.py checkpoint <project-dir> --note "스토리 승인됨"
게이트 2 — 비주얼 방향 승인
creative.candidate_themes 아래에 정확히 세 개의 후보를 만드세요. 매체, 팔레트, 타이포그래피, 질감, 구성 및 모션 캐릭터가 서로 달라야 합니다.
python scripts/studio.py jobs <project-dir> --stage styles
동일한 대표 비트에 대해 모든 미리보기를 실행하고 각 결과를 등록하세요. 세 개를 모두 함께 보여주세요. 사용자가 선택한 후:
python scripts/studio.py choose-theme <project-dir> <theme-id>
python scripts/studio.py approve <project-dir> --gate style --note "사용자 승인"
python scripts/project_ops.py checkpoint <project-dir> --note "비주얼 방향 승인됨"
지원되지 않는 종횡비를 조용히 대체하지 마세요.
미디어 제작
각 단계별:
python scripts/studio.py jobs <project-dir> --stage images
python scripts/job_runner.py <project-dir> --stage images \
--adapter <adapter.py> --dry-run
python scripts/job_runner.py <project-dir> --stage images \
--adapter <adapter.py> --retries 1
새로운 토픽 및 포토 프로젝트는 기본적으로 결정론적 레이어 모션을 사용합니다. 사용자가 편집 가능성과 반복 가능성보다 모델이 생성한 변형을 명시적으로 가치 있게 여기는 경우에만 생성적 이미지-투-비디오를 사용하고, motion, voice, music에 대해 미디어 단계를 반복하세요.
독립적으로 움직이는 종이 객체, 편집 가능한 시차 또는 명시적인 전경/중간/배경 제어가 필요한 경우 motion.pipeline을 layered로 설정한 후 다음을 실행하세요:
python scripts/studio.py jobs <project-dir> --stage layers
python scripts/job_runner.py <project-dir> --stage layers --adapter <layer-aware-adapter.py>
python scripts/studio.py jobs <project-dir> --stage motion
python scripts/job_runner.py <project-dir> --stage motion --adapter <layer-aware-adapter.py>
투명 PNG 및 layers.json 계약에 대한 자세한 내용은 layered-motion.md를 읽으세요. 평탄화된 키프레임을 전체 프레임 줌이나 팬으로 다중 레이어 모션으로 표현하지 마세요. 부드러운 전달을 위해 모든 새 제작 프로젝트는 기본적으로 30fps를 사용합니다. motion.frame_conversion: "auto"를 유지하여 목표치 미만의 공급자 클립이 중복 프레임으로 패딩되는 대신 모션 보간되도록 하세요. 내부 키프레임에는 연속 곡선을 사용하고, 루핑 객체는 phase_s로 지연시키며, 낮은 프레임 속도의 GIF 대신 MP4를 검사하세요. 느린 움직임이 1픽셀 스테핑을 보일 때는 2배 오버샘플링을 사용하세요. 영상 모드는 images 및 layers를 건너뜁니다. 원본 오디오를 유지하는 영상은 voice를 건너뜁니다.
호스트 측 이미지 도구로 생성된 미디어의 경우, 생성 전에 호출을 예약하고 정확한 시도를 완료하거나 거부하세요:
python scripts/external_media.py reserve <project-dir> image:<source-id> \
--provider <provider> --model <model> --prompt "<정확한 제작 프롬프트>"
python scripts/external_media.py complete <project-dir> <attempt-id> <output-file>
python scripts/external_media.py reject <project-dir> <attempt-id> \
--reason "<검토 실패>"
등록되지 않은 호스트 출력물을 레이어 패키지에 직접 복사하지 마세요. 포트폴리오 제작은 공급자 생성, 사용자 제공, 라이선스, 주문 또는 지문 연결 파생 소스만 허용합니다. placeholder: true는 항상 전달을 차단합니다.
편집 작업의 경우 하나의 재귀 구성을 작성하고 별도의 감독 계획을 컴파일하세요:
python scripts/editorial_contract.py composition.json \
--kind composition --output result/manifests
python scripts/asset_quality.py result/manifests/composition-9x16.json \
--mode composition
가로 레이아웃을 세로로 자르지 마세요. 제목, 주제, 데이터, 주석 및 배경지를 노드 오버라이드를 통해 다시 배치하세요. 모든 종횡비에 대해 안전 영역과 편집 가능한 텍스트 맞춤을 검증하세요. 내용이 정확하고 편집 가능해야 하는 경우 로컬 벡터/텍스트/차트 프리미티브를 사용하세요. 구조화된 패스, 곡선, 레이블 및 마크에는 data-svg를 사용하세요. 주석에 명시적인 제외 영역을 제공하세요. 컴파일러는 모든 주석에서 충돌 없는 위치를 찾거나 중단해야 합니다.
지속적인 수평 이동의 경우 하나의 looping-environment를 작성하고 world_motion.py를 실행하세요. 원거리/지면 스트립, 깊이 속도 증가, 화면/세계 참가자 앵커, 근거리 레이어 폐색, 세 가지 종횡비 계획, 이음매 증거 및 서명된 카메라 보정 궤적이 필요합니다. production-standard-v6.md 및 production-protocol-v5.md를 읽으세요.
공급자 사용 전에 결합된 source_packages를 선언하세요. 상대적 후면/주제/전면 모션에는 하나의 완전한 등록된 패밀리와 16:9, 9:16, 1:1에 대한 공개 봉투가 필요합니다. registered_family.py로 파생시키고, 고립된 멤버를 생성하거나 교체하지 마세요. 크로마 제거 전에 손대지 않은 공급자 네이티브 키 평면을 관찰하고 해당 소스, 정책 및 관찰 지문을 유지하세요.
실제 Remotion 작업 공간에서 동일한 매니페스트를 검사하고 편집하세요:
cd workspace
npm ci
npm run dev
Player는 재귀 그룹, 깊이, 키프레임, 편집 지점, 상태 시퀀스, 지속적인 가시성, 일시적 강조, 루핑 스트립, 모티프 필드, 증명 순간, 시청각 큐 바인딩 및 선택된 감독 계획을 유지해야 합니다. 릴리스 전에 npm run build 및 npm run render로 검증하세요.
정교한 작업의 경우 motion.directed_motion을 true로 설정하고 directed-motion.md를 따르세요. 할당량을 채우기 위해 모든 레이어를 애니메이션하지 마세요. 기본 레이어, 물리적 원인, 예상/동작/안정화 단계 및 의도적인 읽기 홀드를 선언하세요. 얼굴, 바닥, 수평선 또는 테이블은 일반적으로 증거가 움직이는 동안 안정적으로 유지되어야 합니다. 예상과 안정화에 다른 타이밍이 필요한 경우 키프레임 도착 ease를 사용하세요.
바퀴, 힌지 부품, 불꽃, 의복 및 기타 동기 부여된 2차 반응은 follow로 연결하세요. 물리적으로 공유하는 상위 속성만 상속하세요. direction.secondary_responses를 선언하고 심어져 있거나 착지된 속성을 direction.contacts로 잠그세요. 실행
...