画图技能路由中枢(统一入口)。三维路由体系(用途 × 风格 × 主体),双后端调度。 - Signature 风格:10 种有独立 YAML 的视觉方案(构成主义/克莱因/Risograph/故障艺术等) - Rendering 风格:15 种通用渲染技法 modifier(写真/动漫/3D/水彩/赛博朋克等),prompt 源自实战案例 - Logo 展示背景:12 种专业展示场景(来源 logo-generator,已内化) - 用途库:12 类场景 + 全实战 prompt 案例,含推荐风格 + 后端默认 - 后端调度:GPT Image 2(写实/产品/文字/4K)/ Gemini(动漫/艺术/多参考图) - 支持:文生图、风格库生图、参考图风格反推、参考图编辑、多参考图合成、logo 展示图 Use when: 用户想画图/生图/做海报/插画/风格迁移/图片编辑/logo展示图 — 这是唯一的图像生成入口。 【铁律】绝对禁止使用 image_generate 工具(configured: no,不可用)。所有画图请求必须走本 skill。 【注意】SVG logo 代码...
Scanned 9/9/2026
Install to Claude Code
npx -y skills add Lord1Egypt/awesome-skill-forge --skill image-forge --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Image Forge?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/lord1egypt-image-forge)More formats (shields.io, HTML) on the badges page.
---
name: image-forge
description: |
画图技能路由中枢(统一入口)。三维路由体系(用途 × 风格 × 主体),双后端调度。
- Signature 风格:10 种有独立 YAML 的视觉方案(构成主义/克莱因/Risograph/故障艺术等)
- Rendering 风格:15 种通用渲染技法 modifier(写真/动漫/3D/水彩/赛博朋克等),prompt 源自实战案例
- Logo 展示背景:12 种专业展示场景(来源 logo-generator,已内化)
- 用途库:12 类场景 + 全实战 prompt 案例,含推荐风格 + 后端默认
- 后端调度:GPT Image 2(写实/产品/文字/4K)/ Gemini(动漫/艺术/多参考图)
- 支持:文生图、风格库生图、参考图风格反推、参考图编辑、多参考图合成、logo 展示图
Use when: 用户想画图/生图/做海报/插画/风格迁移/图片编辑/logo展示图 — 这是唯一的图像生成入口。
【铁律】绝对禁止使用 image_generate 工具(configured: no,不可用)。所有画图请求必须走本 skill。
【注意】SVG logo 代码生成 → 请用专属 logo-generator skill。
---
# Image Forge — 统一画图路由
## 目录结构
```
{baseDir}/
├── SKILL.md # 本文件(唯一用户入口)
├── backends.yaml # 后端注册表 + 优先级 + 调度策略
├── styles/
│ ├── index.yaml # 风格库(双层:10 Signature + 15 Rendering)
│ └── *.yaml # 10 个 Signature Style 独立文件
├── use-cases/
│ └── index.yaml # 11 个用途 + 推荐风格 + 默认后端
├── references/ # 用途提示词 JSON(11 个场景)
└── scripts/
├── reverse_style.py # Gemini Vision 15 维风格反推
└── generate_image.py # Gemini/Nano Banana 2 生图
```
---
## 三维框架
```
用途(Use Case)× 风格(Style)× 主体(Subject)
↓ ↓ ↓
结构指令 视觉语言 用户描述
(布局/元素) (色彩/技法/质感) (画什么)
```
三者**独立路由**、**组合注入** prompt。用途和风格可以各自单独触发,也可以同时命中。
---
## 风格库:双层结构(读取 `styles/index.yaml`)
### Tier 1: Signature Styles(有独立 YAML,10 种)
高度具体的视觉方案,命中后加载对应 YAML 文件,默认走 `nano-banana-2`。
| 触发词示例 | 风格 id | 擅长用途 |
|-----------|---------|---------|
| 俄国构成主义、苏联海报、几何宣传 | constructivism | 海报、社媒 |
| 故障艺术、错位矩形、glitch | glitch-window-v1 | 头像、社媒 |
| 窗口重叠、数字拼贴 | glitch-window-v2 | 头像、社媒 |
| 混合媒介、线稿摄影 | mixed-media | 头像、海报 |
| 黑蓝红、三色极简剪影 | tri-color | 海报、封面 |
| 半调雕刻、铜版画、etching | engraving-halftone | 海报、头像 |
| risograph、半调杂志、印刷风 | risograph-magazine | 海报、社媒 |
| 波普水墨、pop art、ink splash | pop-ink-splash | 头像、社媒 |
| 克莱因蓝、克莱因秩序、极简仰拍 | klein-blue-order | 头像、社媒 |
| 高对比度工业、电光蓝故障 | high-contrast-industrial | 海报、产品、封面 |
### Tier 2: Rendering Styles(inline modifier,15 种)
通用渲染技法类别,命中后取 `modifier` 字段直接注入 prompt。按 `preferred_backend` 调度。
| 触发词示例 | 风格 id | 推荐后端 |
|-----------|---------|---------|
| 摄影、写真、真实照片 | photography | **GPT Image 2** |
| 电影感、胶片、cinematic | cinematic-film-still | **GPT Image 2** |
| 3D渲染、三维、CGI | 3d-render | **GPT Image 2** |
| 等距视角、isometric、2.5D | isometric | **GPT Image 2** |
| 复古、retro、vintage | retro-vintage | **GPT Image 2** |
| 赛博朋克、霓虹、cyberpunk | cyberpunk-sci-fi | **GPT Image 2** |
| 极简、minimalism、简约 | minimalism | **GPT Image 2** |
| 动漫、二次元、anime | anime-manga | Gemini |
| 插画、手绘插画 | illustration | Gemini |
| 素描、线稿、sketch | sketch-line-art | Gemini |
| Q版、chibi、可爱 | chibi-q-style | Gemini |
| 像素艺术、pixel art、8-bit | pixel-art | Gemini |
| 油画、古典油画 | oil-painting | Gemini |
| 水彩、aquarelle | watercolor | Gemini |
| 水墨、国画、中国画 | ink-chinese-style | Gemini |
---
## 用途库(读取 `use-cases/index.yaml`)
11 类场景,每类携带推荐风格和默认后端:
| 触发词 | use-case id | 默认后端 | 推荐 Rendering 风格 |
|--------|------------|---------|------------------|
| 海报、传单、poster | poster-flyer | **GPT Image 2** | cinematic, retro, cyberpunk |
| 头像、肖像、avatar | profile-avatar | Gemini | anime, illustration, photography |
| 产品图、营销图 | product-marketing | **GPT Image 2** | photography, 3d-render, minimalism |
| 电商、主图、白底 | ecommerce-main-image | **GPT Image 2** | photography, 3d-render |
| 视频封面、YouTube | youtube-thumbnail | **GPT Image 2** | cinematic, photography |
| 小红书、社交配图 | social-media-post | **GPT Image 2** | illustration, photography, watercolor |
| UI、App、网页 | app-web-design | **GPT Image 2** | 3d-render, isometric, minimalism |
| 漫画、分镜 | comic-storyboard | Gemini | anime-manga, illustration, sketch |
| 游戏素材、角色 | game-asset | Gemini | 3d-render, pixel-art, illustration |
| 信息图、教育图 | infographic-edu-visual | **GPT Image 2** | illustration, isometric, minimalism |
---
## 路由决策树(6 条路径)
```
用户输入
│
├── 有参考图 + "用这个风格"/"反推"
│ → [Path R] 风格反推:reverse_style.py → 提取风格 → 生成
│
├── 有参考图 + "修改"/"编辑"
│ → [Path E] 参考图编辑
│ 1张图 → gpt-image-2 edit endpoint
│ 2+张图 → nano-banana-2 多参考图
│
├── 命中 Signature Style aliases(构成主义/glitch/risograph…)
│ → [Path S] 加载 YAML → prompt recipe → nano-banana-2
│
├── 命中 Rendering Style aliases(动漫/写真/3D/水彩…)
│ → [Path R2] 取 modifier → 注入 prompt → 按 preferred_backend 调度
│
├── 命中用途关键词(海报/头像/电商…)
│ → [Path U] 加载 use-cases/index.yaml → 检索 references JSON
│ → 若无指定风格,展示推荐风格(可跳过直接生成)
│ → 按 use-case.default_backend
│
└── 直接描述主体,无信号
→ [Path D] 优化/翻译英文 → gpt-image-2(默认最高 priority)
```
---
## 后端调度决策(读取 `backends.yaml`)
```
1. 用户显式覆盖(最高优先级)
"用 GPT 画"/"4K高清"/"写实" → gpt-image-2
"用 Gemini 画"/"动漫" → nano-banana-2
2. Style preferred_backend
Signature 风格命中 → nano-banana-2(全部 10 种)
Rendering 风格命中 → 按各风格的 preferred_backend(见上表)
3. Use-case default_backend
无风格指定时,按用途默认后端
4. 全局默认
gpt-image-2(priority 最高)
```
**GPT Image 2 强项**:写实摄影、产品展示、文字渲染、4K 高清、海报、UI
**Gemini 强项**:动漫/插画/中国风/水彩/素描、多参考图合成、Signature 风格迁移
---
## [Generation] — 后端执行
### GPT Image 2(CRS 路由)
**推荐使用 wrapper 脚本**(支持 generate + edit,多图 edit,自动处理 base64):
```bash
# 文生图
uv run {baseDir}/scripts/gpt_image2.py generate \
--prompt "<prompt>" \
--output /path/out.png \
--size 1536x1024 \
--quality high
# 改图(单张参考图)
uv run {baseDir}/scripts/gpt_image2.py edit \
--prompt "<edit instruction>" \
-i /path/ref.png \
--output /path/out.png \
--size 1024x1536
# 改图(多张参考图,最多 4 张)
uv run {baseDir}/scripts/gpt_image2.py edit \
--prompt "<instruction>" \
-i ref1.png -i ref2.png \
--output /path/out.png
```
> **注意**:edit 接口不支持 `input_fidelity` 参数(已验证 2026-04-25)。
**Python API(内联使用)**:
```python
import os, requests, base64, time
CRS_BASE = os.environ.get('CRS_BASE_URL', 'http://127.0.0.1:8765')
CRS_KEY = os.environ['CRS_API_KEY']
def gpt_image2_generate(prompt, size='1536x1024', quality='high',
output_format='png', filename=None):
resp = requests.post(
f'{CRS_BASE}/openai/v1/images/generations',
headers={'Authorization': f'Bearer {CRS_KEY}'},
json={'model': 'gpt-image-2', 'prompt': prompt, 'size': size,
'quality': quality, 'output_format': output_format,
'response_format': 'b64_json'},
timeout=180,
)
data = resp.json()['data'][0]
out = filename or f'/tmp/image-forge-{int(time.time())}.{output_format}'
with open(out, 'wb') as f:
f.write(base64.b64decode(data['b64_json']))
return out, data.get('revised_prompt', '')
def gpt_image2_edit(prompt, image_path, size='1536x1024', quality='high',
output_format='png', filename=None):
with open(image_path, 'rb') as f:
b64_img = base64.b64encode(f.read()).decode()
resp = requests.post(
f'{CRS_BASE}/openai/v1/images/edits',
headers={'Authorization': f'Bearer {CRS_KEY}'},
json={'model': 'gpt-image-2', 'prompt': prompt,
'images': [{'image_url': f'data:image/png;base64,{b64_img}'}],
'size': size, 'quality': quality,
'output_format': output_format, 'response_format': 'b64_json'},
timeout=180,
)
data = resp.json()['data'][0]
out = filename or f'/tmp/image-forge-edit-{int(time.time())}.{output_format}'
with open(out, 'wb') as f:
f.write(base64.b64decode(data['b64_json']))
return out, data.get('revised_prompt', '')
```
**GPT Image 2 尺寸**:`1024x1024` / `1536x1024` / `1024x1536` / `2048x2048` / `3840x2160` (4K横) / `2160x3840` (4K竖)
### Gemini / Nano Banana 2
```bash
# 文生图
uv run {baseDir}/scripts/generate_image.py \
--prompt "<optimized_english_prompt>" \
--filename "~/.openclaw/workspace/tmp/image-forge/$(date +%Y-%m-%d-%H-%M-%S)-<slug>.png" \
--aspect-ratio "<1:1|3:4|4:3|9:16|16:9>"
# 改图 / 多参考图合成(已实测 2026-04-25)
# Gemini 会在参考图基础上按 prompt 修改,多图合成/风格迁移尤其适合
uv run {baseDir}/scripts/generate_image.py \
--prompt "<e.g.: keep character, change background to warm sunset>" \
--filename "~/.openclaw/workspace/tmp/image-forge/$(date +%Y-%m-%d-%H-%M-%S)-<slug>.png" \
-i "/path/to/ref1.jpg" -i "/path/to/ref2.jpg" \
--aspect-ratio "3:4"
```
> **Gemini edit vs GPT Image 2 edit**
> - Gemini:多图合成、风格迁移更自由,但对原图布局保留能力较弱
> - GPT Image 2:保留原图布局/文字/边框精确修改时更强,推荐用于卡牌、产品展示图的约束性编辑
---
## Prompt 组合逻辑
```
Final Prompt =
[Rendering Style modifier(如有)]
+ [Signature Style prompt(如有,替换主体后)]
+ [Use-case 结构指令(如有,从 references JSON 取)]
+ [用户主体描述(中→英翻译优化)]
+ [技术参数(lighting / composition / quality)]
```
- 中文输入全部翻译为英文后发给两个后端
- Signature Style prompt 已含完整视觉语言,Rendering modifier 作补充层
- 两者同时命中时:Signature 优先(更具体),Rendering 作辅助修饰
---
## 输出交付
- 保存目录:`~/.openclaw/workspace/tmp/image-forge/`
- 文件名:`YYYY-MM-DD-HH-MM-SS-<slug>.png`
- 回复:说明所选路径 + 后端 + 关键 prompt 要点,不读取二进制
### 渠道交付规则
| 渠道 | 交付方式 |
|------|--------|
| **飞书** | `message` tool + `filePath`(发送原生飞书图片消息) |
| Discord / 其他渠道 | `MEDIA: /absolute/path` (自动 inline) |
飞书交付示例:
```
message action=send filePath=/abs/path/to/image.png
```
【注意】一次生成多张图时,分次发送每张图片。
---
## 典型示例
```
# [Path D] 默认 GPT Image 2
"画一只在宇宙中游泳的猫"
→ gpt-image-2,size=1536x1024
# [Path S] Signature 风格 + Gemini
"帮我画一张俄国构成主义风格的 AI 机器人海报"
→ constructivism.yaml → nano-banana-2,aspect=3:4
# [Path R2] Rendering 风格 → 自动按强项调度
"帮我画一张动漫风格的城市夜景"
→ anime-manga modifier → nano-banana-2
"帮我画一张赛博朋克风城市"
→ cyberpunk-sci-fi modifier → gpt-image-2
# [Path U] 用途路由 + 推荐风格
"帮我做一张 YouTube 视频封面,科技感"
→ youtube-thumbnail.json → 推荐 cinematic/photography → gpt-image-2
# [Path U + R2] 用途 + 风格同时命中
"帮我做一张水彩风格的社交配图,主题是咖啡和阅读"
→ social-media-post + watercolor → nano-banana-2,aspect=1:1
# [Path E] 参考图编辑
1张图 + "改成极简风格" → gpt-image-2 edit endpoint
2张图 + "合成一张" → nano-banana-2 (-i ref1 -i ref2)
# [Path R] 风格反推
1张图 + "用这个风格给我画一只猫" → reverse_style.py → gpt-image-2
# 显式后端覆盖
"用 Gemini 画一张产品图" → nano-banana-2(覆盖用途默认)
"4K高清画一张产品海报" → gpt-image-2,size=3840x2160
```
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!