# Recipe 04 — Product image set with an exact wordmark One product, one wordmark, five deliverables an e-commerce listing needs — with the brand's real letterforms on every asset. Every image below is the actual output of the calls shown; nothing was retouched.
![]() 1 · Packshot |
![]() 2 · Lifestyle scene |
![]() 3 · Background swap |
![]() 4 · Campaign poster |
![]() 5 · Product loop |
The media URL it returns is the reference for steps 1 and 4. (Already online? `popcraft_media_import_url` takes any public URL.)
## 1. Packshot with the exact wordmark — GPT Image 2.5
```
popcraft_generate_image {
model: "gpt-image-2-5", aspect_ratio: "1:1", resolution: "2K",
medias: [{ role: "reference", value:
[Full size](https://cdn.popcraft.ai/imagegen/9e3f56a3-ee2f-44c7-b3e3-a979db9cf5a0/product-packshot-for-a-catalog.png) · 15 credits · first attempt
Check the wordmark at 100% zoom before going further — on a reference-driven product shot it is the first thing to drift. Here it came back in the real DM Serif letterforms.
## 2. Lifestyle scene — Nano Banana Pro
```
popcraft_generate_image {
model: "nano-banana-pro", aspect_ratio: "4:5", resolution: "2K",
medias: [{ role: "reference", value:
[Full size](https://cdn.popcraft.ai/imagegen/584c491d-7332-434c-b4dc-6212b4422dcf/place-the-attached-matte-black-water.png) · 20 credits (unlimited on Plus, Pro and Max)
## 3. Background swap — same call, 1:1
> Keep the attached product exactly as it is — same bottle, same matte finish, same white "Popcraft" wordmark with the same letterforms, same angle and lighting on the object — and replace only the background with a white marble kitchen counter and soft morning window light, with a natural contact shadow under the base.
[Full size](https://cdn.popcraft.ai/imagegen/122a38bd-9d66-4f84-871c-e65499452658/keep-the-attached-product-exactly.png) · 20 credits
## 4. Campaign poster with a logo lock-up — Nano Banana Pro, 4K
Two references this time: the packshot and the wordmark PNG.
```
popcraft_generate_image {
model: "nano-banana-pro", aspect_ratio: "4:5", resolution: "4K",
medias: [{ role: "reference", value:
[Full size, 4K](https://cdn.popcraft.ai/imagegen/13ec8762-97a5-4add-a4aa-c784ce133f14/campaign-poster-portrait-format-hero.png) · 35 credits at 4K
The lock-up came back in the real letterforms — the wordmark reference did the work; without it the model invents a typeface.
## 5. Product loop for the listing — Seedance 2.0 Fast
```
popcraft_generate_video {
model: "seedance-2-0-fast", aspect_ratio: "1:1", duration: 5, resolution: "720p",
medias: [{ role: "image", value:
[▶ MP4, 720p](https://cdn.popcraft.ai/videogen/84c23f8a-930d-4ba0-8154-74784ef89d5b/image-1-is-the-product.mp4) · 5 s · Seedance 2.0 Fast is 20 credits per second at 720p (Pro and Max include a daily Seedance 2.0 Fast & Mini allowance at no credit cost; Mini does the same job for 14 per second)
Seedance's real-person verification ran on the reference and passed (it is a bottle). With "the wordmark stays sharp and readable" in the prompt the model favours a gentle turn over a full 180° orbit — drop that clause if the label may pass out of view.
## The rules that made the difference
- Give every reference a role in the prompt ("Reference image 1 is a wordmark…", "Image 1 is the product") and separate what must **change** from what must **stay**.
- Make the packshot once with the text-accurate model, then reuse it as the reference for every scene — consistency comes from the reference, not from repeating the description.
- Preview video with `get_cost: true`; images on Nano Banana Pro are unlimited on Plus, Pro and Max, so iterate on the scenes freely and spend the care on the packshot.