"과연 AI가 어디까지 스스로 해낼 수 있을까?"
이 단순한 궁금증 하나로 시작한 프로젝트다. 이름하여 'Shorts Factory'. 이번 작업은 단순히 코드를 좀 짜는 걸 넘어, 내 개발 파트너인 Antigravity와 함께 시스템의 한계를 끝까지 밀어붙여 본 일종의 하드코어 테스트였다.
사실 뻔한 자동화 툴(n8n, Make, 오팔 같은 거) 써서 구축할 수도 있었겠지만, 이번 실험의 진짜 목적은 "AI 에이전트가 로컬 인프라와 복잡한 툴(FFmpeg, Python)을 얼마나 쫀득하게 제어하고 통합할 수 있는가"를 확인하는 데 있었다.
공장의 설계: "무인 쇼츠 생산 라인"
목표는 심플했다. "주제 하나만 던지면 대본, 음성, 이미지, 자막, 최종 렌더링까지 단 1초의 개입 없이 끝나는 시스템"을 만드는 거다.
단순하게 코드 몇 줄 받아 적는 수준이 아니라, 프로젝트 아키텍처부터 같이 짜고 에러 터지면 실시간으로 머리 맞대며 트러블슈팅했다. 운영 가이드까지 Antigravity가 스스로 업데이트하게 만들었으니, 말 그대로 '공장장' 노릇을 톡톡히 한 셈이다.
8단계 생산 파이프라인
공장은 총 8단계의 정밀 공정을 거친다. 모든 컨트롤은 main.py 파일 하나로 끝낸다.
- 데이터 수집: 주제 던지면 팩트 체크하고 쇼츠 호흡에 맞춰 정리한다.
- 인벤토리 빌드: 폴더 구조 싹 잡고
inventory.json에 상태 박아넣는다. - AI 대본 작성: TTS가 읽기 좋게 '20자 이내 줄바꿈', '특수문자 금지' 같은 빡빡한 룰을 적용한다.
- 오디오 연성 (Edge-TTS): AI 티 안 나는 음성 뽑아내고, 속도감 있게 +35% 배속 친다.
- 그리드 비주얼 생성: 화풍 유지랑 비용 절감하려고 한 번에 6장 뽑는 3x2 그리드 방식을 쓴다.
- 이미지 슬라이싱: 갓 구워낸 그리드 이미지를 파이썬이 칼같이 9:16 비율로 6등분한다.
- 다이나믹 줌 (FFmpeg Zoompan): 멍청하게 멈춰있는 이미지에 FFmpeg 형님 손길을 거쳐 생동감을 불어넣는다.
- 최종 렌더링: 영상, 음성, 자막 다 때려 넣고 1080x1920 FHD 영상으로 출력한다.
실제 제작 사례: "2025년 한국인이 가장 많이 방문한 도시 - 도쿄"
최종 아웃풋이 나오기 전까지의 과정을 정리하면 아래와 같다.
핵심 기반: AI 대본 작성 (AI Scripting)
모든 영상의 뼈대는 결국 '글'이다. 주제를 정하면 Antigravity가 쇼츠 전용 대본을 먼저 뽑아낸다. TTS가 읽었을 때 어색하지 않도록 쉼표 하나까지 신경 써서 줄바꿈 룰을 적용하는 게 핵심이다. 이 대본이 확정되어야 그에 맞는 이미지 프롬프트와 오디오 길이가 결정된다.
비주얼 시스템 (Visual Assets)
대본의 분위기에 맞춰 일관성 있게 3x2 그리드 이미지 한 장을 통으로 뽑는다.
쇼츠 팩토리 그리드 이미지
원본: 3x2 그리드 이미지 (1:1)
이걸 시스템이 받자마자 아래처럼 6개의 낱개 장면으로 쪼개버린다.






그리드에서 6장으로 칼같이 슬라이싱된 개별 장면들 (9:16)
오디오 및 자막 (Audio & Subtitles)
만들어진 대본을 이용해 Edge-TTS로 음성을 생성하고 자막을 생성한다.
- 자막(SRT) 데이터:
전체 자막 보기 (클릭)
SRT1 00:00:00,100 --> 00:00:03,457 2025년 한국인에게 가장 사랑받은 외국 도시! 2 00:00:03,407 --> 00:00:06,351 그 영광의 1위는 바로 일본의 도쿄입니다. 3 00:00:06,351 --> 00:00:09,361 최신 유행이 시작되는 시부야 스카이의 전망부터! 4 00:00:09,361 --> 00:00:12,750 환상적인 지브리 파크까지 볼거리가 정말 풍성한데요. 5 00:00:12,750 --> 00:00:15,898 특히 요즘은 도쿄 도심 내의 힙한 팝업 스토어와! 6 00:00:15,898 --> 00:00:19,259 세련된 카페 투어가 필수 코스로 여겨지고 있습니다. 7 00:00:19,259 --> 00:00:22,296 여기에 세계적인 미슐랭 맛집 탐방까지 더해지면! 8 00:00:22,296 --> 00:00:24,981 그야말로 완벽한 여행이 완성되는 거죠. 9 00:00:24,981 --> 00:00:28,148 여러분은 도쿄에 가면 무엇을 가장 하고 싶으신가요? 10 00:00:28,148 --> 00:00:31,527 2026년 올해 첫 여행지는 어디로 계획 중이세요? 11 00:00:31,527 --> 00:00:33,861 여러분의 계획을 댓글로 들려주세요! 12 00:00:33,861 --> 00:00:36,296 구독과 좋아요는 큰 힘이 됩니다.
최종 결과물
방금 그 재료들로 뽑아낸 따끈따끈한 영상이다. (렌더링 15초 컷)
Antigravity와의 협업 회고
이번 프로젝트에서 Antigravity는 도구가 아니라 '찐 파트너'였다.
- 트러블: FFmpeg
filter_complex꼬여서 자막 깨지고 오디오 싱크 밀릴 때 솔직히 좀 빡셌다. - 해결: Antigravity가 로그 싹 훑더니 폰트 경로 문제 잡아내고, 자동 패딩 스크립트까지 뚝딱 짜주더라.
- 마무리: 작업 끝나면
scripts/clean_01_all.py로 뒷정리까지 깔끔하게 하는 로직도 지가 제안해서 구현했다.
마무리하며
'Shorts Factory'는 단순히 영상 뽑는 기계가 아니라, "AI랑 인간이 팀 먹고 어디까지 갈 수 있나" 가볍게 확인해 본 실험적인 프로젝트다.
이 프로젝트 소스코드는 쿨하게 MIT 라이선스로 열어뒀다.
- GitHub Link: fallboyz/shorts-factory
- License: MIT License
어디까지나 테스트 삼아 만든 실험작이기 때문에, 실제로 활용하고 싶다면 폰트 사이즈부터 다른 디자인 요소들까지 본인 입맛에 맞게 직접 수정해서 써야 한다. 진짜 볼만한 결과물을 뽑아내려면 더 이쁘게 잘 꾸미는 과정이 반드시 필요할 거다. 이걸 실제 영상 제작에 투입할지 말지는 온전히 보는 사람의 선택이겠지만, 이 시스템의 가능성을 확인해본 것만으로도 나에게는 충분히 의미 있는 작업이었다.