시네마틱 쇼츠 조립 — AI 배경·움직이는 컷·검사
이미지 7장, 음성 8줄, 움직이는 컷 2개로 한 편
11강의 8줄 원고로 줄마다 AI 배경 이미지와 음성을 만들고, 훅·클라이맥스 두 줄을 Google Flow 움직이는 컷으로 바꾼 뒤, 한 편으로 렌더하고 숫자로 검사합니다.
예상 소요 시간 약 70분
완성 모습
세로 1080×1920, 35~40초예요. 화면은 네 층이에요.
- 위쪽 제목 띠: 처음부터 끝까지 고정(편 제목 두 줄 + 책 소개 한 줄)
- 가운데 큰 자막: 줄마다 바뀌는 8줄 원고
- 배경: 줄마다 AI 이미지 한 장이 천천히 확대·이동(켄 번스). 1줄과 6줄은 8초짜리 움직이는 컷
- 끝 카드: 책 제목·저자·구매 안내·「효과에는 개인차가 있습니다」
배경을 모두 이미지로 만든 것을 정지판, 1줄과 6줄만 움직이는 컷으로 바꾼 것을 플로우판이라고 불러요. 정지판을 먼저 완성하고, 플로우판은 그 위에 두 컷만 더해요.
한 편에 드는 시간과 돈
강사가 같은 방식으로 만든 편(책 홍보 2부)을 잰 기록이에요(2026-10-16, 1달러 1,400원). 아래 합계는 다시 만드는 이미지가 없을 때예요. 실제 그 편은 테두리 때문에 이미지 4장을 다시 만들어 약 12분, 약 1,030원이 들었어요. 요금은 서비스마다 자주 바뀌니 시작 전에 내 요금제로 다시 확인해요.
| 단계 | 걸린 시간 | 비용 |
|---|---|---|
| 배경 이미지 7장(Gemini 이미지 API) | 약 1분 | 장당 약 $0.067 → 약 $0.47 |
| 음성 8줄(Typecast API, 약 270자) | 약 30초 | 1글자 = 1크레딧, 약 $0.02 |
| 렌더 + 검사 | 약 1분 | 0 |
| 정지판 합계(원고·업로드 포함, 재생성 없을 때) | 약 10분 | 약 700원 |
| 움직이는 컷 2개(Google Flow, Veo Fast 720p) | +약 6분 | 컷당 10크레딧, 구독 크레딧이면 추가 현금 0 |
이 표에는 클로드 사용량과 내가 영상을 보는 시간은 들어 있지 않아요.
따라하기 1: 배경 이미지
이미지 프롬프트는 11강 원고의 줄마다 하나씩 써요. 그리고 모든 줄에 같은 꼬리말을 붙여요.
| 꼬리말에 넣을 것 | 이유 |
|---|---|
| 화면 끝까지 꽉 찬 한 장의 사진, 액자·콜라주·분할 금지 | 안 쓰면 그림 속 그림처럼 테두리가 생겨 다시 만들어야 해요 |
| 위쪽 20%와 가운데 띠는 차분하게 | 제목 띠와 큰 자막이 읽혀야 해요 |
| 글자·간판·로고·책 제목 없음 | AI가 만든 글자는 깨져 보이고 오해를 불러요 |
| 실존 인물·유명인 없음 | 초상권 |
theory/theory1.json의 1~7줄마다 장면에 맞는 배경 이미지 프롬프트를 영어로 써서img칸에 넣어줘. 위 꼬리말을 모든 프롬프트에 붙여줘. 그다음 Gemini 이미지 API로 9:16 이미지 7장을img/theory1-01.png… 로 만들어줘. 부르기 전에 장수와 예상 비용을 알려주고 내 허락을 받아줘. 키는.env의GEMINI_API_KEY를 쓰고 화면에 출력하지 마.
만든 이미지를 한 장씩 봐요. 테두리·글자·이상한 손이 보이면 그 장만 다시 만들어요.
3번과 5번 이미지에 테두리가 있어. 그 두 장만 다시 만들어줘.
같은 인물이 여러 줄에 나오면 프롬프트에 「앞 장면과 같은 사람, 같은 옷」을 구체적으로 적어요(나이·옷 색).
따라하기 2: 줄마다 음성
음성은 쇼츠 자동화 6강에서 만든 Typecast 계정을 그대로 써요. 이번에는 줄마다 따로 만들고 음량을 맞춰요.
theory1.json의say를 줄마다 Typecast로 읽어voice/theory1-NN.wav로 만들어줘. 같은 문장은 다시 부르지 말고 저장해 둔 것을 써줘. 줄마다 음량을 −14 LUFS로 맞추고, 줄 사이에 0.3초 쉼을 둬서voice/theory1-all.wav하나로 이어줘. 줄마다 시작 시각과 길이를 표로 보여줘.
LUFS는 사람이 느끼는 음량 단위예요. 유튜브는 대략 −14에 맞추니 우리도 거기에 맞춰요. 줄마다 맞추면 어떤 줄만 작게 들리는 일이 없어요.
따라하기 3: 정지판 렌더
화면 조립은 HTML로 한 장면을 만들고 영상으로 굽는 HyperFrames를 써요. 클로드가 HTML을 쓰고, 렌더 명령도 실행해요.
음성 표의 시각에 맞춰 HyperFrames로 정지판을 조립해줘. 1080×1920, 30fps. 위쪽에 제목 띠를 고정하고, 가운데에
cap자막을 줄마다 바꾸고, 배경은 줄마다 이미지를 천천히 확대하면서 0.45초 겹쳐 전환해줘. 마지막에 끝 카드(책 제목·저자·구매 안내·「효과에는 개인차가 있습니다」)를 1초 이상 보여주고out/theory1.mp4로 렌더해줘.
터미널로도 할 수 있어요. 클로드가 만든 스크립트를 python3 make_theory.py theory/theory1.json처럼 직접 실행하면 돼요.
따라하기 4: 숫자로 검사
눈으로 보기 전에 기계가 먼저 검사해요. 강사가 쓰는 검사는 네 가지예요.
| 검사 | 통과 기준 | 걸리면 |
|---|---|---|
| 전체 음량 | −14 ±0.5 LUFS | 음량 맞춤을 다시 해요 |
| 긴 무음 | 1.5초 넘는 무음 없음 | 음성 하나가 비었는지 봐요 |
| 형식 | 1080×1920, 길이가 계획과 0.3초 안쪽 차이 | 렌더 설정을 봐요 |
| 자막 판독(OCR) | 줄마다 글자 인식 점수 0.6 이상 | 배경이 너무 밝거나 복잡해요 → 그 이미지를 다시 |
out/theory1.mp4를 위 네 가지로 검사해서out/theory1.qa.json에 저장하고 표로 보여줘. 자막 판독은 줄마다 자막이 떠 있는 중간 시점 화면을 캡처해서 해줘.
그다음 폰으로 소리를 켜고 한 번, 끄고 한 번 끝까지 봐요. 숫자가 다 통과해도 사람이 보는 일은 빼지 않아요.
따라하기 5: 플로우판 — 움직이는 컷 두 개
1줄(훅)과 6줄(방법)의 배경 이미지를 첫 프레임으로 Google Flow에 넣고, 움직임만 글로 설명해요. 첫 프레임 방식이라 정지판의 그림과 같은 사람, 같은 구도가 이어져요. Flow 사용법은 쇼츠 자동화 5강에 있어요.
theory1.json의 1줄과 6줄에clip칸을 만들어 움직임 프롬프트를 영어로 써줘. 카메라는 거의 고정, 인물이 화면 가운데로 크게 다가오지 않게, 8초. 표정은 대사의 감정에 맞게 써줘.
Flow에서 9:16, 첫 프레임에 img/theory1-01.png를 올리고 프롬프트를 붙여 만들어요. 받은 파일을 clip/theory1-01.mp4, clip/theory1-06.mp4로 저장한 뒤 다시 조립해요.
clip/에 있는 줄은 이미지 대신 소리를 끈 영상을 배경으로 쓰도록 바꿔서out/theory1-clip.mp4로 다시 렌더하고, 같은 네 가지 검사를 해줘.
강사가 겪은 실수 두 가지예요.
- 표정 프롬프트에 smile을 넣지 않아요. 「한마디도 알아듣지 못했다」는 줄에 웃는 얼굴이 나와 다시 만들었어요. 당황·집중처럼 대사의 감정을 직접 써요.
- 클로즈업이 심한 도구는 피해요. 다른 영상 AI로 같은 장면을 만들어 봤더니 얼굴이 화면을 채워 큰 자막이 얼굴을 가렸어요. 자막이 들어갈 자리를 생각해 「구도 유지」를 프롬프트에 넣어요.
정지판과 플로우판 비교하기
같은 원고로 두 판을 다 올려 두면 1주 뒤에 비교할 수 있어요. 유튜브 스튜디오에서 두 영상의 조회수, 평균 시청 지속 시간, 끝까지 본 비율을 10강 성과 기록표에 나란히 적어요. 한 편만으로 결론 내지 말고 세 편 이상 쌓아 보고 정해요.
업로드·고정 댓글은 8강 방법 그대로 해요. AI로 만든 화면이 들어 있으니 업로드할 때 변경되거나 합성된 콘텐츠 공시를 켜요.
🧪 실습
- 배경 이미지 7장이 있고, 테두리·글자 있는 장은 다시 만들었다
- 줄마다 음성이 있고 음량을 맞춘 이어 붙인 파일이 있다
-
out/theory1.mp4정지판과 검사표가 있다 - 움직이는 컷 2개를 넣은
out/theory1-clip.mp4가 있다 - 폰으로 소리 켜고 한 번, 끄고 한 번 끝까지 봤다
오늘의 체크리스트
- API 키는
.env에만 있고 채팅·화면에 나오지 않았다 - 외부 서비스를 부르기 전에 장수·글자 수·비용을 확인했다
- 이미지에 글자·실존 인물이 없다
- 검사 네 가지가 모두 통과했다
다음 단계
이론 쇼츠가 여러 편 쌓이면 11강에서 정한 시리즈 순서대로 10강 주간 루틴표에 끼워 넣어요.