Use when the user wants to reverse-engineer an existing image ad into a reusable prompt template. Validates via Arcads — picks gpt-image-2 or Nano Banana at Phase 1. Triggers on "clone this ad as a template", "reverse engineer this ad", "turn this ad into a prompt", "extract a template", "make this ad reusable", "add to my prompt library", "study this ad and make a template". Input is an EXISTING ad image; does NOT trigger for fresh generation (use chatgpt-image-ad or nano-banana-image-ad).
74
92%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Take an existing image ad and turn it into a reusable, parameterizable prompt template that gets appended to the shared 37-template image-ad library. The template is validated by round-tripping through one of the Arcads image-ad generators — ChatGPT Image 2 (typography / UI-mimicry templates) or Nano Banana (photoreal / lifestyle / multi-reference templates).
This skill replaces the older Uni1-locked image-ad-clone (which only worked with Luma uni-1). It's backend-agnostic: at Phase 1 the agent asks you (or auto-detects from the reference) whether to validate against gpt-image-2 or Nano Banana, then routes through the matching generator script in this repo.
Inherits all 6 hard rules from the shared guide (strip platform chrome, validate by generating, test the generalized version, no brand-specific text in the final template, never silently overwrite, document model notes for both backends). Plus per-repo:
Pick by what the reference ad is showing — most templates fall into one clear bucket.
Use chatgpt-image-ad (gpt-image-2) when the reference is:
Use nano-banana-image-ad (Nano Banana family) when the reference is:
If the reference straddles both (e.g. a UGC-style photo with rendered text overlays), the safer default is to clone twice — once per backend — and ship the template with Model notes saying which renders cleaner. The agent will offer this in Phase 8.
If the user explicitly says "clone this with gpt-image-2" or "with Nano Banana", honor that.
This skill uses the matching generator script in the SAME repo:
skills/chatgpt-image-ad/scripts/generate_image.py (locked to model: gpt-image-2)skills/nano-banana-image-ad/scripts/generate_image.py (nano-banana-2 default; --model nano-banana-pro or nano-banana-edit opt-in)Fail Phase 1 with a fix-it message if neither generator is installed in this repo.
Also required:
.env with ARCADS_BASIC_AUTH or ARCADS_API_KEYPRODUCT_ID in .env — if not set, the generator auto-fetches the first Arcads productWhen the shared guide Phase 1 tells you to locate the companion generator, look here in order based on the model choice:
For gpt-image-2:
~/.claude/skills/chatgpt-image-ad/scripts/generate_image.py<repo>/skills/chatgpt-image-ad/scripts/generate_image.pychatgpt-image-ad first.For Nano Banana:
~/.claude/skills/nano-banana-image-ad/scripts/generate_image.py<repo>/skills/nano-banana-image-ad/scripts/generate_image.pynano-banana-image-ad first.The Arcads image endpoint (/v2/images/generate) accepts only 1:1, 16:9, 9:16 — regardless of which model (gpt-image-2 or nano-banana) you're hitting. When measuring the original ad's aspect (Phase 2):
4:5, 2:3, 5:4 ads → render at 1:1 and post-crop in your downstream ad-builder skill1.91:1 ads → render at 16:9 and post-crop9:16 ads → native, no changeDocument the ratio fallback in the template's Aspect ratio: field so future users know they're rendering at a mapped ratio, not the original.
(The KIE per-API repo's image-ad-clone skill supports a broader native ratio set — 4:5, 2:3, 3:2, etc. — because KIE's /jobs/createTask Nano Banana endpoint accepts them. If aspect-ratio fidelity matters more than Arcads-specific control, consider the KIE repo for that template.)
.env has Arcads creds; both generators detected. Ask the user which model to validate against (or auto-detect from the reference's typography-vs-photo balance).--image-ref <reference_path> and the matched aspect ratio.{brand.name}, {brand.color_primary}, etc.).Model notes block.template-format.md. Required fields: tag, when-to-use, aspect ratio, reference image guidance, variable schema, template prompt (full validated), example fill, Model notes for both backends, validated example path.shared/skills/image-ad-prompting/prompting/prompt-library.md. Print path. Move PNGs to permanent iteration dir.<cwd>/iterations/clone-2026-05-26/
T40-lifestyle-hero/
prompt.txt
v1.png, v2.png, … # against the source ref (chosen backend)
test-fill-v1.png, … # Phase 7 generalization test against a different brand
cross-{other-backend}/v1.png # Phase 8 cross-model validation (optional)
notes.mdModel notes patterns to write in Phase 9**Model notes:**
- **gpt-image-2:** {observed behavior — e.g. "clean — strong on UI mimicry and table text", "tends to add a 4th Slack message — keep prompt explicit about exactly N", "small chart axis labels blur — bump font size feel"}
- **nano-banana:** {observed behavior — e.g. "strong — preferred backend for handheld board photos", "character identity drifts across variants on -2; use -pro to lock", "weak on dense table text — keep rows to 4 max"}If you only validated against one model in Phase 8, say so explicitly:
**Model notes:**
- **gpt-image-2:** validated clean (see iteration path)
- **nano-banana:** untested — validate before using on nano-banana-image-ad backendThe diff between a uni-1-era library and this one is this Model notes block. Don't skip it — it's the difference between a portable template and one nobody knows how to use.
0bfafb2
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.