본문 바로가기

ElevenLabs, Gemini, VEO 2로 텍스트를 광고 영상으로 만드는 생성기 개발기

간단한 프롬프트만으로 완성된 영상 광고를 만들어주는 AI 기반 툴을 어떻게 만들었는지 소개합니다.

Marketing video gen

저는 20년 넘게 저널리즘부터 제품 영상까지 다양한 콘텐츠를 만들어왔습니다. AI 덕분에 완전히 새로운 창작 워크플로우가 가능해졌죠. 분위기 코딩과 점점 더 사실적인 영상 생성 기술이 만나는 지점에서, 간단한 프롬프트만 입력하면 20초짜리 광고 영상을 만들어주는 툴을 만들 수 있을지 궁금해졌습니다.

컨셉은 단순했습니다. 대략적인 제품 아이디어만 입력하면, AI가 시각 자료, 보이스오버, 음향 효과까지 모두 포함된 30초짜리 완성 광고 영상을 만들어주는 것이었죠. 이걸 어떻게 만들었는지 소개합니다. 사용한 기술은 ElevenLabs 텍스트 음성 변환(TTS) 및 SFX API, 구글의 Gemini, 그리고 구글의 VEO 2 영상 생성입니다. 이 프로젝트를 만들 당시에는 VEO 3가 아직 출시되지 않았습니다.

최종 버전은 거의 대부분 Anthropic의 뛰어난 Claude 4 Opus로 제작했습니다. 다만, 사용량 제한에 자주 걸려 며칠에 걸쳐 작업해야 했습니다.

기술 스택 선택: Node.js, Express, React, Claude 4 Opus

A commercial for "finding places to eat lunch in a park"

백엔드는 Node.js와 Express, 프론트엔드는 React를 선택했습니다. Node는 영상 생성 시 실시간 업데이트를 처리하고, React의 컴포넌트 기반 구조 덕분에 여러 단계로 이루어진 인터페이스를 쉽게 관리하고 확장할 수 있었습니다.

어릴 때부터 간간이 코딩을 해왔지만, 저는 항상 전업 엔지니어보다는 제품 기획자에 가까웠습니다. Claude 4 Opus 같은 도구 덕분에 상황이 달라졌죠. 적절한 프롬프트만 있으면 빠르게 기능을 구현하고, 반복적인 코드 대신 제품 논리에 집중할 수 있었습니다.

이건 AI에게 창의성을 맡기는 게 아니라, 더 똑똑하게 만드는 방법을 찾는 과정입니다.

8단계 마법사: 프롬프트부터 완성 광고까지

Eight step wizard

신제품이나 서비스 광고를 20초로 만든다고 해도, 실제로는 여러 복잡한 단계를 거쳐야 합니다. 그래서 전체 과정을 8단계로 나눴습니다:

  1. 제품 정보 입력
  2. 스크립트 생성
  3. 영상 생성
  4. 음향 효과
  5. 영상 조합
  6. 보이스오버
  7. 최종 영상
  8. 소셜 미디어 게시물

각 단계는 이전 결과를 바탕으로 진행되어, 간단한 아이디어가 완성된 광고로 변환됩니다. 모든 단계에서 사용자가 원하는 부분을 직접 수정하거나, 텍스트·영상·오디오를 다시 생성할 수 있습니다.

A commercial for "Epoch" matching

Gemini Flash로 아이디어 구체화하기

첫 번째 난관은 대부분의 사람들이 처음부터 구체적인 제품 아이디어를 갖고 시작하지 않는다는 점이었습니다. 예를 들어 "생산성에 좋은 무언가"처럼 모호하게 입력하는 경우가 많죠. 이럴 때 Gemini가 필요합니다.

구글의 Gemini 2.0 Flash 모델을 활용해 대략적인 아이디어를 구체적인 제품 컨셉으로 발전시켰습니다. 여기서 프롬프트 설계가 매우 중요했습니다. Gemini가 모호하거나 평범하지 않고, 구체적으로 답변하도록 유도해야 했죠. 예를 들어 "피트니스 관련 무언가" 대신, "FitPulse AI: 고급 바이오메트릭스를 활용해 하루 종일 맞춤형 마이크로 운동을 제안하는 스마트 손목밴드"처럼 구체적으로 바꿔줍니다.

"""Enhance a product idea using Gemini"""
        
        prompt = f"""
        Enhance this product idea to make it more compelling:
        
        Original idea: {idea}
        Target mood: {mood}
        Target audience: {audience}
        
        Make it:
        1. Clear and specific about the value proposition
        2. Appeal to {audience}
        3. Match the {mood.lower()} tone
        4. Be memorable and marketable
        
        Keep it to 2-3 sentences.
        """

Gemini로 개성 있는 스크립트 만들기

다음은 스크립트 생성 단계입니다. 역시 Gemini를 활용해, 5초씩 4개의 장면으로 구성하고 각 장면마다 세 가지 요소를 포함시켰습니다:

  • 보이스오버 스크립트
  • 영상 생성 프롬프트
  • 음향 효과 설명

중요한 건 Gemini가 광고의 분위기와 타깃을 이해하도록 만드는 것이었습니다. 예를 들어, 밀레니얼 세대를 위한 "엉뚱한" 광고와 기업 고객을 위한 "프로페셔널" 광고는 언어부터 달라야 하니까요.

AI 특유의 뻔한 문구를 피하고, 제품마다 맞춤형 스크립트가 나오도록 프롬프트를 다듬는 데 많은 시간을 쏟았습니다.

     """Generate a 4-scene commercial script"""
        
        prompt = f"""
        Create a 30-second commercial script with exactly 4 scenes.
        
        Product: {product_name}
        Audience: {target_audience}
        Key Message: {key_message}
        Mood: {mood}
        
        Return a JSON array with 4 scenes, each with:
        - number: 1-4
        - duration: 5
        - script: What the voiceover says
        - videoPrompt: Visual description for video generation
        - sfxPrompt: Sound effects description
        
        Example format:
        [{{"number": 1, "duration": 5, "script": "...", "videoPrompt": "...", "sfxPrompt": "..."}}]
        """

VEO 2로 5초 장면 만들기

구글 VEO 2 모델은 FAL.ai의 호스팅 API를 사용했습니다. 각 장면의 영상 프롬프트를 FAL.ai에 보내면, 5초짜리 영상 클립이 반환됩니다. 이 부분이 특히 까다로웠는데, 생성 시간이 길고 API 제한도 관리해야 했으며, 기다리는 동안 사용자에게 피드백도 제공해야 했습니다.

원래는 Google AI Studio나 Vertex AI에서 Veo 2 API를 사용하려 했습니다. 이렇게 하면 Gemini와 같은 API 키를 쓸 수 있었지만, 제 계정에서는 Veo 2가 제대로 동작하지 않았습니다.

생성된 영상을 로컬에 저장하는 상태 관리 시스템도 구현했습니다. 사용자가 페이지를 벗났다 돌아와도 비싼 영상을 다시 생성할 필요가 없도록 한 것이죠. Claude의 사용량 제한에 자주 걸릴 때, 페이지 새로고침 때문에 영상을 잃는 일만큼 아쉬운 것도 없습니다.

20초짜리 영상 콘텐츠를 한 번 생성하는 데(재생성이나 재편집 없이) 약 $10 정도가 들었습니다.

ElevenLabs로 음향 효과와 보이스오버 만들기

여기서 ElevenLabs의 API를 창의적으로 활용했습니다. ElevenLabs는 주로 음성 생성으로 잘 알려져 있지만, 음향 효과 API도 매우 뛰어납니다. 놀라운 활용 예시는 사운드보드에서 확인할 수 있습니다.

각 장면마다 음향 효과 4가지 버전(경쾌, 에너지틱, 차분, 드라마틱)으로 생성했습니다. 사용자는 각 옵션을 미리 들어보고 원하는 분위기를 선택할 수 있습니다.

const response = await elevenLabs.soundGeneration({
  text: modifiedPrompt,
  duration_seconds: duration,
  prompt_influence: 0.3
});

FFmpeg로 최종 영상 조합하기

4개의 영상 클립과 4개의 음향 효과 트랙을 합쳐야 했습니다. 그래서 영상 처리의 만능툴 FFmpeg를 깊이 파고들었습니다. 백엔드에서 FFmpeg 명령어를 실행해 다음 작업을 처리합니다:

  1. 각 영상 클립에 음향 효과 믹싱
  2. 모든 클립을 하나의 영상으로 합치기
  3. 최종 영상에 보이스오버 트랙 추가

FFmpeg 명령어를 제대로 세팅하는 데 디버깅이 꽤 필요했습니다. 특히 오디오 믹싱은 볼륨과 타이밍을 세심하게 조정해야 했죠. 보이스오버와 섞을 때 배경 오디오는 볼륨을 약 30%로 낮추는 게 적당하다는 것도 배웠습니다. 더 크면 보이스오버와 경쟁하고, 더 작으면 아예 안 들리니까요.

보이스오버: ElevenLabs의 진가

보이스오버는 ElevenLabs의 텍스트 음성 변환(TTS) API를 연동해 다양한 목소리를 선택할 수 있도록 했습니다. 모든 장면의 스크립트를 하나로 합쳐 일관된 보이스오버 스크립트를 만들고, 최적화된 음성 설정과 함께 ElevenLabs에 전송합니다:

const voiceSettings = {
  stability: 0.75,
  similarity_boost: 0.75,
  style: 0.0,
  use_speaker_boost: true
};

이 설정으로 광고에 잘 어울리는 또렷하고 전문적인 내레이션을 제공합니다. 여러 설정을 실험해본 결과, 이 조합이 자연스러우면서도 일관성 있게 들렸습니다.

견고한 오류 처리와 사용자 경험

여러 AI API를 조합하다 보면 다양한 오류 상황을 마주하게 됩니다. 사용량 제한, 타임아웃, 잘못된 응답 등 예상치 못한 일이 자주 발생하죠. 특히 새벽 2시에 디버깅하다가 VEO 2가 엉뚱한 결과를 반환할 때는 더 그렇습니다.

그래서 다양한 예외 상황에 대비한 오류 처리와 대체 옵션을 구현했습니다:

  • Gemini가 실패하면, 시스템이 똑똑한 대체 스크립트를 제공합니다
  • 영상 생성이 실패하면, 플레이스홀더 영상을 제공합니다
  • 음향 생성이 실패하면, 기본 오디오 트랙을 사용합니다

목표는 일부 AI 서비스에 문제가 생겨도 사용자가 광고 제작을 끝까지 마칠 수 있도록 하는 것이었습니다.

성능 최적화 고민

A commercial for "Globetrotter Grocer"

광고를 생성하려면 여러 AI API를 호출해야 하고, 이 과정에 몇 분이 걸릴 수 있습니다. 경험을 개선하기 위해 다음과 같은 방법을 적용했습니다:

  • 가능한 영상은 병렬로 처리
  • 실시간 진행 상황 표시
  • 비싼 생성 결과는 로컬에 저장
  • 각 요소별로 개별 재생성 허용

상태 저장 시스템도 구현했습니다. 생성 도중 브라우저를 닫아도, 다시 접속하면 이어서 작업할 수 있습니다. 원래 계획에는 없었지만, 테스트 중에 직접 진행 상황을 잃어버린 경험 덕분에 꼭 필요한 기능이 됐습니다.

핵심 교훈과 앞으로의 방향

이 툴을 만들면서 세 가지 중요한 교훈을 얻었습니다.

첫째, 프롬프트 설계가 핵심입니다. 어떤 AI 모델이든 입력을 어떻게 구성하느냐에 따라 결과물이 크게 달라집니다. 프롬프트를 다듬는 데 코드 작성만큼 많은 시간을 썼습니다.

둘째, 사용자 경험이 기술적 복잡성보다 중요합니다. 사용자는 얼마나 많은 AI 서비스가 쓰였는지 신경 쓰지 않습니다. 툴이 잘 작동하는지, 진행 상황을 보여주는지, 오류가 나도 빠르게 피드백을 주는지가 더 중요하죠.

셋째, Claude 같은 AI 어시스턴트가 개발 속도를 크게 높여줍니다. 반복적인 코드와 문법은 모델에 맡기고, 제품 논리에 집중할 수 있었습니다. 단계를 건너뛰는 게 아니라, 더 똑똑하게 만드는 방법입니다.

주말 프로젝트로 시작한 것이 실제로 확장 가능한 툴로 발전했습니다. 마케팅팀은 프로토타입 제작에, 스타트업은 피치 영상에, 크리에이터는 협찬 콘텐츠 제작에 활용할 수 있습니다.

이 시스템은 처음부터 유연하게 설계됐습니다. VEO 2 프롬프트만 바꿔도 영상 스타일을 바꿀 수 있고, 장면 길이도 포맷에 맞게 조정할 수 있으며, FFmpeg로 음악도 추가할 수 있습니다.

진짜 기회는 여러 AI 시스템을 조합하는 데 있습니다. 단일 모델만으로는 완성된 광고를 만들 수 없지만, Gemini, VEO 2, ElevenLabs를 함께 쓰면 각각보다 훨씬 강력한 결과를 얻을 수 있습니다.

이건 AI가 창작자를 대체하는 게 아닙니다. 창작자에게 더 좋은 도구를 제공하는 일입니다. 20년간 콘텐츠 업계에서 많은 변화를 봤지만, 이번 변화는 근본적으로 다르게 느껴집니다.

ElevenLabs 기술로 콘텐츠와 미디어에 새로운 접근 방식을 도입하고 싶다면 영업팀에 문의해 주세요.

ElevenLabs 팀의 다른 글 보기

최고 품질의 AI 오디오로 창작하세요