Codex와 함께 숏폼 영상 자동화 파이프라인을 재설계한 사례

하려던 것 📝

AI를 활용해 시나리오 기반 숏폼 영상 제작 전 과정을 자동화하고, 단순히 “영상이 만들어지는 수준”을 넘어서 반복 제작이 가능한 안정적인 제작 시스템으로 만드는 작업을 진행함.
초기 파이프라인은 시나리오 생성, 이미지 생성, 영상 생성, 음성 생성, 자막 처리, 최종 렌더까지 자동화되어 있었지만, 실제 운영 과정에서 다음과 같은 문제가 반복적으로 발생했음.

  • 나레이션과 캐릭터 대사가 한 씬에 섞일 때 영상 흐름이 무너짐

  • 씬 수, 길이, 템플릿, 규칙 파일이 서로 맞지 않아 설정 충돌이 발생함

  • 캐릭터와 배경의 일관성이 씬마다 무너짐

  • 영상 길이와 자막 타이밍이 어긋나도 뒤늦게 발견되는 경우가 많았음

  • 입모양과 음성이 맞지 않아 캐릭터 발화 장면이 어색해졌음

이번 작업의 목표는 이 문제들을 개별 버그로 처리하는 것이 아니라, 파이프라인 구조 자체를 정리하고, 품질 기준과 제작 규칙을 다시 세우는 것이었음.

활용한 툴 ⚒️

  • Codex: 프로젝트 분석, 구조 재설계, 코드 수정, 설정 및 지침 정리, 디버깅

  • Gemini Image API: 캐릭터 및 배경 이미지 생성

  • fal.ai 영상 생성 모델: 일반 장면용 영상 생성

  • Typecast 한국어 TTS: 나레이션 및 캐릭터 음성 생성

  • HeyGen Avatar 4: 오디오 기반 talking-shot 테스트

  • Whisper/Scribe 계열 STT: 자막 타이밍 추출

  • ffmpeg: scene 조립, 길이 검증, 오디오/영상 처리

  • Remotion: 최종 자막, 훅, BGM, 렌더링

진행 세부 내용 🔍

1️⃣ 프로젝트 전체 구조부터 분석 — “이 시스템이 정확히 어떻게 돌아가는지 먼저 파악”
리포지토리 전체를 분석해, 이 프로젝트가 단순 영상 편집 스크립트가 아니라 AI 숏폼 영상 자동 제작 파이프라인이라는 점을 먼저 정리함.
시나리오 작성, 프롬프트 생성, 이미지/영상/TTS 제작, 자막 조립, 최종 렌더가 분리된 구조였지만, 실제로는 과거 규칙과 새 규칙이 섞여 있어 유지보수가 어려운 상태였음.

2️⃣ 반복 오류의 구조적 원인 진단 — “왜 계속 같은 문제가 나는지 파헤침”
사용자가 겪던 반복 문제를 코드와 설정 단위에서 추적함.

  • 한 씬 안에 나레이션과 캐릭터 대사가 함께 들어가면 영상 생성 모델이 발화 타이밍을 제대로 해석하지 못함

  • 씬 수와 씬 길이, 목표 러닝타임 같은 핵심 설정이 여러 파일에 흩어져 있어 일부만 바뀌는 문제가 발생함

  • 캐릭터 레퍼런스 정책이 느슨해, 이전 생성 결과물이 다시 레퍼런스로 쓰이면서 외형 드리프트가 누적될 위험이 있었음

  • preview와 final 영상의 길이가 실제 기대 길이와 달라도 자동으로 잡히지 않는 경우가 있었음

이 분석을 바탕으로, “예외를 계속 덧붙이는 방식”보다 제작 계약 자체를 단순화하는 방향으로 재설계를 시작함.

3️⃣ clean-slate 구조 재정비 — “처음부터 이렇게 만들어야 한다”는 기준으로 재설계
기존 결과물을 최대한 보존하는 방향이 아니라, 앞으로의 제작 기준을 분명하게 만드는 쪽으로 파이프라인을 다시 정리함.

  • 한 씬 = 한 spoken turn 규칙 도입

  • 나레이션과 캐릭터 대사를 한 씬에 섞지 않도록 구조 단순화

  • speech_text 중심으로 필드 통일

  • config.yaml을 단일 진실원본으로 고정

  • 테스트 결과물과 정식 결과물 경로 분리

  • 구형 템플릿, 중복 함수, 레거시 렌더 경로 정리

이 작업을 통해 “지금 당장은 돌아가지만 다음 에피소드에서 다시 망가지는 구조”를 줄이고, 앞으로도 같은 기준으로 반복 생산이 가능한 상태를 목표로 함.

4️⃣ 길이와 렌더 검증 강화 — “만들어졌다고 끝이 아니라, 맞게 만들어졌는지 확인”
파이프라인을 실제로 돌려보며 preview와 final 영상을 검수하는 과정에서, final이 전체 씬이 아니라 일부 씬만 잘려 렌더되는 문제를 발견함.
원인은 최종 렌더 엔진 쪽 composition 길이가 고정값으로 남아 있었던 것이었고, 이를 수정하면서 다음과 같은 검증 장치를 함께 넣음.

  • preview 길이와 final 길이 자동 비교

  • 잘린 final을 성공으로 처리하지 않도록 실패 처리

  • 임시 파일로 렌더 후 검증 통과 시에만 final 승격

  • preflight, doctor 같은 점검 스크립트 추가

이를 통해 “겉보기엔 파일이 만들어졌지만 실제론 잘못된 결과물”이 조용히 남는 문제를 크게 줄였음.

5️⃣ 이미지와 배경 일관성 강화 — “장소와 캐릭터가 씬마다 다른 세상처럼 보이지 않게”
이미지 생성은 Gemini 기반으로 정리하고, 장소별로 location_id + location_state_id를 두는 구조를 도입함.
이를 통해 같은 장소라도 무작정 프롬프트로 재생성하는 대신, 장소별 상태(state)와 배경 레퍼런스를 기준으로 프롬프트를 확장하게 함.

예를 들어 실재 장소는 단순히 “바닷가 전망대”처럼 쓰지 않고,

  • 어떤 장소인지

  • 어떤 구도인지

  • 어떤 배경 ref를 써야 하는지
    를 구조적으로 지정해 일관성을 높이는 방향을 택함.

6️⃣ 캐릭터 일관성 규칙 강화 — “같은 캐릭터는 끝까지 같은 캐릭터여야 한다”
캐릭터 외형이 씬마다 흔들리는 문제를 줄이기 위해, 캐릭터 정책도 다시 세움.

  • 모든 에피소드에는 주인공 캐릭터 2명이 반드시 등장

  • 추가 인물이나 동물은 에피소드당 최대 1명만 허용

  • 추가 인물도 사전에 캐릭터 파일과 레퍼런스 파일이 등록된 canonical 캐릭터만 사용

  • 캐릭터의 진실원본 레퍼런스는 contents/refs 폴더의 원본만 사용

  • 생성된 이미지, 이전 에피소드 결과물, 테스트 결과물을 새 레퍼런스로 승격하지 않음

이 규칙을 문서에만 적어둔 것이 아니라, 시나리오 작성기, 프롬프트 생성기, 검증 로직까지 함께 반영해 놓치기 어렵도록 정비함.

7️⃣ talking-shot 테스트 — “입모양까지 맞는 영상을 만들 수 있는지 별도 검증”
캐릭터가 직접 말하는 장면의 완성도를 높이기 위해, 오디오 기반 talking-avatar 모델도 테스트함.
짧은 대사 2개를 기준으로 별도 talking-shot 테스트를 제작해본 결과:

  • 장점: 음성이 실제로 영상에 자연스럽게 입혀지고, 발화형 장면 제작 자체는 가능했음

  • 문제 1: 캐릭터 외형이 canonical 레퍼런스와 조금씩 달라짐

  • 문제 2: 거의 정면을 바라보고 말하는 avatar형 구도로 수렴하는 경향이 있었음

즉 talking-avatar 모델은 분명 장점이 있었지만, 상용 수준의 캐릭터 일관성과 장면 다양성을 바로 보장하는 해결책은 아니었다는 점을 확인함.

8️⃣ 시나리오 기준 자체를 재정의 — “예쁜 문장보다 장소와 감정의 무게를 먼저 살리기”
실제 1편을 다시 구성해 보며, 단순히 감성적인 문장을 나열하는 것만으로는 부족하다는 점도 확인함.
특히 실재 장소를 다루는 경우에는

  • 그 장소가 가진 역사적 의미

  • 그 공간에서 반드시 느껴져야 하는 감정

  • 어떤 인물이 등장해야 자연스러운지

  • 마지막에 무엇이 남아야 하는지
    가 시나리오 설계에 강하게 반영되어야 한다는 점을 정리함.

이후에는 시나리오를 “6개의 대사”가 아니라 30초 안의 감정 흐름으로 보도록 기준을 바꾸었고,

  • hook

  • 인지

  • 감정 변화

  • 깊어짐

  • 정점

  • 여운
    의 흐름으로 설계하도록 정리함.

시행착오 ⚠️

  • mixed scene 구조는 영상 생성 모델과 계속 충돌을 일으켰음

  • 설정이 여러 파일에 흩어져 있어 일부만 바뀌는 문제가 자주 발생했음

  • final 영상이 잘렸는데도 처음에는 눈으로 보기 전까지 발견하기 어려웠음

  • talking-avatar 모델은 입모양 싱크는 좋았지만, 캐릭터 외형과 샷 다양성에서 새로운 문제를 만들었음

  • 장소와 감정을 다루는 시나리오는 단순한 “짧고 감성적인 문장”만으로는 깊이가 부족해졌음

배운 점 📚

  • AI 영상 자동화에서 가장 중요한 것은 개별 버그 해결보다 일관된 제작 계약

  • 한 씬에 한 발화만 두는 단순한 구조가 결과적으로 더 안정적임

  • 캐릭터 일관성은 프롬프트 수식보다 canonical ref 정책이 더 중요함

  • preview와 final은 반드시 자동 검증해야 하며, 길이 불일치는 조기에 잡아야 함

  • talking-avatar 모델은 “립싱크”에는 도움이 되지만, stylized 캐릭터를 상용 수준으로 유지하는 데는 여전히 한계가 있음

  • 상용 완성도를 높이려면, 캐릭터가 항상 말하는 모습을 보여주기보다 무성 영상 + 좋은 TTS + 좋은 편집 마감 전략이 더 유리할 수 있음

  • 시나리오는 단순한 설명이나 예쁜 문장보다, 장소의 고유한 무게와 감정의 흐름을 먼저 살려야 함

향후 계획 🧭

  • 무성 영상 + TTS 구조를 유지하면서, 발화 시작 시점을 자동으로 보정하는 speech-aligner 개념을 구체화할 예정

  • Remotion 후반 연출을 더 강화해 자막, 훅, ending 여운까지 상용 영상처럼 정리할 예정

  • 캐릭터용 canonical talking plate 또는 더 통제된 발화 시스템을 별도로 검토할 예정

  • 실재 장소는 장소 자체의 역사성과 감정이 시나리오에 자연스럽게 녹아들도록 location 설계를 더 강화할 예정

  • 다음 에피소드부터는 30초/6씬 구조 안에서 각 씬과 대사의 정서적 밀도를 더 높이는 방향으로 제작을 이어갈 계획임

3
2개의 답글

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요