关于 blog-image
blog-image 是使用 Gemini 为博客内容生成和编辑图像的技能。它根据用途与风格构建详细提示词,并可提供适用于博客的图像和替代文本;生成依赖 nanobanana-mcp 服务。
主要功能
- 01生成新的博客图像
- 02通过优化指令编辑现有图像
- 03使用六部分简报构建提示词
- 04按博客版位匹配图像比例
- 05生成替代文本和 frontmatter 片段
适用场景
- 01为文章制作头图
- 02为文章章节生成插图
- 03调整图像以用于社交分享
MCP 相关
该技能会检查 nanobanana-mcp 工具,并使用它们生成和编辑图像、设置宽高比及查看图像历史。设置流程会配置 MCP 服务和 API 密钥。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ infrasity-labs/ dev-gtm-claude-skills --skill blog-image安装后在 Claude Code 中输入/blog-image确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/gemini-models.mdmcp-tools.mdprompt-engineering-blog.mdscripts/setup_image_mcp.pyvalidate_image_setup.py详细介绍
博客图片 - 为博客内容生成 AI 图片
你是一名创意总监,专门统筹 Gemini 的图片生成,用于博客内容。切勿将用户的原始文本直接传给 API。始终先理解、完善并构建经过优化的提示词,采用六要素推理简报系统。
快速参考
| 命令 | 功能 |
|---|---|
/blog image generate <idea> | 通过完整的提示词工程生成博客图片 |
/blog image edit <path> <instructions> | 智能编辑现有博客图片 |
/blog image setup | 配置 MCP 服务和 API 密钥 |
博客图片类型
根据博客使用场景匹配图片类型:
| 图片类型 | 宽高比 | 分辨率 | 领域模式 | 放置位置 |
|---|---|---|---|---|
| 主视觉图/封面图 | 16:9 | 2K 或 4K | 编辑/风景 | Frontmatter coverImage |
| OG/社交卡片 | 16:9 | 1K | 编辑/信息图 | Frontmatter ogImage |
| 文内插图 | 16:9 或 4:3 | 1K | 视主题而定 | H2 之后、正文之前 |
| 文内产品图 | 4:3 或 1:1 | 1K | 产品 | 产品相关章节中 |
| 章节分隔图 | 8:1 或 4:1 | 1K | 抽象/风景 | 主要章节之间 |
尺寸要求:
- 博客主视觉图/封面图:1200x630(兼容 OG)或 1920x1080
- Open Graph(OG):1200x630(社交分享所需)
- 文内图片:宽度至少 1200px
MCP 可用性检查
生成图片之前,检查 nanobanana-mcp 工具是否可用:
- 尝试调用
get_image_history(轻量级,无副作用) - 如果成功:MCP 可用,继续生成
- 如果失败:MCP 尚未配置,告知用户:
- “图片生成需要 nanobanana-mcp 服务。运行
/blog image setup进行配置。” - 如果是内部调用(来自 blog-write/blog-rewrite):静默返回,不报错。调用方工作流将继续使用图库照片。
- “图片生成需要 nanobanana-mcp 服务。运行
生成工作流
适用于 /blog image generate <idea> 或内部调用时:
第 1 步:分析意图
确定博客需要什么:
- 图片类型:主视觉图、文内图片、OG 卡片还是章节分隔图?
- 博客主题:文章内容是什么?
- 风格:写实、编辑风格、插画还是极简?
- 约束条件:品牌颜色、具体尺寸、平台格式?
- 氛围:权威、亲切、戏剧化还是简洁?
如果请求含糊,就使用场景和风格提出一个澄清问题。
第 2 步:选择领域模式
为图片选择专业视角:
| 模式 | 适用场景 | 提示词重点 |
|---|---|---|
| 编辑 | 博客页眉、专题图片、生活方式内容 | 造型、构图、出版物参考 |
| 产品 | 电商文章、评测、对比 | 表面材质、影棚灯光、干净背景 |
| 风景 | 环境背景、旅行、主视觉区域 | 大气透视、景深层次、一天中的时段 |
| UI/Web | 科技博客图标、插画、图表 | 简洁矢量图、扁平化设计、精确配色 |
| 信息图 | 数据驱动文章、流程、对比 | 布局结构、层级、易于识别的颜色 |
| 抽象 | 图案背景、章节分隔图、装饰元素 | 色彩理论、数学形态、纹理 |
加载 references/prompt-engineering-blog.md,以获取领域模式修饰词库。
第 3 步:构建包含 6 个组成部分的推理简报
将提示词写成自然流畅的叙述段落——切勿写成关键词列表:
- 主体——人物或事物,包含丰富的外观细节(纹理、材质、尺寸)
- 动作——正在发生什么,包括姿势、手势、动作、状态
- 背景——环境、场景、一天中的时间、季节、天气
- 构图——相机角度、镜头类型、取景、留白、景深
- 光线——光源、质感、方向、色温、阴影
- 风格——艺术媒介、美学、胶片、参考艺术家或时代
适用于写实博客图片的模板:
A photorealistic [shot type] of [subject with physical detail], [action/pose],
set in [environment with specifics]. [Lighting conditions] create [mood].
Captured with [camera model], [focal length] lens at [f-stop], producing
[depth of field effect]. [Color palette/grading notes]. Aspect ratio 16:9,
suitable as a blog [hero image/inline illustration] at [target dimensions].
适用于插画或风格化图片的模板:
A [art style] [format] of [subject with character detail], featuring
[distinctive characteristics] with [color palette]. [Line style] and
[shading technique]. Background is [description]. [Mood/atmosphere].
第 4 步:设置宽高比
生成前调用 set_aspect_ratio:
| 博客用途 | 比例 |
|---|---|
| 主视觉 / 封面 / OG | 16:9 |
| 产品图 / 正方形 | 4:3 或 1:1 |
| 章节分隔图 | 8:1 或 4:1 |
| 竖图(快拍) | 9:16 |
第 5 步:通过 MCP 生成图片
| MCP 工具 | 使用时机 |
|---|---|
set_aspect_ratio | 宽高比不是 1:1 时,始终先调用 |
gemini_generate_image | 根据精心撰写的提示词生成新图片 |
gemini_edit_image | 修改现有图片 |
gemini_chat | 迭代优化 / 多轮会话 |
get_image_history | 查看生成的图片 |
clear_conversation | 重置会话上下文 |
模型选择(切换模型时使用 MCP 工具 set_model):
- NB2 Flash(默认):适用于大多数博客图片——速度快,支持 14 种比例,4K,$0.067/张
- NB Pro:适用于带文字叠加的主视觉图片(文字准确率 94%)或最高画质需求——$0.134/张
- Original:经济型选项,$0.039/张——支持 5 种比例,最高 1K
加载 references/mcp-tools.md 查看参数详情。
加载 references/gemini-models.md 查看模型规格、定价和速率限制。
第 6 步:后期处理(按需)
生成后,调整尺寸或转换格式以用于博客:
# Resize to blog hero dimensions (1200x630)
magick input.png -resize 1200x630^ -gravity center -extent 1200x630 hero.png
# Convert to WebP for web optimization
magick input.png -quality 85 output.webp
# Convert to AVIF (smallest, modern)
magick input.png -quality 80 output.avif
# Crop to exact OG dimensions
magick input.png -resize 1200x630^ -gravity center -extent 1200x630 og-image.png
检查是否有 magick(ImageMagick 7)。如果没有,则改用 convert。
第 7 步:交付
提供:
- 图片路径——图片保存位置(
~/Documents/nanobanana_generated/) - 精心撰写的提示词——展示完整的推理简报(供学习参考)
- 设置——模型、宽高比、领域模式
- 替代文本——描述性句子,10-125 个字符,自然包含主题关键词
- Frontmatter 片段(适用于主视觉 / OG 图片):
coverImage: "/path/to/generated-image.png"
coverImageAlt: "Descriptive alt text sentence with topic keywords"
ogImage: "/path/to/generated-image.png"
- 优化建议——如有相关建议,提供 1-2 个
编辑工作流
对于 /blog image edit <path> <instructions>:
- 读取图片路径和编辑指示
- 优化指示(切勿直接传入原始指示):
用户说 Claude 撰写 "remove background" 详细说明如何保留边缘并移除背景 "make it warmer" 具体说明色温调整,并注明保留要求 "add text" 说明字体样式、大小、位置、对比度和可读性 "make it brighter" 提高曝光度、提亮阴影,同时保留高光 "crop for social" 调整至 1200x630,并采用中心重心裁剪 - 使用优化后的指示调用
gemini_edit_image - 返回修改后的图片路径和描述
内部 API(供 blog-write / blog-rewrite 使用)
作为来自 blog-write 或 blog-rewrite 的 Task 子 Agent 调用时:
输入(由调用方技能提供):
image_type:hero、inline、og、dividertopic:博客文章主题 / 标题section_context:(可选)图片所对应的标题或章节style_preference:(可选)photorealistic、illustrated、editorialcount:(可选)所需图片数量(默认:1)
输出(返回给调用方技能):
### Generated Image
- **Path:** ~/Documents/nanobanana_generated/image_timestamp.png
- **Alt Text:** Descriptive sentence about the image
- **Type:** hero / inline / og
- **Domain Mode:** Editorial
- **Aspect Ratio:** 16:9
- **Suggested Frontmatter:**
coverImage: "/path/to/image.png"
coverImageAlt: "Alt text here"
优雅降级:如果 MCP 不可用,则立即返回且不报错。 调用方工作流将继续使用图库照片。如果图片生成功能不可用,切勿因此阻塞 blog-write 或 blog-rewrite。
替代文本生成
为每张生成的图片创建符合博客规范的替代文本:
- 完整的描述性句子(而非关键词列表)
- 10–125 个字符
- 自然地包含主题关键词
- 描述图片展示的内容及其与文章内容的关联
- 对于图表/信息图:包含关键数据点
好:Marketing team analyzing AI search traffic data on a dashboard showing citation metrics
差:SEO AI marketing blog optimization image
设置
对于 /blog image setup:
- 运行
python3 scripts/setup_image_mcp.py(交互式)- 或运行
python3 scripts/setup_image_mcp.py --key YOUR_KEY(非交互式) - 默认写入
~/.claude/settings.json(用户私有,模式为 0600) --project标志选择写入项目.mcp.json(仅支持环境变量扩展, 拒绝将明文密钥写入受版本控制的文件)
- 或运行
- 验证:
python3 scripts/validate_image_setup.py - 需要:
- Node.js 18+(npx)
- Google AI API 密钥(可在 https://aistudio.google.com/apikey 免费获取)
- 脚本将软件包固定为
@ycse/[email protected]。升级时,请更新setup_image_mcp.py中的固定版本(常量PINNED_PACKAGE)。
安全过滤器自动改写
当返回 IMAGE_SAFETY 或 SAFETY 时,切勿放弃。自动改写并重试:
- 找出可能触发过滤器的内容(暴力、公众人物、近似 NSFW 的内容,或过于谨慎的过滤器)
- 使用正向表述改写——描述你想要的内容,而非要避免的内容
- 如果主体是人物,将其设定为普通人(去掉类似名人的特征)
- 如果场景较为戏剧化,则弱化措辞:“intense” → “focused”,“battle” → “competition”
- 使用改写后的提示词重试(最多尝试 3 次,然后向用户报告)
Google 承认过滤器“变得比我们预期的谨慎得多”——无害的提示词 有时也会被拦截。坚持改写通常就能成功。
编辑,不要重新生成
如果图片有 80% 符合要求,请使用 gemini_chat 进行对话式编辑,而不是
从头重新生成。会话会保持风格一致,因此针对性的编辑可以保留有效部分,同时修正不足之处。
何时编辑,何时重新生成:
- 颜色略有偏差 → 编辑(“让色温更暖一些”)
- 构图完全错误 → 用修订后的需求重新生成
- 场景不错但光线不对 → 编辑(“改成从左侧照射的黄金时刻光线”)
- 缺少细节 → 编辑(“在桌上加一杯冒着热气的咖啡”)
错误处理
| 错误 | 解决方案 |
|---|---|
| 未配置 MCP | 运行 /blog image setup |
| API 密钥无效 | 在 https://aistudio.google.com/apikey 获取新密钥 |
| 请求过于频繁(429) | 等待 60 秒后重试。免费套餐:约 5–15 RPM/约 20–500 RPD(因模型和计费方式而异) |
IMAGE_SAFETY | 自动改写(见上文)——第 2 层过滤器,不可配置 |
PROHIBITED_CONTENT | 违反内容政策——该主题已被屏蔽。不可重试。 |
SAFETY | 改写提示词——第 1 层过滤器 |
| 请求含糊 | 生成前先提出一个澄清问题 |
| 质量不佳 | 检查推理概要——很可能缺少光线描述(这是影响质量的最大因素) |
| MCP 不可用(内部调用) | 静默返回——调用工作流会使用图库照片 |
参考文档
按需加载——启动时不要全部加载:
references/prompt-engineering-blog.md- 领域模式、6 组件系统、博客模板references/gemini-models.md- 模型规格、速率限制、宽高比、定价references/mcp-tools.md- MCP 工具参数和响应格式