gen-image

SKILL.md

Nano Banana 图像生成 Skill

API 配置

环境变量:

  • NANO_BANANA_API_KEY: API Key(必填)
  • NANO_BANANA_BASE_URL: Base URL(可选)

API Key 缺失处理:

执行任何图像命令前,先检查环境变量是否已设置:

echo $NANO_BANANA_API_KEY

若为空,停止操作,告知用户:

NANO_BANANA_API_KEY 未配置。请在系统全局环境变量中添加:

export NANO_BANANA_API_KEY="sk-your-api-key"

写入 ~/.zshrc~/.bashrc 后,重新启动终端(或重启 IDE/Agent),再重试。

核心参数

参数 说明
imageConfig.aspectRatio 见下方 可选,默认 1:1
imageConfig.imageSize 512 / 1K / 2K / 4K 可选,默认 1K

支持的宽高比(14种): 1:1 2:3 3:2 3:4 4:3 4:5 5:4 9:16 16:9 21:9 1:4 4:1 1:8 8:1

脚本: scripts/image.mjs

全局选项:

  • --key <key>: API Key(或 NANO_BANANA_API_KEY
  • --base-url <url>: Base URL(或 NANO_BANANA_BASE_URL
  • --model <model>: 模型名称(或 NANO_BANANA_MODEL

gen — 文生图

node scripts/image.mjs gen "prompt" [--aspect 16:9] [--size 1K] [-o output.png]
  • --aspect: 宽高比(默认 1:1)
  • --size: 分辨率 512/1K/2K/4K(默认 1K)
  • -o: 输出路径(默认 images/output.png)

edit — 编辑图片

# 单张
node scripts/image.mjs edit input.png "编辑指令" [-o output.png]

# 多张(最后一个位置参数为 prompt)
node scripts/image.mjs edit a.png b.png "融合两张图的风格" -o merged.png

# 多张(-p 指定 prompt,所有位置参数均为图片)
node scripts/image.mjs edit a.png b.png c.png -p "合并三张图的元素" -o result.png
  • input...: 输入图片(一或多个)
  • prompt: 编辑指令(最后位置参数,或 -p
  • --aspect: 宽高比(默认保持原图)
  • --size: 输出分辨率(默认 2K)
  • -o: 输出路径(默认 images/edited.png)

常见指令:

场景 示例
添加元素 "Add a rose flower in the bottom right corner"
背景替换 "Replace the background with a neon-lit city street at night"
风格迁移 "Convert to watercolor style, preserve original composition"
局部修改 "Change the person's clothing color to red"
删除元素 "Remove the text watermark and fill in the background"

提示词工程核心理念

核心原则:结构化描述 + 精确控制 + 风格一致

成功的图像生成依赖多层次、结构化的提示词写作,而非简单的一句话描述。通过清晰的层次结构、精确的参数、专业术语和具体约束,引导 AI 生成符合预期的高质量图像。

四层描述架构

  1. 核心意图层:一句话概括要做什么("生成一张……图像")
  2. 细节约束层:具体元素、布局、位置的详细描述
  3. 风格质感层:艺术风格、材质、光照、色彩方案
  4. 技术参数层:分辨率、宽高比、渲染质量等

提示词黄金法则

  • 具体化而非抽象化:描述材质、颜色、尺寸,而非"漂亮"
  • 位置化而非模糊化:指定"放在左上角……"而非"在背景中"
  • 数值化而非估计化:使用精确坐标、百分比、尺寸
  • 分层描述而非堆砌:用前景/中景/背景分层描述
  • 专业术语:使用行业词汇("bokeh"、"isometric"、"material")
  • 否定约束:明确说明不包含的内容("无文字"、"无阴影")
  • 引用整合:明确说明参考输入图像的哪个部分

结构化提示词模板

按需填写,不必全填,留空的层级直接省略:

[核心意图] 一句话概括目标

[主体] 对象 + 位置 + 姿态/表情
[场景] 前景 / 中景 / 背景
[风格] 艺术风格 + 材质 + 光照 + 色彩
[技术] 比例 + 分辨率 + 渲染方式(如 C4D/照片写实)
[约束] 必须包含 / 禁止出现 / 必须保持

提示词优化技巧

  1. 具体化:❌ "一个漂亮的女孩" → ✅ "一个25岁的亚洲女性,黑色长发,穿着白色连衣裙,站在樱花树下"
  2. 位置化:❌ "有些人物在背景中" → ✅ "中景左侧站立2个人,前景右侧坐着1个人"
  3. 数值化:❌ "很多星星" → ✅ "大约5到10颗星星组成星座"
  4. 分层描述:❌ "房子、树、人、天空、云" → ✅ "前景:一个人站在房子前;中景:大树和房子;背景:蓝天和云朵"
  5. 专业术语:❌ "模糊的背景" → ✅ "浅景深,背景柔和模糊(bokeh)"
  6. 否定约束:❌ "不要太复杂" → ✅ "无多余装饰,无渐变,无文字"

常见错误与解决方案

错误类型 问题表现 解决方案
过于简单 一句话描述,缺少细节 使用四层架构,分层描述
模糊不清 使用"漂亮"、"好"等模糊词 使用具体的视觉描述和材质
信息冲突 前后矛盾的要求 检查逻辑一致性,统一要求
缺少约束 结果偏离预期 添加明确的约束条件
忽略风格 结果风格不统一 明确指定艺术风格和风格特征

生成工作流程

  1. 确定核心目标:一句话概括要做什么
  2. 分析参考图像:理解参考图像的特征和用途
  3. 分层构建描述:前景/中景/背景,主体/环境/风格
  4. 添加细节约束:位置、姿态、表情、材质
  5. 指定技术参数:分辨率、比例、风格
  6. 设置约束条件:必须包含、禁止出现、保持不变
  7. 审查和优化:检查逻辑一致性、信息完整性

场景分类与提示词模板

按需读取对应模板文件:

文件 场景类型
01-角色与人物类 角色克隆、表情变换、年龄估算等
02-风格转换与艺术创作 浮世绘、涂鸦、水晶材质等
03-产品与商业设计 产品包装、微缩场景、广告摄影等
04-信息可视化与图表 信息图表、教育连环画、关系图等
05-技术与结构可视化 爆炸分解图、材质球、全息投影等
06-场景与环境设计 时空生成、历史场景、主题公园等
07-图像修复与编辑 照片编辑、老照片修复、去除元素等
08-创意与趣味效果 卡通爆炸、鱼眼效果、电影海报等
09-实用功能型图像 证件照、地图生成、表情包等
10-多图像融合与参考 多图合成、跨视角、面部控制等

关键词速查表

风格类:照片写实、3D渲染、手绘、油画、水彩、浮世绘、涂鸦、漫画、像素艺术、扁平化设计、极简主义、赛博朋克、蒸汽朋克、奇幻、科幻、复古、抽象、印象派

质感类:光滑、粗糙、哑光、反光、透明、半透明、磨砂、绒面、金属、木材、大理石、水晶、玻璃、塑料、织物、皮革、陶瓷

光照类:自然光、日光、工作室光照、戏剧性光照、柔和光照、强对比、侧光、背光、轮廓光、体积光

视角类:平视、俯视、仰视、鸟瞰、广角、长焦、微距、等轴测(isometric)、鱼眼、全景

情绪类:愉快、悲伤、平静、紧张、兴奋、忧郁、温馨、恐怖、神秘、浪漫

构图类:居中、三分法、黄金比例、对称、不对称、对角线、引导线、框架、留白

按场景的句式模板

文生图(gen):

  • 产品图:"[产品名],[颜色/材质],白色背景,工作室灯光,产品摄影风格,无阴影"
  • 人物图:"[年龄/性别/特征],[服装],[场景],[光照],[风格],无文字"
  • 场景图:"[时间/天气],[主场景],前景[元素],中景[元素],背景[元素],[色彩风格]"
  • 概念图:"[主题]的[视角]视图,等轴测/俯视/爆炸分解,[配色方案],[渲染风格]"

图片编辑(edit):

  • 添加元素:"Keep everything unchanged. Add [元素] at [位置], matching existing style and lighting"
  • 替换背景:"Replace background with [新背景描述], preserve subject and lighting direction"
  • 风格迁移:"Convert to [目标风格], preserve original composition and subject identity"
  • 去除元素:"Remove [元素], fill with contextually appropriate background"
  • 多图融合:"Merge style of image1 with content of image2, [融合比例或重点]"

工作流指导

批量试稿

需要让用户从多个候选中挑选时,循环多次调用 gen,使用低分辨率(--size 512)降低成本:

for i in 1 2 3 4; do
  node scripts/image.mjs gen "prompt" --size 512 --aspect 1:1 -o images/roll_$i.png
done

生成完毕后展示给用户,由用户指定满意的版本再升清晰度。

图片放大

对已有图片提升分辨率,使用 edit + 放大指令

node scripts/image.mjs edit input.png \
  -p "Upscale and enhance clarity while preserving original style and composition" \
  --size 4K -o output_4k.png

4K 分辨率请求耗时较长,建议提前告知用户。


环境变量配置

export NANO_BANANA_API_KEY="sk-your-api-key"

Prompt 示例

完整示例见 references/prompt-examples.md,包含 9 个场景示例(文生图 / 图片编辑),每个示例附有命令、宽高比、分辨率参数。

Weekly Installs
1
GitHub Stars
5
First Seen
10 days ago
Installed on
amp1
cline1
opencode1
cursor1
kimi-cli1
codex1