Antigravity 입문자의 첫 영상 제작기

하려던 것 📝

* AI를 활용하여 분단의 아픔과 그리움을 주제로 한 에피소드 2(망향대 방문) 숏폼을 제작한 사례.

* 자람이, 힘찬이, 신 할아버지라는 세 캐릭터가 등장하는 감동적인 이야기를 수채화풍 애니메이션으로 구현하고자 함.

* 복수의 캐릭터가 등장하는 환경에서 캐릭터의 일관성(성별, 외모)을 유지하고, 나레이션과 자막의 완벽한 씽크를 맞추는 완성도 높은 영상 제작 파이프라인을 검증하고자 함.

활용한 툴 ⚒️

* Anti-Gravity: 영상 제작 자동화 파이프라인의 전체 워크플로우를 조율하고 환경을 세팅하는 데 활용함.

* fal.ai (LTX/Nano-Banana): 고품질 이미지 생성 및 수채화풍 비디오 변환에 활용함.

* Gemini API: 주어진 시나리오를 바탕으로 캐릭터의 외모, 동작, 배경을 묘사하는 프롬프트를 정교하게 엔지니어링하는 데 활용함.

* Typecast API / Whisper: 나레이션 오디오 생성과 정확한 타임스탬프 추출 기능에 활용함.

진행 세부 내용 🔍

1️⃣ 시나리오 구성 및 에셋 생성 준비

* 시도한 방법: '망향대'라는 주제를 바탕으로 6개의 씬으로 구성된 시나리오(`scenario.yaml`)를 작성하고, 캐릭터들의 성별/외형/지칭어를 프롬프트로 번역함.

* 얻은 결과: 자람이('The girl Jaram'), 힘찬이('The boy Himchan') 등 명확한 지칭어 표준화를 통해 이미지 생성의 기본 뼈대를 체계화함.

2️⃣ 캐릭터의 일관성 유지 로직 개선

* 시도한 방법: 씬 5 등에서 자람이가 남자아이로 그려지거나 땋은 머리로 변하는 오류를 잡기 위해 appearance 필드를 정상 로딩하도록 코드 구조를 수정하고, 지칭어를 강제화함.

* 발생한 문제: 모든 이전 씬을 레퍼런스로 추가할 경우, 누적된 노이즈로 인해 AI가 원본 디자인을 무시하는 현상이 발생함.

* 해결 방법: 레퍼런스 체이닝을 '직전 씬 결과물 1개'로 제한하여 노이즈를 제거함.

* 얻은 결과: 자람이의 단발머리 정체성을 복구하고, 일관성 있는 2D 수채화풍 캐릭터를 유지하는 노하우를 확보함.

3️⃣ 지능형 오디오/자막 싱크 구현

* 시도한 방법: 대사와 자막의 싱크를 맞추기 위해 Whisper의 start/end 타임스탬프 데이터를 절대 기준으로 삼는 로직을 도입함.

* 발생한 문제: 기존 로직에서는 나레이션 길이를 단순 단어 개수 비율로 쪼개 배분하여 4초짜리 음성이 2초로 압축되는 등 소리와 자막이 따로 노는 결함이 있었음.

* 해결 방법: Whisper 타임스탬프로 분절 기준을 전면 개정하고, 비디오가 끝난 뒤에도 음성이 재생될 수 있도록 마지막 프레임을 정지 화면으로 연장(`tpad` 필터)하는 에디팅 로직을 추가함.

* 얻은 결과: 화자 정보 보호 로직('신 할아버지:')과 완벽한 싱크가 결합된 고품질 자막 렌더링에 성공함.

시행착오 ⚠️

* 시각적 노이즈 누적 제어의 어려움: 레퍼런스 이미지를 너무 많이 참조하면 오히려 원본 캐릭터의 외형이 붕괴된다는 사실을 파악함.

* 오디오-비디오 길이 불일치: 생성된 비디오 길이(예: 6초)보다 나레이션 오디오 길이(예: 8초)가 길 때 영상이 먼저 끝나버리거나 자막이 겹치는 치명적인 오류를 겪었으며, 영상 편집 자동화에서 오디오 타임스탬프 기반 듀레이션 계산의 중요성을 절감함.

## 배운 점 📚

* 데이터 기반의 싱크 관리: 음성-자막 싱크 문제를 해결하기 위해서는 텍스트 개수 기반의 추정이 아닌, Whisper와 같은 데이터 기반 타임스탬프 스크라이브 정보가 절대적인 기준이 되어야 함을 깨달음.

* 선택적 레퍼런스 활용 원칙: 캐릭터 일관성을 위해 "무조건 많은 레퍼런스"를 제공하는 것이 정답이 아니며, 가장 깨끗한 '직전 씬 1개'를 물고 들어가는 체이닝 기법이 AI의 혼동을 막는 데 훨씬 효과적임을 배움.

향후 계획 🧭

* 에피소드 2에 적용된 지능형 싱크 복구 로직과 화자 보호 로직을 agents/ 파이프라인의 전역 기본값으로 영구 편입시킬 예정임.

* 복수의 캐릭터가 등장하는 씬에서 각 캐릭터의 위치나 상호작용을 더 정교하게 제한하는 공간 프롬프트 작성 기법을 고도화할 계획임.

도움이 필요한 점 🤝

1️⃣ 여러 명의 캐릭터가 동시에 등장할 때의 섞임 제어

* 현재 상황: 하나의 씬에 3명(자람, 힘찬, 할아버지)이 등장할 때, 인물들의 특징(옷 색깔, 머리스타일 등)이 서로 섞이는 블리딩(Bleeding) 현상이 간헐적으로 발생함.

* 필요한 도움: fal.ai에서 다중 캐릭터를 한 프레임에 생성할 때, 각 피사체의 영역을 완벽하게 분리하거나 특징이 섞이는 것을 획기적으로 방지할 수 있는 파라미터나 Masking 팁에 대한 조언을 구함.

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요