AI 제작 가이드

AI에게 말로 릴스를 만들고, 편집툴까지 내 방식으로 키우는 법

이 문서는 제가 실제로 사용하는 릴스 제작 시스템의 구조를 비전공자도 이해할 수 있게 풀어 쓴 가이드입니다.
완성 코드를 통째로 복사하는 문서가 아니라, Codex나 Claude Code 같은 코딩 AI에게 그대로 붙여 넣고, 쓰면서 원하는 방향으로 계속 바꿔 가기 위한 설계도와 프롬프트입니다.

중요한 사실이 하나 있습니다. 지금의 편집툴을 처음부터 완성된 모습으로 만든 것이 아닙니다. 처음에는 AI에게 영상 한 편을 만들어 달라고 했고, 결과를 보면서 “이 부분을 더 빠르게”, “자막을 내가 직접 옮기고 싶어”, “매번 쓰는 스타일을 저장하고 싶어”처럼 계속 수정했습니다. 같은 불편이 반복되면 이번 영상만 고치는 대신 편집툴에 새 기능으로 만들어 달라고 요청했습니다.

그래서 이 문서의 목표도 제 시스템과 똑같은 것을 복제하는 데 있지 않습니다. 작은 버전으로 시작한 뒤, 직접 릴스를 만들면서 내 취향과 작업 방식이 들어간 도구로 키우는 것이 목표입니다.

먼저, 이 시스템으로 무엇을 할 수 있나요?

원본 영상을 폴더에 넣고 AI에게 이렇게 말할 수 있습니다.

input/videos 폴더에 오늘 촬영한 영상들을 넣었어.
신제품을 소개하는 25초 릴스를 만들어줘.
첫 2초에는 제품이 완성된 장면을 먼저 보여주고,
중간에는 만드는 과정을 빠르게 보여줘.
마지막에는 "다음 편도 궁금하면 팔로우"를 넣어줘.

먼저 기획안과 사용할 장면을 보여주고 내 확인을 받은 다음 검토본을 만들어줘.

그러면 AI가 다음 일을 순서대로 처리합니다.

  1. 새로 들어온 영상의 길이, 해상도, 방향을 확인합니다.
  2. 영상을 장면별 이미지로 펼쳐 보고 쓸 만한 구간을 고릅니다.
  3. 훅, 대본, 컷 순서, 자막, 효과음을 기획합니다.
  4. 편집 설계도인 project.json을 만듭니다.
  5. Remotion으로 세로형 검토 영상을 렌더링합니다.
  6. 결과를 직접 검사하고 문제가 있으면 다시 수정합니다.
  7. 저는 웹 편집기를 열어 컷, 자막, 위치, 색, 효과음을 직접 손볼 수 있습니다.
  8. 수정이 끝나면 1080×1920 최종 MP4를 만듭니다.
  9. 반복해서 불편한 부분은 AI에게 편집툴의 새 기능으로 만들어 달라고 합니다.

여기서 중요한 점은 AI가 마우스로 기존 편집 프로그램을 대신 조작하는 것이 아니라는 것입니다. 영상의 모든 편집 내용을 데이터로 기록하고, 그 데이터를 코드로 영상으로 만드는 방식입니다.


핵심 원리: AI와 사람이 같은 편집 설계도를 고친다

이 시스템은 아래 다섯 부분으로 나뉩니다.

촬영 원본
   ↓
FFmpeg 분석 결과와 장면 이미지
   ↓
코딩 AI가 만드는 project.json
   ↓
Remotion 영상 엔진 ─────→ 검토본 / 최종본 MP4
   ↑
내가 직접 쓰는 웹 편집기

가장 중요한 파일은 project.json입니다. 쉽게 말하면 프리미어나 캡컷의 타임라인을 글자로 적어 둔 편집 설계도입니다.

{
  "name": "my-product-reel",
  "fps": 30,
  "width": 1080,
  "height": 1920,
  "scenes": [
    {
      "id": "hook",
      "src": "input/videos/product.mp4",
      "start": 12.4,
      "duration": 1.8,
      "fit": "cover",
      "transitionIn": "none"
    },
    {
      "id": "making",
      "src": "input/videos/process.mp4",
      "start": 3.2,
      "duration": 2.5,
      "fit": "cover",
      "transitionIn": "flash"
    }
  ],
  "titles": [
    {
      "from": 0,
      "to": 1.8,
      "lines": [{ "text": "이걸 직접 만들었다고?", "style": "hero" }]
    }
  ],
  "voice": {
    "src": "projects/my-product-reel/voice.wav",
    "at": 0.2,
    "volume": 1
  },
  "captions": {
    "src": "projects/my-product-reel/captions.json",
    "preset": "pop-word",
    "position": "bottom"
  }
}

AI가 편집할 때도 이 파일을 바꾸고, 제가 웹 편집기에서 컷 길이나 자막 위치를 바꿀 때도 이 파일을 바꿉니다. 그래서 다음 날 AI에게 “어제 내가 편집기에서 바꾼 내용은 유지하고 효과음만 다시 넣어줘”라고 말할 수 있습니다.

이 구조가 좋은 이유는 세 가지입니다.

  • AI가 파일을 읽고 정확히 수정할 수 있습니다.
  • 사람이 화면을 보며 직접 수정할 수도 있습니다.
  • 같은 설계도로 미리보기와 최종본을 다시 만들 수 있어 결과가 일정합니다.

그리고 한 가지 장점이 더 있습니다. 영상 결과뿐 아니라 영상을 만드는 도구 자체도 대화로 바꿀 수 있습니다. 자막 위치를 매번 고친다면 기본 위치를 바꾸고, 원하는 버튼이 없다면 편집기에 버튼을 추가하고, 편집 방식이 달라지면 project.json 구조와 렌더링 규칙도 함께 발전시킬 수 있습니다.


제가 실제로 구현한 구성

역할 사용한 것 하는 일
AI 작업자 Codex 또는 Claude Code 기획, 파일 분석, 구간 선택, 코드 수정, 렌더링, 검사
영상 엔진 Remotion + React JSON에 적힌 장면, 자막, 이미지, 오디오를 영상 프레임으로 그림
미디어 분석 FFmpeg / ffprobe 길이·해상도·코덱 확인, 장면 감지, 대표 이미지 추출, 음량 조정
편집 설계도 project.json 컷 순서, 원본 구간, 자막, 제목, 효과음, BGM 등을 저장
웹 편집기 React + @remotion/player 실제 결과를 재생하면서 컷·글자·스타일·효과음을 직접 수정
자막 대본 정렬 또는 Whisper 음성에 맞는 단어별 시작·종료 시각 생성
음성 직접 녹음 또는 TTS 내레이션 제작. TTS는 선택 사항
작업 규칙 AGENTS.md 또는 CLAUDE.md AI가 매번 따라야 할 제작 순서와 취향을 저장
검사 자체 스크립트 + ffprobe 해상도, 길이, 오디오, 재생 가능 여부, 프레임 이미지를 확인

현재 프로젝트에서는 아래와 같은 명령으로 각 단계를 실행합니다.

npm run scan
npm run scenes -- input/videos/example.mp4
npm run new-project -- 2026-10-example --account my.account
npm run render:preview -- 2026-10-example
npm run editor
npm run render:final -- 2026-10-example

명령어를 외울 필요는 없습니다. 작업 규칙 파일에 절차를 적어 두면 AI가 상황에 맞는 명령을 직접 실행합니다.


준비물

최소한 다음이 필요합니다.

  • Codex나 Claude Code처럼 내 컴퓨터의 파일과 터미널을 다룰 수 있는 코딩 AI
  • Node.js 20 이상
  • FFmpeg
  • Chrome 계열 브라우저
  • 영상 작업을 보관할 폴더

있으면 좋지만 필수는 아닙니다.

  • Git: 코드와 편집 기록을 되돌리기 좋습니다.
  • Whisper: 영상 속 말을 자동으로 자막으로 만들 때 씁니다.
  • TTS 서비스: AI 음성을 만들 때 씁니다.
  • 이미지·영상 생성 서비스: 촬영하지 못한 보조 장면이 필요할 때만 씁니다.

비전공자라면 프로그램을 하나씩 직접 설치하려고 애쓰기보다, 먼저 작업 폴더를 연 코딩 AI에게 아래처럼 요청하는 편이 쉽습니다.

이 컴퓨터에서 Node.js와 FFmpeg를 사용할 수 있는지 확인해줘.
없다면 내 운영체제에 맞는 설치 방법을 먼저 설명하고, 설치 전에는 내 승인을 받아줘.
설치가 끝나면 버전과 실제 실행 여부까지 확인해줘.

API 키, 로그인 정보, 개인 영상은 공개 저장소에 올리지 마세요. .env, 원본 폴더, 출력 폴더를 어디까지 Git에 포함할지도 AI와 먼저 정하는 것이 좋습니다.


이제 AI에게 만들어 달라고 해봅시다

아래 단계는 반드시 똑같이 만들어야 하는 정답이 아니라, 제가 사용한 구조를 바탕으로 한 출발점입니다. 처음부터 모든 기능을 한 번에 만들면 오류가 났을 때 원인을 찾기 어렵습니다. 아래 프롬프트를 1번부터 순서대로 보내고, 각 단계가 실제로 실행되는 것을 확인한 뒤 다음으로 넘어가세요.

중간에 “나는 음성을 거의 쓰지 않는데?”, “나는 제품 사진을 더 많이 쓰는데?”, “타임라인보다 장면 카드 방식이 편한데?”라는 생각이 들면 그대로 바꿔도 됩니다. 오히려 그렇게 해야 나에게 맞는 도구가 됩니다.

1단계: 최소 영상 엔진 만들기

새 폴더를 코딩 AI로 연 뒤 아래 프롬프트를 붙여 넣으세요.

이 폴더에 "말로 지시하면 릴스를 만들어주는 로컬 영상 제작 시스템"의 최소 버전을 만들어줘.

기술 구성:
- TypeScript, React, Remotion을 사용한다.
- 영상 분석과 후처리는 시스템 FFmpeg/ffprobe를 사용한다.
- 세로 영상 기본 규격은 1080×1920, 30fps다.
- 편집 내용은 projects/<프로젝트명>/project.json 한 파일을 기준으로 관리한다.
- 원본 영상은 input/videos, 이미지 파일은 input/images, 음성은 input/audio에 둔다.
- 검토본은 previews, 최종본은 exports에 저장한다.

최소 기능:
1. 여러 영상에서 start와 duration으로 구간을 잘라 순서대로 붙인다.
2. 가로·세로 원본 모두 cover, contain, blur-fill 중 하나로 배치할 수 있다.
3. 제목 텍스트를 원하는 시간에 표시할 수 있다.
4. 음성, 효과음, BGM을 각각 넣을 수 있다.
5. project.json을 읽어 Remotion으로 MP4를 렌더링한다.
6. npm run render:preview -- <이름>과 npm run render:final -- <이름> 명령을 만든다.
7. 예제 미디어가 없어도 color 장면으로 전체 테스트가 가능하게 한다.

작업 방식:
- 먼저 만들 파일과 데이터 흐름을 짧게 설명한다.
- 그다음 실제 파일을 만들고 의존성을 설치한다.
- 예제 프로젝트를 렌더링해 MP4가 만들어지는지 확인한다.
- TypeScript 검사와 간단한 자동 테스트를 추가한다.
- README.md에 설치법과 실행법을 비전공자 눈높이로 적는다.
- 문제가 생기면 중간에 멈추지 말고 원인을 찾아 고친 뒤 검증 결과를 알려준다.

1단계 완료 기준

  • projects/demo/project.json 같은 예제 설계도가 있습니다.
  • 명령 한 번으로 세로 MP4가 만들어집니다.
  • 장면의 순서나 길이를 JSON에서 바꾸면 영상도 바뀝니다.
  • 테스트와 타입 검사가 통과합니다.

이 단계에서는 예쁜 자막이나 편집기를 욕심내지 마세요. JSON 하나로 영상 한 편이 만들어지는 것이 먼저입니다.


2단계: AI가 원본을 파악할 수 있게 만들기

코딩 AI는 긴 영상을 사람처럼 처음부터 끝까지 계속 재생해 보는 것보다, 대표 프레임을 격자로 펼쳐 놓았을 때 빠르고 정확하게 내용을 파악합니다.

기존 릴스 제작 시스템에 원본 분석 기능을 추가해줘.

필요한 명령:
- npm run scan
  - input 폴더의 영상·이미지·음성을 찾는다.
  - ffprobe로 길이, 표시 기준 해상도, 회전, 방향, fps, 코덱, 오디오 유무를 기록한다.
  - 결과를 reports/media-inventory.json과 읽기 쉬운 Markdown 표로 저장한다.
  - 이전 검사 뒤 새로 들어오거나 수정된 파일에는 새 파일 표시를 한다.

- npm run scenes -- <영상 경로>
  - FFmpeg 장면 전환 감지를 사용한다.
  - 장면별 시작·끝 시각을 JSON과 Markdown으로 저장한다.
  - 각 장면의 대표 프레임을 모은 contact-sheet.jpg를 만든다.
  - 일정한 간격으로 뽑은 timeline-sheet.jpg도 만든다.
  - 각 이미지에 장면 번호와 타임코드를 표시한다.

안전 조건:
- input의 원본 파일은 절대 수정하거나 삭제하지 않는다.
- 파일명에 한글과 공백이 있어도 동작하게 한다.
- 세로 회전 정보가 있는 아이폰 영상도 표시 방향을 올바르게 판단한다.
- 실패한 파일 하나 때문에 전체 검사가 중단되지 않게 한다.

작업 후 짧은 테스트 영상을 만들어 scan과 scenes를 실제 실행하고 결과 이미지까지 확인해줘.

이 기능이 생기면 평소 AI에게 “새 원본을 찾고 장면 이미지를 직접 확인한 다음 구간을 골라줘”라고 말할 수 있습니다.


3단계: 계정별 취향과 작업 절차 기억시키기

AI에게 매번 같은 설명을 반복하지 않으려면 취향과 절차를 파일로 남겨야 합니다.

권장 구조는 다음과 같습니다.

profile/
  accounts.json
  accounts/
    my.account/
      style-guide.md
      style-guide.json
projects/
  2026-10-my-reel/
    brief.md
    project.json
AGENTS.md
CLAUDE.md
  • style-guide.md: 사람이 읽는 계정 분위기와 편집 취향
  • style-guide.json: 코드가 바로 적용할 기본값
  • brief.md: 이번 한 편의 목적, 훅, 대본, 장면 계획
  • AGENTS.md·CLAUDE.md: AI가 반드시 지켜야 할 작업 순서

아래 프롬프트로 뼈대를 만들 수 있습니다.

이 프로젝트에 계정별 편집 취향과 AI 작업 규칙을 저장하는 구조를 추가해줘.

1. profile/accounts/<핸들>/style-guide.md에는 다음을 기록한다.
   - 계정의 목적과 시청자
   - 첫 훅이 나와야 하는 시간
   - 평균 컷 길이
   - 자막 위치와 크기
   - 자주 쓰는 색, 폰트, 제목 모양
   - 좋아하는 전환과 피해야 할 효과
   - 음성, 효과음, BGM 취향

2. 같은 폴더의 style-guide.json에는 코드가 사용할 기본값을 둔다.

3. npm run new-project -- <이름> --account <핸들> 명령을 만든다.
   - projects/<이름>/brief.md와 project.json을 생성한다.
   - 해당 계정의 기본 자막, 폰트, 색, 오디오 설정을 project.json에 넣는다.
   - 기존 프로젝트는 확인 없이 덮어쓰지 않는다.

4. 루트의 AGENTS.md와 CLAUDE.md에 아래 제작 순서를 적는다.
   - 어느 계정 영상인지 확인
   - 새 원본 스캔
   - 장면 대표 이미지 직접 확인
   - 기획안과 사용할 구간을 사용자에게 먼저 제안
   - 승인 후 project.json 작성
   - 검토본 렌더링과 프레임 검사
   - 사용자 승인 후 최종본 렌더링

5. 원본 파일은 수정·삭제하지 않고, 사용자가 편집기에서 바꾼 값은 보존한다는 규칙을 강조한다.

예시 계정 하나와 예시 프로젝트를 만들고 생성 명령을 테스트해줘.

처음에는 AI가 제안한 스타일 가이드를 그대로 믿지 말고, 내가 실제로 올린 릴스 몇 편을 함께 보며 숫자를 채우는 것이 좋습니다.

input/reference/my.account 폴더의 기존 릴스 5편을 분석해줘.
각 영상의 길이, 첫 제목 등장 시각, 컷 길이, 자막 위치, 반복되는 색과 구성을 비교해.
추측과 관찰 사실을 구분하고, 반복되는 패턴만 style-guide.md와 style-guide.json에 반영해줘.
다른 사람의 문구나 영상을 베끼지 말고 구조와 리듬만 분석해줘.

4단계: 내가 직접 수정할 수 있는 웹 편집기 만들기

이 부분이 “AI 자동화”를 실제 작업 도구로 바꿔 줍니다. AI 결과가 마음에 들지 않을 때마다 프롬프트를 다시 쓰지 않고, 화면을 보며 직접 조금씩 고칠 수 있기 때문입니다.

현재 project.json 기반 릴스 시스템에 로컬 웹 편집기를 추가해줘.

실행 방법:
- npm run editor
- 브라우저에서 http://localhost:3210으로 연다.

구현 조건:
- React와 @remotion/player를 사용한다.
- 최종 렌더링에 쓰는 것과 동일한 Reel 컴포넌트를 Player에서도 사용한다.
  즉, 편집기 미리보기와 최종 영상의 모양이 달라지지 않아야 한다.
- projects 폴더의 프로젝트 목록과 썸네일을 보여준다.
- 프로젝트를 열면 세로 미리보기, 재생 헤드, 영상/텍스트/소리 타임라인을 보여준다.

처음 넣을 편집 기능:
1. 장면 순서 변경
2. 장면의 원본 시작 지점과 길이 변경
3. 9:16 크롭 위치 조절
4. 제목과 자막의 글자, 시작·종료 시각, 위치, 크기 변경
5. 효과음의 시각과 음량 변경
6. 재생·일시정지와 원하는 시각으로 이동
7. 저장 버튼

저장 방식:
- 저장 시 project.json과 captions.json에 반영한다.
- 저장 직전에 기존 파일을 build/editor-backups에 날짜가 붙은 이름으로 백업한다.
- AI가 모르는 필드는 삭제하지 말고, 편집한 필드만 안전하게 합친다.
- 저장 API는 프로젝트 폴더 밖의 임의 파일을 수정할 수 없게 경로를 검증한다.
- 저장 후 다시 불러와 같은 모양인지 확인한다.

추가로 편집기에서 "검토본 만들기"와 "최종본 만들기"를 눌러 기존 렌더 명령을 실행하고 진행률과 결과 파일을 보여줘.

기능을 한꺼번에 만들지 말고, 먼저 장면 길이와 제목 위치 저장까지 완성하고 테스트한 뒤 나머지를 확장해줘.

왜 같은 Remotion 컴포넌트를 써야 하나요?

편집기용 화면과 최종 렌더링용 코드를 따로 만들면 “편집기에서는 예뻤는데 완성 파일에서는 다르게 나오는” 문제가 생깁니다. 실제 구현에서는 Reel이라는 하나의 컴포넌트를 웹 편집기의 Player와 최종 렌더러가 함께 사용합니다.


편집툴도 완성품이 아닙니다: 쓰면서 계속 바꾸세요

제가 지금 쓰는 편집기의 타임라인, 크롭 조절, 자막 스타일, 효과음 패널, 템플릿 저장 기능도 한 번에 만든 것이 아닙니다. 실제 릴스를 편집하다가 불편한 순간이 생길 때마다 AI에게 고쳐 달라고 했습니다.

편집하다가 생긴 생각 도구에 추가할 수 있는 기능
“가로 영상에서 제품이 자꾸 잘려” 장면별 크롭 중심과 확대 비율 조절
“자막 위치를 JSON에서 고치기 불편해” 화면에서 자막을 직접 드래그하는 기능
“이 제목 디자인을 다음에도 쓰고 싶어” 내 제목·자막 프리셋 저장 기능
“효과음 시간을 숫자로 넣기 어려워” 타임라인에서 효과음을 끌어 옮기는 기능
“음성을 다시 만들면 수정한 자막이 사라져” 실행 전 백업과 사용자 수정값 병합
“계정마다 분위기가 섞여” 계정별 스타일 가이드와 기본값 분리
“터미널 명령이 번거로워” 편집기에 검토본·최종본 만들기 버튼 추가

즉, 릴스를 고치는 대화와 편집툴을 고치는 대화가 따로 있지 않습니다. 한 번만 필요한 수정은 현재 프로젝트에 반영하고, 앞으로도 반복될 불편은 공용 기능으로 만들어 달라고 하면 됩니다.

한 편만 고칠지, 편집툴까지 바꿀지 구분하는 프롬프트

지금 요청이 이번 릴스에만 필요한 수정인지,
앞으로 모든 릴스에서 반복해서 쓸 기능인지 먼저 판단해줘.

- 이번 영상만의 내용이나 타이밍이면 현재 project.json만 수정해.
- 반복해서 쓸 편집 방식이면 공용 편집기나 프리셋 기능으로 만들어.
- 판단이 애매하면 코드를 바꾸기 전에 두 선택지의 차이를 설명해줘.
- 기존 프로젝트와 내가 저장한 편집값은 깨지지 않아야 해.

편집툴에 원하는 기능 추가하기

전문 용어를 몰라도 괜찮습니다. 지금 불편한 장면과 원하는 행동을 설명하면 됩니다.

릴스를 편집하다 보니 [현재 불편한 점]이 계속 불편해.

앞으로는 [내가 원하는 방식]으로 편집하고 싶어.
웹 편집기에서 [원하는 화면이나 조작]을 할 수 있게 기능을 추가해줘.

조건:
- 기존 프로젝트 파일이 그대로 열려야 한다.
- 새 값이 없는 예전 프로젝트는 지금과 같은 결과가 나와야 한다.
- 저장 전 자동 백업을 남긴다.
- 편집기 미리보기와 최종 렌더링에 같은 값이 적용되어야 한다.
- 구현 후 실제 예제 프로젝트로 저장, 다시 열기, 렌더링까지 테스트한다.

먼저 내가 이해할 수 있는 말로 어떤 파일과 데이터가 바뀌는지 설명한 뒤 구현해줘.

예를 들어 원하는 위치를 설명하기 어렵다면 이렇게 말해도 됩니다.

자막을 위·가운데·아래 세 곳에서만 고르는 방식이 불편해.
영상 화면에서 자막을 손가락이나 마우스로 직접 위아래로 움직이게 해줘.
움직인 위치는 이 영상에 저장하고, 마음에 들면 "내 기본값으로 저장" 버튼으로 다음 영상에도 쓸 수 있게 해줘.

편집 방식 자체를 바꾸기

기존 방식을 억지로 유지할 필요도 없습니다.

지금 편집기는 긴 타임라인 중심인데 나는 장면을 카드처럼 하나씩 보는 방식이 더 편해.
기존 타임라인은 삭제하지 말고 "간단 편집" 화면을 새로 만들어줘.

간단 편집에서는 각 장면 카드에 아래 항목만 보여줘.
- 대표 이미지
- 원본 시작 시각
- 사용할 길이
- 자막
- 위·아래 이동 버튼

두 화면은 같은 project.json을 수정해야 하고,
한 화면에서 바꾼 결과가 다른 화면과 최종 영상에도 그대로 반영되어야 해.

마음에 든 편집을 새 기본값으로 만들기

이번 릴스에서 내가 최종적으로 고친 값을 분석해줘.
처음 AI가 만든 값과 내가 편집기에서 바꾼 값을 비교해서,
다음에도 반복하면 좋을 취향만 후보로 정리해줘.

예를 들면 평균 컷 길이, 자막 높이, 글자 크기, 자주 쓰는 제목 스타일,
효과음 종류, BGM 음량 같은 항목이야.
내 확인을 받기 전에는 공용 스타일 가이드를 바꾸지 말고,
승인한 항목만 계정 style-guide에 새 기본값으로 저장해줘.

이 과정을 반복하면 AI가 단순히 영상을 대신 만드는 데서 끝나지 않고, 내가 자주 하는 판단과 취향이 편집툴 안에 조금씩 쌓입니다.


5단계: 자막, 음성, 효과음을 자동화하기

처음에는 직접 녹음한 voice.wav와 수동 자막만으로도 충분합니다. 기본 영상 제작이 안정된 뒤 아래 기능을 하나씩 붙이세요.

현재 릴스 시스템에 음성과 자막 파이프라인을 추가해줘.

두 가지 입력 방식을 지원한다.

1. 대본을 그대로 읽은 음성
   - script.txt의 문장을 음성의 무음 구간에 맞춘다.
   - 단어별 startMs와 endMs가 들어 있는 captions.json을 만든다.

2. 즉흥적으로 말한 음성 또는 원본 영상 속 말
   - 로컬 Whisper를 사용해 단어 단위 타이밍과 텍스트를 만든다.
   - 결과를 JSON과 SRT로 저장한다.

자막 렌더링 조건:
- 한 화면에 너무 많은 글자가 나오지 않도록 단어를 페이지 단위로 묶는다.
- 현재 읽는 단어를 강조할 수 있다.
- 전체 자막 위치와 개별 문장의 스타일을 project.json에서 바꿀 수 있다.
- 대본의 *강조 단어* 표기를 화면 강조로 바꾼다.
- 음성의 시작 시각을 옮기면 자막도 함께 움직인다.

오디오 조건:
- voice, sfx, bgm을 별도 레이어로 재생한다.
- 음성이 나올 때 BGM 볼륨을 부드럽게 낮추는 덕킹을 넣는다.
- BGM은 페이드 인·아웃과 반복을 지원한다.
- 최종 출력은 목표 음량에 맞게 정규화한다.

저작권이 불명확한 음원은 자동으로 다운로드하거나 사용하지 않는다.
테스트 음성으로 자막 타이밍과 BGM 덕킹이 실제로 동작하는지 렌더링해 확인해줘.

TTS까지 붙이고 싶다면 별도 단계로 요청하세요.

TTS 기능을 추가해줘.
API 키는 코드에 쓰지 말고 .env에서 읽는다.
대본 한 줄마다 목소리를 지정할 수 있게 하고, 생성한 음성은 문장별로 캐시해 수정된 줄만 다시 생성한다.
실행 전에 생성할 문장, 선택한 목소리, 예상 사용량을 dry-run으로 보여준다.
TTS를 다시 실행해도 사용자가 편집기에서 고친 자막 글자와 스타일을 잃지 않게 백업하고 병합한다.

6단계: 검토본과 최종본을 자동 검사하기

렌더링에 성공했다는 말만으로는 부족합니다. 파일은 만들어졌지만 마지막 장면이 멈추거나, 소리가 없거나, 세로 비율이 틀릴 수도 있습니다.

렌더 결과 자동 검사 기능을 추가해줘.

npm run inspect -- <mp4> 명령이 다음을 확인하게 한다.
- 파일 전체가 오류 없이 디코딩되는지
- 해상도가 검토본 또는 1080×1920 규격과 맞는지
- fps와 코덱이 예상값과 맞는지
- project.json의 전체 장면 길이와 실제 영상 길이가 비슷한지
- 음성이 있어야 하는 프로젝트에 오디오 트랙이 있는지
- 최종 음량이 목표 범위에 있는지
- 영상 여러 지점의 프레임을 뽑은 frames.jpg를 만드는지

render:preview와 render:final이 끝난 뒤 inspect를 자동으로 실행하고,
문제가 있으면 성공으로 보고하지 말고 원인과 수정 방법을 보여줘.

검토본에는 인스타그램 UI에 가려질 수 있는 위·아래 안전 영역을 반투명하게 표시하고,
최종본에서는 안전 영역 표시를 제거해줘.

AI 작업 규칙에도 “검토본을 만든 뒤 대표 프레임 이미지를 직접 열어 보고, 글자가 잘리거나 얼굴이 크롭되지 않았는지 확인한다”를 넣으세요. 자동 수치 검사와 실제 화면 검사는 서로 대신할 수 없습니다.


평소에는 이렇게 요청합니다

기본 시스템을 만들어 두면 코드를 직접 만질 일은 크게 줄어듭니다. 그렇다고 편집툴의 현재 방식에 나를 맞출 필요는 없습니다. 영상 결과가 마음에 들지 않으면 릴스를 수정하고, 조작 방식이 불편하면 편집툴을 수정해 달라고 하면 됩니다.

새 릴스 한 편 맡기기

@my.account 계정의 새 릴스를 만들어줘.

주제: [무엇을 보여줄지]
목적: [조회수 / 제품 소개 / 팔로우 / 구매 전환 등]
길이: 약 [20]초
꼭 넣을 내용: [핵심 내용]
피할 내용: [보이면 안 되는 얼굴, 정보, 표현]
CTA: [마지막 행동 요청]

input 폴더의 새 원본을 스캔하고 장면 이미지를 직접 확인해.
계정 스타일 가이드를 읽은 뒤 훅 후보 3개와 장면 계획을 먼저 보여줘.
내가 확인하기 전에는 최종본을 만들지 마.

기획부터 검토본까지 한 번에 맡기기

input/videos에 있는 오늘 촬영본으로 25초 내외 릴스를 만들어줘.
완성된 결과를 첫 1.5초에 먼저 보여주고, 이후에 만드는 과정을 시간순으로 보여줘.
말이 없는 영상이라 짧은 내레이션 대본도 써줘.

작업 규칙과 계정 스타일 가이드를 지키고,
원본 스캔 → 장면 확인 → brief 작성 → project.json 편집 → 검토본 렌더링 → 프레임 검사까지 진행해.
확신이 없는 제품 정보는 지어내지 말고 나에게 확인해.
최종본은 검토본을 내가 승인한 뒤에만 만들어.

검토본 수정 요청하기

방금 만든 검토본을 아래처럼 수정해줘.

- 첫 장면을 0.4초 더 짧게
- 두 번째 장면은 제품이 가운데 오도록 크롭
- 6초의 자막을 "[바꿀 문장]"으로 변경
- 전체 자막은 조금 위로
- 마지막 효과음은 삭제

내가 웹 편집기에서 바꾼 다른 값은 유지해.
수정한 뒤 새 검토본을 만들고 변경 전후를 짧게 정리해줘.

내 편집 내용을 지키며 AI에게 다시 맡기기

project.json과 편집기 백업을 먼저 비교해 내가 직접 바꾼 값을 확인해줘.
내가 바꾼 컷 길이, 자막 글자, 위치, 폰트는 유지하고 효과음 배치만 다시 검토해.
자동 생성 기능이 captions.json을 덮어쓸 가능성이 있으면 실행 전에 백업하고 수정분을 다시 병합해줘.

새 계정의 스타일 만들기

새 계정 @new.account의 스타일 가이드를 만들어줘.
input/reference/new.account의 기존 영상들을 분석하되, 먼저 관찰 결과를 표로 보여줘.
내 확인을 받은 내용만 style-guide.md와 style-guide.json에 저장해.
다른 계정의 스타일을 섞지 마.

처음부터 넣지 않아도 되는 기능

제가 쓰는 시스템에는 제목 템플릿, 문장별 자막 연출, 여러 목소리 TTS, 자동 효과음, 색 보정, 개인정보 블러, 격자 영상, 레퍼런스 분석, 게시 준비 같은 기능도 있습니다.

하지만 처음 만드는 분은 아래 네 가지만 완성해도 충분합니다.

  1. 원본 분석
  2. project.json 편집 설계도
  3. Remotion 검토본·최종본 렌더링
  4. 같은 설계도를 수정하는 웹 편집기

그 뒤 실제로 릴스를 만들면서 반복되는 불편을 하나씩 AI에게 고쳐 달라고 하세요. 기능 목록을 미리 완벽하게 정할 필요도 없습니다. 제가 만든 시스템도 처음부터 완성형으로 설계한 것이 아니라, 실제 편집 중 생긴 문제를 그때그때 AI와 해결하면서 커졌습니다. 편집 스타일이 달라졌을 때는 기존 방식을 고집하지 않고 프리셋과 편집 화면도 계속 바꿨습니다.

예를 들면 이런 식입니다.

가로 영상을 세로로 자를 때 제품이 계속 잘려.
각 장면마다 크롭 중심을 저장하고 편집기에서 드래그로 바꿀 수 있게 해줘.
기존 project.json과 호환되어야 하고, 값이 없으면 지금처럼 가운데를 기본값으로 써줘.
테스트를 추가하고 실제 검토본으로 확인해줘.

이 한 문장이 focusX, focusY 같은 새 편집 기능으로 발전합니다.


잘 만드는 프롬프트의 공통점

“멋지게 만들어줘”만 적으면 AI가 무엇을 완료해야 하는지 판단하기 어렵습니다. 아래 여섯 가지를 함께 적으면 결과가 훨씬 안정적입니다.

  1. 목적: 무엇을 만들고 왜 만드는지
  2. 입력 위치: 원본과 참고 자료가 어느 폴더에 있는지
  3. 결과 위치: 어떤 파일이 만들어져야 하는지
  4. 지켜야 할 것: 원본 보존, 개인정보, 저작권, 기존 수정값
  5. 작업 순서: 분석, 기획, 승인, 검토본, 최종본
  6. 완료 기준: 테스트, 렌더링, 프레임 확인, 검사 통과

좋은 요청의 예시는 다음과 같습니다.

[목적]
신제품 제작 과정을 보여주는 20초 릴스를 만든다.

[입력]
input/videos의 오늘 촬영본과 profile/accounts/my.account/style-guide.md를 사용한다.

[결과]
projects/2026-10-new-product에 기획과 편집 설계도를 만들고,
previews에 검토본 MP4를 만든다.

[조건]
원본은 수정하지 않는다.
화면에 주문번호와 고객 이름이 보이면 해당 구간을 쓰지 않거나 가린다.
저작권이 확인되지 않은 음악은 쓰지 않는다.

[순서]
먼저 원본과 장면 이미지를 확인하고 훅 후보와 컷 계획을 제안한다.
기획을 확인받은 뒤에만 렌더링한다.

[완료 기준]
세로 비율, 오디오, 길이 검사를 통과하고 대표 프레임에서도 자막이 안전 영역 안에 있어야 한다.

자주 생기는 문제와 해결법

“AI가 원본 내용을 잘못 이해해요”

영상 파일명만 보고 고르게 하지 마세요. 장면별 대표 이미지와 타임라인 이미지를 실제로 열어 보도록 작업 규칙에 적어야 합니다. 대사가 중요하면 음성을 전사해 함께 보게 하세요.

“한 번 수정했더니 다른 부분이 망가져요”

project.json 전체를 새로 쓰지 말고 필요한 필드만 합치게 하세요. 웹 편집기 저장 전 자동 백업과 Git 기록도 큰 도움이 됩니다.

“미리보기와 최종본 모양이 달라요”

웹 편집기와 최종 렌더링에서 같은 Remotion 컴포넌트를 사용해야 합니다. 브라우저용 가짜 미리보기를 따로 만들지 마세요.

“렌더링은 됐는데 영상이 이상해요”

MP4 생성 여부만 확인하지 말고 ffprobe 검사, 전체 디코딩, 음량 검사, 대표 프레임 이미지를 함께 확인해야 합니다.

“기능이 많아질수록 AI가 자꾸 규칙을 잊어요”

긴 프롬프트를 매번 보내지 말고 AGENTS.md 또는 CLAUDE.md에 고정 절차를 저장하세요. 계정 취향은 별도 스타일 가이드에 두고, 한 편의 기획은 해당 프로젝트의 brief.md에 둡니다.

“AI 사용료나 영상 생성 크레딧이 걱정돼요”

촬영 원본을 편집하는 기능은 대부분 로컬 Remotion과 FFmpeg로 처리할 수 있습니다. 이미지·영상 생성 모델은 꼭 필요한 장면에만 사용하고, 실행 전 잔액과 예상 비용을 확인하도록 규칙을 만드세요.


꼭 지켜야 할 안전 원칙

  • 원본 영상은 자동화 도구가 수정하거나 삭제하지 않게 합니다.
  • 저장 전 편집 설계도와 자막 파일을 백업합니다.
  • API 키는 코드나 공유 문서에 넣지 않고 .env에 보관합니다.
  • 고객 이름, 전화번호, 주소, 주문번호가 담긴 화면은 사용하지 않거나 확실히 가립니다.
  • 다른 사람의 릴스는 구조와 리듬만 참고하고 영상·문구를 그대로 복제하지 않습니다.
  • 음악과 효과음은 사용 권한이 확인된 파일만 씁니다.
  • AI가 만든 기획, 제품 정보, 게시 문구는 사람이 최종 확인합니다.
  • 최종본 제작이나 게시처럼 되돌리기 어려운 단계는 사용자 승인을 받게 합니다.

마지막으로: 원하는 대로 계속 바꾸는 것이 핵심입니다

처음에는 저도 AI에게 “이 영상 만들어줘”라고 말하는 것에서 시작했습니다. 처음부터 지금 같은 편집툴이나 확실한 제작 방식이 있었던 것은 아닙니다. 결과물을 보고 계속 수정했고, 편집하기 불편한 부분이 생기면 편집툴도 바꿨고, 취향이 달라지면 자막과 제목을 만드는 방식도 다시 바꿨습니다.

작업을 반복하면서 잘된 방식은 규칙으로 남기고, 자주 하는 일은 명령어로 만들고, 눈으로 고치고 싶은 부분은 편집기에 넣었습니다. 마음에 들지 않는 방식은 지우거나 새 방식으로 교체했습니다. 그렇게 영상 한 편의 피드백이 다음 영상에서 쓸 기능이 되었습니다.

결국 이 시스템의 핵심은 다음 한 문장으로 정리됩니다.

작게 시작하고, 릴스를 만들 때마다 영상과 편집툴을 함께 내 방식으로 바꿔 간다.

이 문서의 폴더 구조, 기능, 프롬프트도 그대로 따라야 하는 정답이 아닙니다. 음성을 쓰지 않으면 음성 기능을 빼고, 사진 중심이라면 사진 편집을 강화하고, 아주 단순한 편집을 좋아한다면 버튼을 줄여도 됩니다.

완벽한 시스템을 먼저 설계하려 하지 마세요. 최소 버전으로 실제 릴스 한 편을 끝까지 만들어 본 뒤, 불편했던 점과 원하는 모습을 평소 말하듯 코딩 AI에게 설명해 하나씩 개선하면 됩니다. 코딩을 몰라도 괜찮지만, 결과를 보고 “나는 이걸 어떻게 바꾸고 싶은지” 말하는 것은 중요합니다.

AI가 처음 만든 결과에 맞춰 일하지 말고, AI가 만든 도구를 내 작업 방식에 맞게 계속 바꾸세요. 그 과정 자체가 나만의 편집 방식이 들어간 AI 릴스 제작 도구를 만드는 방법입니다.