Community图像github.com

shaharsha/image-generation

使用 OpenAI GPT Image 2.5(Sunburst、Flare)或 Google Gemini(Nano Banana 2、Nano Banana Pro、Nano Banana 2 Lite)生成 Logo、图标、UI 原型、主图、产品宣传图及其他设计资源。适用于用户要求创建、设计、生成、原型、渲染或插画视觉资源,或需要透明 PNG 文件,或要求编写图像提示词的场景。它能为任务选择合适模型与质量,并根据各模型的官方提示规则编写专属提示词。

image-generation 是什么?

该技能提供基于多个顶尖图像生成模型的统一接口,包括 OpenAI 的 GPT Image 2.5 (Sunburst/Flare) 和 Google 的 Gemini (Nano Banana Pro/2/2 Lite),可生成 Logo、图标、UI 原型、主图、产品宣传图等各类设计资源。其核心工作流程包含三步:根据资源类型和成本/速度要求自动选择模型和质量;依照各模型特定的提示规则编写提示词(OpenAI 要求结构化的标签段落,Gemini 要求叙事性段落并避免负面描述);通过内置脚本调用 API 生成图像。技能特别强调在 OpenAI 2.5 模型上使用“先草稿后精修”策略以控制成本和质量:先用 Flare medium 快速探索方向(~1 美分,15 秒),再用 Sunburst max 编辑模式将选中草稿提升至最终细节。它会自主迭代最多 5 次直到图像可交付,并通过 Read 工具读取生成图像进行像素级别的自查(构图、文本拼写、颜色匹配、缺陷检测),从而在展示给用户之前就消除明显问题。

兼容平台✓Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/shaharsha/claude-skills/tree/HEAD/skills/image-generation

Installed? Explore more 图像 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

图像生成

两个模型家族,三种任务。

覆盖的模型

模型 ID所属家族用途费用 (1024×1536, 2026-10-02 测量)
gpt-image-2.5-sunburstOpenAI(Images 2.5,2026-09-08)默认。 任何可能交付的作品。在所有主要排行榜上排名第一(生成、编辑、文字渲染、肖像)max ≈ $0.165,约 90 秒 · high ≈ $0.041,约 35 秒
gpt-image-2.5-flareOpenAI(Images 2.5)快速草稿 —— 探索方向、测试提示词。提示词与 Sunburst 相同,速度约快 2 倍medium ≈ $0.01,约 15 秒
gemini-3-pro-imageGoogle(Nano Banana Pro)近距离自然肌肤/毛发,适用于评审意见不一致的场景;最多支持 14 张参考图$0.134 (1K/2K) · $0.24 (4K)
gemini-3.1-flash-imageGoogle(Nano Banana 2)极端宽高比 (1:4…8:1),图像搜索接地$0.067 (1K)
gemini-3.1-flash-lite-imageGoogle(Nano Banana 2 Lite)最便宜的 Gemini 探索;仅 1K,返回 JPEG$0.034

gpt-image-2 仍然可用(未弃用),但质量低于 2.5 的两个模型。所有 Gemini 的 *-preview ID 以及所有 Imagen 模型 均已关闭 —— 脚本会拒绝使用它们。

本技能的三种任务

  1. 为资源选择模型和质量。 请参阅 reference/model-selection.md。
  2. 按照模型内部规则编写提示词。 两家提供商的要求截然相反:
    • OpenAI GPT Image 2.5 要求使用带标签的段落(场景 / 主体 / 细节 / 约束),将精确文本放在引号中,并接受内联排除语句(“无额外文字,无水印”)。请阅读 reference/openai-gpt-image.md。
    • Gemini 要求叙事性段落,负面表述会适得其反(将“没有人物”改写为“空旷的街道”),宽高比在 imageConfig 中设置。请阅读 reference/gemini-image.md。
  3. 通过内置脚本调用 API。 请参阅 scripts/README.md。

2.5 的质量陷阱

2.5 的质量等级已被重新划分。 在相同尺寸下,2.5 的 high 大约相当于 gpt-image-2 的 medium 的输出 token 数;2.5 的 max 相当于 gpt-image-2 的 high(测量值:Sunburst 1024×1536 high = 1,372 个输出 token,max = 5,488 个)。如果按旧习惯直接使用 quality=high,你会默默得到一张中等细节的图像。

通过编辑来提升草稿,而不是重新生成。 每次从头生成都会创建一幅全新的图像,因此用 max 重新运行已批准草稿的提示词会得到不同的图片。正确做法是:将选定的草稿作为参考图传递给 Sunburst max 编辑,该编辑仅改变渲染质量并保留其他所有内容。已验证于 2026-10-02:通过这种方式提升的 Flare medium 海报保留了其构图、人物、姿势、颜色和希伯来语文字,并获得了纹理和细节($0.18,85 秒)。

阶段模型 + 质量原因
探索方向、测试提示词Flare medium(--draft)约 1 美分且约 15 秒,因此 6 个方向的成本低于一次最终生成
提升选中的草稿Sunburst max 编辑,使用 --ref <draft> 和 reference/openai-gpt-image.md 中的提升提示词保留用户选择的样式,添加完整细节
从锁定提示词直接生成最终图Sunburst max(脚本默认)完整细节;约 90 秒,约 $0.17
时间比精细细节更重要时使用 SunburstSunburst high四分之一的 token,约 35 秒

永远不要使用 auto —— 它会对相同的调用分配不同的预算。

默认模型选择 —— 30 秒规则

探索方向 /“几个快速方案”/ 测试提示词是否有效?
  是 → Flare medium(--draft)。用 Sunburst max 编辑(--ref <draft>)提升用户选择的方案。
  否  ↓

需要特写真人面部,且皮肤质感是关键?
  是 → 首先尝试 Sunburst max(它在肖像领域领先);若放大后皮肤显得过于锐化,
        则与 gemini-3-pro-image 4K 对比,让用户选择。
  否  ↓

需要超过 3:1 的超宽/超长横幅(1:4,4:1,1:8,8:1)?
  是 → gemini-3.1-flash-image(GPT Image 限制在 3:1)。
  否  ↓

其他所有情况 → Sunburst,quality=max。
  └── 需要透明 PNG?原生支持:--background transparent(png/webp)。无需 rembg。

每种资源类型的完整决策树: reference/model-selection.md。

每次请求的工作流程

  1. 确认范围。 资源类型、品牌背景、颜色/风格方向、目标宽高比和尺寸、保存位置。如果请求中已包含这些信息,则直接进行。
  2. 选择模型和质量。 使用上述规则;用一句话解释选择。
  3. 阅读模型专属参考文档 —— reference/openai-gpt-image.md 或 reference/gemini-image.md。不要凭记忆编写:两家提供商要求截然不同的提示词结构,并且 2.5 的指南更改了 gpt-image-2 的多个习惯。
  4. 需要透明背景? 在 GPT Image 2.5 上原生支持。仅当处理 Gemini 输出或裁剪已有图像时才阅读 reference/transparent-backgrounds.md。
  5. 打开 templates/ 中对应的模板并填写占位符。
  6. 图像中包含希伯来语或从右向左书写的文字? 先阅读 reference/hebrew-rtl.md。
  7. 在调用 API 之前向用户展示提示词,除非用户说“直接做吧”。一次提示词审核可以防止多数昂贵的重新生成。
  8. 运行脚本。 除非另有指示,否则保存到当前工作目录的 ./generated-images/<描述性名称>.png。OpenAI 脚本会打印延迟、输出 token 数和每次调用的费用 —— 请记录累计总额。
  9. 使用 Read 工具读取保存的图像 —— Claude 是多模态的,实际上会看到像素。 对照需求评论:构图、文字是否与引号内容完全一致且只出现一次、颜色、缺陷(变形的字母、多余的手指、破损的几何形状、光滑区域的颗粒感)。在用户发现问题之前先发现它们。
  10. 向用户展示。 open <path>,总结你看到的内容(优点和缺点),并提出交付 / 通过特定修改进行迭代 / 重写。

按资源类型的模板

资源模板
品牌 Logo / 标志 / 文字标志templates/logo.md
图标集(跨图标保持风格一致)templates/icon-set.md
移动应用 UI 界面templates/ui-mobile.md
Web 仪表盘 / SaaS UItemplates/ui-dashboard.md
营销主图 / 横幅templates/hero-image.md
产品摄影 / 产品宣传图templates/product-shot.md

关于逐字工作示例,请参阅 examples.md。

重复角色与故事面板

对于漫画、故事板和动画剧集,其中相同的人物出现在多张图像中:

  • 从照片中提取角色。 切勿将整张照片作为参考图传入:编辑端点会将照片重新风格化(复制姿势、服装和背景,添加说明文字)而不是绘制人物。有效的工作流程是:

    1. 先裁剪面部:python3 <this-skill-dir>/scripts/crop_faces.py photos/ faces/ --sheet faces/_sheet.jpg。
    2. 从裁剪的面部制作动漫风格面部。
    3. 将该面部编辑到半身服装卡上,同时说明体型。
    4. 获得用户批准,然后提升。

    提示词和审查循环:reference/characters-from-photos.md。

  • 包含 2 个或更多角色的场景。

    • 使用 Sunburst high 起草,而不是 Flare:Flare 只绘制了图像 1(室外,带字幕)。
    • 在首次提及每个人物时将其与对应头像卡绑定:“Dana(图像 1 中的那个女人)”。
    • 禁止任何语言的字幕。
    • 手机和平板屏幕从背面渲染:将屏幕内容生成为独立图像后再合成。

    配方:reference/multi-character-scenes.md。

  • 批量计费。 credit_balance_exhausted 表示 OpenAI 账户余额不足,而非请求错误。停止操作,列出哪些镜头已完成,充值后只重新运行缺失的镜头。

API 密钥与依赖项

API 密钥来自环境变量,通过您自己的密钥存储工具在运行脚本的 shell 中设置(每个新 shell 都需要重新设置):

  • OPENAI_IMAGE_API_KEY 用于 scripts/openai-image.sh
  • GEMINI_IMAGE_API_KEY(或 GEMINI_API_KEY)用于 scripts/gemini-image.sh;同一个 Google AI Studio 密钥也适用于生成视频片段

这些密钥仅限于图像生成作用域。请勿将其复用于聊天或嵌入,且永远不要打印它们 —— 将它们加载到变量中,不要使用 echo。

本地工具(仅用于裁剪 Gemini 输出或已有图像):rembg(pip install "rembg[cli]" onnxruntime),可选 ImageMagick。

输出约定

  • 默认保存位置:当前工作目录下的 ./generated-images/<描述性名称>.png。
  • 文件名:描述性 kebab-case(logo-agentleh-monochrome-v1.png);草稿添加 -draft-N(logo-agentleh-draft-3.png)。
  • 版本号:迭代时添加 -v1,-v2,...。未经询问,切勿覆盖之前的生成。
  • 透明输出:在版本后添加 -transparent。
  • 在 macOS 上使用 open <path> 在生成后立即向用户展示。

迭代模式 —— 自主“迭代直至完美”循环

代理的任务是在询问用户之前,将图像推进到“足以交付”的状态:

1. 生成(脚本调用)
2. 使用 Read 工具读取保存的文件 —— Claude 会 SEE(看到)像素
3. 对照需求进行自我批评:
   - 构图是否到位?(位置、取景、平衡、层次、负空间)
   - 文字是否与引号内容完全一致,每个字符串只出现一次,且易于辨认?
   - 颜色是否正确?(十六进制匹配、调色板遵从)
   - 是否存在缺陷?(变形的字母形状、多余的手指、破损的几何形状、天空/背景的颗粒感)
   - 需求是否真正得到满足?
4. 决定:
   - 交付    → 满足需求;向用户展示
   - 编辑    → 本地化修复;使用 --ref <previous> 进行编辑,提示词说明
               “只改变 X”并重新陈述所有之前的修复和保留的细节
   - 重写    → 根本性的提示词问题;从头重写,不要修补
5. 停止条件:迭代达到 5 次,或此资源花费超过 $3(累加脚本输出的费用行),
   或已达到可交付状态。

用户是最终评委 —— 但 Claude 是第一评委。 不要展示有缺陷的结果并问“这个行吗?” 只有在您确认它满足需求后,或者附上您的评论后(“文字标志字距有问题;下一步修复”),才展示。

各模型的操作细节

  • GPT Image 2.5 编辑通过 /v1/images/edits 经由 scripts/openai-image.sh --ref <image> 进行(最多 16 张参考图)。在没有遮罩的情况下,每次轮换都会重新生成整个画布,因此会累积偏移 —— 在每次轮换时都要重新陈述所有之前的更改和所有保留的细节,而不仅仅是新的请求。如果某个区域必须保持像素一致,请将批准的编辑合成到原始图像中,而不是指望提示词来维持。
  • Gemini 多轮编辑: scripts/gemini-image.sh --ref <previous-output> --prompt "改变 X,保持 Y",结束时始终加上“保持图像中所有其他元素完全一致 —— 构图、光照、颜色、所有其他元素。”
  • 偏移纪律。 在同一张图像上经过 3 次不成功的迭代后,切换策略:重写基础提示词,或更换模型。

定价

GPT Image 2、2.5 Flare 和 2.5 Sunburst 共享 token 费率(图像输出 $30/1M,图像输入 $8/1M,文本输入 $5/1M;Batch API 减半),但每张图像的 token 数因质量、尺寸和模型而异 —— 因此请读取脚本打印的费用,而不是自行假设。Gemini 按图像计费。完整表格和工作场景:reference/pricing.md。

希伯来语 / 从右向左书写

在 2026-10-02 的测试中,Sunburst 和 Flare 都正确渲染了希伯来语标题(正确的字母、顺序、方向,与英语和徽章并列)。对于短文本,优先尝试直接渲染;对于长希伯来语行或需要授权字体的情况,则回退到合成工作流程。希伯来语不在 Google 对 Gemini 图像模型的最佳表现语言列表中 —— 对于希伯来语文本,首选 GPT Image。详见 reference/hebrew-rtl.md。

何时不使用本技能

  • 用户需要可编辑的矢量文件(带有路径的 SVG)。这些模型输出的是光栅图像;请使用 brand-assets 技能,或 Recraft V4.1 Vector(recraftv4_1_vector,原生 SVG,未集成到这些脚本中)。
  • 用户需要超出支持尺寸的精确像素尺寸(例如 1200×630)。在最近支持的宽高比下生成,然后裁剪/调整大小。
  • 用户想要特定真实人物的真实世界照片。两家提供商会拒绝或产生不准确的相似度,并且存在政策问题。
  • 用户想要没有设计需求的通用“AI 艺术” —— 请将其指向 ChatGPT 或 Gemini 应用;本技能专为设计工作优化。

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

shaharsha/deck-to-video

Use when turning a slide deck plus per-slide narration audio into an mp4 video — a self-playing/self-presenting deck video, "slides to video", "presentation to mp4", a shareable WhatsApp/Slack/Drive video of a narrated deck, or when a slide video needs a per-slide progress bar / countdown / slide counter. Also use when a slide video should highlight, glow or spotlight the element being talked about in time with the voice, or when narration and on-screen animation need syncing. Also use when...

shaharsha/generating-video-clips

Use when turning a still image, illustration, comic panel or character art into a short animated clip (image-to-video), choosing a video model or provider (Gemini Omni, Veo, Seedance, Kling, ElevenLabs Flows) or hitting their API gates, lip-syncing a character's mouth to existing dialogue audio (Sync, fal.ai, active speaker), or fixing a generated clip with artifacts - duplicated props, a door or a second figure appearing, hands through bodies, glowing eyes, a gesture repeated at the start,...

shaharsha/producing-animated-episodes

Use when making a narrated or voiced animated video with recurring characters - an anime, cartoon or comic episode, a short for a group chat, a story video about friends, family, a class or a team - from photos, a chat export, a story idea or a script, in any visual style, Hebrew/RTL or English. Also use when such a video has subtitles or cards too fast to read, music stopping early, the ending cut off, lines buried under music, mouths out of sync, a gesture before its line, or one face...

相关技能