GenVid 프로모은(는) 무엇을 하나요?
스크립트나 스토리보드에 그치지 않고 완성된 동영상을 제작합니다. 내레이션, 시각 자료, 제품 주장, 타이밍이 모두 검증된 결정론적(Remotion) 구성물을 만듭니다.
필수 시작 절차
- 호출 시 TTS 제공자와 API 키 값(또는 명시적인 환경 변수/시크릿 참조)이 모두 있는지 확인합니다.
- 둘 중 하나라도 없으면 중단하고 질문합니다: 어떤 TTS 제공자를 사용할까요? 그리고 해당 API 키에 어떻게 접근할 수 있습니까?
OPENAI_API_KEY또는GEMINI_API_KEY와 같은 시크릿 환경 변수를 선호합니다; 저는 이를 커밋하거나 출력하지 않습니다. - 제공자를 묵시적으로 선택하거나, 기존 키를 가정하거나, 임시 음성을 합성하거나, 이 게이트를 무시하고 진행하지 마십시오.
- 즉시 설치된
remotion-best-practices스킬을 전체 로드합니다. 디자인 전에video-layout규칙을 로드합니다; 오디오, 전환, 캡션, FFmpeg, 메타데이터 기능을 사용할 때는 해당 규칙들을 로드합니다. 이 의존성이 사용 중임을 명시적으로 언급합니다. 사용할 수 없는 경우 그 사실을 밝히고 최소한의 대안으로 references/production-pipeline.md를 참조합니다. - 합성을 구현하기 전에 references/tts-providers.md를 읽습니다. 제공자의 모델과 SDK/API 형식은 자주 변경되므로 공식 문서와 대조하여 확인합니다.
워크플로우
1. 브리핑 확립
제품, 대상 청중, 출시 목표, 플랫폼, 화면 비율, 목표 길이, 톤, 행동 유도(CTA), 로케일, 필수 주장을 결정합니다. 정보가 없으면 결과에 실질적인 영향을 주지 않는 창의적인 선택사항은 추론하여 결정합니다. 결과를 실질적으로 바꾸는 선택사항에 대해서만 질문합니다.
기본값은 1920x1080, 30FPS, 35~75초, 한 명의 내레이터, 캡션, 명확한 CTA입니다. 요청된 채널에 필요한 경우 세로 또는 정사각형 구성도 추가합니다.
2. 실제 제품 검증
리포지토리를 검사하고 가능하다면 실제 앱을 실행합니다. 실제 라우트, 컴포넌트, 데이터 상태, 디자인 토큰, 폰트, 아이콘, 카피, 플랜명, 가격, 기능 동작을 추적합니다. 라이브 제품의 경우 브라우저 자동화를 통해 실제 렌더링된 경험을 검사합니다. 화면, 기능, 지표, 사용 후기, 가격, 상호작용을 절대 허구로 만들어서는 안 됩니다.
제품 시각 자료는 다음 순서로 사용합니다:
- 실제 컴포넌트를 결정론적 목업 데이터와 함께 제어된 Remotion/데모 환경으로 가져옵니다.
- 실제 DOM, 토큰, 카피, 상태를 유지하면서 애니메이션에 안전한 디스플레이 컴포넌트를 추출합니다.
- 실제 컴포넌트를 앱 외부에서 렌더링할 수 없는 경우에만 소스에서 파생된 복제본을 구축합니다. 실제 스크린샷과 비교하고 이 대체 방법을 공개합니다.
- 애니메이션에 안전한 컴포넌트가 실용적이지 않은 경우에만 스크린샷 또는 화면 녹화를 사용합니다.
상태를 촬영하기 위해 프로덕션 시크릿을 노출하거나 라이브 데이터를 변경하지 마십시오.
3. 스토리 및 스토리보드 작성
간결한 아크(arc)를 사용합니다: 갈고리(hook) -> 문제 -> 드러냄(reveal) -> 실제 사용을 통한 증명 -> 가장 강력한 이점 -> CTA. 각 장면마다 하나의 메시지와 하나의 핵심 시각 자료를 제공합니다. 최종 타이밍 전에 장면 내레이션을 작성합니다.
references/storyboard-schema.md를 사용하여 storyboard.json을 생성합니다. 각 장면에 대해 정확한 UI 상태, 컴포넌트/소스 출처, 동작, 내레이션, 주장, 전환 의도를 포함합니다.
4. Remotion 시스템 구축
제품 토큰, 타이포그래피, 안전 영역, 브라우저/기기 프레임, 커서, 강조 표시, 타자기 텍스트, 카메라 이동 및 전환을 위한 재사용 가능한 시각적 시스템을 만듭니다. useCurrentFrame()과 interpolate() 또는 정당화된 spring() 호출을 사용합니다; CSS 애니메이션이나 전환은 절대 사용하지 마십시오.
설계된 모션을 선호합니다: 카메라 초점, 마스크된 등장, 공유 축 이동, 세련된 크로스페이드, 객체 연속성, 시간적 스테이징. 무작위적인 모션, 일반적인 카드 그리드, 작은 UI, 동시에 경쟁하는 초점은 피합니다.
5. 내레이션 생성 및 동기화
장면당 하나의 오디오 파일을 생성합니다. 트랜스크립트를 진실의 원천으로 보존합니다. 실제 오디오 길이를 측정하고 voiceover-manifest.json을 작성합니다; 장면 길이는 오디오 길이와 도입부 및 여유 공간에서 파생됩니다. 시각적 요소가 자리 잡은 후 내레이션을 시작하고, 보이는 동작을 해당 동작을 설명하는 정확한 문장에 맞춰 예약합니다.
고정된 장면에 맞추기 위해 오디오를 늘리지 마십시오. 전달 내용과 시각 자료가 일치하지 않으면 다시 생성하거나 시간을 재조정합니다. 알려진 트랜스크립트에서 캡션을 추가합니다; STT는 음성 출력이 단어 수준 타임스탬프가 필요할 정도로 다른 경우에만 사용합니다.
렌더링 전에 node <skill-dir>/scripts/validate-genvid.mjs <storyboard> <manifest> [project-root]를 실행합니다.
6. 렌더링 및 검사
각 장면의 시작점, 중간 지점, 주요 상호작용 지점, 종료 지점 근처의 대표적인 스틸 이미지를 렌더링합니다. 일반적인 시청 크기로 검사합니다. 클리핑, 읽을 수 없는 텍스트, 우연한 겹침, 커서 이탈, 부정확한 UI, 데드 타임, 급격한 컷, 내레이션 불일치를 수정합니다.
대상 형식에서 다른 형식을 요구하지 않는 한, 최종 MP4를 H.264, BT.709, 고품질 AAC 오디오로 렌더링합니다. 사운드와 함께 전체 결과를 시청합니다. 런타임, 치수, 코덱, 오디오 존재 여부, 최종 CTA, 아티팩트 경로를 확인합니다.
완료 기준
MP4 파일이 존재하고 전체 타임라인에 걸쳐 시청되거나 샘플링되었을 때만 완료합니다. 렌더링된 경로, 치수, FPS, 길이, TTS 제공자/모델/음성, 제품 시각 자료의 출처, 검증된 주장, 수행된 테스트, 의도적인 복제/캡처 대체 방법 여부를 보고합니다.