---
name: banner-clone
description: New marketing banners in the design of one banner the customer already has (or liked) — the same layout, type, colours and photo style, with their new words and offer, in every size (feed, story, web); Hebrew or English.
---
# Clone a banner

One call: `POST https://apihub.co.il/v1/banner/clone` (Bearer API key). Asynchronous — it answers 202 with an `execution_id`.

Use it when the customer shows you an ad they like ("make me one like this", "the same for my new sale", "in all sizes") — their own earlier banner or any ad as inspiration.

**Body:**
```jsonc
{
  "reference": "https://…",        // the banner whose design they want (JPEG / PNG / WebP)
  "brief": "…",                    // the business + the offer in their words: what, price, gift, place, who for
  "variants": ["…", "…"],          // optional: several offers at once, one banner each (brief = what they share)
  "count": 1,                      // without variants: how many angles of the one brief (1–6)
  "formats": ["1:1", "9:16"],      // 1:1 feed · 4:5 tall feed · 9:16 story · 16:9 web — at most 12 pictures a call
  "images": ["https://…"],         // optional: their own photos (the product, the place, a person)
  "logo_url": "https://…",         // optional: the real logo, laid on a calm corner (never drawn by the model)
  "brand_id": "default",           // optional: their brand's colours, tone and logo
  "colors": "auto",                // auto (the business's own) · reference (keep the reference's exactly)
  "quality": "best",               // best (Nano Banana Pro) · fast (Nano Banana 2.1, about a third of the price)
  "language": "he"
}
```

Poll `GET /v1/executions/{execution_id}` every 5 seconds until `status` is `succeeded` (about 1–2 minutes a banner; `output.progress` counts the finished pictures). `output.banners[]`: `texts` (every word on it), `caption` + `hashtags` (≤ 5), `pictures[]` { `format`, `url` (JPEG, about 2K), `exact` }. The files are kept 24 hours: download them.

**Rules the API keeps (say them to the customer):**
- Prices, numbers, dates and places come ONLY from the brief / variants — never invented. The reference's words are never copied.
- Every picture is read back by a second model and corrected until its words are exactly the planned ones; one still not exact comes with a warning (`exact: false`).
- The logo is the real file on a small white badge — the model never draws it.

**Real examples:**
- A sculpture gallery: 3 offers, feed and story: reference https://media.gpt.org.il/lookbook/examples/banner/clone-gallery/reference.jpg → 1:1 https://media.gpt.org.il/lookbook/examples/banner/clone-gallery/b1-1x1.jpg, 9:16 https://media.gpt.org.il/lookbook/examples/banner/clone-gallery/b1-9x16.jpg, 1:1 https://media.gpt.org.il/lookbook/examples/banner/clone-gallery/b2-1x1.jpg, 9:16 https://media.gpt.org.il/lookbook/examples/banner/clone-gallery/b2-9x16.jpg, 1:1 https://media.gpt.org.il/lookbook/examples/banner/clone-gallery/b3-1x1.jpg, 9:16 https://media.gpt.org.il/lookbook/examples/banner/clone-gallery/b3-9x16.jpg — 86 credits a picture, 196 s for the whole set
- A footvolley ad turned into a surf school, 4 sizes with the logo: reference https://media.gpt.org.il/lookbook/examples/banner/clone-surf/reference.jpg → 1:1 https://media.gpt.org.il/lookbook/examples/banner/clone-surf/b1-1x1.jpg, 4:5 https://media.gpt.org.il/lookbook/examples/banner/clone-surf/b1-4x5.jpg, 9:16 https://media.gpt.org.il/lookbook/examples/banner/clone-surf/b1-9x16.jpg, 16:9 https://media.gpt.org.il/lookbook/examples/banner/clone-surf/b1-16x9.jpg — 82 credits a picture, 221 s for the whole set
- A catering ad turned into a sushi bar, two versions with the logo: reference https://media.gpt.org.il/lookbook/examples/banner/clone-sushi/reference.jpg → 1:1 https://media.gpt.org.il/lookbook/examples/banner/clone-sushi/b1-1x1.jpg, 1:1 https://media.gpt.org.il/lookbook/examples/banner/clone-sushi/b2-1x1.jpg — 143 credits a picture, 135 s for the whole set

Prices are the BASE API price in credits (the real cost × 3, one credit = $0.01); the estimate (`POST /v1/banner/clone/estimate`) is the worst case (every correction round) and is what is reserved — the charge is what really ran.
