본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 24. 18:04

한 줄의 텍스트를 5분짜리 단편 드라마로 바꾸는 AI 스튜디오를 만들었습니다

요약

사용자의 한 줄 프롬프트를 기반으로 시나리오 작성, 스토리보드 생성, 음성 더빙, 비디오 합성을 수행하는 엔드 투 엔드 AI 파이프라인 'Shortify AI'를 소개합니다. LLM과 이미지 생성 모델을 결합하여 기존 수주가 걸리던 숏폼 드라마 제작 과정을 5분 내외로 단축하는 아키텍처를 다룹니다.

핵심 포인트

  • Shortify AI: 시나리오부터 1080p 비디오까지 자동 생성하는 오픈 소스 플랫폼
  • LLM을 활용한 대화 중심의 구조화된 시나리오 생성 파이프라인 구축
  • 이미지 생성 모델 체인을 통한 비용 효율적이고 일관된 스토리보드 제작
  • 기존 제작 공정(1~2주)을 1인 기준 5분으로 혁신적 단축

한 줄의 텍스트를 5분짜리 단편 드라마로 바꾸는 AI 스튜디오를 만들었습니다

아이디어에서 1080p 비디오까지 — AI 시나리오 작성 (Scriptwriting), 스토리보드 (Storyboarding), 다중 음성 더빙 (Multi-voice dubbing), 그리고 비디오 합성 (Video compositing)을 하나의 파이프라인 (Pipeline)으로.

저는 지난 한 달 동안 "고대 중국에서 온 시간 여행 메이드가 현대의 사무실에 도착한다"와 같은 창의적인 프롬프트 (Prompt)를 입력하면 시나리오, 일러스트 스토리보드, 다중 캐릭터 보이스오버 (Voiceover), 그리고 완성된 1080p 비디오까지 — 하나의 완전한 단편 드라마 에피소드를 출력하는 오픈 소스 플랫폼인 Shortify AI를 구축하는 데 시간을 보냈습니다.

이것이 내부적으로 어떻게 작동하는지, 제가 내린 아키텍처 (Architecture) 결정, 그리고 이를 하나로 묶는 전체 파이프라인에 대해 설명하겠습니다.

문제점 (The Problem)

중국의 숏폼 드라마 시장은 2025년에 700억 달러 규모에 달했습니다. 이는 세로형의 빠른 전개를 가진 1~5분 길이의 에피소드로, 기본적으로 TikTok과 TV 시리즈가 결합된 형태입니다. 제작 파이프라인은 다음과 같습니다:

  1. 시나리오 (Script) → 인간 작가 (며칠 소요)
  2. 스토리보드 (Storyboard) → 일러스트레이터 + 감독 (며칠 소요)
  3. 보이스오버 (Voiceover) → 녹음 스튜디오 + 성우 (며칠 소요)
  4. 비디오 (Video) → 편집자 + 효과 (며칠 소요)

총합: 510명, 에피소드당 12주 소요.

저는 이것을 1명, 5분으로 압축하고 싶었습니다.

아키텍처 (The Architecture)

다음은 엔드 투 엔드 (End-to-end) 파이프라인입니다:

사용자 입력 ("穿越到现代的女将军")
       │
       ▼
...

각 단계는 독립적으로 실행되며 교체될 수 있습니다 — 이에 대해서는 아래에서 더 자세히 다루겠습니다.

1단계: AI 시나리오 작성 (AI Scriptwriting)

LLM (Large Language Model)은 시나리오 작성 보조 역할을 합니다. 창의적인 프롬프트가 주어지면 다음과 같은 구조화된 시나리오를 생성합니다:

  • 캐릭터 (Characters) (이름, 성별, 목소리 유형, 외형)
  • 장면 (Scenes) (장소, 분위기, 시간대)
  • 샷 (Shots) (캐릭터, 대사, 나레이션, 카메라 연출)

프롬프트 엔지니어링 (Prompt engineering)이 가장 어려운 부분이었습니다. 초기 버전은 평이한 나레이션 스타일의 시나리오를 생성했습니다. 돌파구는 **대화 중심의 포맷팅 (Dialogue-centric formatting)**으로 전환하는 것이었습니다:

// 단순화된 프롬프트 구조
const systemPrompt = `
다음 형식으로 단편 드라마 시나리오를 생성하세요:
...

API: GLM-4-Flash (free tier)를 사용하지만, 모델 리졸버 (model resolver) 레이어를 통해 OpenAI 호환이 가능한 모든 LLM을 사용할 수 있습니다.

2단계: AI 스토리보드 이미지 (AI Storyboard Images)

각 샷(shot)마다 일러스트레이션을 생성합니다. 과제는 이미지 생성 그 자체라기보다 비용 관리와 일관성 유지 (consistency) 였습니다.

모델 체인 (The model chain):

Wan2.7-image (DashScope, 이미지당 ~$0.03)  → 2K 해상도, 동기식 (synchronous)
  └── 폴백 (fallback) → Wanx-v1 (구버전, 더 저렴함) → 720p, 비동기 폴링 (async polling)
    └── 폴백 (fallback) → CogView-3-Plus (Zhipu) → 다른 API를 통한 폴백

샷 전반에 걸친 캐릭터 일관성을 위해, 모든 프롬프트에 외형 묘사어 (appearance descriptors)를 주입합니다:

function buildAppearancePrompt(shot, characters): string {
  const shotChars = characters.filter(c => shot.character === c.name);
  const appearanceDesc = shotChars
...

이미지는 보안 접속을 위해 서명된 URL (signed URLs)과 함께 Tencent Cloud COS (프라이빗 버킷)에 업로드됩니다.

3단계: 멀티 보이스 더빙 (Multi-Voice Dubbing)

이 단계는 구축하는 과정이 가장 즐거웠습니다. LLM 스크립트가 각 샷에서 어떤 캐릭터가 말하는지 알려주면, 그에 따라 보이스 ID를 할당합니다:

const voiceMap: Record<string, VoiceConfig> = {
  "male-lead":    { edgeTTS: "zh-CN-YunxiNeural",  iFlytek: "x4_yehaoyun_oral" },
  "female-lead":  { edgeTTS: "zh-CN-XiaoxiaoNeural", iFlytek: "x4_shisan_oral" },
...

장애 처리 (Failure handling): 기본 TTS (iFlytek WebSocket)가 가끔 속도 제한 (rate-limits)에 걸립니다. 이 경우, 파이프라인은 자동으로 Edge-TTS (무료, 로컬 실행)로 폴백합니다. 전체 보이스오버 (voiceover) 단계는 샷당 약 3초가 소요되므로, 12개 샷으로 구성된 에피소드의 전체 더빙에는 약 36초가 걸립니다.

4단계: 비디오 합성 (Video Compositing) — 가장 어려운 부분

이 부분이 엔지니어링 노력의 대부분이 투입된 곳입니다. 합성 파이프라인은 다음과 같습니다:

각 샷에 대해:
  1. AI 비디오 생성 (Wan2.7-t2v / CogVideoX) → 또는 Ken Burns 효과로 폴백
  2. 보이스오버 오디오 믹싱 → 비디오와 동기화
...

Ken Burns 카메라 효과

AI 비디오 생성이 비활성화되거나 실패할 경우, 카메라 움직임이 포함된 정지 이미지로 폴백합니다. FFmpeg의 zoompan 필터를 사용하여 10가지의 서로 다른 효과를 생성합니다:

# 예시: 페이드 효과를 포함한 느린 줌인 (slow zoom-in with fade)
ffmpeg -y -loop 1 -i "image.jpg" -i "audio.mp3" \
  -filter_complex "
...

10가지 카메라 효과: 줌인 (zoom-in), 줌아웃 (zoom-out), 팬-레프트 (pan-left), 팬-라이트 (pan-right), 팬-업 (pan-up), 팬-다운 (pan-down), 줌인-레프트 (zoom-in-left), 줌인-라이트 (zoom-in-right), 줌아웃-레프트 (zoom-out-left), 줌아웃-라이트 (zoom-out-right). 각 샷은 라운드 로빈 (round-robin) 방식으로 하나를 선택하여, 정지 이미지가 역동적으로 느껴지게 합니다.

"절대 검은 화면이 나오지 않는" 폴백 (The "Never Black" Fallback)

AI 비디오 생성은 약 10~15%의 실패율 (API 타임아웃, 속도 제한 (rate limits), 콘텐츠 필터)을 보입니다. 기존 파이프라인 (pipeline)은 생성에 실패한 샷에 대해 단순히 검은 화면을 보여주었습니다. 해결책은 3단계 방어 체계였습니다:

1단계: AI 비디오 생성 → 80% 성공률
2단계: 켄 번즈 (Ken Burns) 줌팬 (zoompan) → 약 15% (대부분의 실패를 포착)
3단계: 정지 이미지 + 텍스트 오버레이 (text overlay) → 100% 신뢰도

2단계가 가장 취약했습니다 — 복잡한 표현식이 포함된 줌팬 필터 체인 (filter chain)은 엣지 케이스 (edge cases, 예: 매우 길거나 짧은 오디오, 자막의 특수 문자)에서 자주 실패했습니다. 3단계는 ffmpeg의 drawtext를 사용하여 어두운 그라데이션 배경 위에 자막을 렌더링하며, 이는 말 그대로 절대 실패하지 않습니다.

전체 파이프라인 스크립트 (The Full Pipeline Script)

우리는 전체 엔드 투 엔드 (end-to-end) 흐름을 단일 CLI 명령어로 추상화했습니다:

npx tsx scripts/full-pipeline.ts

이 명령은 PostgreSQL에서 드라마 메타데이터 (metadata)를 읽어와 모든 에피소드와 샷을 반복하며, 4단계 파이프라인을 실행하고 모든 결과물을 클라우드 스토리지 (cloud storage)에 업로드합니다. 동일한 스크립트가 웹 앱의 백엔드 API (backend API)를 구동합니다.

이전 (4개의 AI 비디오 생성): 에피소드당 약 20분 (샷당 5분 × 4개 샷 + 1080p 인코딩)
이후 (켄 번즈만 사용): 에피소드당 약 2분

배운 점

1. 신뢰성이 품질보다 중요하다.

초기에는 최고의 AI 비디오 모델 (CogVideoX, Kling, Jimeng)을 쫓았습니다. 하지만 이들은 모두 약 10%의 실패율을 가지고 있으며, 단 하나의 샷만 실패해도 에피소드 전체를 망칩니다. 검은 화면이 절대 나오지 않도록 보장하는 **견고한 폴백 체인 (fallback chain)**에 투자하는 것이 품질을 10% 높이는 것보다 더 가치 있었습니다.

2. 모델의 다양성이 중요하다.

단일 AI 제공업체가 모든 것을 커버할 수는 없습니다. 우리는 다음을 사용합니다:

  • Zhipu GLM: 스크립트 생성용 (창의적 글쓰기에 가장 뛰어난 중국어 LLM)
  • DashScope Wan: 이미지/비디오 생성용 (최고의 가성비)
  • iFlytek: TTS (Text-to-Speech)용 (WebSocket, 낮은 지연 시간)
  • Tencent COS: 스토리지용 (중국 내 CDN 엣지 노드)

모델 설정 시스템을 통해 사용자는 모든 단계에서 자신의 API 키를 직접 가져와 사용할 수 있습니다.

3. 비디오 합성 (Video compositing)이 병목 구간입니다.

AI 콘텐츠 생성은 점점 빠르고 저렴해지고 있습니다. 현재의 병목 구간은 ffmpeg입니다. Ken Burns 효과 처리가 포함된 12샷 에피소드의 경우, 인코딩에만 약 3분이 소요됩니다. 만약 AI 비디오 플랫폼을 구축하고 있다면, 합성 파이프라인 (compositing pipeline)에 먼저 투자하세요.

결과

다음은 이 파이프라인을 통해 완전히 생성된 5부작 드라마입니다:

에피소드재생 시간크기샘플
에피소드 126s5.8MB시청하기
...

직접 시도해 보세요

이 프로젝트는 MIT 라이선스 하에 오픈 소스로 공개되어 있습니다:

git clone https://github.com/ycbing/Shortify-AI.git
cd Shortify-AI
npm install
...

또는 전체 파이프라인을 직접 실행할 수 있습니다:

npx tsx scripts/full-pipeline.ts

시작하려면 GLM API 키만 있으면 됩니다. 그 외의 모든 것은 무료 티어를 제공하거나 유연하게 폴백 (fallback)됩니다.

향후 계획

  • 고급 캐릭터 일관성 (Advanced character consistency): 샷 간의 얼굴 일관성을 위한 IP-Adapter / 참조 이미지 주입
  • 후반 작업 편집 UI (Post-prod editing UI): 드래그 앤 드롭 방식의 샷 순서 변경, 수동 이미지 교체
  • 세로 모드 (9:16): TikTok/Reels/Shorts 형식
  • 효과음 라이브러리 (Sound effects library): 자동 주변 소음 생성 (발소리, 빗소리, 문소리)

Next.js 16, FFmpeg, PostgreSQL, 그리고 수많은 API 호출로 구축되었습니다. 이 내용이 흥미로웠다면 GitHub에서 Star를 눌러주세요.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0