# Chatgpt Image Ad > Genera creativos de imagen para anuncios de Meta con ChatGPT Image 2 (gpt-image-2) vía la API de Arcads. Fija el modelo, elimina chrome de plataforma automáticamente y aplica layouts y texto a prueba de bordes. Fuente: https://skillsagentes.com/skills/krusemediallc/arcads-claude-code/chatgpt-image-ad Markdown: https://skillsagentes.com/skills/krusemediallc/arcads-claude-code/chatgpt-image-ad.md Repositorio: https://github.com/krusemediallc/arcads-claude-code Autor: krusemediallc Licencia: MIT Actualizado: hace 2 meses Coste de contexto: 161 tok instalada, 2.7k tok al activarse, 8.4k tok con todos los archivos del bundle Bundle: 2 archivos, 33 KB Permisos que pide: ninguno declarado ## Instalación Un skill son archivos markdown: los mismos archivos valen para cualquier agente y lo único que cambia es el directorio de destino, es decir la bandera `--agent`. Añade `-g` para instalarlo en todos los proyectos de la máquina. ```bash # Claude Code npx -y skills add krusemediallc/arcads-claude-code --skill chatgpt-image-ad --agent claude-code # Cursor npx -y skills add krusemediallc/arcads-claude-code --skill chatgpt-image-ad --agent cursor # Codex npx -y skills add krusemediallc/arcads-claude-code --skill chatgpt-image-ad --agent codex # Gemini CLI npx -y skills add krusemediallc/arcads-claude-code --skill chatgpt-image-ad --agent gemini # Windsurf npx -y skills add krusemediallc/arcads-claude-code --skill chatgpt-image-ad --agent windsurf # Cline npx -y skills add krusemediallc/arcads-claude-code --skill chatgpt-image-ad --agent cline ``` ## Qué hace - Genera imágenes fijas de anuncio con `gpt-image-2` (hasta 5 imágenes de referencia), especializado en anuncios con mucho texto o que imitan UI (chats, tablas comparativas, diálogos de iOS) - Aplica siempre sufijos de seguridad (sin chrome de plataforma, texto a prueba de bordes) salvo que el usuario los desactive explícitamente - Muestra el costo en créditos estimado antes de generar, y hace control de calidad visual de cada variante (texto borroso, logo con deriva) regenerando hasta 2 veces si hay defectos - No sube nada a Meta: entrega las rutas de las imágenes para que la skill de meta-ad-builder las publique ## Cuándo usarla - El usuario pide un anuncio con mucho texto o que imita una interfaz (chat, tabla comparativa, resultados de búsqueda falsos) y no menciona Nano Banana ## Cuándo no - El pedido apunta a fotorrealismo o múltiples referencias tipo lifestyle: eso usa `nano-banana-image-ad` ## Qué la activa - "Crea un anuncio con una conversación falsa de ChatGPT sobre mi producto" - "Genera un anuncio tipo tabla comparativa con GPT Image" ## Antes de instalar - Requiere `.env` con `ARCADS_BASIC_AUTH` o `ARCADS_API_KEY`; solo acepta aspect ratio 1:1, 16:9 o 9:16. - Variables de entorno: ARCADS_API_KEY, ARCADS_BASE_URL, ARCADS_BASIC_AUTH, PRODUCT_ID, PROJECT_ID - makes network requests - needs API credentials ## Archivos - SKILL.md — 10 KB - scripts/generate_image.py — 22 KB ## SKILL.md Reproducido tal cual desde krusemediallc/arcads-claude-code bajo MIT. Esta sección es el documento original y está en inglés. # chatgpt-image-ad (Arcads) Generate one or more **standalone Meta ad image creatives** via Arcads' `POST /v2/images/generate` with `model: "gpt-image-2"`. Hands the image paths off to your Meta-ad-builder skill — this skill does not upload to Meta itself. ## Read order 1. **This file** — Arcads-specific endpoint, auth, presigned upload flow, workflow phases. 2. **[shared/skills/chatgpt-image-ad/prompting/guide.md](../../shared/skills/chatgpt-image-ad/prompting/guide.md)** — model-specific prompting (what gpt-image-2 is good/bad at, when to switch to nano-banana). 3. **[shared/skills/image-ad-prompting/prompting/prompt-library.md](../../shared/skills/image-ad-prompting/prompting/prompt-library.md)** — 30+ validated templates with per-model notes. 4. **[shared/skills/image-ad-prompting/prompting/safety-suffixes.md](../../shared/skills/image-ad-prompting/prompting/safety-suffixes.md)** — the 3 always-on guards. 5. **[scripts/generate_image.py](scripts/generate_image.py)** — the helper script (Python stdlib only). ## Hard rules — never relax 1. **Model is `gpt-image-2`.** The script refuses any other value. If the user asks for nano-banana, point them at `nano-banana-image-ad`. 2. **No platform/screenshot chrome in output.** `NO_CHROME_SUFFIX` is always on (override with `--allow-chrome` only when the ad's concept *requires* chrome — rare). 3. **Edge-safe + glyph-safety suffixes always on** unless `--no-safe-zone` is explicit. They fix real failures; don't remove silently. 4. **Max 5 reference images.** Hard Arcads cap for gpt-image-2 (observed `400 Max 5 reference image(s) allowed`). The script enforces. 5. **No Meta upload from this skill.** Image generation only. The user has a separate ad-builder skill in their stack — hand off via filesystem paths. 6. **Always present a credit-cost estimate before generating** (see Arcads `arcads-external-api` skill conventions). Each gpt-image-2 call is one image; multiply by `--n` variants. ## Prerequisites - `.env` containing `ARCADS_BASIC_AUTH` (preferred, pre-encoded) OR `ARCADS_API_KEY` - Optional: `PRODUCT_ID`, `PROJECT_ID` in `.env` so generated assets land in the right Arcads dashboard folder (see `arcads-external-api` SKILL.md for the session-folder pattern) - Reference images on local disk (PNG/JPG/JPEG/WEBP/GIF). The script handles the Arcads presigned-upload flow internally — you pass local paths. ## Configuration - **Base URL:** `https://external-api.arcads.ai` (or `ARCADS_BASE_URL`). - **Auth:** HTTP Basic. The script prefers a pre-encoded `ARCADS_BASIC_AUTH` env var (e.g. `Basic ZXhhbXBsZTo=`); falls back to encoding `ARCADS_API_KEY` with an empty password. - **Endpoint:** `POST /v2/images/generate` (request); `GET /v1/assets/{id}` (poll until `status: generated`); image URL fetched once status flips. - **Reference uploads:** `POST /v1/file-upload/get-presigned-url` returns `{presignedUrl, filePath}`; `PUT` the bytes to `presignedUrl`; pass the `filePath` string in `referenceImages`. **Each filePath is single-use** — the script re-uploads per variant so parallel runs don't collide. ## Generation modes | Mode | When to use | Required | Optional | |---|---|---|---| | `image` (default) | Generate a brand-new ad image. | `--prompt`, `--aspect-ratio` | `--image-ref` (up to 5) | | `image_edit` | Modify an existing image (swap colors, change background, add element). | `--prompt`, `--source` | `--image-ref` (up to 5) | ## Supported aspect ratios `1:1`, `16:9`, `9:16`. **Only these three are accepted by Arcads' `/v2/images/generate` endpoint** (confirmed live: `aspectRatio must be one of the following values: 1:1, 16:9, 9:16`). Templates in the shared library that use `2:3`, `3:2`, `4:5`, etc. won't render at their native ratio on this backend — fall back to `1:1` and crop, or use the KIE chatgpt-image-ad sibling which supports `2:3` and `3:2` natively via its dedicated `/gpt4o-image/generate` endpoint. ## Inputs the user must provide | Input | Notes | |---|---| | Seed prompt | The creative direction in their words. You will rewrite it (see Phase 3). | | Aspect ratio | One of the 5 above. Reject anything else. | | Reference image(s) | Optional but strongly recommended when the ad features a specific product. Up to 5. | | Variant count `N` | Default 1. Cap at 5. | | Mode | `image` (default) or `image_edit`. | | Source image | Required only for `image_edit`. | ## Workflow ### Phase 1: Preflight 1. `.env` exists with `ARCADS_BASIC_AUTH` or `ARCADS_API_KEY`. 2. (Optional) `arcads-external-api` session folder is set up (see that skill's "Session setup" section). If `PRODUCT_ID` / `PROJECT_ID` aren't set, generated assets land in the default project — you can fix later via `POST /v1/assets/add-to-project`. 3. Health-check: `curl -sf -H "$AUTH" "$BASE_URL/v1/products"` returns 200. ### Phase 2: Gather inputs Collect: seed prompt, mode, source (if edit), reference paths, variant count, aspect ratio. ### Phase 3: Prompt rewrite Read [shared/skills/image-ad-prompting/prompting/prompt-library.md](../../shared/skills/image-ad-prompting/prompting/prompt-library.md). If the user's brief maps onto a template, **check the Model notes block** — only proceed if `gpt-image-2` is marked clean or preferred. If nano-banana is preferred, suggest switching skills before generating. Fill the `{placeholders}` and show the user the rewritten prompt. Ask "Use this, edit it, or start over?" Loop until approved. For fresh prompts (no template match), follow the structure in [shared/skills/chatgpt-image-ad/prompting/guide.md § Phase 3b](../../shared/skills/chatgpt-image-ad/prompting/guide.md). ### Phase 4: Credit cost confirmation (MANDATORY) Per `arcads-external-api` conventions: present an estimated credit cost (read from `logs/arcads-api.jsonl` for matching past calls, or `MASTER_CONTEXT.md` rate table). Wait for explicit confirmation before firing. ### Phase 5: Generate ```bash ~/.claude/skills/chatgpt-image-ad/scripts/generate_image.py \ --prompt "" \ --aspect-ratio \ --n \ --image-ref \ [--image-ref ] \ --out ./generated \ --env-file .env # For an edit run: ~/.claude/skills/chatgpt-image-ad/scripts/generate_image.py \ --mode image_edit \ --prompt "" \ --source \ [--image-ref ] \ --n \ --out ./generated \ --env-file .env ``` Each line on stdout is one JSON variant (`variant`, `path`, `asset_id`, `width`, `height`, `prompt`, `mode`, `aspect_ratio`, `model`). Log each call to `logs/arcads-api.jsonl` with `model=gpt-image-2`, the variant count, `referenceImages` count, and the returned `asset_id`s, per `arcads-external-api` skill conventions. ### Phase 6: Visual QA (MANDATORY) For each completed variant, **read the image** and inspect for: - Garbled small text (most common gpt-image-2 failure on dense body text) - Wordmark drift (if a brand wordmark wasn't passed as `--image-ref`) - Wrong text count (e.g. 4 Slack messages instead of 3) - iOS dialog / UI proportion drift If defects: regenerate with a revised prompt explicitly correcting the issue (see [shared/skills/chatgpt-image-ad/prompting/guide.md § Retry mode](../../shared/skills/chatgpt-image-ad/prompting/guide.md)). Cap at 2 retries per variant. ### Phase 7: Confirm and hand off Show all paths to the user. Ask "Use all / use these specific ones / regenerate / cancel." Selected variants are now ready for your **Meta-ad-builder skill** (the separate skill that handles cloning, copy, and upload). Print the paths so the user can pipe them. Optionally, write the selected paths to `./generated/run-.jsonl` (one path per line, JSON-wrapped) for downstream consumption. ## Out of scope — fail clearly - **Meta upload** — different skill in your stack. - **Nano Banana / Gemini image generation** — use `nano-banana-image-ad`. - **Video, carousel, DCO ads** — image only. - **Ad copy writing** — different skill. - **Editing the shared prompt library** — use `image-ad-clone` (asks which backend at Phase 1). ## Common errors - **401/403** → fix `.env` per `arcads-external-api` setup flow. - **400 Max 5 reference image(s) allowed** → reduce `--image-ref` count to ≤5. - **422 validation/moderation** → tighten the prompt; check that `aspectRatio` is in the supported set. - **500 UNKNOWN_ERROR** → usually a stale presigned filePath being reused. The script re-uploads per variant; if you still see this, file an issue with the `asset_id` from the response. ## Files this skill owns - `~/.claude/skills/chatgpt-image-ad/SKILL.md` — this file - `~/.claude/skills/chatgpt-image-ad/scripts/generate_image.py` — Arcads gpt-image-2 caller (presigned upload + generate + poll + download) ## See also - **[shared/skills/chatgpt-image-ad/prompting/guide.md](../../shared/skills/chatgpt-image-ad/prompting/guide.md)** — model-specific prompting (gpt-image-2 strengths/limits, when to switch to nano-banana) - **[shared/skills/image-ad-prompting/prompting/prompt-library.md](../../shared/skills/image-ad-prompting/prompting/prompt-library.md)** — shared template library (30+ entries with per-model notes) - **[shared/skills/image-ad-prompting/prompting/template-format.md](../../shared/skills/image-ad-prompting/prompting/template-format.md)** — entry skeleton for new templates - **[shared/skills/image-ad-prompting/prompting/safety-suffixes.md](../../shared/skills/image-ad-prompting/prompting/safety-suffixes.md)** — the 3 always-on guards - **[image-ad-clone skill](../image-ad-clone/SKILL.md)** — single backend-agnostic skill that reverse-engineers an existing ad into a reusable library entry - **[arcads-external-api skill](../arcads-external-api/SKILL.md)** — underlying Arcads conventions (session folder, credit cost, QA loop, logs) - **[nano-banana-image-ad skill](../nano-banana-image-ad/SKILL.md)** — sibling skill for photoreal / lifestyle / multi-ref templates ## Dónde encaja - Categoría: [Marketing](https://skillsagentes.com/categorias/marketing.md) — Campañas, copy, lanzamientos y ciclos de crecimiento. - Creador: [krusemediallc](https://skillsagentes.com/creators/krusemediallc.md) — 8 skills en el directorio - [Todas las skills](https://skillsagentes.com/skills.md) - [Ranking de instalaciones](https://skillsagentes.com/ranking.md) ## Otras skills del mismo repositorio - [Arcads External Api](https://skillsagentes.com/skills/krusemediallc/arcads-claude-code/arcads-external-api.md): Crea y consulta assets de video e imagen con IA vía la API externa de Arcads (Seedance 2.0, Sora 2, Veo 3.1, Kling, Grok Video, Nano Banana, b-roll, escenas, guiones/actores), con guía de prompting y espera hasta que cada asset esté listo. - [Nano Banana Image Ad](https://skillsagentes.com/skills/krusemediallc/arcads-claude-code/nano-banana-image-ad.md): Genera creativos de imagen para anuncios de Meta con Nano Banana 2 / Nano Banana Pro (familia Gemini Flash Image) vía la API de Arcads. Fija la familia de modelo, elimina chrome de plataforma y aplica layouts a prueba de bordes. - [Image Ad Clone](https://skillsagentes.com/skills/krusemediallc/arcads-claude-code/image-ad-clone.md): Convierte un anuncio de imagen existente en una plantilla de prompt reutilizable, validándola al regenerarla vía Arcads con ChatGPT Image 2 o Nano Banana. La plantilla se añade a la librería compartida de 37+ plantillas. - [Meta Ad Builder](https://skillsagentes.com/skills/krusemediallc/arcads-claude-code/meta-ad-builder.md): Publica creativos terminados como anuncios en vivo de Meta (Facebook/Instagram) vía la Meta Marketing API, más investigación y apoyo de copy. Sube imagen o video y crea un anuncio en PAUSA en un ad set existente. - [Generate Youtube Thumbnail](https://skillsagentes.com/skills/krusemediallc/arcads-claude-code/generate-youtube-thumbnail.md): Genera miniaturas de YouTube de alto CTR con Nano Banana 2 vía la API de Arcads: sube imágenes de referencia, cuida la fidelidad de parecido del personaje, usa fórmulas probadas por CTR y genera en lote. ## Skills relacionadas - [Marketing Council](https://skillsagentes.com/skills/coreyhaines31/marketingskills/marketing-council.md): Consejo simulado de asesores de marketing legendarios (Godin, Ogilvy, Schwartz, Dunford, Sutherland, Hormozi, Sharp y más) que aplican sus frameworks, muestran desacuerdos y sintetizan una recomendación. - [Ad Creative](https://skillsagentes.com/skills/coreyhaines31/marketingskills/ad-creative.md): Úsalo para generar, iterar o escalar creatividad publicitaria —titulares, descripciones, texto primario o variaciones completas— en cualquier plataforma de pago. - [Influencer Marketing](https://skillsagentes.com/skills/coreyhaines31/marketingskills/influencer-marketing.md): Para ejecutar partnerships de influencers, creators o embajadores: encontrar y vetar socios, estructurar tratos, redactar briefs, cumplir disclosure y medir el ROI real. - [Public Relations](https://skillsagentes.com/skills/coreyhaines31/marketingskills/public-relations.md): Para pedir ayuda con relaciones públicas, earned media, cobertura de prensa, pitching a periodistas o estrategia de medios (no pull requests). - [Revops](https://skillsagentes.com/skills/coreyhaines31/marketingskills/revops.md): Úsalo para revenue operations, gestión del ciclo de vida de leads y procesos de handoff entre marketing y sales, incluyendo scoring, routing, pipeline y CRM automation. --- Skills Agentes · [Índice de páginas en markdown](https://skillsagentes.com/sitemap.md) · [Inicio](https://skillsagentes.com/index.md)