
Jak stworzyłem generator tekstu na reklamy przy użyciu ElevenLabs, Gemini i VEO 2
Jak stworzyłem narzędzie AI, które zamienia proste pomysły w gotowe reklamy wideo.
Od dwóch dekad tworzę treści — od dziennikarstwa po filmy produktowe. AI pozwala na odkrycie zupełnie nowych kreatywnych workflow. Przy połączeniu vibe coding i coraz bardziej realistycznej generacji wideo, zastanawiałem się, czy mogę stworzyć narzędzie, które z prostego promptu zrobi 20-sekundową reklamę.
Koncepcja była prosta: wpisz ogólny pomysł na produkt, a otrzymasz w pełni wyprodukowaną 30-sekundową reklamę z AI-generowanymi wizualizacjami, nałożonym głosem i efektami dźwiękowymi. Oto jak to zbudowałem używając ElevenLabs TTS i SFX API, Google Gemini oraz VEO 2 od Google do generacji wideo. W momencie tworzenia VEO 3 nie było jeszcze dostępne.
Ostateczna wersja została stworzona prawie całkowicie z pomocą imponującego Claude 4 Opus od Anthropic, choć zajęło to kilka dni, bo ciągle trafiałem na limit.
Wybór stacku: Node.js, Express, React i Claude 4 Opus
Wybrałem Node.js z Express na backend i React na frontend. Node obsługuje aktualizacje w czasie rzeczywistym podczas generacji wideo, a architektura komponentowa React ułatwia zarządzanie i rozbudowę interfejsu wieloetapowego.
Piszę kod od czasu do czasu od dzieciństwa — zaczynając od robota pisaka w szkole podstawowej. Ale zawsze byłem bardziej myślicielem produktowym niż pełnoetatowym inżynierem. Narzędzia takie jak Claude 4 Opus to zmieniły. Z odpowiednimi promptami mogłem działać szybko, poprawnie wdrażać funkcje i skupić się na logice produktu zamiast na boilerplate.
Nie chodzi o zlecanie kreatywności AI — chodzi o mądrzejsze budowanie z odpowiednimi narzędziami.
Ośmioetapowy kreator: Od promptu do gotowej reklamy

Tworzenie reklamy dla nowego produktu lub usługi, nawet jeśli trwa tylko 20 sekund, wymaga wielu skomplikowanych kroków, więc podzieliłem to na osiem odrębnych faz:
- Informacje o produkcie
- Generowanie scenariusza
- Tworzenie wideo
- Efekty dźwiękowe
- Montaż wideo
- Nałożony głos
- Finalne wideo
- Posty w mediach społecznościowych
Każdy krok opiera się na poprzednim, tworząc pipeline, który przekształca prosty pomysł w kompletną reklamę. Na każdym etapie użytkownik ma pełną kontrolę, aby zmienić dowolny element lub wygenerować ponownie dowolny tekst, wideo czy audio.
Dopracowywanie pomysłów z Gemini Flash
Pierwszym wyzwaniem było to, że większość ludzi nie zaczyna od w pełni ukształtowanych pomysłów na produkt. Mogą wpisać coś ogólnego jak "coś dla produktywności." Tu wkracza Gemini.
Użyłem modelu Gemini 2.0 Flash od Google, aby przekształcić ogólne pomysły w konkretne koncepcje produktów. Inżynieria promptów była tu kluczowa – potrzebowałem, aby Gemini było konkretne i precyzyjne, a nie ogólne i niejasne. Zamiast akceptować "coś dla fitnessu," system przekształca to w coś jak "FitPulse AI: Inteligentna opaska na nadgarstek, która wykorzystuje zaawansowane biometrie do tworzenia spersonalizowanych mikrotreningów w ciągu dnia."
| 1 | """Enhance a product idea using Gemini""" |
| 2 | |
| 3 | prompt = f""" |
| 4 | Enhance this product idea to make it more compelling: |
| 5 | |
| 6 | Original idea: {idea} |
| 7 | Target mood: {mood} |
| 8 | Target audience: {audience} |
| 9 | |
| 10 | Make it: |
| 11 | 1. Clear and specific about the value proposition |
| 12 | 2. Appeal to {audience} |
| 13 | 3. Match the {mood.lower()} tone |
| 14 | 4. Be memorable and marketable |
| 15 | |
| 16 | Keep it to 2-3 sentences. |
| 17 | """ |
Generowanie nieogólnych scenariuszy z Gemini
Następnie przyszła kolej na generowanie scenariusza. Ponownie używając Gemini, ustrukturyzowałem wynik jako cztery 5-sekundowe sceny, każda z trzema komponentami:
- Scenariusz nałożonego głosu
- Prompt do generacji wideo
- Opis efektów dźwiękowych
Kluczowe było, aby Gemini zrozumiało nastrój i odbiorców. "Zabawna" reklama dla millenialsów potrzebuje innego języka niż "profesjonalna" dla klientów korporacyjnych.
Spędziłem sporo czasu na dopracowywaniu promptów, aby uniknąć ogólnego języka AI i tworzyć scenariusze dopasowane do każdego produktu.
| 1 | """Generate a 4-scene commercial script""" |
| 2 | |
| 3 | prompt = f""" |
| 4 | Create a 30-second commercial script with exactly 4 scenes. |
| 5 | |
| 6 | Product: {product_name} |
| 7 | Audience: {target_audience} |
| 8 | Key Message: {key_message} |
| 9 | Mood: {mood} |
| 10 | |
| 11 | Return a JSON array with 4 scenes, each with: |
| 12 | - number: 1-4 |
| 13 | - duration: 5 |
| 14 | - script: What the voiceover says |
| 15 | - videoPrompt: Visual description for video generation |
| 16 | - sfxPrompt: Sound effects description |
| 17 | |
| 18 | Example format: |
| 19 | [{{"number": 1, "duration": 5, "script": "...", "videoPrompt": "...", "sfxPrompt": "..."}}] |
| 20 | """ |
| 21 |
Tworzenie 5-sekundowych scen z VEO 2
Użyłem hostowanego API FAL.ai dla modelu VEO 2 od Google. Każdy prompt wideo sceny jest wysyłany do FAL.ai, które zwraca 5-sekundowy klip wideo. To była jedna z trudniejszych integracji – obsługa długich czasów generacji, zarządzanie limitami API i zapewnianie użytkownikom informacji zwrotnej podczas oczekiwania.
Początkowo planowałem użyć Google AI Studio lub Vertex AI dla API Veo 2, ponieważ oznaczałoby to użycie tego samego klucza API co Gemini, ale nie udało mi się uruchomić Veo 2 na moim koncie.
Wdrożyłem system zarządzania stanem, który zapisuje wygenerowane wideo lokalnie, aby użytkownicy nie musieli ponownie generować kosztownej treści, jeśli opuszczą stronę i wrócą. Gdy trafiasz na limity Claude, ostatnią rzeczą, jakiej chcesz, jest utrata wygenerowanych wideo przez odświeżenie strony.
Treść wideo dla 20-sekundowego klipu, zakładając brak ponownych cięć czy regeneracji, kosztowała około $10.
Używanie ElevenLabs do efektów dźwiękowych i nałożonego głosu
Tu wykazałem się kreatywnością z API ElevenLabs. Choć ElevenLabs jest głównie znane z generacji głosu, mamy także imponujące API efektów dźwiękowych. Zobacz niesamowity Soundboard jako przykład potencjalnych zastosowań.
Użyłem go do generowania czterech wariantów efektów dźwiękowych dla każdej sceny – wesołych, energetycznych, spokojnych i dramatycznych. Użytkownicy mogą przeglądać każdą opcję i wybrać tę, która pasuje do ich wizji.
| 1 | const response = await elevenLabs.soundGeneration({ |
| 2 | text: modifiedPrompt, |
| 3 | duration_seconds: duration, |
| 4 | prompt_influence: 0.3 |
| 5 | }); |
| 6 |
Montaż finalnych wideo z FFmpeg
Mając cztery klipy wideo i cztery ścieżki efektów dźwiękowych, musiałem je połączyć. To oznaczało głębokie zanurzenie się w FFmpeg, szwajcarski scyzoryk przetwarzania wideo. Backend uruchamia polecenia FFmpeg, aby:
- Mieszać efekty dźwiękowe z każdym klipem wideo
- Łączyć wszystkie klipy w jedno wideo
- Dodać ścieżkę nałożonego głosu do finalnego wideo
Poprawne skonfigurowanie poleceń FFmpeg wymagało znacznego debugowania. Mieszanie audio, w szczególności, wymagało uwagi na poziomy i timing. Dowiedziałem się, że dźwięk tła powinien być zredukowany do około 30% głośności, gdy jest mieszany z nałożonym głosem – wyżej konkuruje o uwagę, niżej może równie dobrze nie istnieć.
Nałożony głos: Gdzie ElevenLabs naprawdę błyszczy
Do nałożonego głosu użyłem ElevenLabs
| 1 | const voiceSettings = { |
| 2 | stability: 0.75, |
| 3 | similarity_boost: 0.75, |
| 4 | style: 0.0, |
| 5 | use_speaker_boost: true |
| 6 | }; |
| 7 |
Te ustawienia zapewniają klarowną, profesjonalną narrację, która dobrze sprawdza się w reklamach. Po eksperymentach z różnymi konfiguracjami, znalazłem równowagę, która zapewnia spójność bez brzmienia jak robot.
Odporne na błędy zarządzanie i doświadczenie użytkownika
Budowanie z wieloma API AI oznacza radzenie sobie z różnymi trybami awarii. Limity, błędy timeout, nieprawidłowe odpowiedzi – to wszystko się zdarza. Zwłaszcza gdy debugujesz o 2 w nocy, a VEO 2 zwraca coś niespodziewanego.
Wdrożyłem kompleksowe zarządzanie błędami z opcjami awaryjnymi:
- Jeśli Gemini zawiedzie, system dostarcza inteligentne scenariusze awaryjne
- Jeśli generacja wideo zawiedzie, dostępne są wideo zastępcze
- Jeśli generacja dźwięku zawiedzie, używane są podstawowe ścieżki audio
Celem było zapewnienie, że użytkownicy zawsze mogą ukończyć swoją reklamę, nawet jeśli niektóre usługi AI mają zły dzień.
Rozważania dotyczące wydajności
Generowanie reklamy wymaga wielu wywołań API AI, które mogą zająć kilka minut. Aby poprawić doświadczenie, ja:
- Przetwarzam wideo równolegle, gdzie to możliwe
- Pokazuję wskaźniki postępu w czasie rzeczywistym
- Zapisuję kosztowne wygenerowane treści lokalnie
- Pozwalam użytkownikom regenerować poszczególne komponenty
Wdrożyłem także system utrzymywania stanu. Jeśli ktoś zamknie przeglądarkę w trakcie generacji, może wrócić i kontynuować tam, gdzie przerwał. To nie było w moim pierwotnym planie, ale po kilkukrotnym utraceniu postępu podczas testów, stało się priorytetem.
Kluczowe wnioski i co dalej
Budowanie tego narzędzia ujawniło trzy kluczowe lekcje.
Po pierwsze, projektowanie promptów jest kluczowe. Jakość wyników z dowolnego modelu AI zależy w dużej mierze od tego, jak sformułujesz wejście. Spędziłem tyle samo czasu na dopracowywaniu promptów, co na pisaniu kodu.
Po drugie, doświadczenie użytkownika przewyższa złożoność techniczną. Użytkownicy nie dbają o to, ile usług AI jest zaangażowanych — ważne, że narzędzie działa. Wskaźniki postępu, zarządzanie błędami i szybkie pętle zwrotne robią różnicę.
Po trzecie, asystenci AI jak Claude przyspieszają rozwój. Skupiłem się na logice produktu, zlecając boilerplate i składnię modelowi. Nie chodzi o pomijanie kroków — chodzi o mądrzejsze budowanie.
To, co zaczęło się jako projekt weekendowy, przekształciło się w realne, rozszerzalne narzędzie. Zespoły marketingowe mogą go używać do prototypowania, startupy do filmów prezentacyjnych, a twórcy do treści sponsorowanych.
System jest elastyczny z założenia. Możesz zmieniać style wideo, dostosowując prompty VEO 2, modyfikować długości scen dla różnych formatów lub dodawać muzykę przez FFmpeg.
Prawdziwa szansa leży w orkiestracji wielu systemów AI. Żaden pojedynczy model nie może wygenerować pełnej reklamy — ale połączone, Gemini, VEO 2 i ElevenLabs mogą stworzyć coś znacznie potężniejszego niż każdy z osobna.
Nie chodzi o to, by AI zastąpiło twórców. Chodzi o to, by dać twórcom lepsze narzędzia. Po 20 latach w tworzeniu treści widziałem wiele zmian — ale ta zmiana wydaje się fundamentalna.
Jeśli chcesz odkryć, jak technologia ElevenLabs może pomóc w dostarczaniu nowych podejść do treści i mediów skontaktuj się z naszym zespołem sprzedaży.
Przeglądaj artykuły zespołu ElevenLabs


Introducing Experiments in ElevenAgents
The most data-driven way to improve real-world agent performance.

.webp&w=3840&q=95)
.webp&w=3840&q=95)