EN ZalogujOtwórz Studio
Wersja podglądowa. Katalog modeli, ceny, kalkulator i dokumentacja działają. Generowanie uruchomimy po starcie serwisu.

Rolka reklamowa produktu z AI - od zdjęcia do gotowego filmu 9:16

Reklama produktu z AI w czterech etapach: packshot z referencją, animacja kadru w Kling 3.0, podkład z Mureka V9, montaż 9:16 i wzór na koszt całej rolki.

Krótka reklama produktu powstaje u mnie z trzech generacji i jednego montażu. Najpierw robię zdjęcie produktowe modelem obrazu (Nano Banana Pro), potem ten kadr ożywiam modelem wideo (Kling 3.0), na koniec dokładam podkład z Mureka V9 i składam wszystko w pionie 9:16. Każdy z tych kroków zrobisz w Kadraris Studio, płacąc z jednego salda, albo puścisz skryptem przez API. Niżej opisuję każdy etap z promptami, rzeczami, które wyszły w moich testach, i sposobem na policzenie budżetu.

Cztery decyzje na kartce

Zanim zacznę generować, zapisuję:

  • format - 9:16 do rolek, TikToka i Shorts, 1:1 lub 4:5 do posta w feedzie, 16:9 do banera i YouTube,
  • długość - rolka z produktem ma zwykle 10-20 sekund, czyli dwa albo trzy ujęcia,
  • listę ujęć - na przykład "produkt na kamieniu, kamera powoli najeżdża" oraz "zbliżenie detalu, po powierzchni przesuwa się światło",
  • dźwięk - piosenka z Mureka, tło wygenerowane razem z klipem albo podkład pod napisy.

Format zamykam pierwszy, bo zmiana proporcji w trakcie wymusza nowe obrazy. Dlaczego, widać w moim teście niżej.

Etap 1. Zdjęcie produktowe

Z tego obrazu model wideo zrobi pierwszą klatkę, więc od jego jakości zależy cała reklama. Korzystam z dwóch modeli:

CechaNano Banana ProGPT Image 2.5
Stawkaod 0,411 zł za obraz0,293 zł za obraz
Pion9:16, 4:5, 3:4, 2:31024x1536 (2:3)
Referencjedo 14 zdjęćdo 16 zdjęć
Wielkość1k, 2k lub 4knajwyżej 1536 px wysokości

Na rolkę biorę Nano Banana Pro, bo wybieram w nim 9:16 bez kombinowania. GPT Image 2.5 oddaje pion 2:3, który trzeba potem przyciąć, więc produkt musi mieć wtedy luz u góry i u dołu kadru. Szersze zestawienie modeli obrazu znajdziesz w porównaniu trzech generatorów grafik.

Wgraj zdjęcie prawdziwego produktu

Przy reklamie istniejącego towaru zawsze dodaję jego zdjęcie jako referencję: w Studio w polu "Obrazy referencyjne", w API w image_urls. Wtedy prompt opisuje otoczenie, a nie sam przedmiot:

text
Studyjne zdjęcie produktowe tego słoika z kremem na różowym postumencie,
suszone kwiaty w tle, miękkie światło dzienne z lewej, płytka głębia ostrości,
bez innych napisów i logotypów
Formularz obrazu w Kadraris Studio z opisem sceny produktowej i wyborem formatu
Nano Banana Pro: prompt, proporcje, rozdzielczość i miejsce na 14 referencji. Kwotę widzisz, zanim klikniesz

Test: jeden prompt, trzy formaty

Chciałem zobaczyć, co robi zmiana proporcji. Jako "produkt" wygenerowałem bursztynowy wisior w Z-Image Turbo (Z-Image Turbo na moim RTX 4090, 9 kroków, każdy obraz w 4-5 sekund). Opis i seed nie zmieniały się, ruszałem tylko proporcje:

text
macro product photo of a raw Baltic amber pendant with a tiny insect inclusion,
lying on dark wet slate, a single warm backlight making the amber glow,
shallow depth of field, high detail
Kwadrat: bursztyn ze srebrną zawieszką na wilgotnym kamieniu
1:1 - srebrny uchwyt, w środku mała mrówka
Pion: bursztyn z metalowym kółkiem na ciemnej skale
9:16 - inne kółko, chrząszcz przy dolnej krawędzi
Poziom: bursztyn zawieszony na rzemyku, leżący na łupku
16:9 - sznurek zamiast uchwytu, w środku owad ze skrzydłami i gałązka

Każda proporcja dała inny wisior: inny uchwyt, inną inkluzję, inaczej ułożony kamień. Przy wymyślonym przedmiocie to obojętne. Przy prawdziwym towarze wynika z tego kilka zasad:

  • generuj od razu w formacie docelowym, zamiast robić kwadrat i przycinać,
  • przy każdym formacie dodawaj fotografię towaru, wtedy model trzyma się oryginału,
  • kompozycję i światło sprawdzaj tańszym modelem, np. Z-Image (0,09 zł za obraz), a ostateczny packshot z referencją rób w Nano Banana Pro.

Tekst na etykiecie i obce logotypy

W innym teście, który opisałem na blogu przy okazji packshotów i reklam z FLUX 3, duże polskie napisy wyszły poprawnie. Modele potrafią jednak dorysować drobny tekst, o który nikt nie prosił, albo znak znanej marki.

Biały słoiczek z polską etykietą stoi na pudrowym cokole, obok zasuszone kwiaty
Z mojego testu: polska etykieta z ż i ą bez literówki, czysty packshot do sklepu (FLUX 3 Image)

Do promptów reklamowych dopisuję więc no other text, no logos, a własne logo kładę w montażu. Więcej o opisach scen do grafik piszę w poradniku o promptach do obrazów.

Etap 2. Ruch w kadrze

Teraz packshot otwiera film. Do modelu wideo idzie obraz plus opis tego, co ma się poruszyć, i nic poza tym.

CechaKling 3.0Seedance 2.5
Stawkaod 0,546 zł za sekundęod 1,51 zł za sekundę
Długość3-15 s4-30 s
Jakość wyjściaod 720p do 4Kod 480p do 1080p
Dźwiękdo włączeniawłączony domyślnie

Proporcje w Kling 3.0 to 16:9, 9:16 i 1:1, a przy obrazie startowym model bierze je z obrazu. Seedance 2.5 ma 16:9, 9:16, 1:1, 4:3, 3:4 i 21:9. Oba przyjmują też ostatnią klatkę.

Kling 3.0 wybieram do krótkich, starannych ujęć produktu. Stawka w tabeli to cena za 720p bez dźwięku. Za 1080p, 4K albo włączony dźwięk zapłacisz więcej, a ile dokładnie, zobaczysz pod formularzem. Seedance 2.5 sięgam, gdy chcę mieć całą rolkę w jednym ujęciu i nie kleić kawałków.

W Studio obraz trafia do pola "Pierwsza klatka (URL)" albo wgrywasz go przyciskiem obok:

Formularz Kling 3.0 w Studio z opisem ruchu i miejscem na obraz startowy
Kling 3.0 z obrazem startowym: adres albo plik, długość 3-15 s, dźwięk do włączenia

Ruchy, które dobrze pasują do produktu:

  • slow push-in towards the product, the backlight slowly intensifies - kamera powoli się zbliża,
  • the camera slowly orbits the product, product stays still and centered - kamera zatacza łuk,
  • light sweeps across the surface, droplets glisten, camera static - kadr stoi, rusza się tylko światło,
  • shallow focus pull from the background to the product - ostrość przechodzi z tła na produkt.

Omijam sceny, gdzie przedmiot kręci się na blacie albo chwyta go czyjaś ręka. Etykiety i ręce najłatwiej się w wideo AI deformują, więc przy czytelnym logo wolę, żeby ruszała się kamera i światło, a nie przedmiot. Nazwy ruchów kamery zebrałem w ściągawce promptów do wideo, a ożywianie fotografii opisałem w osobnym poradniku.

Kadr producenta: Kuaishou (kling.ai), tryb z pierwszą klatką

Seedance 2.5 potrafi też edytować gotowe wideo, w tym wymienić produkt, zostawiając ruch i kompozycję. Przy serii reklam tego samego ujęcia z różnymi wariantami bywa to wygodne.

Kadr producenta: ByteDance (byteplus.com)

Etap 3. Podkład muzyczny

Muzykę robię w Mureka V9. Podaję styl i krótki tekst, na przykład hasło marki jako refren. Płacę 0,88 zł za utwór, bez względu na jego długość. Co warto wiedzieć:

  • na 15-sekundową rolkę wystarczy zwrotka i refren, resztę wycinasz w montażu,
  • polski nie figuruje na liście języków podanej dla Mureka V9, więc hasło po polsku może zabrzmieć z obcym akcentem - przygotuj się na dwie, trzy próby,
  • jeśli wokal przeszkadza, oddziel podkład narzędziem Music Extractor,
  • dźwięk z samego modelu wideo (w Seedance 2.5 domyślnie, w Kling 3.0 do włączenia) wystarcza do tła i efektów, ale nie zastąpi piosenki z hasłem.

Jak opisywać styl i tekst, pokazuję w poradniku o piosence w Mureka V9.

Etap 4. Składanie rolki

Po generowaniu zostaje montaż:

  1. Kładę ujęcia na oś w 9:16 i obcinam każdy klip z obu stron, bo pierwsze i ostatnie klatki są często najsłabsze.
  2. Dodaję muzykę i wyciszenie na końcu.
  3. Napisy i logo wstawiam jako osobne warstwy w programie do montażu.
  4. Zostawiam wolny dół i prawą krawędź, bo tam aplikacje kładą przyciski i opis.
  5. Po eksporcie oglądam rolkę na telefonie, a nie tylko na monitorze.

Jak policzyć budżet

Ten wzór podstawiam przy każdej wycenie:

text
koszt reklamy = (liczba obrazów × cena obrazu)
              + (sekundy wideo × liczba podejść × cena za sekundę)
              + (liczba utworów × cena utworu)

Weźmy pionową rolkę na mniej więcej 14 sekund, złożoną z pary siedmiosekundowych ujęć:

PozycjaIlośćKoszt
Packshoty4 wersje, do montażu 24 × od 0,411 zł za obraz
Kling 3.028 s (2 ujęcia po 7 s, każde dwa razy)28 × od 0,546 zł za sekundę
Mureka V92 piosenki, wybieram jedną2 × 0,88 zł za utwór
Montaż, napisy, logowłasny program0 z salda

Kwoty podstawia cennik, więc tabela pokazuje stawki z dnia, w którym ją czytasz. Stawka Klinga dotyczy 720p bez dźwięku, dla 1080p albo z dźwiękiem użyj wyższej, którą Studio wyświetli po wybraniu rozdzielczości. Podwójne sekundy biorą się stąd, że część poprawnych klipów i tak odpada przy wyborze. Zadania ze statusem failed kosztują 0 zł, bo zablokowana kwota wraca na saldo. Koszty różnych rodzajów rolek policzyłem w osobnym zestawieniu, a stawki Klinga w poradniku o cenie Kling 3.0. Własne warianty policzysz w kalkulatorze kosztów.

Te same etapy skryptem w Pythonie

Przy reklamach dla wielu produktów trzy generacje puszczam skryptem. Pola i endpointy są te same, co w dokumentacji generowania:

python
import os, time, requests

API = "https://kadraris.com/v1"
KEY = os.environ["KADRARIS_API_KEY"]
HEADERS = {"Authorization": f"Bearer {KEY}"}

def run(model, inp, wait=0):
    params = {"wait": wait} if wait else None
    task = requests.post(f"{API}/generate",
                         params=params, headers=HEADERS,
                         json={"model": model, "input": inp},
                         timeout=wait + 30).json()
    delay = 2
    # odstęp rośnie do 15 s między odczytami
    while task["status"] not in ("succeeded", "failed"):
        time.sleep(delay)
        delay = min(delay * 1.5, 15)
        task = requests.get(f"{API}/tasks/{task['id']}",
                            headers=HEADERS, timeout=30).json()
    if task["status"] == "failed":
        raise RuntimeError(f"{model}: {task['error']}")
    print(model, task["cost"])
    return task

# 1. packshot w pionie, zdjęcie produktu jako referencja
img = run("nano-banana-pro", {
    "prompt": "Studio product photo of this amber pendant "
              "on dark wet slate, warm backlight, shallow "
              "depth of field, no other text, no logos",
    "aspect_ratio": "9:16",
    "resolution": "2k",
    "image_urls": ["https://twoj-sklep.pl/zdjecia/wisior.jpg"],
}, wait=60)
frame = img["output"][0]["url"]

# 2. ruch w Kling 3.0, proporcje z obrazu startowego
video = run("kling-3.0", {
    "prompt": "slow push-in towards the pendant, the "
              "backlight slowly intensifies, camera "
              "only moves forward",
    "image_url": frame,
    "duration": 7,
    "resolution": "1080p",
    "generate_audio": False,
})

# 3. podkład z hasłem w refrenie
song = run("mureka-v9", {
    "lyrics": "[Verse]\nŚwiatło zamknięte w kropli lat\n"
              "[Chorus]\nBursztyn, który zatrzymał świat",
    "prompt": "cinematic pop, warm piano, "
              "soft female vocal, 90 bpm",
}, wait=120)

print("wideo:", video["output"][0]["url"])
print("muzyka:", song["output"][0]["url"])

Adresy w output działają ograniczony czas, więc w docelowym skrypcie od razu pobieraj pliki (przykład pobierania jest w dokumentacji zadań). Gdy produktów jest dużo naraz, zamiast odpytywania użyj webhooków. Montaż zostawiam sobie, bo napisy i logo i tak ustawiam ręcznie.

Pytania

Od którego kroku zacząć, jeśli mam już zdjęcia produktu ze sklepu?

Od etapu 1, ale ze zdjęciem jako referencją. Model ustawi produkt w nowej scenie i w docelowym formacie, a ty dostaniesz pierwszą klatkę pod animację. Samo zdjęcie ze sklepu na białym tle rzadko dobrze wygląda jako start rolki.

Dlaczego produkt na filmie wygląda trochę inaczej niż na packshocie?

Model wideo przerysowuje kadr w każdej klatce, a etykiety i drobne detale są na to najbardziej wrażliwe. Pomaga ruch kamery zamiast ruchu przedmiotu i krótsze ujęcia. Logo dodane w montażu zostaje zawsze ostre.

Ile podejść do jednego ujęcia planować w budżecie?

Ja liczę dwa na każde ujęcie, stąd mnożnik w przykładowej tabeli. Zadanie zakończone błędem nic nie kosztuje, płacisz tylko za udane klipy, także te, których nie użyjesz.

Czy cały proces da się przejść bez kodu?

Tak. Obraz, wideo i muzykę zrobisz w zakładkach Studio w przeglądarce, a za wszystko płacisz z tego samego konta, które zasilisz kwotą od 40 zł.