New: AI video - turn prompts into moving b-roll clips inside your renders. Read the announcement

Guides

AI Product Videos That Show Your Real Product

Send one product photo and Renderly generates an AI clip and AI photos that keep your real product, then renders a finished ad. About 8.5 credits per product.

Phil Duong

Founder

AI Product Videos That Show Your Real Product

A baby-products brand wrote to us with a problem we hadn't solved yet. They liked AI images for their social ads, but, in their words, "the products on the pics are different than real ones - logo, colour or the product itself." An AI model that only reads a prompt invents its own version of your product. For a store, that's useless.

So we built reference images. You give Renderly a photo of the product, and every AI scene keeps it: the shape, the colour, the logo. This tutorial shows the whole flow with a template you can use today, from one product photo to a finished 9:16 ad, and then to a whole catalogue.

Here's the finished ad, for a fictional baby brand we made for this post:

The baby bib ad: one AI clip and three AI photos, all made from one product photo.

Every photo and the opening clip in that video are AI. The only real input was one product photo of the bib. The "mossling" print is on the bib in all of them.

Key Takeaways

  • Add referenceImages (1-4 product photo URLs) to an AI image or video value, and the AI keeps your real product
  • The public AI Product Ad template turns one photo into a 21-second 9:16 ad: an AI clip, three AI photos, your copy and an end card
  • About 8.5 credits and 4-5 minutes per product, and repeats are free
  • One template serves a whole catalogue: loop over your products and send one request each

What changes when the AI sees your product?

Everything about the product. We rendered the same coffee product twice with the same prompts. The first time we sent only the prompts. The second time we added the product photo as a reference:

Three panels: the reference product photo of a terracotta pour-over dripper with KETTLEWREN printed on it; the prompt-only result, where the AI printed TERRA with a leaf; and the result with the reference photo, where KETTLEWREN is printed correctly

Without the photo, the model knew it was a "terracotta pour-over dripper" and drew a nice one, but it printed "TERRA" on it, and the clip showed another name again. With the photo, "KETTLEWREN" is on the dripper in every scene, and the dripper has the same shape as the real one.

Here's how it works behind the scenes:

  • AI photos go to gpt-image-2 as an image edit with your product photo attached, then Renderly crops the result to the exact shape of the template slot.
  • AI clips take two steps. Renderly first makes a still of your product at the clip's exact shape (9:16 or 16:9), then Veo 3.1 Fast animates that still. Because the clip starts from your product, the product stays right as it moves.
  • Renderly also adds a fixed instruction to your prompt: keep the product exactly as it is, with the same shape, colour, logo and printed text.

The template: AI Product Ad

We built a public template for this: AI Product Ad (Reference Photo), id ai-product-ad-9x16. It's a 21-second 9:16 paid-social ad with five scenes cut on the beat of a music bed:

SceneWhat's on screenAI slot
HookA video of the product in use, with your headlinehook_clip (AI video)
HeroThe product on a stone plinth, with name and pricehero_image (AI photo)
FeaturesThree numbered features over a close-updetail_image (AI photo)
LifestyleThe product at home, with one short linelifestyle_image (AI photo)
End cardYour logo, offer, a CTA button and your URL-

We designed it for stores with big catalogues, not for one product. The design is neutral cream and ink with an editorial serif, so a terracotta dripper and a sage bib both look at home in it. Every line of copy sits inside the TikTok and Reels safe zones, away from the buttons and captions those apps draw on top.

It has 16 variables. Four are the AI slots above. The other twelve are your copy and logo: headline, product_name, price, feature_1, feature_2, feature_3, lifestyle_text, store_name, offer, cta, url and logo.

Step 1: Get a good product photo

Most stores already have the right photo: the main catalogue shot. One product, a plain background, front-facing, logo visible. It needs to be a PNG, JPEG or WebP at a public https:// URL, at most 10 MB. Renderly checks every reference URL before it charges anything, and a URL that doesn't answer with an image gets a clear 400 error.

A few things we learned from testing:

  • Flat, evenly lit shots keep the product best. The model copies what it can see clearly.
  • Make the logo legible in the photo. If the print is tiny or blurry, the model can't read it either.
  • Up to four photos help with complex products. A front and a back view, for example.

Step 2: Write prompts once, for every product

The trick for a catalogue is to write each prompt once, with a {product} placeholder, and fill it from your product data. These are the prompts the template's demo uses:

Hook clip ({use_action} is what a person does with the product):

A real everyday moment of a person using the {product}: {use_action}.
Natural movement, the product clearly visible and exactly as in the
reference, the logo facing the camera, bright calm modern home, soft
natural window light, warm cream and oak tones, handheld documentary
camera with gentle movement, authentic premium DTC commercial

Hero photo:

The {product} as the hero of a premium product photo, displayed on a
smooth sculpted stone plinth, soft warm side daylight, calm seamless
backdrop in warm stone and cream tones, gentle soft shadows, the logo
facing the camera, the product centred in the upper half with clean
empty space in the lower third of the frame, high-end DTC brand
advertising photography

Close-up: Close-up detail shot of the {product}, filling most of the frame, showing its material, texture and finish, the printed logo sharp and legible, soft raking daylight, neutral warm background, shallow depth of field, premium macro product photography

Lifestyle: Lifestyle photo of the {product} in real everyday use in a bright, calm modern home, soft natural window light, warm neutral interior in cream, oak and linen tones, candid and authentic, the product clearly visible and exactly as in the reference, the top third of the frame calm and uncluttered, editorial DTC brand photography

For the bib, {use_action} was "a toddler wearing the bib eats from a bowl with a spoon, a few bits of food drop into the bib's front pocket". For the coffee set, it was "a person slowly pours hot water from a gooseneck kettle through the dripper, coffee drips into the carafe, steam rising". That one line is the only creative writing per product, and you can keep a default per category.

Step 3: Send the render request

Put a video value on hook_clip, image values on the three photo slots, and the same product photo in each one's referenceImages. Here's the coffee request, with the prompts cut short:

POST https://renderly.video/api/v1/renders
Authorization: Bearer rnd_...
 
{
  "templateId": "ai-product-ad-9x16",
  "replacements": {
    "hook_clip": { "video": {
      "prompt": "A real everyday moment of a person using the matte terracotta ceramic pour-over coffee dripper on a glass carafe: a person slowly pours hot water ...",
      "referenceImages": ["https://cdn.example.com/products/pour-over.png"]
    } },
    "hero_image": { "image": {
      "prompt": "The matte terracotta ceramic pour-over coffee dripper on a glass carafe as the hero of a premium product photo ...",
      "referenceImages": ["https://cdn.example.com/products/pour-over.png"]
    } },
    "detail_image": { "image": { "prompt": "Close-up detail shot of the ...", "referenceImages": ["https://cdn.example.com/products/pour-over.png"] } },
    "lifestyle_image": { "image": { "prompt": "Lifestyle photo of the ...", "referenceImages": ["https://cdn.example.com/products/pour-over.png"] } },
 
    "headline": "Slow mornings, brewed well.",
    "product_name": "The Terracotta Pour-Over Set",
    "price": "$68",
    "feature_1": "Hand-glazed matte ceramic",
    "feature_2": "Heat-safe glass carafe",
    "feature_3": "Brews a clean, bright cup",
    "lifestyle_text": "Make the morning slow.",
    "store_name": "Kettlewren",
    "logo": "https://cdn.example.com/brand/logo-dark.png",
    "offer": "Free filters with your set",
    "cta": "Shop now",
    "url": "kettlewren.co"
  }
}

The response comes back with status: "GENERATING" and a jobId. Renderly makes the three photos and the product still first, then starts the clip, and the render waits until the clip is ready. Poll GET /api/v1/renders/:jobId, or register a webhook and wait for render.completed.

We ran exactly this request on production. The request answered in 67 seconds, the clip was ready about two and a half minutes later, and the finished video was done 4 minutes 22 seconds after we sent it:

Six frames from the coffee version of the template: a person pouring water through the terracotta dripper with the headline, the dripper on a stone plinth with name and price, the features over a close-up showing KETTLEWREN, a lifestyle shot of a kettle pouring, and the Kettlewren end card

Same template, a different product in a different category, and no layout change. The only things we changed were the photo, the prompts and the copy. Here's the video that request returned:

The coffee set ad, rendered on production by the exact request above: 8.5 credits, 4 minutes 22 seconds.

Step 4: Run it across your catalogue

Once one product looks right, the rest is a loop. Here's the shape of it in Node:

const products = await loadCatalogue(); // [{ name, photoUrl, useAction, price, features, ... }]
 
for (const p of products) {
  const ref = [p.photoUrl];
  const res = await fetch("https://renderly.video/api/v1/renders", {
    method: "POST",
    headers: { Authorization: `Bearer ${process.env.RENDERLY_API_KEY}`, "Content-Type": "application/json" },
    body: JSON.stringify({
      templateId: "ai-product-ad-9x16",
      replacements: {
        hook_clip:       { video: { prompt: hookPrompt(p), referenceImages: ref } },
        hero_image:      { image: { prompt: heroPrompt(p), referenceImages: ref } },
        detail_image:    { image: { prompt: detailPrompt(p), referenceImages: ref } },
        lifestyle_image: { image: { prompt: lifestylePrompt(p), referenceImages: ref } },
        headline: p.headline, product_name: p.name, price: p.price,
        feature_1: p.features[0], feature_2: p.features[1], feature_3: p.features[2],
        lifestyle_text: p.tagline, store_name: "Your Store", logo: LOGO_URL,
        offer: "Free shipping over $50", cta: "Shop now", url: "yourstore.com",
      },
    }),
  });
  const { data } = await res.json();
  console.log(p.name, data.jobId); // the finished MP4 arrives on your render.completed webhook
}

Each request is independent, so a failed product doesn't stop the batch. Every text field needs a value: an empty string shows placeholder text rather than hiding the line. For more on running big batches, see how to generate 1,000 personalized videos.

What does it cost?

The template uses the 1K size for its three photos. Per product:

PartCredits
AI clip, 4 seconds, with the product still it starts from6.5
Three AI photos with a reference, 1K1.5
The 21-second render0.5
Total8.5

Our coffee render charged exactly that: the balance went down by 8.5. An AI photo with a reference always uses the quality model, so it costs the same as a quality photo today: 0.5 credits at 1K, 1 credit at 2K. A clip with a reference costs 1.5 credits per second plus 0.5 for the still.

Repeats are free. Renderly stores every scene it makes, keyed on the prompt, the size, the seed and the reference photos. Send the same product again, say with a new price or offer, and the AI scenes come from storage. You pay only the 0.5-credit render. Change videoSeed or imageSeed when you want a fresh take.

Failures are refunded. If the provider refuses a prompt or a clip fails, the credits for that work come back automatically and the render fails with a clear message.

Tips and limits

We made a lot of these while building the template. What we learned:

  • Name the product the way your catalogue does. "Matte terracotta ceramic pour-over dripper on a glass carafe" works better than "coffee thing". The prompt and the photo should agree.
  • Precise actions are hard. We asked for food to fall into the bib's pocket. The clip shows food already in the pocket and a spoon moving over it, but never a clear fall. Write {use_action} as something a camera would see in a few seconds, not a sequence of events.
  • Colour can drift slightly. The product stays recognisably the same, but a shade can move a little between scenes. Preview a few products before a big batch.
  • Use a dark logo. The end card is cream, so a white logo disappears. A dark logo on a transparent background works best.
  • Keep text to the template's limits. The boxes fit about 28 characters for the headline, 32 for the product name and 30 per feature.
  • Previews don't generate AI. A preview render shows the template's default media and charges nothing. Send confirmAiCost: true if you want a preview with the AI photos.

Getting started

API keys are self-serve: grab one from your Renderly dashboard under Settings → API Keys.

  1. Open the AI Product Ad template and watch the demo.
  2. Try one product with the request above, using your own product photo URL.
  3. Loop over your catalogue when it looks right.

Everything in this post also works on your own templates. Any isDynamic image or video layer accepts an AI value with referenceImages. The AI features guide has every field, and the MCP guide shows how to use Renderly from Claude.

If you sell physical products and try this on your catalogue, we'd love to see the result. Write to us at support@renderly.video.

Frequently asked

Can AI video keep my exact product, logo and colour?
Yes, when you give it a photo of the product. Add referenceImages (1 to 4 product photo URLs) to an AI image or video value, and Renderly tells the model to keep the product's shape, colour, logo and printed text. In our tests the wordmark was right in every scene with a reference and wrong in every scene without one.
How much does an AI product video cost on Renderly?
With the AI Product Ad template, about 8.5 credits per product: 6.5 for a 4-second AI clip (including the product still it starts from), 0.5 each for three AI photos, and 0.5 for the render. Repeating the same product with the same prompts is free, because every generated scene is stored.
How long does one product video take?
About four to five minutes. In our production test, the request answered in 67 seconds with status GENERATING, the AI clip was ready about two and a half minutes later, and the finished video was done 4 minutes 22 seconds after the request.
Does this work for any product, or only one category?
Any product with a clean photo. The template is neutral cream and ink, so the product carries the colour, and the prompts use a {product} placeholder. We rendered a silicone baby bib and a ceramic pour-over coffee set from the same template with no layout change.
What makes a good reference photo?
One product on a plain background, front-facing, sharp, with the logo visible. A PNG, JPEG or WebP at a public https URL, at most 10 MB. Flat, evenly lit catalogue shots keep the product best. A busy lifestyle photo as the reference gives the model more to misread.