mcpField
G
generate-image

generate-image

github.com/b-open-io创意与媒体1253 次安装5 周前更新
代码仓库

关于 generate-image

通过命令行使用 Nano Banana Pro 生成图像的技能,也可选择 Gemini、OpenAI 或 xAI。它涵盖提示词准备、风格选择、参考图使用及从草稿到成品的迭代流程。

主要功能

  1. 01根据文本提示生成图像
  2. 02从风格库选择风格
  3. 03用参考图生成变化版本
  4. 04设置尺寸、宽高比和输出选项
  5. 05选择 Gemini、OpenAI 或 xAI

适用场景

  1. 01创作艺术作品与插图
  2. 02根据参考图生成变化版本
  3. 03制作社交分享图片
  4. 04从草稿迭代到高分辨率成品

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/b-open-io/gemskills --skill generate-image

安装后在 Claude Code 中输入/generate-image确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.clawnet/
unsigned-skill.json
references/
prompt-guide.md
scripts/
generate.ts

详细介绍

生成图像

使用 Nano Banana Pro(gemini-3-pro-image)生成图像。

适用场景

用户要求以下操作时,使用此技能:

  • 根据文本提示词生成图像
  • 创作艺术作品、插画或图形
  • 生成现有图像的变体(img2img)
  • 使用多张参考图像创建场景(角色 + 地点 + 其他角色)

风格选择

如果用户未指定风格,请先提出一道多选题:

你希望如何处理艺术风格?

  1. 挑选风格 - 以可视化方式浏览 167 种风格并选择一种
  2. 由我选择 - 我会根据你的提示词推荐一种风格
  3. 什么是风格? - 了解风格系统的工作原理
  4. 不使用风格 - 不指定特定艺术风格来生成

使用 AskUserQuestion 工具呈现此选项。

如果用户选择“挑选风格”,启动风格选择器(默认使用挑选模式):

STYLE_JSON=$(bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/browsing-styles/scripts/preview_server.ts)

选择器会在浏览器中打开。用户点击一种风格,查看详情弹窗,然后点击“Select This Style”。STYLE_JSON 会以 JSON 格式接收所选内容,随后服务退出。解析 id 字段,并通过 --style <id> 将其传递给生成命令。

如果用户选择“由我选择”,请根据用户的提示词选择最合适的风格,并说明原因。使用下方“向用户推荐风格”部分中的风格建议。

如果用户选择“什么是风格?”,请说明:共有 167 种精选艺术风格,涵盖 10 个类别(传统、数字、插画、摄影、设计、复古、技法、装饰、创意、文化)。每种风格都包含提示词提示和一张视觉参考图块,会发送给 Gemini,以便更好地遵循风格。然后再次询问风格问题。

如果用户已指定风格(例如“生成水彩风格的图像”),则完全跳过此步骤,直接使用 --style。

先了解设计方向

重写提示词前,先提出澄清问题,了解用户的意图:

  1. 用途:图像有什么用途?(横幅、徽标、社交媒体、产品图、艺术作品)
  2. 配色方案:是否有品牌色?深色/浅色主题?特定情绪?
  3. 构图限制:需要什么宽高比?是否需要预留文字叠加空间?满版还是带边框?
  4. 关键元素:必须包含什么?应该避免什么?

对于“生成一张猫的图像”这类简单请求,可以采用合理的默认设置直接处理。对于“为我的应用创建一张横幅”这类复杂请求,则需要先澄清,以免浪费迭代次数。

重写提示词(关键)

生成任何图像之前,务必使用 references/prompt-guide.md 中的指南重写用户的提示词。

核心原则:“描述场景,而不只是罗列关键词。”

重写检查清单

通过添加以下内容来扩充简单提示词:

  1. 主体细节:具体外观、服装、表情、材质
  2. 环境/场景:地点、时间、天气、室内/室外
  3. 光线:自然光/人造光、方向、质感、色温
  4. 构图:拍摄角度、距离、取景、焦距
  5. 风格/美学:写实、插画风格、艺术流派
  6. 情绪/氛围:情感基调、配色氛围
  7. 技术规格:宽高比、细节程度、纹理
示例转换

用户说:“我应用的横幅” 改写后的提示词:“一张现代、满幅铺展的科技应用横幅。深色渐变背景,从深海军蓝过渡到黑色。抽象的几何网络可视化图案,发光节点由细线连接。简洁的无衬线字体位于中心偏左。专业、前沿的科技美学,无可见边框或边缘——设计无缝延伸至所有边缘。16:9 宽高比。”

用户说:“一只猫” 改写后的提示词:“一只蓬松的橙色虎斑猫慵懒地躺在洒满阳光的窗台上,柔和的午后光线在它的毛发上营造出温暖的光泽。猫咪姿态放松,双眼半闭,尽显惬意。以低角度拍摄,采用浅景深,背景是模糊的花园景色。写实风格,暖色调。”

推荐工作流

采用“草稿 → 迭代 → 定稿”的方式,可节省时间和 API 成本:

  1. 草稿阶段(1K):使用默认分辨率快速生成,以测试提示词
  2. 迭代阶段:逐步完善提示词,每次尝试都创建新文件
  3. 定稿阶段(4K):仅在提示词经过验证后才生成高分辨率图像

不要读取图像内容——脚本只会输出文件路径。这样可以高效迭代,避免 Claude 加载大型图像数据。

用法

bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-image/scripts/generate.ts "prompt" [options]
选项
  • --input <path> - 参考图像(可多次指定,最多 14 张图像)
  • --style <id> - 应用风格库中的风格(参见 browsing-styles 技能)
  • --size <1K|2K|4K|WxH> - 图像尺寸(默认:由模型决定)。1K/2K/4K 会在每个提供商上设置像素预算。openai 也接受精确的 WxH,例如 3840x1280。
  • --aspect <ratio> - gemini:1:1、2:3、3:2、3:4、4:3、4:5、5:4、9:16、16:9、21:9。openai:任意 W:H,范围为 1:3 到 3:1(例如用 3:1 制作宽幅横幅)。不要与 --size WxH 同时使用。
  • --quality <low|medium|high|xhigh|max|auto> - 仅适用于 openai(默认 auto)。xhigh 和 max 是 Image 2.5 中新增的选项。Gemini 和 xai 不接受此标志。
  • --negative <prompt> - 负面提示词(要避免的内容)
  • --count <n> - 图像数量(1-4,默认:1)
  • --guidance <n> - 引导系数
  • --seed <n> - 用于确保结果可复现的随机种子
  • --output <path> - 输出路径
  • --transparent - 透明/alpha 背景(OpenAI 使用 background=transparent;Gemini 也支持)
  • --provider <name> - gemini、openai 或 xai。省略时会自动选择最适合该请求的可用提供商(参见 Models)。
  • --model <id> - OpenAI Image 2.5 变体:flare / gpt-image-2.5-flare(默认)或 sunburst / gpt-image-2.5-sunburst。会将提供商设为 openai。旧版提供商别名 gemini|openai|xai|grok 仍可使用,但已弃用——请改用 --provider。
示例
# Simple generation
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-image/scripts/generate.ts "cyberpunk cityscape at night"

# With art style (100+ available, use short names or full IDs)
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-image/scripts/generate.ts "mountain landscape" --style impressionism
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-image/scripts/generate.ts "portrait" --style ukiy
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-image/scripts/generate.ts "city street" --style noir

# High-res with specific aspect ratio
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-image/scripts/generate.ts "mountain landscape" --size 4K --aspect 16:9

# With negative prompt
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-image/scripts/generate.ts "portrait of a cat" --negative "low quality, blurry"

# Combine style with other options
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-image/scripts/generate.ts "cat sleeping" --style wtrc --size 4K --aspect 1:1

# Generate multiple variations
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-image/scripts/generate.ts "abstract art" --count 4

# Single reference image (img2img)
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-image/scripts/generate.ts "make it look like a watercolor painting" --input photo.jpg

# Multiple reference images (character consistency, scene composition)
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-image/scripts/generate.ts "King on throne in dramatic lighting" \
  --input character.png \
  --input throne-room.png \
  --aspect 16:9 --size 2K

# Multiple characters in a scene
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-image/scripts/generate.ts "Two warriors facing each other in combat" \
  --input warrior1.png \
  --input warrior2.png \
  --input battlefield.png \
  --aspect 16:9

多张参考图像

Gemini 每次请求最多支持 14 张参考图像:

  • 6 个物体 - 地点、物品、环境
  • 5 个人物 - 确保多次生成的角色一致性
  • 使用详细提示词,描述如何组合参考图像
  • 参考图像有助于在不同场景的生成过程中保持一致性

常见格式

格式宽高比推荐尺寸裁剪目标
OG / 社交分享16:92K使用 sips 裁剪为 1200x630
Twitter 卡片16:92K使用 sips 裁剪为 1200x628
主视觉横幅16:94K全宽
头像1:11K512x512 或 1024x1024
限时动态 / Reel9:162K1080x1920
团队阵容21:92K全宽
社交媒体分享图片工作流

4 个步骤缺一不可。不要跳过优化。

  1. 生成:采用 16:9 比例和主体居中的提示词,并设置 --size 2K(适用于 Retina 屏幕):
    bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-image/scripts/generate.ts "CENTER all important elements, no content near edges. [your prompt]" --aspect 16:9 --size 2K --output social-share.png
    
  2. 裁剪:调整为平台要求的精确尺寸:
    sips -z 630 1200 -c 630 1200 social-share.png --out social-share-og.png   # OG
    sips -z 628 1200 -c 628 1200 social-share.png --out social-share-tw.png   # Twitter
    
  3. 优化:转换为质量为 85% 的 JPEG(社交媒体图片不需要透明背景):
    sips -s format jpeg -s formatOptions 85 social-share-og.png --out social-share-og.jpg
    
  4. 验证:检查尺寸和文件大小:
    sips -g pixelWidth -g pixelHeight social-share-og.jpg
    ls -la social-share-og.jpg  # Target: <500KB
    

为什么要优化? Gemini 输出的 PNG 约为 1–2MB。转换为质量为 85% 的 JPEG 后,文件大小可降至约 200–400KB,且不会产生肉眼可见的质量损失。社交平台会重新压缩上传的图片,因此使用经过充分优化的 JPEG 可以避免二次压缩造成的瑕疵。

可用风格

9 个类别中共有 100 多种风格:传统艺术、数字艺术、插画、摄影、设计/UI、复古、技法、装饰,以及创意/材料风格。

如果某种风格有对应的平铺参考图片(assets/tiles/<id>.png),系统会自动将其与提示词提示一同发送给 Gemini,作为视觉参考,从而大幅提升风格还原度。

向用户推荐风格

生成图片时,主动推荐相关风格:

  • 风景:impr、roma、wtrl、cine
  • 肖像:barq、prer、anim、fnoi
  • UI/网页:brut、nbrt、glas、flat
  • 复古/怀旧:y2k、frug、psyc、koda
  • 奇趣/有趣:ghbl、kawa、chld、brit
  • 戏剧化:cybr、nnoi、surr、expr
  • 创意风格:sand、undr、orig、clay、lego

浏览所有风格:bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/browsing-styles/scripts/list_styles.ts --table 搜索:bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/browsing-styles/scripts/list_styles.ts --search "watercolor"

模型与提供商

共有 3 个提供商,可通过 --provider 选择;省略时则自动选择。

提供商模型密钥优势不支持
gemini(默认回退选项)gemini-3-pro-image(Nano Banana Pro)GEMINI_API_KEY风格平铺图、最多 14 张参考图片、专用负面提示词、透明背景、1K/2K/4K—
openaigpt-image-2.5-flare(Flare,默认)/ gpt-image-2.5-sunburst(Sunburst,--model sunburst)OPENAI_API_KEY图片内文字效果最佳、光照/纹理、复杂指令、详细布局、透明背景、最长边最高 3840px 的自定义尺寸和 1:3–3:1 的宽高比、最高 max 质量、图生图(通过编辑端点使用 --input,最多 16 张)不支持风格平铺图,不支持专用负面提示参数
xaigrok-imagine-image-qualityXAI_API_KEY速度快,限制更少;适用于 Gemini 的过滤器拦截无害提示词时仅支持文生图——不支持图生图、平铺图或负面提示词
自动选择(省略 --provider 时的默认行为)

脚本会选择密钥已配置且支持请求所需功能的最佳提供商。优先级为 openai > gemini > xai。

--input(图生图/参考图片)由 openai 和 gemini 均支持——openai 通过 Image 2.5 编辑端点处理,gemini 则通过 Nano Banana Pro 处理(后者还支持风格平铺图和最多 14 张参考图片)。因此,如果已配置 openai 的密钥,图生图请求会自动选择 openai;若要使用 Gemini 的风格平铺图/多参考图合成,请传入 --provider gemini。

--transparent 由 openai 和 gemini 均支持(OpenAI 会传入 background=transparent)。如果请求使用 --style(风格平铺图)或 --negative(专用负面提示参数),功能检查仍会强制选择 Gemini——只有 Gemini 支持这些功能。使用 /gemskills:setup 或 GEMSKILLS_IMAGE_PROVIDER 设置固定默认值。

选择 openai 时,如果指定了 --style,系统会移除风格平铺图片(但仍会应用文本提示);--negative 则会合并到提示词中,作为 Avoid: … 子句。xAI 还会移除参考图片(仅支持文生图)。

提示词模板(按提供方调整)

每个提供方解析提示词的方式都不同。确定提供方后,请阅读对应指南,并据此重写提示词:

  • providers/prompts/image.gemini.md
  • providers/prompts/image.openai.md
  • providers/prompts/image.xai.md
# Force a provider / Image 2.5 variant
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-image/scripts/generate.ts "neon city street, rain" --provider openai --size 4K --quality high
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-image/scripts/generate.ts "panoramic website footer city" --model sunburst --aspect 3:1 --size 4K   # 3840x1280
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-image/scripts/generate.ts "app icon, rounded square" --model sunburst --transparent
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-image/scripts/generate.ts "watercolor fox" --provider xai
OpenAI 尺寸规则(Image 2.5)

API 接受 auto 或 WIDTHxHEIGHT,其中宽高都必须能被 16 整除,宽高比须在 1:3 到 3:1 之间,最大边长为 3840,总像素数须在 655,360 到 8,294,400 之间。脚本会根据 --size 档位和 --aspect 计算有效尺寸;对于任何 API 会拒绝的尺寸,都会报错并停止。它绝不会将无效尺寸改为 auto。根据 OpenAI 的说明,超过 2560x1440 的尺寸属于实验性尺寸。Image 2.5 不支持 input_fidelity,因此绝不会发送此参数。

费用根据响应中的 usage 和已公布的每 Token 价格计算(每 100 万 Token:文本输入 $5、图像输入 $8、图像输出 $30)。没有价格条目的模型会显示“无价格数据”。

已验证的模型:2026 年 9 月(gpt-image-2.5-flare、gpt-image-2.5-sunburst、grok-imagine-image-quality、gemini-3-pro-image)。如果已有更新一代的模型,请停止并建议向 b-open-io/gemskills 提交 PR。

参考文件

有关详细的提示词策略和技巧:

  • references/prompt-guide.md - 全面的 Gemini 提示词指南,包含 7 种策略、示例改写,以及来自 Google 官方文档的最佳实践
  • ask-gemini 技能的 references/gemini-api.md - 当前的 Gemini 模型、SDK 信息,以及通过 llms.txt 获取的动态文档

评论

支持 Markdown