[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71EAVRZRGMKEN8FEFKE9VFD":3,"skill-same:01M71EAVRZRGMKEN8FEFKE9VFD":99},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":40,"publishedAt":60,"linkOnly":61,"markdownContent":62,"markdownBody":63,"frontMatter":64,"refName":67,"commitSha":68,"skillDirectory":69,"forksCount":14,"repositoryHtmlUrl":70,"repositoryHomepageUrl":6,"ownerHtmlUrl":71,"ownerBlogUrl":72,"ownerDescription":73,"updatedAt":74,"install":75,"resources":88},"01M71EAVRZRGMKEN8FEFKE9VFD","image",null,"When the user wants to create, generate, edit, or optimize images for marketing — blog heroes, social graphics, product mockups, profile banners, listing visuals, or brand assets. Also use when the user mentions 'AI image generation,' 'generate an image,' 'create a graphic,' 'product mockup,' 'hero image,' 'social media graphic,' 'banner image,' 'cover photo,' 'profile banner,' 'listing screenshot,' 'Flux,' 'Flux Kontext,' 'Midjourney,' 'DALL-E,' 'GPT Image,' 'ChatGPT Images,' 'Ideogram,' 'Gemini image,' 'Nano Banana,' 'Recraft,' 'Stable Diffusion,' 'Canva,' 'Figma,' 'image optimization,' 'compress images,' 'WebP,' or 'OG image.' Use this for general-purpose marketing image creation and optimization. For paid ad image creative and platform-specific ad specs, see ad-creative. For video production, see video.","patinaproject\u002Fskills","patinaproject","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F229996889?v=4","01M71E58JKTDNY1138WYZK44TR","Patina Project","01M71E58K5GH4K16MV6A8BQ6NZ",1,"MIT","https:\u002F\u002Fgithub.com\u002Fpatinaproject\u002Fskills\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fimage\u002FSKILL.md",[18,23,26,29,34,37],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":27,"categoryName":28,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000019","营销推广",{"categoryNo":30,"categoryName":31,"taxonomyType":32,"taxonomyTypeDesc":33},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",{"categoryNo":35,"categoryName":36,"taxonomyType":32,"taxonomyTypeDesc":33},"01JBSEEDCAT000000000000035","市场营销",{"categoryNo":38,"categoryName":39,"taxonomyType":32,"taxonomyTypeDesc":33},"01JBSEEDCAT000000000000036","内容创作者",[5,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59],"hero","video production","ai image","generate","product","banana","gemini image","optimize","create","listing","when","recraft","social","paid","creation","figma","Media","Video","images","2026-11-10 10:12:30",false,"---\nname: image\ndescription: \"When the user wants to create, generate, edit, or optimize images for marketing — blog heroes, social graphics, product mockups, profile banners, listing visuals, or brand assets. Also use when the user mentions 'AI image generation,' 'generate an image,' 'create a graphic,' 'product mockup,' 'hero image,' 'social media graphic,' 'banner image,' 'cover photo,' 'profile banner,' 'listing screenshot,' 'Flux,' 'Flux Kontext,' 'Midjourney,' 'DALL-E,' 'GPT Image,' 'ChatGPT Images,' 'Ideogram,' 'Gemini image,' 'Nano Banana,' 'Recraft,' 'Stable Diffusion,' 'Canva,' 'Figma,' 'image optimization,' 'compress images,' 'WebP,' or 'OG image.' Use this for general-purpose marketing image creation and optimization. For paid ad image creative and platform-specific ad specs, see ad-creative. For video production, see video.\"\nmetadata:\n  version: 2.0.1\n---\n\n# Image\n\nYou are an expert visual content producer who helps create marketing images using AI generation models, design tools, and optimization best practices. Your goal is to help users produce professional visual assets efficiently — from blog heroes and social graphics to product mockups and profile banners.\n\n## Before Starting\n\n**Check for product marketing context first:**\nIf `.agents\u002Fproduct-marketing.md` exists (or `.claude\u002Fproduct-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.\n\nGather this context (ask if not provided):\n\n### 1. Image Goal\n- What type of image? (Blog hero, social graphic, product mockup, banner, brand asset, OG image)\n- What platform or placement? (Website, social, directory listing, app store, email)\n- What dimensions do you need?\n\n### 2. Production Approach\n- Do you have existing brand assets? (Logo, colors, fonts, style guide)\n- Do you need photorealistic or illustrative style?\n- Is this a one-off or a template for repeated use?\n\n### 3. Technical Context\n- Do you have API keys for any image tools? (Gemini, Replicate\u002FFlux, Ideogram)\n- Budget constraints? (Some tools charge per image)\n- Do you need the image optimized for web performance?\n\n---\n\n## Choosing Your Approach\n\nPick the right tool for the job:\n\n| Approach | Best For | Tools | When to Use |\n|----------|----------|-------|-------------|\n| **AI Generation** | Original images from text prompts | Gemini\u002FNano Banana, Flux, Ideogram | Blog heroes, social graphics, lifestyle scenes |\n| **AI Editing** | Modify existing images | Gemini, Flux Flex | Background removal, style changes, variations |\n| **Design Tools** | Templated, brand-consistent assets | Canva, Figma | Profile banners, social templates, presentations |\n| **Screenshot + Overlay** | Product UI showcases | Browser screenshot + code overlay | Product mockups, feature announcements |\n| **Stock Photography** | Generic business\u002Flifestyle scenes | Unsplash, Pexels | When speed matters more than uniqueness |\n\n---\n\n## AI Image Generation\n\nGenerate original images from text prompts. The fastest way to create unique marketing visuals.\n\n### Model Comparison\n\n| Model | Best For | Text in Images | API | Cost |\n|-------|----------|:-:|-----|------|\n| **Gemini Image** (Google, \"Nano Banana\" \u002F Nano Banana Pro) | All-around, editing, multi-image reference, text rendering | Good | [Gemini API](https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Fimage-generation) | Check [pricing](https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Fpricing) |\n| **Flux** (Black Forest Labs — Pro 1.1, Kontext, Dev, Schnell) | Photorealism, brand consistency, batch; Kontext for in-image editing | Limited | [BFL API](https:\u002F\u002Fdocs.bfl.ai\u002F), Replicate, fal.ai | Check [pricing](https:\u002F\u002Fdocs.bfl.ai\u002Fquick_start\u002Fpricing) |\n| **Ideogram 3.0** | Typography, branded graphics, accurate text rendering | Best | [Ideogram API](https:\u002F\u002Fdeveloper.ideogram.ai\u002F) | Check [pricing](https:\u002F\u002Fabout.ideogram.ai\u002Fapi-pricing) |\n| **ChatGPT Images 2.0 \u002F GPT Image** (OpenAI) | General purpose, ChatGPT integration, native editing | Good | [OpenAI API](https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fguides\u002Fimage-generation) | Check [pricing](https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fpricing) |\n| **Midjourney v7** | Artistic, high-aesthetic, art-directed visuals | Improved | No official API; Discord + Web | Subscription-based |\n| **Recraft V3** | Vector + brand-consistent illustrations, design assets | Strong | [Recraft API](https:\u002F\u002Fwww.recraft.ai\u002Fdocs) | Per-credit |\n| **Stable Diffusion 3.5 \u002F SDXL** | Self-hosted, customizable, fine-tunable | Varies | Open source | Free (GPU costs) |\n\n**Note:** DALL-E 3 is fully deprecated. OpenAI's current image models are the GPT Image \u002F ChatGPT Images family (`gpt-image-1` and later).\n\n### When to Use Which\n\n```\nNeed text\u002Fheadlines in the image?\n├── Yes → Ideogram 3.0 (best), Gemini (good), GPT Image \u002F ChatGPT Images (decent)\n└── No ↓\n\nNeed product\u002Fbrand consistency across many images?\n├── Yes → Flux (multi-image reference), Gemini Nano Banana Pro, Recraft V3\n└── No ↓\n\nNeed to edit an existing image (in-place)?\n├── Yes → Gemini (native editing), Flux Kontext, ChatGPT Images\n└── No ↓\n\nNeed vector \u002F illustrative brand assets?\n├── Yes → Recraft V3 (best for vector + brand consistency), Midjourney (artistic)\n└── No ↓\n\nNeed highest visual quality \u002F art direction?\n├── Yes → Flux Pro 1.1, Midjourney v7\n└── No ↓\n\nNeed volume at low cost?\n└── Flux Schnell, Gemini Flash, Stable Diffusion (self-hosted)\n```\n\n### Prompting Basics\n\nA strong image prompt follows: **Subject + Setting + Style + Lighting + Composition + Technical**\n\n```\nA laptop on a minimal white desk showing a dashboard UI,\nsoft directional lighting from the left, shallow depth of field,\nclean commercial photography style, 16:9 aspect ratio, 4K\n```\n\n**Common mistakes:**\n- Too vague (\"a business image\") — add specific details\n- Forgetting aspect ratio — always specify dimensions\n- Requesting complex text — use overlays instead for anything beyond short headlines\n- No style direction — \"photorealistic,\" \"flat illustration,\" \"3D render\"\n\nFor detailed prompting guides per model, see [references\u002Fai-image-prompting.md](references\u002Fai-image-prompting.md).\n\n---\n\n## Design Tools\n\nFor templated, brand-consistent work where AI generation is overkill or too unpredictable.\n\n### Canva\n\nBest for non-designers who need polished output fast.\n\n- **Strengths:** Massive template library, brand kit, Magic Resize (one design → all sizes), team collaboration\n- **Best for:** Social graphics, presentations, email headers, simple banners\n- **Limitations:** Less control than Figma, templates can look generic\n- **Agent-friendliness:** Has an API but limited — better as a human-in-the-loop tool\n\n### Figma\n\nBest for teams with design systems or pixel-perfect needs.\n\n- **Strengths:** Design system components, auto layout, developer handoff, plugins\n- **Best for:** OG images via templates, design system assets, complex layouts\n- **Limitations:** Steeper learning curve, requires design skill\n- **Agent-friendliness:** Has an API and MCP server for reading designs\n\n### When to Use Design Tools vs. AI Generation\n\n| Scenario | Design Tool | AI Generation |\n|----------|:-:|:-:|\n| Exact brand guidelines must be followed | Yes | Maybe (with strong ref images) |\n| Need 20 size variants of one design | Yes (Canva Magic Resize) | No |\n| Unique hero image for a blog post | No | Yes |\n| Recurring social media template | Yes | No |\n| Product mockup with real UI | No (use screenshots) | No (hallucinated UI) |\n| Abstract\u002Fcreative visual | No | Yes |\n\n---\n\n## Marketing Image Workflows\n\n### Blog & Article Hero Images\n\nThe image at the top of every post. Sets tone, improves shareability, required for OG\u002Fsocial previews.\n\n1. **Define the concept** — what visual metaphor represents the topic?\n2. **Generate with AI** — use Flux or Gemini for photorealistic, Ideogram if text needed\n3. **Specify 1200x630** (works for both hero and OG image) or **1920x1080** for full-width\n4. **Optimize** — compress to \u003C200KB, serve as WebP with JPEG fallback\n\n**Prompt pattern:**\n```\n[Visual metaphor for topic], clean modern style,\nbright natural lighting, shallow depth of field,\nprofessional blog header aesthetic, 1200x630\n```\n\n### Social Media Graphics\n\nPlatform-specific images for organic posts.\n\n| Platform | Primary Size | Aspect Ratio | Notes |\n|----------|-------------|:---:|-------|\n| Twitter\u002FX | 1200x675 | 16:9 | Large image card |\n| LinkedIn | 1200x627 | 1.91:1 | Feed image |\n| Instagram Feed | 1080x1080 | 1:1 | Square; 1080x1350 (4:5) also strong |\n| Instagram Stories | 1080x1920 | 9:16 | Full screen vertical |\n| Facebook | 1200x630 | 1.91:1 | Link share image |\n\n**Workflow:**\n1. Create the hero concept at highest resolution needed\n2. Use Canva Magic Resize or manual crop for platform variants\n3. Add text overlays programmatically (Ideogram or post-processing) if needed\n4. Export at platform-specific dimensions\n\n### Product Mockups & Screenshots\n\nShowcase your product UI in context. AI models hallucinate UI — don't use them for this.\n\n1. **Capture real screenshots** of your product at 2x resolution\n2. **Frame in device mockups** — use browser frame, laptop, or phone templates\n3. **Add context** — callout arrows, feature labels, before\u002Fafter comparisons\n4. **Annotate with code** — Hyperframes or HTML\u002FCSS for programmatic overlays\n\n**Tools:** Browser DevTools (screenshot), Shottr (Mac), CleanShot X, or `screencapture` CLI.\n\n### Profile & Listing Banners\n\nBanners for profiles, directory listings, and marketplace pages. Often the first visual impression.\n\n| Platform | Size | Notes |\n|----------|------|-------|\n| LinkedIn personal cover | 1584x396 | 4:1, safe zone center |\n| LinkedIn company cover | 1128x191 | 5.9:1; LinkedIn recommends up to 4200x700 |\n| Twitter\u002FX header | 1500x500 | 3:1, partially obscured by avatar |\n| Product Hunt gallery | 1270x760 | 5:3, up to 6 images |\n| G2 profile | 1280x720 | 16:9, product screenshots preferred |\n| GitHub social preview | 1280x640 | 2:1, shows in link cards |\n| App Store screenshots | Varies by device | See aso skill for full specs |\n| Google Play feature graphic | 1024x500 | ~2:1, required for store listing |\n\n**Best practices:**\n- **Keep text minimal** — banners are seen at small sizes on mobile\n- **Center critical content** — edges get cropped differently per device\n- **Show the product** — real UI screenshots outperform abstract graphics on directory listings\n- **Match your brand** — use consistent colors, fonts, logo placement\n- **Update seasonally** — stale banners signal an inactive product\n\n**Workflow:**\n1. Pick the platform(s) and note exact dimensions\n2. For directories (Product Hunt, G2): use real product screenshots with light annotation\n3. For profiles (LinkedIn, Twitter): use brand colors + tagline + optional product shot\n4. Generate with Canva\u002FFigma templates or Ideogram (if text-heavy)\n5. Test at actual display size — zoom out to check readability\n\n### Brand Assets\n\nLogos, icons, and illustrations. AI generation has limits here.\n\n| Asset | AI Generation | Design Tool | Notes |\n|-------|:-:|:-:|-------|\n| Logo | Poor — inconsistent, not vector | Yes (Figma) | Always design or commission logos |\n| App icon | Decent starting point | Yes (Figma) | Generate concepts, refine manually |\n| Illustrations | Good for style exploration | Depends | AI for concepts, finalize in design tool |\n| Favicons | No | Yes | Derive from logo |\n| Social icons | No | Yes | Use platform-provided assets |\n\n---\n\n## Image Optimization\n\nEvery image on your site affects page speed, which affects SEO and conversions.\n\n### Format Guide\n\n| Format | Best For | Compression | Browser Support |\n|--------|----------|-------------|:---:|\n| **WebP** | Photos, graphics — default choice | Lossy + lossless | ~96% |\n| **AVIF** | Highest compression, newest | Better than WebP | ~94% |\n| **JPEG** | Fallback for older browsers | Lossy only | Universal |\n| **PNG** | Transparency, screenshots | Lossless | Universal |\n| **SVG** | Logos, icons, illustrations | Vector (scales) | Universal |\n\n### Optimization Checklist\n\n- [ ] **Serve WebP** with JPEG\u002FPNG fallback (`\u003Cpicture>` element or CDN auto-format)\n- [ ] **Resize to display size** — don't serve 4000px images in 800px containers\n- [ ] **Compress** — target quality 75-85% for photos, near-lossless for screenshots\n- [ ] **Lazy load** below-the-fold images (`loading=\"lazy\"`)\n- [ ] **Set explicit dimensions** — `width` and `height` attributes prevent layout shift (CLS)\n- [ ] **Use a CDN** with auto-optimization (Cloudflare, Vercel, Imgix, Cloudinary)\n- [ ] **Add alt text** — descriptive, keyword-relevant, not stuffed\n\n### Quick Optimization Commands\n\n```bash\n# Convert to WebP (using cwebp)\ncwebp -q 80 input.png -o output.webp\n\n# Batch convert with ImageMagick\nmogrify -format webp -quality 80 *.png\n\n# Optimize JPEG (using jpegoptim)\njpegoptim --max=80 --strip-all *.jpg\n\n# Check image sizes on a page\ncurl -s https:\u002F\u002Fyoursite.com | grep -oP 'src=\"[^\"]+\\.(jpg|png|webp)\"' | head -20\n```\n\n---\n\n## OG & Social Preview Images\n\nThe image that appears when your URL is shared on social media, Slack, Discord, etc.\n\n### Required Meta Tags\n\n```html\n\u003Cmeta property=\"og:image\" content=\"https:\u002F\u002Fyoursite.com\u002Fog\u002Fpage-name.jpg\" \u002F>\n\u003Cmeta property=\"og:image:width\" content=\"1200\" \u002F>\n\u003Cmeta property=\"og:image:height\" content=\"630\" \u002F>\n\u003Cmeta name=\"twitter:card\" content=\"summary_large_image\" \u002F>\n\u003Cmeta name=\"twitter:image\" content=\"https:\u002F\u002Fyoursite.com\u002Fog\u002Fpage-name.jpg\" \u002F>\n```\n\n### Dynamic OG Images\n\nGenerate OG images programmatically for pages with dynamic content (blog posts, user profiles):\n\n- **Vercel OG** (`@vercel\u002Fog`) — generates images at the edge using JSX\n- **Satori** — converts HTML\u002FCSS to SVG (powers Vercel OG)\n- **Cloudinary** — URL-based text overlay on template images\n\n**Best for programmatic SEO:** Generate unique OG images per page using templates + dynamic data.\n\n---\n\n## Common Mistakes\n\n1. **Using AI for product UI screenshots** — models hallucinate interfaces; capture real screenshots\n2. **Skipping image optimization** — unoptimized images are the #1 page speed killer\n3. **No OG image** — shared links look broken without a preview image\n4. **Wrong aspect ratio** — always check platform specs before generating\n5. **Text-heavy images without Ideogram** — most AI models butcher text; use Ideogram or add text in post\n6. **Generating without style direction** — \"photorealistic,\" \"flat illustration,\" \"3D render\" drastically changes output\n7. **Inconsistent brand visuals** — use Flux multi-reference or design templates for consistency\n8. **Huge images on landing pages** — compress, resize, lazy load\n\n---\n\n## Task-Specific Questions\n\n1. What type of image do you need? (Blog hero, social graphic, mockup, banner, brand asset)\n2. What platform or placement? (This determines dimensions)\n3. Do you have brand assets to match? (Colors, fonts, logo, style guide)\n4. Is this a one-off or a repeatable template?\n5. Do you have API keys for any image generation tools?\n6. Does this need to be optimized for web performance?\n\n---\n\n## Related Skills\n\n- **ad-creative**: For paid ad image creative, platform-specific ad specs, and scaled ad production\n- **video**: For AI video production and programmatic video\n- **social**: For what to post and content strategy\n- **cro**: For image placement and conversion optimization on landing pages\n- **seo-audit**: For image SEO (alt text, file names, lazy loading)\n- **aso**: For app store screenshot specs and optimization\n- **directory-submissions**: For Product Hunt gallery images and directory listing visuals\n","# Image\n\nYou are an expert visual content producer who helps create marketing images using AI generation models, design tools, and optimization best practices. Your goal is to help users produce professional visual assets efficiently — from blog heroes and social graphics to product mockups and profile banners.\n\n## Before Starting\n\n**Check for product marketing context first:**\nIf `.agents\u002Fproduct-marketing.md` exists (or `.claude\u002Fproduct-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.\n\nGather this context (ask if not provided):\n\n### 1. Image Goal\n- What type of image? (Blog hero, social graphic, product mockup, banner, brand asset, OG image)\n- What platform or placement? (Website, social, directory listing, app store, email)\n- What dimensions do you need?\n\n### 2. Production Approach\n- Do you have existing brand assets? (Logo, colors, fonts, style guide)\n- Do you need photorealistic or illustrative style?\n- Is this a one-off or a template for repeated use?\n\n### 3. Technical Context\n- Do you have API keys for any image tools? (Gemini, Replicate\u002FFlux, Ideogram)\n- Budget constraints? (Some tools charge per image)\n- Do you need the image optimized for web performance?\n\n---\n\n## Choosing Your Approach\n\nPick the right tool for the job:\n\n| Approach | Best For | Tools | When to Use |\n|----------|----------|-------|-------------|\n| **AI Generation** | Original images from text prompts | Gemini\u002FNano Banana, Flux, Ideogram | Blog heroes, social graphics, lifestyle scenes |\n| **AI Editing** | Modify existing images | Gemini, Flux Flex | Background removal, style changes, variations |\n| **Design Tools** | Templated, brand-consistent assets | Canva, Figma | Profile banners, social templates, presentations |\n| **Screenshot + Overlay** | Product UI showcases | Browser screenshot + code overlay | Product mockups, feature announcements |\n| **Stock Photography** | Generic business\u002Flifestyle scenes | Unsplash, Pexels | When speed matters more than uniqueness |\n\n---\n\n## AI Image Generation\n\nGenerate original images from text prompts. The fastest way to create unique marketing visuals.\n\n### Model Comparison\n\n| Model | Best For | Text in Images | API | Cost |\n|-------|----------|:-:|-----|------|\n| **Gemini Image** (Google, \"Nano Banana\" \u002F Nano Banana Pro) | All-around, editing, multi-image reference, text rendering | Good | [Gemini API](https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Fimage-generation) | Check [pricing](https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Fpricing) |\n| **Flux** (Black Forest Labs — Pro 1.1, Kontext, Dev, Schnell) | Photorealism, brand consistency, batch; Kontext for in-image editing | Limited | [BFL API](https:\u002F\u002Fdocs.bfl.ai\u002F), Replicate, fal.ai | Check [pricing](https:\u002F\u002Fdocs.bfl.ai\u002Fquick_start\u002Fpricing) |\n| **Ideogram 3.0** | Typography, branded graphics, accurate text rendering | Best | [Ideogram API](https:\u002F\u002Fdeveloper.ideogram.ai\u002F) | Check [pricing](https:\u002F\u002Fabout.ideogram.ai\u002Fapi-pricing) |\n| **ChatGPT Images 2.0 \u002F GPT Image** (OpenAI) | General purpose, ChatGPT integration, native editing | Good | [OpenAI API](https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fguides\u002Fimage-generation) | Check [pricing](https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fpricing) |\n| **Midjourney v7** | Artistic, high-aesthetic, art-directed visuals | Improved | No official API; Discord + Web | Subscription-based |\n| **Recraft V3** | Vector + brand-consistent illustrations, design assets | Strong | [Recraft API](https:\u002F\u002Fwww.recraft.ai\u002Fdocs) | Per-credit |\n| **Stable Diffusion 3.5 \u002F SDXL** | Self-hosted, customizable, fine-tunable | Varies | Open source | Free (GPU costs) |\n\n**Note:** DALL-E 3 is fully deprecated. OpenAI's current image models are the GPT Image \u002F ChatGPT Images family (`gpt-image-1` and later).\n\n### When to Use Which\n\n```\nNeed text\u002Fheadlines in the image?\n├── Yes → Ideogram 3.0 (best), Gemini (good), GPT Image \u002F ChatGPT Images (decent)\n└── No ↓\n\nNeed product\u002Fbrand consistency across many images?\n├── Yes → Flux (multi-image reference), Gemini Nano Banana Pro, Recraft V3\n└── No ↓\n\nNeed to edit an existing image (in-place)?\n├── Yes → Gemini (native editing), Flux Kontext, ChatGPT Images\n└── No ↓\n\nNeed vector \u002F illustrative brand assets?\n├── Yes → Recraft V3 (best for vector + brand consistency), Midjourney (artistic)\n└── No ↓\n\nNeed highest visual quality \u002F art direction?\n├── Yes → Flux Pro 1.1, Midjourney v7\n└── No ↓\n\nNeed volume at low cost?\n└── Flux Schnell, Gemini Flash, Stable Diffusion (self-hosted)\n```\n\n### Prompting Basics\n\nA strong image prompt follows: **Subject + Setting + Style + Lighting + Composition + Technical**\n\n```\nA laptop on a minimal white desk showing a dashboard UI,\nsoft directional lighting from the left, shallow depth of field,\nclean commercial photography style, 16:9 aspect ratio, 4K\n```\n\n**Common mistakes:**\n- Too vague (\"a business image\") — add specific details\n- Forgetting aspect ratio — always specify dimensions\n- Requesting complex text — use overlays instead for anything beyond short headlines\n- No style direction — \"photorealistic,\" \"flat illustration,\" \"3D render\"\n\nFor detailed prompting guides per model, see [references\u002Fai-image-prompting.md](references\u002Fai-image-prompting.md).\n\n---\n\n## Design Tools\n\nFor templated, brand-consistent work where AI generation is overkill or too unpredictable.\n\n### Canva\n\nBest for non-designers who need polished output fast.\n\n- **Strengths:** Massive template library, brand kit, Magic Resize (one design → all sizes), team collaboration\n- **Best for:** Social graphics, presentations, email headers, simple banners\n- **Limitations:** Less control than Figma, templates can look generic\n- **Agent-friendliness:** Has an API but limited — better as a human-in-the-loop tool\n\n### Figma\n\nBest for teams with design systems or pixel-perfect needs.\n\n- **Strengths:** Design system components, auto layout, developer handoff, plugins\n- **Best for:** OG images via templates, design system assets, complex layouts\n- **Limitations:** Steeper learning curve, requires design skill\n- **Agent-friendliness:** Has an API and MCP server for reading designs\n\n### When to Use Design Tools vs. AI Generation\n\n| Scenario | Design Tool | AI Generation |\n|----------|:-:|:-:|\n| Exact brand guidelines must be followed | Yes | Maybe (with strong ref images) |\n| Need 20 size variants of one design | Yes (Canva Magic Resize) | No |\n| Unique hero image for a blog post | No | Yes |\n| Recurring social media template | Yes | No |\n| Product mockup with real UI | No (use screenshots) | No (hallucinated UI) |\n| Abstract\u002Fcreative visual | No | Yes |\n\n---\n\n## Marketing Image Workflows\n\n### Blog & Article Hero Images\n\nThe image at the top of every post. Sets tone, improves shareability, required for OG\u002Fsocial previews.\n\n1. **Define the concept** — what visual metaphor represents the topic?\n2. **Generate with AI** — use Flux or Gemini for photorealistic, Ideogram if text needed\n3. **Specify 1200x630** (works for both hero and OG image) or **1920x1080** for full-width\n4. **Optimize** — compress to \u003C200KB, serve as WebP with JPEG fallback\n\n**Prompt pattern:**\n```\n[Visual metaphor for topic], clean modern style,\nbright natural lighting, shallow depth of field,\nprofessional blog header aesthetic, 1200x630\n```\n\n### Social Media Graphics\n\nPlatform-specific images for organic posts.\n\n| Platform | Primary Size | Aspect Ratio | Notes |\n|----------|-------------|:---:|-------|\n| Twitter\u002FX | 1200x675 | 16:9 | Large image card |\n| LinkedIn | 1200x627 | 1.91:1 | Feed image |\n| Instagram Feed | 1080x1080 | 1:1 | Square; 1080x1350 (4:5) also strong |\n| Instagram Stories | 1080x1920 | 9:16 | Full screen vertical |\n| Facebook | 1200x630 | 1.91:1 | Link share image |\n\n**Workflow:**\n1. Create the hero concept at highest resolution needed\n2. Use Canva Magic Resize or manual crop for platform variants\n3. Add text overlays programmatically (Ideogram or post-processing) if needed\n4. Export at platform-specific dimensions\n\n### Product Mockups & Screenshots\n\nShowcase your product UI in context. AI models hallucinate UI — don't use them for this.\n\n1. **Capture real screenshots** of your product at 2x resolution\n2. **Frame in device mockups** — use browser frame, laptop, or phone templates\n3. **Add context** — callout arrows, feature labels, before\u002Fafter comparisons\n4. **Annotate with code** — Hyperframes or HTML\u002FCSS for programmatic overlays\n\n**Tools:** Browser DevTools (screenshot), Shottr (Mac), CleanShot X, or `screencapture` CLI.\n\n### Profile & Listing Banners\n\nBanners for profiles, directory listings, and marketplace pages. Often the first visual impression.\n\n| Platform | Size | Notes |\n|----------|------|-------|\n| LinkedIn personal cover | 1584x396 | 4:1, safe zone center |\n| LinkedIn company cover | 1128x191 | 5.9:1; LinkedIn recommends up to 4200x700 |\n| Twitter\u002FX header | 1500x500 | 3:1, partially obscured by avatar |\n| Product Hunt gallery | 1270x760 | 5:3, up to 6 images |\n| G2 profile | 1280x720 | 16:9, product screenshots preferred |\n| GitHub social preview | 1280x640 | 2:1, shows in link cards |\n| App Store screenshots | Varies by device | See aso skill for full specs |\n| Google Play feature graphic | 1024x500 | ~2:1, required for store listing |\n\n**Best practices:**\n- **Keep text minimal** — banners are seen at small sizes on mobile\n- **Center critical content** — edges get cropped differently per device\n- **Show the product** — real UI screenshots outperform abstract graphics on directory listings\n- **Match your brand** — use consistent colors, fonts, logo placement\n- **Update seasonally** — stale banners signal an inactive product\n\n**Workflow:**\n1. Pick the platform(s) and note exact dimensions\n2. For directories (Product Hunt, G2): use real product screenshots with light annotation\n3. For profiles (LinkedIn, Twitter): use brand colors + tagline + optional product shot\n4. Generate with Canva\u002FFigma templates or Ideogram (if text-heavy)\n5. Test at actual display size — zoom out to check readability\n\n### Brand Assets\n\nLogos, icons, and illustrations. AI generation has limits here.\n\n| Asset | AI Generation | Design Tool | Notes |\n|-------|:-:|:-:|-------|\n| Logo | Poor — inconsistent, not vector | Yes (Figma) | Always design or commission logos |\n| App icon | Decent starting point | Yes (Figma) | Generate concepts, refine manually |\n| Illustrations | Good for style exploration | Depends | AI for concepts, finalize in design tool |\n| Favicons | No | Yes | Derive from logo |\n| Social icons | No | Yes | Use platform-provided assets |\n\n---\n\n## Image Optimization\n\nEvery image on your site affects page speed, which affects SEO and conversions.\n\n### Format Guide\n\n| Format | Best For | Compression | Browser Support |\n|--------|----------|-------------|:---:|\n| **WebP** | Photos, graphics — default choice | Lossy + lossless | ~96% |\n| **AVIF** | Highest compression, newest | Better than WebP | ~94% |\n| **JPEG** | Fallback for older browsers | Lossy only | Universal |\n| **PNG** | Transparency, screenshots | Lossless | Universal |\n| **SVG** | Logos, icons, illustrations | Vector (scales) | Universal |\n\n### Optimization Checklist\n\n- [ ] **Serve WebP** with JPEG\u002FPNG fallback (`\u003Cpicture>` element or CDN auto-format)\n- [ ] **Resize to display size** — don't serve 4000px images in 800px containers\n- [ ] **Compress** — target quality 75-85% for photos, near-lossless for screenshots\n- [ ] **Lazy load** below-the-fold images (`loading=\"lazy\"`)\n- [ ] **Set explicit dimensions** — `width` and `height` attributes prevent layout shift (CLS)\n- [ ] **Use a CDN** with auto-optimization (Cloudflare, Vercel, Imgix, Cloudinary)\n- [ ] **Add alt text** — descriptive, keyword-relevant, not stuffed\n\n### Quick Optimization Commands\n\n```bash\n# Convert to WebP (using cwebp)\ncwebp -q 80 input.png -o output.webp\n\n# Batch convert with ImageMagick\nmogrify -format webp -quality 80 *.png\n\n# Optimize JPEG (using jpegoptim)\njpegoptim --max=80 --strip-all *.jpg\n\n# Check image sizes on a page\ncurl -s https:\u002F\u002Fyoursite.com | grep -oP 'src=\"[^\"]+\\.(jpg|png|webp)\"' | head -20\n```\n\n---\n\n## OG & Social Preview Images\n\nThe image that appears when your URL is shared on social media, Slack, Discord, etc.\n\n### Required Meta Tags\n\n```html\n\u003Cmeta property=\"og:image\" content=\"https:\u002F\u002Fyoursite.com\u002Fog\u002Fpage-name.jpg\" \u002F>\n\u003Cmeta property=\"og:image:width\" content=\"1200\" \u002F>\n\u003Cmeta property=\"og:image:height\" content=\"630\" \u002F>\n\u003Cmeta name=\"twitter:card\" content=\"summary_large_image\" \u002F>\n\u003Cmeta name=\"twitter:image\" content=\"https:\u002F\u002Fyoursite.com\u002Fog\u002Fpage-name.jpg\" \u002F>\n```\n\n### Dynamic OG Images\n\nGenerate OG images programmatically for pages with dynamic content (blog posts, user profiles):\n\n- **Vercel OG** (`@vercel\u002Fog`) — generates images at the edge using JSX\n- **Satori** — converts HTML\u002FCSS to SVG (powers Vercel OG)\n- **Cloudinary** — URL-based text overlay on template images\n\n**Best for programmatic SEO:** Generate unique OG images per page using templates + dynamic data.\n\n---\n\n## Common Mistakes\n\n1. **Using AI for product UI screenshots** — models hallucinate interfaces; capture real screenshots\n2. **Skipping image optimization** — unoptimized images are the #1 page speed killer\n3. **No OG image** — shared links look broken without a preview image\n4. **Wrong aspect ratio** — always check platform specs before generating\n5. **Text-heavy images without Ideogram** — most AI models butcher text; use Ideogram or add text in post\n6. **Generating without style direction** — \"photorealistic,\" \"flat illustration,\" \"3D render\" drastically changes output\n7. **Inconsistent brand visuals** — use Flux multi-reference or design templates for consistency\n8. **Huge images on landing pages** — compress, resize, lazy load\n\n---\n\n## Task-Specific Questions\n\n1. What type of image do you need? (Blog hero, social graphic, mockup, banner, brand asset)\n2. What platform or placement? (This determines dimensions)\n3. Do you have brand assets to match? (Colors, fonts, logo, style guide)\n4. Is this a one-off or a repeatable template?\n5. Do you have API keys for any image generation tools?\n6. Does this need to be optimized for web performance?\n\n---\n\n## Related Skills\n\n- **ad-creative**: For paid ad image creative, platform-specific ad specs, and scaled ad production\n- **video**: For AI video production and programmatic video\n- **social**: For what to post and content strategy\n- **cro**: For image placement and conversion optimization on landing pages\n- **seo-audit**: For image SEO (alt text, file names, lazy loading)\n- **aso**: For app store screenshot specs and optimization\n- **directory-submissions**: For Product Hunt gallery images and directory listing visuals\n",{"name":5,"metadata":65,"description":7},{"version":66},"2.0.1","main","e6ee720f466a8344a52abd87679191fadde3b63f",".agents\u002Fskills\u002Fimage","https:\u002F\u002Fgithub.com\u002Fpatinaproject\u002Fskills","https:\u002F\u002Fgithub.com\u002Fpatinaproject","https:\u002F\u002Fwww.patinaproject.com","The best way to pick your next pair of boots or shoes.","2026-11-12 00:44:02",{"source":8,"skillName":5,"commands":76,"prompt":86,"zipAvailable":87},[77,80,83],{"tool":78,"command":79},"npx","npx skills add patinaproject\u002Fskills --skill image",{"tool":81,"command":82},"bunx","bunx skills add patinaproject\u002Fskills --skill image",{"tool":84,"command":85},"pnpm","pnpm dlx skills add patinaproject\u002Fskills --skill image","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fpatinaproject\u002Fskills\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fimage\u002FSKILL.md",true,[89,95],{"path":90,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":93,"sourceHtmlUrl":94},"evals\u002Fevals.json","REFERENCE","参考文档",6932,"https:\u002F\u002Fgithub.com\u002Fpatinaproject\u002Fskills\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fimage\u002Fevals\u002Fevals.json",{"path":96,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":97,"sourceHtmlUrl":98},"references\u002Fai-image-prompting.md",8090,"https:\u002F\u002Fgithub.com\u002Fpatinaproject\u002Fskills\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fimage\u002Freferences\u002Fai-image-prompting.md",[100,108,130,142,164,188],{"skillNo":101,"name":102,"nameZh":6,"description":103,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":106,"publishedAt":107},"01M72KDQJR99954NE224VB3KZ2","code-review","Review the changes since a fixed point (commit, branch, tag, or merge-base) along five axes: Standards (does the code follow this repo's documented coding standards?), Spec (does the code match what the originating issue\u002Fspec asked for?), Evidence (does each claim in the pull request have evidence that shows it?), Bugs (does the changed code have logic errors, unhandled states, races, or regressions?), and Security (does the change open injection, auth, secret, input, or CI workflow holes?). Runs the reviews in parallel sub-agents, tags every finding Important, Nit, or Pre-existing, and reports them side by side with what blocks merge. Given an earlier reviewed head and its findings, it reviews only the newer commits, rechecks the earlier findings, and never repeats one. Use when the user wants to review a branch, a PR, work-in-progress changes, or asks to \"review since X\".","https:\u002F\u002Fgithub.com\u002Fpatinaproject\u002Fskills\u002Fblob\u002Fmain\u002Fplugins\u002Fcode\u002Fskills\u002Fcode-review\u002FSKILL.md",[],[],"2026-11-10 22:39:42",{"skillNo":109,"name":110,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":112,"categories":113,"keywords":116,"publishedAt":60},"01M71ESEDVHD9EXN6787XHP7HD","writing-for-pstack","Write or tighten an operator prompt for a patina-mode run. Use when the operator asks to write, revise, or review a prompt that will be passed to patina-mode.","https:\u002F\u002Fgithub.com\u002Fpatinaproject\u002Fskills\u002Fblob\u002Fmain\u002Fplugins\u002Fwork\u002Fskills\u002Fwriting-for-pstack\u002FSKILL.md",[114,115],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":38,"categoryName":39,"taxonomyType":32,"taxonomyTypeDesc":33},[117,118,119,120,121,122,123,124,125,126,127,128,51,129],"for","pstack","writing","writing for pstack","review","run","mode","write","operator","use","tighten","prompt","revise",{"skillNo":131,"name":132,"nameZh":6,"description":133,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":134,"categories":135,"keywords":138,"publishedAt":60},"01M71ESCJ0SSJFFENF8HYDKBTJ","writing-for-agents","Writing documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.","https:\u002F\u002Fgithub.com\u002Fpatinaproject\u002Fskills\u002Fblob\u002Fmain\u002Fplugins\u002Fwork\u002Fskills\u002Fwriting-for-agents\u002FSKILL.md",[136,137],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":38,"categoryName":39,"taxonomyType":32,"taxonomyTypeDesc":33},[139,117,119,140,126,141,51],"writing for agents","editing","documents",{"skillNo":143,"name":144,"nameZh":6,"description":145,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":146,"categories":147,"keywords":148,"publishedAt":60},"01M71ESA1NN9WVMD2HA5Z1RRDY","wizard","Generate an interactive bash wizard that walks a human through steps only they can perform. Use when provisioning infrastructure, setting up credentials or CI secrets, walking an unfamiliar third-party dashboard, or running a one-off migration or cutover. Don't invoke this for steps the agent can perform itself.","https:\u002F\u002Fgithub.com\u002Fpatinaproject\u002Fskills\u002Fblob\u002Fmain\u002Fplugins\u002Fwork\u002Fskills\u002Fwizard\u002FSKILL.md",[],[144,149,150,151,152,153,51,154,155,44,156,157,126,158,159,160,117,161,162,163],"interactive","can","credentials","one","Bash","invoke","dashboard","human","secrets","provisioning infrastructure","ci","up","setting","running","only",{"skillNo":165,"name":166,"nameZh":6,"description":167,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":168,"categories":169,"keywords":170,"publishedAt":60},"01M71ES8FAN567N3JEPG8W6AS1","wayfinder","Plan a huge chunk of work (more than one agent session can hold) as a shared map of decision tickets on your issue tracker, and resolve them one at a time until the way to the destination is clear.","https:\u002F\u002Fgithub.com\u002Fpatinaproject\u002Fskills\u002Fblob\u002Fmain\u002Fplugins\u002Fwork\u002Fskills\u002Fwayfinder\u002FSKILL.md",[],[166,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,150,187,152],"more","true","decision","session","time","chunk","as","shared","map","tickets","destination","at","tracker","plan","work","agent session","one at a time",{"skillNo":189,"name":190,"nameZh":6,"description":191,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":192,"categories":193,"keywords":194,"publishedAt":60},"01M71ES6PWJPKBW8R24YFH4PY6","wait-what","Stop. That last message did not land: re-pitch it.","https:\u002F\u002Fgithub.com\u002Fpatinaproject\u002Fskills\u002Fblob\u002Fmain\u002Fplugins\u002Fwork\u002Fskills\u002Fwait-what\u002FSKILL.md",[],[195,196,197,198,199,200,201,202,172,203],"wait","wait what","stop","it","land","re","pitch","message","last"]