Vi presenterar Eleven v4Möt Eleven v4, vår mest uttrycksfulla modell hittills.

Hoppa till innehållet

Hur jag byggde en text-till-reklam-generator med ElevenLabs, Gemini och VEO 2

Skriven av
Ryan Morrison
Publicerad
Senast uppdaterad

LyssnaLyssna på den här artikeln

Jag har ägnat två decennier åt att skapa innehåll — från journalistik till produktvideor. AI gör det möjligt att öppna upp helt nya kreativa arbetsflöden. I mötet mellan vibe coding och alltmer realistisk videogenerering undrade jag om jag kunde skapa ett verktyg som tar en enkel prompt och gör en 20 sekunder lång reklamfilm.

Konceptet var enkelt: skriv in en grov produktidé och få tillbaka en färdigproducerad 30-sekunders reklamfilm med AI-genererad grafik, voice-over och ljudeffekter. Så här byggde jag den med ElevenLabs TTS och SFX-API:er, Googles Gemini och VEO 2 från Google för videogenerering. När jag skapade den hade VEO 3 ännu inte släppts.

Den slutliga versionen skapades nästan helt med Anthropics imponerande Claude 4 Opus, om än under några dagar eftersom jag ständigt nådde gränsen för antal anrop. 

Val av stack: Node.js, Express, React och Claude 4 Opus

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

Jag valde Node.js med Express för backend och React för frontend. Node hanterar uppdateringar i realtid medan videorna genereras, och Reacts komponentbaserade arkitektur gör gränssnittet i flera steg enkelt att hantera och utöka.

Jag har programmerat till och från sedan barndomen — med början med en robotpenna i lågstadiet. Men jag har alltid varit mer produktorienterad än heltidsutvecklare. Verktyg som Claude 4 Opus förändrade det. Med rätt promptar kunde jag arbeta snabbt, implementera funktioner korrekt och fokusera på produktlogik i stället för standardkod. 

Det handlar inte om att överlåta kreativiteten till AI — utan om att bygga smartare med rätt verktyg.

Guide i åtta steg: Från prompt till färdig reklamfilm

Eight step wizard

Att skapa en reklamfilm för en ny produkt eller tjänst, även en som bara är 20 sekunder lång, innefattar flera komplexa steg, så jag delade upp processen i åtta tydliga faser:

  1. Produktinformation
  2. Manusgenerering
  3. Videoskapande
  4. Ljudeffekter
  5. Videosammansättning
  6. Voice-over
  7. Slutlig video
  8. Inlägg på sociala medier

Varje steg bygger på det föregående och skapar en pipeline som omvandlar en enkel idé till en komplett reklamfilm. I varje steg har användaren full kontroll över att ändra valfritt element eller generera om text, video eller ljud.

A commercial for "Epoch" matching

Förfina idéer med Gemini Flash

Den första utmaningen var att de flesta inte börjar med fullt utformade produktidéer. De kanske skriver något vagt som ”något för produktivitet”. Där kommer Gemini in i bilden.

Jag använde Googles modell Gemini 2.0 Flash för att utveckla grova idéer till konkreta produktkoncept. Promptdesignen var avgörande här – jag behövde att Gemini var specifik och konkret, inte vag och generell. I stället för att acceptera ”något för träning” omvandlar systemet det till något i stil med ”FitPulse AI: Ett smart armband som använder avancerad biometri för att skapa personliga mikropass under hela din dag.”

"""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.
        """

Skapa icke-generiska manus med Gemini

Därefter kom manusgenereringen. Återigen använde jag Gemini och strukturerade resultatet som fyra scener på fem sekunder, var och en med tre delar:

  • Manuset för voice-over
  • En prompt för videogenerering
  • En beskrivning av ljudeffekterna

Nyckeln var att få Gemini att förstå stämning och målgrupp. En ”udda” reklamfilm för millennials behöver ett annat språk än en ”professionell” för företagskunder. 

Jag lade mycket tid på att förfina promptarna för att undvika generiskt AI-språk och skapa manus som kändes skräddarsydda för varje produkt.

     """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": "..."}}]
        """

Skapa 5-sekundersscener med VEO 2

Jag använde FAL.ais hostade API för Googles modell VEO 2. Varje scen skickas som en videoprompt till FAL.ai, som returnerar ett fem sekunder långt videoklipp. Detta var en av de mer utmanande integrationerna – att hantera långa genereringstider, API-gränser och ge användarna återkoppling medan de väntar.

Från början planerade jag att använda Google AI Studio eller Vertex AI för Veo 2 API:t, eftersom det skulle innebära att jag använde samma API-nyckel som för Gemini, men jag fick inte Veo 2 att fungera på mitt konto.

Jag implementerade ett system för tillståndshantering som sparar genererade videor lokalt, så att användarna inte behöver generera dyrt innehåll på nytt om de navigerar bort och kommer tillbaka. När du når gränsen för antal anrop i Claude är det sista du vill att förlora dina genererade videor för att du uppdaterade sidan. 

Videoinnehållet för ett 20 sekunder långt klipp kostade omkring 10 dollar, förutsatt att inga omklippningar eller omgenereringar behövdes.

Använda ElevenLabs för ljudeffekter och voice-over

Här blev jag kreativ med ElevenLabs API:er. ElevenLabs är främst känt för röstgenerering, men vi har också ett mycket imponerande API för ljudeffekter. Se det fantastiska exemplet Soundboard på möjliga användningsområden. 

Jag använde det för att generera fyra varianter av ljudeffekter för varje scen – positiva, energiska, lugna och dramatiska. Användarna kan förhandsgranska varje alternativ och välja det som passar deras vision.

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

Sätta ihop slutliga videor med FFmpeg

Med fyra videoklipp och fyra spår med ljudeffekter behövde jag kombinera dem. Det innebar att fördjupa mig i FFmpeg, videobearbetningens schweiziska armékniv. Backend kör FFmpeg-kommandon för att:

  1. Mixa ljudeffekter med varje videoklipp
  2. Slå ihop alla klipp till en video
  3. Lägga till voice-over-spåret i den slutliga videon

Det krävdes en hel del felsökning för att få FFmpeg-kommandona rätt. I synnerhet ljudmixning kräver noggrann uppmärksamhet på nivåer och tajming. Jag lärde mig att bakgrundsljudet bör sänkas till omkring 30 % volym när det mixas med voice-over – högre än så konkurrerar det om uppmärksamheten, lägre än så kan det lika gärna utelämnas.

Voice-over: Där ElevenLabs verkligen utmärker sig

För voice-over integrerade jag ElevenLabs text-to-speech API för att erbjuda användarna ett urval av röster. Systemet genererar ett sammanhängande manus för voice-over från alla scenmanus och skickar sedan det till ElevenLabs med optimerade röstinställningar:

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

Dessa inställningar ger en tydlig, professionell berättarröst som fungerar bra för reklamfilmer. Efter att ha experimenterat med olika konfigurationer märkte jag att den här balansen ger konsekvens utan att låta robotaktig.

Robust felhantering och användarupplevelse

Att bygga med flera AI-API:er innebär att hantera olika typer av fel. Gränser för antal anrop, timeout-fel, felaktigt formaterade svar – allt händer. Särskilt när du felsöker klockan två på natten och VEO 2 bestämmer sig för att returnera något oväntat.

Jag implementerade omfattande felhantering med reservalternativ:

  • Om Gemini misslyckas ger systemet intelligenta reservmanus
  • Om videogenereringen misslyckas finns platshållarvideor tillgängliga
  • Om ljudgenereringen misslyckas används enkla ljudspår

Målet var att säkerställa att användarna alltid kunde slutföra sin reklamfilm, även om vissa AI-tjänster hade en dålig dag.

Prestandaöverväganden

A commercial for "Globetrotter Grocer"

Att generera en reklamfilm innebär flera AI API-anrop som kan ta flera minuter. För att förbättra upplevelsen:

  • Bearbetar jag videor parallellt där det är möjligt
  • Visar jag förloppsindikatorer i realtid
  • Sparar jag dyrt genererat innehåll lokalt
  • Låter jag användare generera om enskilda komponenter

Jag implementerade också ett system för att bevara tillstånd. Om någon stänger sin webbläsare mitt under genereringen kan personen återvända och fortsätta där den slutade. Det fanns inte i min ursprungliga plan, men efter att jag själv förlorat mina framsteg några gånger under testningen blev det en prioritet.

Viktiga lärdomar och nästa steg

När jag byggde det här verktyget framträdde tre viktiga lärdomar.

För det första är promptdesign avgörande. Kvaliteten på resultatet från varje AI-modell beror till stor del på hur du formulerar inmatningen. Jag lade lika mycket tid på att förfina promptar som på att skriva kod.

För det andra är användarupplevelsen viktigare än teknisk komplexitet. Användarna bryr sig inte om hur många AI-tjänster som ingår — de bryr sig om att verktyget fungerar. Förloppsindikatorer, felhantering och snabba återkopplingsloopar gör hela skillnaden.

För det tredje snabbar AI-assistenter som Claude upp utvecklingen. Jag fokuserade på produktlogik medan jag lät modellen ta hand om standardkod och syntax. Det handlar inte om att hoppa över steg — utan om att bygga smartare.

Det som började som ett helgprojekt blev ett verkligt, utbyggbart verktyg. Marknadsföringsteam skulle kunna använda det för prototyper, startups för pitchvideor och kreatörer för sponsrat innehåll.

Systemet är flexibelt avsiktligt. Du kan ändra videostilar genom att justera VEO 2-promptar, ändra scenlängder för olika format eller lägga till musik via FFmpeg.

Den verkliga möjligheten ligger i att samordna flera AI-system. Ingen enskild modell kan generera en komplett reklamfilm — men tillsammans kan Gemini, VEO 2 och ElevenLabs skapa något betydligt kraftfullare än någon av dem var för sig.

Det här handlar inte om att AI ska ersätta kreatörer. Det handlar om att ge kreatörer bättre verktyg. Efter 20 år med innehåll har jag sett mycket förändras — men den här förändringen känns grundläggande.

Om du vill utforska hur ElevenLabs teknik kan hjälpa dig att skapa nya sätt att arbeta med innehåll och medier kontakta vårt säljteam.

Skriven av

Ryan började på ElevenLabs efter mer än två decennier inom nyheter och publicering, inklusive roller på BBC och Future Plc. Han fokuserar på innehållsstrategi och berättande, och hjälper ElevenLabs att forma och dela sin berättelse.

Liknande artiklar

Skapa med AI-ljud av högsta kvalitet