Draw 画图工具
综合画图工具,包含两大核心能力:
- AI 生图:通过 OpenRouter API 调用 Nanobanana (Google Gemini 3 Pro Image) 模型生成图片
- 图片处理:拼接、抠图、圆形裁剪、合成等后处理功能
快速开始
cd ~/.claude/skills/api-draw
python scripts/nanobanana_draw.py "画一只可爱的橘猫,坐在阳光下" --style "其他" --subject "橘猫"
环境变量:OPENROUTER_API_KEY(存储在 ~/.claude/secrets.env)
工作流(必须遵循)
收到 ARGUMENTS 后,必须按顺序执行以下步骤,不可跳过:
Step 1: 理解画图需求
与用户确认画面主题、风格偏好、特殊要求。
若用户未指定风格,必须用 AskUserQuestion 询问:
{
"questions": [{
"question": "你想要什么风格的图?",
"header": "图片风格",
"options": [
{"label": "手绘白板", "description": "涂鸦风格,适合流程图、架构图、工具推荐"},
{"label": "板书插画", "description": "教学风格,白板+卡通人物,适合知识科普、教程"},
{"label": "学霸笔记", "description": "方格纸背景,错误/正确对比,适合干货教学"},
{"label": "对比漫画", "description": "上下两格漫画,适合反差、吐槽、生活感悟"}
],
"multiSelect": false
}]
}
Step 2: 搜索参考图(重要实体)
对于品牌/产品名、图标/Logo、具体人物、特定建筑等,必须先 WebSearch 搜索参考,将视觉特征融入 prompt。
Step 2.5: 人物肖像类特殊流程
用户要求画「肖像」时,直接使用线刻肖像风格,无需询问。流程:
- firecrawl 搜索人物照片
- curl 下载到本地
- 使用
--image参数生成
Step 3: 加载风格模板
根据用户选择的风格,读取对应模板文件:
Read("~/.claude/skills/api-draw/templates/[风格名].md")
模板包含完整的 Prompt 模板、示例、注意事项。
Step 4: 组织 Prompt 并调用脚本
cd ~/.claude/skills/api-draw
python scripts/nanobanana_draw.py "详细的画图描述" --style "风格名" --subject "主题"
生成文件命名:{YYYYMMDD}_{风格}_{主题}_{序号}.{扩展名}
Step 5: 返回结果
输出生成的图片,根据用户反馈调整。
风格模板索引
选定风格后,用 Read 工具加载对应模板:
| 风格名 | 模板文件 | 适用场景 |
|---|---|---|
| 手绘白板 | templates/手绘白板.md |
流程图、知识框架、方法论、AI/科技话题 |
| 板书插画 | templates/板书插画.md |
财经理财、知识科普、教育课程、技术教程 |
| 学霸笔记 | templates/学霸笔记.md |
知识图解、原理拆解、错误vs正确对比 |
| 对比漫画 | templates/对比漫画.md |
对比、反差、吐槽、生活感悟 |
| 人物语录 | templates/人物语录.md |
名人金句、书摘语录、知识IP内容 |
| 人物拼接封面 | templates/人物拼接封面.md |
UP主介绍、人物专题、创作者故事 |
| 线刻肖像 | templates/线刻肖像.md |
人物头像、个人IP形象 |
| 杂志大字 | templates/杂志大字.md |
观点金句、核心论点 |
| 荧光划线 | templates/荧光划线.md |
知识干货、学习笔记 |
| 科技渐变 | templates/科技渐变.md |
赛博朋克、AI、编程 |
| 撕纸拼贴 | templates/撕纸拼贴.md |
生活感悟、旅行日记 |
| 神秘贴纸 | templates/神秘贴纸.md |
个人IP头像、NFT风格 |
--style 参数可选值:
手绘白板 / 板书插画 / 对比漫画 / 学霸笔记 / 杂志大字 / 荧光划线 / 科技渐变 / 撕纸拼贴 / 神秘贴纸 / 人物语录 / 线刻肖像 / 人物拼接封面 / 其他
图片后处理工具
图片拼接
默认设置:水平布局 + 实线框(用户偏好)
python scripts/image_stitch.py img1.jpg img2.jpg img3.jpg -o output.jpg -d horizontal --border-style solid
| 参数 | 说明 | 默认值 |
|---|---|---|
-d, --direction |
horizontal/h 或 vertical/v |
horizontal(推荐) |
-g, --gap |
图片间距 | 20 |
--border-style |
solid 或 dashed |
solid(推荐) |
注意:多图合并时,优先使用水平布局+实线框,除非用户明确要求其他方式。
抠图
# 白底抠图(默认)
python scripts/remove_bg.py portrait.jpg -o portrait_nobg.png
# AI智能抠图(需要 pip install rembg)
python scripts/remove_bg.py photo.jpg -o photo_nobg.png --mode ai
圆形裁剪
python scripts/circle_crop.py input.png -o output.png --size 300
图片合成
python scripts/composite.py --bg main.jpg --fg portrait.png --position top-right -o output.jpg
人物封面合成(圆框+头像)
python scripts/portrait_cover.py \
--bg whiteboard.jpg \
--portrait portrait.png \
--circle-y 180 \
--circle-radius 140 \
-o cover.png
平台最佳尺寸
| 平台 | 比例 | 推荐像素 |
|---|---|---|
| 小红书(推荐) | 3:4 竖版 | 1080×1440px |
| 小红书正方形 | 1:1 | 1080×1080px |
| 微信公众号封面 | 2.35:1 | 900×383px |
| 抖音封面 | 9:16 | 1080×1920px |
配色方案速查
| 风格 | 背景色 | 字体色 |
|---|---|---|
| 经典极简 | #FFFFFF | #000000 |
| 高级灰 | #F5F5F5 | #333333 |
| 治愈系 | #FFF8E7 | #5D4037 |
| 科技感 | #1A1A2E | 白/霓虹蓝 |
| 板书插画 | #FFFFFF | #000000 + #F5A623 |
使用统计
python scripts/nanobanana_draw.py --stats
故障排查
- 确认
OPENROUTER_API_KEY已设置 - 检查网络连接
- 确认 API key 有效且有额度