# Product photo to ad: how to keep your product exact in AI ads

> Turn a product photo into an ad without a drifting label: which photos to use, products as Elements, engines that read references, and fixes when it drifts.

Published 2026-10-09 · eroq.ai — canonical: https://eroq.ai/blog/keep-your-product-exact-in-ai-ads


An AI ad that redraws your label is worse than no ad: it shows a product you do not sell. The rule behind every fix is simple. The engine has to see your product, not read about it. This guide covers what you control in the eroq [Ads Studio](/studio/ads) to make sure it does: the photo, the Element, the engine and, for video ads, the first frame.

## Start with the photo

The product photo is the identity every ad copies. In a static batch it rides into each prompt as a [reference image](/glossary/reference-image), and the prompt asks for the product "exactly as in Picture 1: same shape, colors, label and packaging". The engine can only be as exact as that picture.

One good photo is enough to start. Make it:

- **Plain:** a light, even background. No props, no hands, no other products.
- **Frontal:** the label square to the camera, sharp and readable at a glance.
- **Whole:** the full product in frame, cap or pump included, with a small margin.
- **Soft-lit:** no hard glare across the label. Glass and foil are the usual culprits.
- **Full size:** a real photo, not a shop thumbnail.
- **Without people:** a packshot, not a model holding it. Seedance engines refuse reference photos that look like real people, and fingers tend to cover the label anyway.

If the website import found your products, each one arrived with the main picture your store gives it, which can be a lifestyle shot or a model. Replace it with a packshot before your first batch.

## Make the product an Element

Every product in a brand is an [Element](/glossary/element): an object with a name, a description and a photo, filed in the brand's folder on the [Elements](/studio/elements) page (up to 50 elements per account). You can add one from its product page link (Clap reads the name and the photo, and describes how the product looks), from a photo, or by hand.

Write the description for the engines. The form says it best: describe how it looks, not what it does. Shape, material, colors, label, packaging.

- **Good:** "A 30 ml amber glass dropper bottle, gold-rimmed black pipette, cream paper label with LUMEN in black serif capitals, frosted shoulders."
- **Vague:** "Our best-selling brightening serum."

The description works twice: engines that read words only draw the product from it, and video ad prompts carry it next to the photo.

### More angles: the look sheet

One photo shows one side. When the back, the sole or a second face of the pack matters (sneakers, a box printed on every side), build a look sheet. Open the Element, add reference photos in its Identity tab, and generate the sheet: one image with a hero view, two angles and a macro detail panel. The meter reads 3 photos as "Enough", 4 as "Recommended" and 9 as the maximum, your main photo counting as the first, and each photo needs a long side of at least 512 pixels. A sheet costs one Eroq One render (20 credits), and it only counts once you accept it.

Once a product has a sheet, the Ads Studio sends the sheet instead of the photo, and the product card shows "Look sheet". You never need one for a first ad: without a sheet, the photo rides on its own. More on Elements in [how to use Elements](/blog/how-to-use-elements-places-objects-styles).

## Pick an engine that sees the product

### Static ads

The batch's engine picker leads with three engines under "Keep the product exact":

- **[Eroq One](/models/eroq-one)** reads up to 10 reference pictures (20 credits / image).
- **Krea2** (10 credits / image) and **Eroq Uncensored** (10 credits / image) read up to 4.

Every other image engine reads words only, and the studio says so under the picker: products are described, not shown. The same goes for a product with no photo, even on Eroq One. No picture, no exactness. The full batch workflow is in [static ads in batches](/blog/static-ads-in-batches).

### Video ads

In Create → Video ad, a video engine sees your product in one of three ways, and the line under the product row tells you which:

- **As a reference picture:** [Kling 3.0](/models/kling-3) and Kling 3.0 Pro (up to 4), Veo 3.1 and Veo 3.1 Fast (3), Hailuo 3 (3), Wan 3.0 (3) and the Seedance engines (6). The line reads: "sees the product photo and keeps it as it is".
- **As the first frame:** Motion One, Motion Pro, Veo 3.1 Lite, Runway Gen-4.5, Hailuo 3 Max and Grok Imagine read no reference pictures, so the clip opens on your product photo instead.
- **As words:** Sora 2 Pro takes neither, so the product is described.

By default the studio picks an engine that speaks and reads the product photo, among those your plan includes. For scale: a 5-second Kling 3.0 clip is 170 credits (Hobby plan and up), an 8-second Veo 3.1 Fast clip 216 credits (Hobby plan and up).

## Open on the product photo

On engines that read references and also take a first frame, Settings shows a switch: "Open on the product photo". The clip then starts from your actual photo, so frame one shows your real label, and the engine animates from there.

The trade-off: a clip that starts from a picture ignores reference pictures, so a presenter rides as words, not as their look sheet. In practice:

- **Product-only formats** such as Product hero and Luxury macro: open on the photo. The first second is the one that has to be right.
- **Presenter formats** such as UGC testimonial, Street interview or In real life: leave it off, so the engine reads both the product photo and the presenter's face. The [UGC video ad formats](/blog/ugc-video-ad-formats) guide covers each one.

Pick a photo whose framing works as an opening shot, and use the direction box for what happens next: "the camera pushes in as warm light slides across the label".

## Why Seedance refuses presenters

Seedance engines refuse reference photos of real-looking people, and a presenter's look sheet is built from photos. Presenters are your own Characters ([create one](/studio/characters/new)), so when you cast one on a Seedance engine, the studio warns that the presenter's face needs another engine and offers a switch when your plan includes one. Seedance still suits product-only formats, where it reads up to six reference pictures. The same rule is one more reason to keep people out of your product photo.

## When the label drifts anyway

Look at every ad at full size before it ships. A drifted label is a render that succeeded, so it is billed: test 2 to 4 ads on a new photo before you plan 24. When the label drifts:

1. **Retake or replace the photo.** Sharper, label square to the camera, no glare, a bigger file. Start here.
2. **Crop the photo to the product.** Cut hands, props and neighbors so the engine copies one subject. Keep a small margin around it.
3. **Simplify the scene.** Busy sets, hands gripping the label, steep angles and splashes all stress it. Plan a new batch, or for video, pick Product hero and open on the photo.
4. **Add a look sheet** when the drift is on a side the photo never showed.
5. **Check the engine.** If the line under the picker says "reads words only", switch to a reference engine.
6. **Let the fine print go.** Small type such as an ingredient list rarely survives a redraw. Judge the label by its brand name and main word, and set any mandatory small text in your editor.

One last case: [Multiplier](/blog/ad-multiplier-one-winning-ad-into-12-variants) product swaps are written as words, because Replace edits a clip from an instruction and reads no product photo. For a label-exact ad of another product, make a new video ad from that product's photo.

## FAQ

### How many product photos do I need for AI product ads?

One clean photo is enough to start: it rides as the reference in every static and video ad. For a look sheet that shows several sides, 3 photos is enough, 4 is recommended and 9 is the maximum, each at least 512 pixels on its long side.

### Which engines keep my product exact?

For static ads, Eroq One (up to 10 reference pictures), Krea2 and Eroq Uncensored (up to 4 each). For video ads, Kling 3.0, Veo 3.1, Hailuo 3, Wan 3.0 and the Seedance engines read the photo as a reference, and frame-driven engines such as Motion One open on it. Other engines draw the product from its description.

### Why does Seedance refuse my presenter?

Seedance engines refuse reference photos of real-looking people, and a presenter's look sheet is built from photos. The studio warns you and, when your plan includes one, offers to switch to an engine that accepts faces. In product-only formats, Seedance can still read your product photo.

### Should my video ad open on the product photo?

For product-only formats such as Product hero, yes: the first frame is your real label. With a presenter, leave it off, because a clip that starts from a picture ignores reference pictures and the presenter would ride as words.

### Do I need a look sheet before my first ad?

No. Without a sheet, the product's photo rides as the reference. Build a sheet when other sides of the product matter, from 3 or 4 photos taken from different angles.
