Generate one image from a prompt using OpenAI GPT Image 2. Returns a public URL you can embed in markdown or pass to a creative-asset tool (e.g. Google Ads `createImageAsset`). Counts against the user's monthly quota.
Prompt craft (GPT Image 2 rewards long, specific, instruction-style prompts — write a paragraph, not keywords):
- Lead with the medium: photograph, 3D render, isometric vector, watercolor, flat illustration, studio product shot. Single biggest quality lever.
- Then specify subject, setting, mood, color palette, lighting (e.g. 'golden hour, soft backlight'), and camera/perspective (close-up, wide, overhead, low angle, macro).
- Keep the focal subject in the center 80% of the frame — ad platforms crop edges across placements.
- Prefer lifestyle / in-context scenes over isolated-on-white product shots. Google explicitly recommends 'physical settings with organic shadows and lighting' for ad creative.
- Don't render text unless the user asks for specific copy. Overlaid text is often unreadable at small ad sizes and Google flags it as a quality issue.
- Avoid negative prompts ('no X, no Y'). GPT Image often pulls the rejected concept in — describe what you want instead.
Ad-policy rules to bake into prompts:
- No collages, borders, watermarks, mirrored / skewed / over-filtered looks.
- No fake UI elements (play buttons, download/close icons) — Google Ads policy violation.
- Don't overlay a logo on the photo; logos belong inside the scene (on a product, sign, storefront).
- Blank space should be under 80% of the frame — the subject is the focus.
Aspect ratios — match the target placement:
- Google Ads asset slots: '1.91:1' landscape (required), '1:1' square (required), '4:5' portrait, '9:16' vertical (Demand Gen / Shorts).
- Meta / social: '1:1' or '4:5' feed; '9:16' stories/reels; '1.91:1' link previews.
- Hero / web banners: '16:9' or '3:2'. Default is '1:1'.
Quality vs latency: 'low' ~5s drafts; 'medium' balanced; 'high' runs the four-stage Understand/Plan/Generate/Review pipeline (30–50× slower than low) — use only for production-final fidelity.
Output format: default 'png' (lossless). Use 'webp' or 'jpeg' for smaller photographic assets. background='transparent' requires png/webp (use for logos, cutouts, UI assets).