{"id":"a9698f0d-852d-431a-9172-cb22b6333f0d","shortId":"fhT7PX","kind":"skill","title":"seo-image-gen","tagline":"Generate SEO-focused images such as OG cards, hero images, schema assets, product visuals, and infographics. Use when image generation is part of an SEO workflow or content publishing task.","description":"# SEO Image Gen: AI Image Generation for SEO Assets (Extension)\n\nGenerate production-ready images for SEO use cases using Gemini's image generation\nvia the banana Creative Director pipeline. Maps SEO needs to optimized domain modes,\naspect ratios, and resolution defaults.\n\n## When to Use\n- Use when generating OG images, hero images, schema visuals, infographics, or similar SEO assets.\n- Use when image generation is part of a broader SEO or publishing workflow.\n- Use only when the required image-generation extension is available.\n\n## Architecture Note\n\nThis skill has two components with distinct roles:\n- **SKILL.md** (this file): Handles interactive `/seo image-gen` commands for generating images\n- **Agent** (`agents/seo-image-gen.md`): Audit-only analyst spawned during `/seo audit` to assess existing OG/social images and produce a generation plan (never auto-generates)\n\n## Prerequisites\n\nThis skill requires the banana extension to be installed:\n```bash\n./extensions/banana/install.sh\n```\n\n**Check availability:** Before using any image generation tool, verify the MCP server\nis connected by checking if `gemini_generate_image` or `set_aspect_ratio` tools are\navailable. If tools are not available, inform the user the extension is not installed\nand provide install instructions.\n\n## Quick Reference\n\n| Command | What it does |\n|---------|-------------|\n| `/seo image-gen og <description>` | Generate OG/social preview image (1200x630 feel) |\n| `/seo image-gen hero <description>` | Blog hero image (widescreen, dramatic) |\n| `/seo image-gen product <description>` | Product photography (clean, white BG) |\n| `/seo image-gen infographic <description>` | Infographic visual (vertical, data-heavy) |\n| `/seo image-gen custom <description>` | Custom image with full Creative Director pipeline |\n| `/seo image-gen batch <description> [N]` | Generate N variations (default: 3) |\n\n## SEO Image Use Cases\n\nEach use case maps to pre-configured banana parameters:\n\n| Use Case | Aspect Ratio | Resolution | Domain Mode | Notes |\n|----------|-------------|------------|-------------|-------|\n| **OG/Social Preview** | `16:9` | `1K` | Product or UI/Web | Clean, professional, text-friendly |\n| **Blog Hero** | `16:9` | `2K` | Cinema or Editorial | Dramatic, atmospheric, editorial quality |\n| **Schema Image** | `4:3` | `1K` | Product | Clean, descriptive, schema ImageObject |\n| **Social Square** | `1:1` | `1K` | UI/Web | Platform-optimized square |\n| **Product Photo** | `4:3` | `2K` | Product | White background, studio lighting |\n| **Infographic** | `2:3` | `4K` | Infographic | Data-heavy, vertical layout |\n| **Favicon/Icon** | `1:1` | `512` | Logo | Minimal, scalable, recognizable |\n| **Pinterest Pin** | `2:3` | `2K` | Editorial | Tall vertical card |\n\n## Generation Pipeline\n\nFor every generation request:\n\n1. **Identify use case** from command or context (og, hero, product, etc.)\n2. **Apply SEO defaults** from the use cases table above\n3. **Set aspect ratio** via `set_aspect_ratio` MCP tool\n4. **Construct Reasoning Brief** using the banana Creative Director pipeline:\n   - Load `references/prompt-engineering.md` for the 6-component system\n   - Apply domain mode emphasis (Subject 30%, Style 25%, Context 15%, etc.)\n   - Be SPECIFIC and VISCERAL: describe what the camera sees\n5. **Generate** via `gemini_generate_image` MCP tool\n6. **Post-generation SEO checklist** (see below)\n\n### Check for Presets\n\nIf the user mentions a brand or has SEO presets configured:\n```bash\npython3 ~/.claude/skills/seo-image-gen/scripts/presets.py list\n```\nLoad matching preset and apply as defaults. Also check `references/seo-image-presets.md`\nfor SEO-specific preset templates.\n\n## Post-Generation SEO Checklist\n\nAfter every successful generation, guide the user on:\n\n1. **Alt text**:Write descriptive, keyword-rich alt text for the generated image\n2. **File naming**:Rename to SEO-friendly format: `keyword-description-widthxheight.webp`\n3. **WebP conversion**:Convert to WebP for optimal page speed:\n   ```bash\n   magick output.png -quality 85 output.webp\n   ```\n4. **File size**:Target under 200KB for hero images, under 100KB for thumbnails\n5. **Schema markup**:Suggest `ImageObject` schema for the generated image:\n   ```json\n   {\n     \"@type\": \"ImageObject\",\n     \"url\": \"https://example.com/images/keyword-description.webp\",\n     \"width\": 1200,\n     \"height\": 630,\n     \"caption\": \"Descriptive caption with target keyword\"\n   }\n   ```\n6. **OG meta tags**:For social preview images, remind about:\n   ```html\n   <meta property=\"og:image\" content=\"https://example.com/images/og-image.webp\" />\n   <meta property=\"og:image:width\" content=\"1200\" />\n   <meta property=\"og:image:height\" content=\"630\" />\n   <meta property=\"og:image:alt\" content=\"Descriptive alt text\" />\n   ```\n\n## Cost Awareness\n\nImage generation costs money. Be transparent:\n- Show estimated cost before generating (especially for batch)\n- Log every generation: `python3 ~/.claude/skills/seo-image-gen/scripts/cost_tracker.py log --model MODEL --resolution RES --prompt \"brief\"`\n- Run `cost_tracker.py summary` if user asks about usage\n\nApproximate costs (gemini-3.1-flash):\n- 512: ~$0.02/image\n- 1K resolution: ~$0.04/image\n- 2K resolution: ~$0.08/image\n- 4K resolution: ~$0.16/image\n\n## Model Routing\n\n| Scenario | Model | Why |\n|----------|-------|-----|\n| OG images, social previews | `gemini-3.1-flash-image-preview` @ 1K | Fast, cost-effective |\n| Hero images, product photos | `gemini-3.1-flash-image-preview` @ 2K | Quality + detail |\n| Infographics with text | `gemini-3.1-flash-image-preview` @ 2K, thinking: high | Better text rendering |\n| Quick drafts | `gemini-2.5-flash-image` @ 512 | Rapid iteration |\n\n## Error Handling\n\n| Error | Resolution |\n|-------|-----------|\n| MCP not configured | Run `./extensions/banana/install.sh` |\n| API key invalid | New key at https://aistudio.google.com/apikey |\n| Rate limited (429) | Wait 60s, retry. Free tier: ~10 RPM / ~500 RPD |\n| `IMAGE_SAFETY` | Rephrase prompt - see `references/prompt-engineering.md` Safety section |\n| MCP unavailable | Fall back: `python3 ~/.claude/skills/seo-image-gen/scripts/generate.py --prompt \"...\" --aspect-ratio \"16:9\"` |\n| Extension not installed | Show install instructions: `./extensions/banana/install.sh` |\n\n## Cross-Skill Integration\n\n- **seo-images** (analysis) feeds into **seo-image-gen** (generation): audit results from `/seo images` identify missing or low-quality images; use those findings to drive `/seo image-gen` commands\n- **seo-audit** spawns the seo-image-gen **agent** (not this skill) to analyze OG/social images across the site and produce a prioritized generation plan\n- **seo-schema** can consume generated images: after generation, suggest `ImageObject` schema markup pointing to the new assets\n\n## Reference Documentation\n\nLoad on-demand. Do NOT load all at startup:\n- `references/prompt-engineering.md`:6-component system, domain modes, templates\n- `references/gemini-models.md`:Model specs, rate limits, capabilities\n- `references/mcp-tools.md`:MCP tool parameters and responses\n- `references/post-processing.md`:ImageMagick/FFmpeg pipeline recipes\n- `references/cost-tracking.md`:Pricing, usage tracking\n- `references/presets.md`:Brand preset management\n- `references/seo-image-presets.md`:SEO-specific preset templates\n\n## Response Format\n\nAfter generating, always provide:\n1. **Image path**:where it was saved\n2. **Crafted prompt**:show what was sent to the API (educational)\n3. **Settings**:model, aspect ratio, resolution\n4. **SEO checklist**:alt text suggestion, file naming, WebP conversion\n5. **Schema snippet**:ImageObject or og:image markup if applicable\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["seo","image","gen","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding"],"capabilities":["skill","source-sickn33","skill-seo-image-gen","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/seo-image-gen","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34515 github stars · SKILL.md body (7,968 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T12:51:44.350Z","embedding":null,"createdAt":"2026-04-18T21:44:33.164Z","updatedAt":"2026-04-22T12:51:44.350Z","lastSeenAt":"2026-04-22T12:51:44.350Z","tsv":"'-2.5':733 '-3.1':665,692,707,719 '/.claude/skills/seo-image-gen/scripts/cost_tracker.py':646 '/.claude/skills/seo-image-gen/scripts/generate.py':783 '/.claude/skills/seo-image-gen/scripts/presets.py':504 '/apikey':757 '/extensions/banana/install.sh':177,748,796 '/image':669,673,677,681 '/images/keyword-description.webp':604 '/seo':134,150,228,239,249,259,270,282,815,829 '0.02':668 '0.04':672 '0.08':676 '0.16':680 '1':352,353,381,382,403,535,933 '10':766 '100kb':585 '1200':606 '1200x630':237 '15':461 '16':317,330,788 '1k':319,344,354,670,697 '2':371,390,415,549,940 '200kb':580 '25':459 '2k':332,364,392,674,712,724 '3':292,343,363,372,391,425,559,951 '30':457 '4':342,362,435,575,957 '429':760 '4k':373,678 '5':472,588,967 '500':768 '512':383,667,737 '6':449,480,615,891 '60s':762 '630':608 '85':573 '9':318,331,789 'across':851 'agent':142,843 'agents/seo-image-gen.md':143 'ai':39 'aistudio.google.com':756 'aistudio.google.com/apikey':755 'also':513 'alt':536,543,960 'alway':931 'analysi':804 'analyst':147 'analyz':848 'api':749,949 'appli':416,452,510 'applic':976 'approxim':662 'architectur':119 'ask':659,1010 'aspect':73,200,309,427,431,786,954 'aspect-ratio':785 'assess':153 'asset':17,44,94,877 'atmospher':337 'audit':145,151,812,836 'audit-on':144 'auto':164 'auto-gener':163 'avail':118,179,204,209 'awar':627 'back':781 'background':367 'banana':62,171,305,441 'bash':176,502,569 'batch':286,641 'better':727 'bg':258 'blog':244,328 'boundari':1018 'brand':496,918 'brief':438,653 'broader':103 'camera':470 'capabl':902 'caption':609,611 'card':13,396 'case':54,296,299,308,406,422 'check':178,193,488,514 'checklist':485,526,959 'cinema':333 'clarif':1012 'clean':256,323,346 'clear':985 'command':138,224,408,833 'compon':125,450,892 'configur':304,501,746 'connect':191 'construct':436 'consum':864 'content':33 'context':410,460 'convers':561,966 'convert':562 'cost':626,630,636,663,700 'cost-effect':699 'cost_tracker.py':655 'craft':941 'creativ':63,279,442 'criteria':1021 'cross':798 'cross-skil':797 'custom':274,275 'data':268,376 'data-heavi':267,375 'default':77,291,418,512 'demand':883 'describ':467,989 'descript':347,539,610 'detail':714 'director':64,280,443 'distinct':127 'document':879 'domain':71,312,453,894 'draft':731 'dramat':248,336 'drive':828 'editori':335,338,393 'educ':950 'effect':701 'emphasi':455 'environ':1001 'environment-specif':1000 'error':740,742 'especi':639 'estim':635 'etc':414,462 'everi':400,528,643 'example.com':603 'example.com/images/keyword-description.webp':602 'exist':154 'expert':1006 'extens':45,116,172,214,790 'fall':780 'fast':698 'favicon/icon':380 'feed':805 'feel':238 'file':131,550,576,963 'find':826 'flash':666,694,709,721,735 'flash-imag':734 'flash-image-preview':693,708,720 'focus':8 'format':557,928 'free':764 'friend':327,556 'full':278 'gemini':56,195,475,664,691,706,718,732 'gen':4,38,137,231,242,252,262,273,285,810,832,842 'generat':5,25,41,46,59,83,98,115,140,160,165,184,196,233,288,397,401,473,476,483,524,530,547,596,629,638,644,811,858,865,868,930 'guid':531 'handl':132,741 'heavi':269,377 'height':607 'hero':14,86,243,245,329,412,582,702 'high':726 'html':625 'identifi':404,817 'imag':3,9,15,24,37,40,50,58,85,87,97,114,136,141,156,183,197,230,236,241,246,251,261,272,276,284,294,341,477,548,583,597,622,628,688,695,703,710,722,736,770,803,809,816,823,831,841,850,866,934,973 'image-gen':135,229,240,250,260,271,283,830 'image-gener':113 'imagemagick/ffmpeg':910 'imageobject':349,592,600,870,970 'infograph':21,90,263,264,370,374,715 'inform':210 'input':1015 'instal':175,217,220,792,794 'instruct':221,795 'integr':800 'interact':133 'invalid':751 'iter':739 'json':598 'key':750,753 'keyword':541,614 'keyword-description-widthxheight.webp':558 'keyword-rich':540 'layout':379 'light':369 'limit':759,901,977 'list':505 'load':445,506,880,886 'log':642,647 'logo':384 'low':821 'low-qual':820 'magick':570 'manag':920 'map':66,300 'markup':590,872,974 'match':507,986 'mcp':188,433,478,744,778,904 'mention':494 'meta':617 'minim':385 'miss':818,1023 'mode':72,313,454,895 'model':648,649,682,685,898,953 'money':631 'n':287,289 'name':551,964 'need':68 'never':162 'new':752,876 'note':120,314 'og':12,84,232,411,616,687,972 'og/social':155,234,315,849 'on-demand':881 'optim':70,358,566 'output':995 'output.png':571 'output.webp':574 'page':567 'paramet':306,906 'part':27,100 'path':935 'permiss':1016 'photo':361,705 'photographi':255 'pin':389 'pinterest':388 'pipelin':65,281,398,444,911 'plan':161,859 'platform':357 'platform-optim':356 'point':873 'post':482,523 'post-gener':481,522 'pre':303 'pre-configur':302 'prerequisit':166 'preset':490,500,508,520,919,925 'preview':235,316,621,690,696,711,723 'price':914 'priorit':857 'produc':158,855 'product':18,48,253,254,320,345,360,365,413,704 'production-readi':47 'profession':324 'prompt':652,773,784,942 'provid':219,932 'publish':34,106 'python3':503,645,782 'qualiti':339,572,713,822 'quick':222,730 'rapid':738 'rate':758,900 'ratio':74,201,310,428,432,787,955 'readi':49 'reason':437 'recip':912 'recogniz':387 'refer':223,878 'references/cost-tracking.md':913 'references/gemini-models.md':897 'references/mcp-tools.md':903 'references/post-processing.md':909 'references/presets.md':917 'references/prompt-engineering.md':446,775,890 'references/seo-image-presets.md':515,921 'remind':623 'renam':552 'render':729 'rephras':772 'request':402 'requir':112,169,1014 'res':651 'resolut':76,311,650,671,675,679,743,956 'respons':908,927 'result':813 'retri':763 'review':1007 'rich':542 'role':128 'rout':683 'rpd':769 'rpm':767 'run':654,747 'safeti':771,776,1017 'save':939 'scalabl':386 'scenario':684 'schema':16,88,340,348,589,593,862,871,968 'scope':988 'section':777 'see':471,486,774 'sent':946 'seo':2,7,30,36,43,52,67,93,104,293,417,484,499,518,525,555,802,808,835,840,861,923,958 'seo-audit':834 'seo-focus':6 'seo-friend':554 'seo-imag':801 'seo-image-gen':1,807,839 'seo-schema':860 'seo-specif':517,922 'server':189 'set':199,426,430,952 'show':634,793,943 'similar':92 'site':853 'size':577 'skill':122,168,799,846,980 'skill-seo-image-gen' 'skill.md':129 'snippet':969 'social':350,620,689 'source-sickn33' 'spawn':148,837 'spec':899 'specif':464,519,924,1002 'speed':568 'squar':351,359 'startup':889 'stop':1008 'studio':368 'style':458 'subject':456 'substitut':998 'success':529,1020 'suggest':591,869,962 'summari':656 'system':451,893 'tabl':423 'tag':618 'tall':394 'target':578,613 'task':35,984 'templat':521,896,926 'test':1004 'text':326,537,544,717,728,961 'text-friend':325 'think':725 'thumbnail':587 'tier':765 'tool':185,202,206,434,479,905 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'track':916 'transpar':633 'treat':993 'two':124 'type':599 'ui/web':322,355 'unavail':779 'url':601 'usag':661,915 'use':22,53,55,80,81,95,108,181,295,298,307,405,421,439,824,978 'user':212,493,533,658 'valid':1003 'variat':290 'verifi':186 'vertic':266,378,395 'via':60,429,474 'viscer':466 'visual':19,89,265 'wait':761 'webp':560,564,965 'white':257,366 'widescreen':247 'width':605 'workflow':31,107 'write':538","prices":[{"id":"1c2aa759-f6ba-4c85-a982-96a9ac2ea898","listingId":"a9698f0d-852d-431a-9172-cb22b6333f0d","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:44:33.164Z"}],"sources":[{"listingId":"a9698f0d-852d-431a-9172-cb22b6333f0d","source":"github","sourceId":"sickn33/antigravity-awesome-skills/seo-image-gen","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/seo-image-gen","isPrimary":false,"firstSeenAt":"2026-04-18T21:44:33.164Z","lastSeenAt":"2026-04-22T12:51:44.350Z"}],"details":{"listingId":"a9698f0d-852d-431a-9172-cb22b6333f0d","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"seo-image-gen","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34515,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-22T06:40:00Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"ea71c39b08241f9cdf075e4372da0c527586a0da","skill_md_path":"skills/seo-image-gen/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/seo-image-gen"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"seo-image-gen","description":"Generate SEO-focused images such as OG cards, hero images, schema assets, product visuals, and infographics. Use when image generation is part of an SEO workflow or content publishing task."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/seo-image-gen"},"updatedAt":"2026-04-22T12:51:44.350Z"}}