ElevenLabs, Gemini, VEO 2로 텍스트를 광고 영상으로 만드는 생성기 개발기
- 게시일
- 최종 업데이트
저널리즘부터 제품 영상까지, 20년 동안 콘텐츠를 제작해 왔습니다. AI는 완전히 새로운 창작 워크플로를 열어 줍니다. 바이브 코딩과 점점 더 사실적으로 발전하는 영상 생성 기술이 만나는 지점에서, 간단한 프롬프트만으로 20초짜리 광고를 만드는 도구를 만들 수 있을지 궁금했습니다.
개념은 간단했습니다. 대략적인 제품 아이디어를 입력하면 AI가 생성한 비주얼, 보이스오버, 음향 효과를 갖춘 완성도 높은 30초 광고를 받는 것입니다. 이를 ElevenLabs TTS 및 SFX API, Google Gemini, 그리고 Google의 VEO 2를 활용해 영상 생성에 적용한 방법을 소개합니다. 제작 당시에는 VEO 3가 아직 출시되지 않았습니다.
최종 버전은 인상적인 Anthropic의 Claude 4 Opus를 사용해 거의 전부 만들었지만, 계속 사용량 제한에 걸려 며칠에 걸쳐 작업했습니다.
기술 스택 선택: Node.js, Express, React, Claude 4 Opus


백엔드에는 Express와 Node.js를, 프런트엔드에는 React를 선택했습니다. Node는 영상 생성 중 실시간 업데이트를 처리하고, React의 컴포넌트 기반 아키텍처는 여러 단계로 구성된 인터페이스를 쉽게 관리하고 확장할 수 있게 해 줍니다.
어릴 때부터 코드를 간간이 작성해 왔습니다. 초등학교 때 로봇 펜으로 시작했죠. 하지만 저는 늘 전업 엔지니어보다는 제품을 고민하는 사람에 가까웠습니다. Claude 4 Opus 같은 도구가 이를 바꿔 놓았습니다. 적절한 프롬프트만 있으면 빠르게 작업하고, 기능을 정확히 구현하며, 보일러플레이트 대신 제품 로직에 집중할 수 있었습니다.
이는 창의성을 AI에 외주 맡기는 일이 아닙니다. 적절한 도구로 더 스마트하게 만드는 일입니다.
8단계 마법사: 프롬프트부터 완성된 광고까지

20초에 불과한 새 제품이나 서비스의 광고를 만드는 데도 여러 복잡한 단계가 필요합니다. 그래서 이를 8개의 뚜렷한 단계로 나누었습니다:
- 제품 정보
- 스크립트 생성
- 영상 제작
- 음향 효과
- 영상 조립
- 보이스오버
- 최종 영상
- 소셜 미디어 게시물
각 단계는 앞선 단계를 기반으로 하며, 단순한 아이디어를 완성된 광고로 바꾸는 파이프라인을 만듭니다. 모든 단계에서 사용자는 어떤 요소든 변경하거나 텍스트, 영상, 오디오의 어느 부분이든 다시 생성할 수 있는 완전한 제어권을 갖습니다.

Gemini Flash로 아이디어 구체화하기
첫 번째 과제는 대부분의 사람이 완성된 제품 아이디어에서 출발하지 않는다는 점이었습니다. 예를 들어 "생산성을 위한 무언가"처럼 모호하게 입력할 수 있습니다. 이때 Gemini가 필요합니다.
Google의 Gemini 2.0 Flash 모델을 사용해 거친 아이디어를 구체적인 제품 콘셉트로 발전시켰습니다. 여기서 프롬프트 엔지니어링은 매우 중요했습니다. Gemini가 모호하고 일반적인 답변이 아닌, 구체적이고 명확한 결과를 내놓아야 했기 때문입니다. 시스템은 "피트니스를 위한 무언가"를 그대로 받아들이는 대신, "FitPulse AI: 고급 생체 인식 기술을 활용해 하루 종일 개인 맞춤형 마이크로 운동을 만들어 주는 스마트 손목밴드"와 같은 아이디어로 바꿉니다.
Gemini로 일반적이지 않은 스크립트 생성하기
다음은 스크립트 생성이었습니다. Gemini를 다시 사용해 출력을 각각 세 가지 요소로 구성된 5초짜리 장면 4개로 구조화했습니다:
- 보이스오버 스크립트
- 영상 생성 프롬프트
- 음향 효과 설명
핵심은 Gemini가 분위기와 타겟 고객을 이해하도록 하는 것이었습니다. 밀레니얼 세대를 위한 "기발한" 광고에는 엔터프라이즈 고객을 위한 "전문적인" 광고와 다른 언어가 필요합니다.
일반적인 AI식 표현을 피하고 각 제품에 맞춰진 듯한 스크립트를 만들기 위해 프롬프트를 다듬는 데 상당한 시간을 들였습니다.
VEO 2로 5초 장면 만들기
Google VEO 2 모델용 FAL.ai 호스팅 API를 사용했습니다. 각 장면의 영상 프롬프트는 FAL.ai로 전송되고, 5초짜리 영상 클립이 반환됩니다. 긴 생성 시간 처리, API 제한 관리, 대기 중인 사용자에게 피드백 제공 등 까다로운 통합 작업 중 하나였습니다.
원래는 Gemini와 동일한 API 키를 사용할 수 있다는 점에서 Veo 2 API에 Google AI Studio나 Vertex AI를 사용할 계획이었지만, 제 계정에서는 Veo 2를 작동시킬 수 없었습니다.
생성한 영상을 로컬에 저장하는 상태 관리 시스템을 구현했습니다. 덕분에 사용자가 다른 곳으로 이동했다가 돌아와도 비용이 많이 드는 콘텐츠를 다시 생성할 필요가 없습니다. Claude 사용량 제한에 걸리고 있을 때, 페이지를 새로고침했다는 이유로 생성한 영상을 잃는 것은 가장 피하고 싶은 일입니다.
재편집이나 재생성이 없다고 가정하면, 20초 클립의 영상 콘텐츠 비용은 약 10달러였습니다.
ElevenLabs로 음향 효과와 보이스오버 만들기

여기서 ElevenLabs API를 창의적으로 활용했습니다. ElevenLabs는 주로 음성 생성으로 알려져 있지만, 매우 인상적인 음향 효과 API도 제공합니다. 활용 사례의 가능성을 보여 주는 놀라운 Soundboard 예시를 확인해 보세요.
이를 사용해 각 장면에 음향 효과 4가지 변형을 생성했습니다. 경쾌한 분위기, 에너지 넘치는 분위기, 차분한 분위기, 극적인 분위기입니다. 사용자는 각 옵션을 미리 듣고 자신의 비전에 맞는 것을 선택할 수 있습니다.
FFmpeg로 최종 영상 조립하기
영상 클립 4개와 음향 효과 트랙 4개를 결합해야 했습니다. 이를 위해 영상 처리의 스위스 아미 나이프인 FFmpeg를 깊이 있게 다뤄야 했습니다. 백엔드에서는 다음을 위해 FFmpeg 명령을 실행합니다:
- 각 영상 클립에 음향 효과 믹싱
- 모든 클립을 하나의 영상으로 연결
- 최종 영상에 보이스오버 트랙 추가
FFmpeg 명령을 제대로 구성하려면 상당한 디버깅이 필요했습니다. 특히 오디오 믹싱에서는 레벨과 타이밍을 세심하게 살펴야 합니다. 배경 오디오는 보이스오버와 믹싱할 때 볼륨을 약 30%로 낮춰야 한다는 점을 배웠습니다. 이보다 높으면 보이스오버와 주의를 경쟁하고, 낮으면 없는 것이나 마찬가지입니다.
보이스오버: ElevenLabs가 진가를 발휘하는 영역
보이스오버를 위해 ElevenLabs의 텍스트 음성 변환 API를 통합해 사용자에게 다양한 음성 선택지를 제공했습니다. 시스템은 모든 장면 스크립트에서 하나의 일관된 보이스오버 스크립트를 생성한 후, 최적화된 음성 설정과 함께 ElevenLabs로 전송합니다:
이 설정은 광고에 잘 어울리는 명확하고 전문적인 내레이션을 제공합니다. 여러 구성을 실험한 끝에, 로봇처럼 들리지 않으면서 일관성을 제공하는 균형점이라는 것을 발견했습니다.
견고한 오류 처리와 사용자 경험
여러 AI API를 활용해 구축한다는 것은 다양한 실패 상황을 다뤄야 한다는 뜻입니다. 사용량 제한, 타임아웃 오류, 잘못된 형식의 응답 등은 모두 발생합니다. 특히 새벽 2시에 디버깅하는데 VEO 2가 예상치 못한 결과를 반환하기로 할 때는 더욱 그렇습니다.
대체 옵션을 포함한 포괄적인 오류 처리를 구현했습니다:
- Gemini가 실패하면 시스템이 지능형 대체 스크립트 제공
- 영상 생성에 실패하면 플레이스홀더 영상 제공
- 음향 생성에 실패하면 기본 오디오 트랙 사용
일부 AI 서비스에 문제가 생기더라도 사용자가 언제나 광고를 완성할 수 있도록 하는 것이 목표였습니다.
성능 고려 사항

광고 생성에는 몇 분이 걸릴 수 있는 여러 AI API 호출이 필요합니다. 경험을 개선하기 위해 다음을 적용했습니다:
- 가능한 경우 영상 병렬 처리
- 실시간 진행 상태 표시
- 비용이 많이 드는 생성 콘텐츠 로컬 저장
- 사용자가 개별 구성 요소 다시 생성 가능
상태 지속성 시스템도 구현했습니다. 누군가 생성 도중 브라우저를 닫아도 돌아와서 중단했던 곳부터 이어갈 수 있습니다. 원래 계획에는 없었지만, 테스트 중에 제 작업 진행 상황을 몇 번 잃고 나니 우선순위가 되었습니다.
핵심 인사이트와 다음 단계
이 도구를 구축하며 세 가지 중요한 교훈을 얻었습니다.
첫째, 프롬프트 설계가 중요합니다. 모든 AI 모델의 출력 품질은 입력을 어떻게 구성하느냐에 크게 좌우됩니다. 코드를 작성하는 만큼 프롬프트를 다듬는 데 시간을 들였습니다.
둘째, 사용자 경험은 기술적 복잡성을 이깁니다. 사용자들은 얼마나 많은 AI 서비스가 관여하는지에는 관심이 없습니다. 도구가 제대로 작동하는지에 관심이 있습니다. 진행 상태 표시, 오류 처리, 빠른 피드백 루프가 큰 차이를 만듭니다.
셋째, Claude 같은 AI 어시스턴트는 개발 속도를 높입니다. 보일러플레이트와 문법은 모델에 맡기고 제품 로직에 집중했습니다. 이는 단계를 건너뛰는 것이 아니라 더 스마트하게 구축하는 일입니다.
주말 프로젝트로 시작한 일이 실제로 확장 가능한 도구가 되었습니다. 마케팅 팀은 프로토타이핑에, 스타트업은 피치 영상에, 크리에이터는 스폰서 콘텐츠에 활용할 수 있습니다.
이 시스템은 유연하게 설계되었습니다. VEO 2 프롬프트를 조정해 영상 스타일을 바꾸거나, 다양한 형식에 맞춰 장면 길이를 수정하거나, FFmpeg를 통해 음악을 추가할 수 있습니다.
진정한 기회는 여러 AI 시스템을 오케스트레이션하는 데 있습니다. 단일 모델만으로는 완전한 광고를 생성할 수 없지만, Gemini, VEO 2, ElevenLabs를 결합하면 각각을 단독으로 사용할 때보다 훨씬 강력한 결과물을 만들 수 있습니다.
이는 AI가 크리에이터를 대체하는 이야기가 아닙니다. 크리에이터에게 더 나은 도구를 제공하는 이야기입니다. 콘텐츠 분야에서 20년을 보내며 많은 변화를 봤지만, 이번 변화는 근본적으로 느껴집니다.
ElevenLabs 기술이 콘텐츠와 미디어에 새로운 접근 방식을 제공하는 데 어떻게 도움이 되는지 알아보고 싶다면 영업팀에 문의하세요.
Ryan joined ElevenLabs after more than two decades in news and publishing, including roles at the BBC and Future Plc. He focuses on content strategy and storytelling, helping ElevenLabs shape and share its narrative.



