PL Log inCreate account
Launching in October 2026. Accounts, model catalog, calculator and docs are live. Studio is available in preview; generation is awaiting activation.

AI Product Video Workflow - From Packshot to 9:16 Ad

A repeatable AI ad workflow: product packshot in Nano Banana Pro, image-to-video in Kling 3.0, music from Mureka V9, 9:16 export and full cost per ad.

An AI product video comes together in four steps: generate a packshot of the product with an image model (Nano Banana Pro, from $0.0747 per image), animate that frame with an image-to-video model (Kling 3.0, from $0.169 per second), add a soundtrack from Mureka V9 ($0.124 per song), and cut it to 9:16 in your editor. Each step runs in Jantaris Studio or through one API with one key and one balance. Below is the workflow I use, what went wrong in my own tests, the cost formula and a Python script that chains the three generation steps.

Before you generate: lock the format

Write down four things first:

  • aspect ratio: 9:16 for Reels, TikTok and Shorts, 1:1 or 4:5 for feed posts, 16:9 for YouTube and banners,
  • length: most product spots run 10-20 seconds, which means two or three shots,
  • shot list: for example "product on slate, slow push-in" and "macro detail, light sweeps across",
  • audio: a generated song, the video model's own sound, or music plus captions.

Pick the aspect ratio first. Changing it halfway means regenerating the images, and as my test below shows, the product itself can change with it.

Step 1: the packshot

The packshot becomes the first frame of your video, so this is where quality is decided. Two image models I reach for:

Nano Banana ProGPT Image 2.5
Pricefrom $0.0747 per image$0.0432 per image
Vertical sizes9:16, 4:5, 3:4, 2:31024x1536 (2:3)
Reference imagesup to 14up to 16
Output size1k, 2k, 4kup to 1536 px tall

For a 9:16 ad I use Nano Banana Pro because it renders that ratio natively. GPT Image 2.5 tops out at a 2:3 portrait on Jantaris, so plan to crop and leave headroom above and below the product.

Always pass the real product as a reference

If the ad is for a product that exists, upload a photo of it as a reference (Reference images in Studio, image_urls in the API) and let the prompt describe the scene, not the object:

text
Studio product photo of this perfume bottle on wet black stone, water splash
frozen around the base, warm rim light, dark background, no other text, no logos
Jantaris Studio: Nano Banana Pro form with a product photo prompt, aspect ratio and 1k, 2k, 4k resolution
Nano Banana Pro in Studio: prompt, aspect ratio, resolution and up to 14 reference images, with the cost shown before you generate

My test: one prompt, one seed, three aspect ratios

To see what happens when only the format changes, I generated an amber pendant as a stand-in product with Z-Image Turbo (Z-Image Turbo, run locally on an RTX 4090 at 9 steps, about 4-5 seconds per image). Same prompt, same seed, three ratios:

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
Amber pendant with a silver bail on wet slate, square 1:1 frame
1:1 - silver bail, a small ant inside
Amber pendant with a ring on slate, vertical 9:16 frame
9:16 - different ring, a beetle near the lower edge
Amber pendant on a dark cord on slate, horizontal 16:9 frame
16:9 - a cord instead of a bail, a winged insect and a twig inside

Every ratio produced a different pendant: different bail, different inclusion, different stone. For an invented product that is harmless. For a real one it means:

  • generate directly in the target ratio instead of cropping a square later,
  • pass the product photo as a reference for every format so the model does not reinvent it,
  • explore composition and lighting with a cheap model such as Z-Image ($0.02 per image), then make the final reference-based packshot on Nano Banana Pro.

Watch for stray text and other brands' logos

In a separate test of ad packshots on my Polish blog (promptowy.com), the main slogans rendered correctly, but models sometimes added small text nobody asked for or a logo resembling a real brand.

Amber perfume bottle in a crown of water splash on black stone with the line NOC. Eau de Parfum
My test: the slogan rendered cleanly at the bottom, studio-style rim light (FLUX 3 Image)

So I add no other text, no logos to ad prompts and put the real logo on in the edit. For prompt structure in general, see the AI image prompt guide.

Step 2: image-to-video

The packshot goes in as the first frame, and the prompt describes motion only.

Kling 3.0Seedance 2.5
Pricefrom $0.169 per secondfrom $0.261 per second
Clip length3-15 s4-30 s
Resolution720p, 1080p, 4K480p, 720p, 1080p
Aspect ratio16:9, 9:16, 1:1 (follows the start image)16:9, 9:16, 1:1, 4:3, 3:4, 21:9
Audiooptionalon by default
End frameyesyes

Kling 3.0 is my pick for short, polished product shots. Its listed "from" price is the 720p tier; 1080p and 4K cost more per second, and Studio shows the exact amount for your settings. Seedance 2.5 is the choice when you want one continuous take of up to 30 seconds.

Jantaris Studio: Kling 3.0 form with a camera move prompt, aspect ratio, resolution, duration and a Start frame URL field
Kling 3.0 image-to-video: start frame from a URL or an uploaded file, 3-15 seconds, audio optional

Motion prompts that suit products:

  • slow push-in towards the product, the backlight slowly intensifies
  • the camera slowly orbits the product, product stays still and centered
  • light sweeps across the surface, droplets glisten, camera static
  • shallow focus pull from the background to the product

I avoid prompts where the product spins by itself or a hand picks it up. Label text and hands are where AI video most often warps, so for a branded product I move the camera and the light, not the object. More moves in AI video prompts: camera moves, and the full photo-to-video process in the image-to-video guide.

Vendor sample: Kuaishou (kling.ai) - image-to-video from a first frame

Seedance 2.5 also edits existing video, including swapping a product while keeping the original motion and framing. That is useful when you already have one good spot and need versions for other products.

Vendor sample: ByteDance (byteplus.com) - video edit replacing product, style or background

Step 3: music

Mureka V9 writes a full song around your lyrics and a style prompt, so the brand line can be the chorus. The price is $0.124 per song, regardless of length.

  • For a 15-second spot, one verse and one chorus is plenty. Trim in the edit.
  • Need a backing track without vocals? Run the song through Music Extractor.
  • The alternative is the video model's own audio (default in Seedance 2.5, optional in Kling 3.0). It is fine for ambience and effects, not for a song with your slogan.

Parameters and code for the music step are in the Mureka V9 API guide.

Step 4: cut to 9:16

  1. Lay the shots on a 9:16 timeline and trim the first and last frames of each clip, which tend to be the weakest.
  2. Add the music and a fade at the end.
  3. Add captions and the logo as editor layers, not in the prompt.
  4. Keep the bottom and right edges clear: platform UI covers them.
  5. Watch the export on a phone before you publish.

What an AI product ad costs

The formula I use for every quote:

text
ad cost = (images × price per image)
        + (video seconds × takes × price per second)
        + (songs × price per song)

Worked example: a 9:16 spot of about 14 seconds, two shots of 7 seconds each.

ItemQuantityCost
Packshots4 variants, keep 24 × from $0.0747 per image
Kling 3.0 video2 shots × 7 s × 2 takes = 28 s28 × from $0.169 per second
Music2 songs to choose from2 × $0.124 per song
Captions, logo, edityour editor$0 from the balance

Prices are inserted from the pricing page, so the table is current when you read it. The Kling "from" rate is 720p; at 1080p use the higher per-second rate Studio shows. The 2× multiplier covers takes that render fine but do not make the cut. Tasks that end failed cost nothing because the hold is released in full. For a deeper per-second breakdown see AI video cost per second and Kling 3.0 API pricing.

Automating the workflow with Python

For a catalog of products, script the three generation steps. Endpoints and fields match the generate docs:

python
import os, time, pathlib, requests

API = "https://jantaris.com/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['JANTARIS_API_KEY']}"}

def run(model: str, input: dict, wait: int = 0) -> dict:
    params = {"wait": wait} if wait else None
    task = requests.post(f"{API}/generate", params=params, headers=HEADERS,
                         json={"model": model, "input": input}, timeout=wait + 30).json()
    delay = 2
    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

def save(task: dict, name: str) -> None:
    url = task["output"][0]["url"]  # temporary link, download right away
    pathlib.Path(name).write_bytes(requests.get(url, timeout=300).content)

# 1. 9:16 packshot with the real product as a reference
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://your-store.example.com/images/pendant.jpg"],
}, wait=60)
save(img, "packshot.png")

# 2. Animate it with Kling 3.0 (aspect ratio follows the start image)
video = run("kling-3.0", {
    "prompt": "slow push-in towards the pendant, the backlight slowly intensifies, camera only moves forward",
    "image_url": img["output"][0]["url"],
    "duration": 7,
    "resolution": "1080p",
    "generate_audio": False,
})
save(video, "shot1.mp4")

# 3. Soundtrack
song = run("mureka-v9", {
    "lyrics": "[Verse]\nLight held still in a drop of time\n[Chorus]\nAmber keeps the moment mine",
    "prompt": "cinematic pop, warm piano, soft female vocal, 90 bpm",
}, wait=120)
save(song, "music.mp3")

With many products in flight, replace the polling loop with webhooks. I still do the edit by hand: captions and logo placement are faster to judge by eye than to script.

FAQ

How do I make an AI product video?

Generate a packshot in the target aspect ratio with an image model (Nano Banana Pro, with a photo of the product as a reference), animate it with an image-to-video model such as Kling 3.0 or Seedance 2.5, add music from Mureka V9, and finish captions and logo in your editor.

How much does an AI product ad cost?

Images plus video seconds plus songs. For two 7-second shots with one retake each: 4 × from $0.0747 per image + 28 × from $0.169 per second + 2 × $0.124 per song. Failed generations are not charged.

Which model is best for AI product video?

Kling 3.0 for short, polished 3-15 second shots at 720p, 1080p or 4K. Seedance 2.5 for a single take up to 30 seconds with generated audio, or for swapping a product inside an existing clip.

Will the AI show my actual product?

Only if you give it a photo as a reference. Without one the model invents the object, and in my test the same prompt and seed produced three different pendants in three aspect ratios.

Should I put the logo and slogan in the prompt?

It works sometimes, but adding them in the edit is safer. Models can add stray text or another brand's logo, and label text tends to warp in video.

Can I do this without code?

Yes. All three steps run in Jantaris Studio in the browser, under the Image, Video and Audio tabs, paid from one prepaid balance starting at $10.