Files
codex-market-app/gen-image/SKILL.md
T
backup-bot 2dc15d99ad feat: 新增 gen-image 生图技能
通过大模型中转站调用 OpenAI 图片接口生图(文生图/图生图/局部重绘/透明背景),零第三方依赖。
含可安装 zip 与可浏览源码。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-14 17:53:43 +08:00

92 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: gen-image
description: 调用大模型中转站的 OpenAI 图片接口生图(文生图、图生图/编辑、局部重绘、透明背景)。触发词:生图、生成图片、画一张、AI 画图、文生图、图生图、生成插画/头像/海报/图标、image generation、根据这张图改。需要外部 API 生成位图图像时使用;纯 HTML/SVG/矢量设计不适用。
---
# gen-image · 生图
通过大模型中转站,直接调用 OpenAI 图片接口生成位图图像。支持**文生图**、**图生图/编辑**、**局部重绘(mask)**、**透明背景**。
核心是零依赖脚本 `scripts/gen_image.py`(纯 Python 标准库,无需 pip install)。
## 何时用 / 不用
- ✅ 用户要「生成一张图 / 画一张 / AI 出图 / 做个头像/海报/插画/图标」
- ✅ 用户给了一张图要「基于它改 / 换背景 / 局部重绘」→ 图生图
- ❌ 用户要 HTML 原型、幻灯片、矢量图标、CSS 效果 → 用 `huashu-design` 或直接写代码
- ❌ 用户要图表/数据可视化 → 用 `dataviz`
## 首次使用:配置凭证
生图需要中转站的 API Key。检查 skill 根目录是否有 `.env`:
```bash
ls "$(dirname SKILL.md)/.env" 2>/dev/null || echo "未配置"
```
若无,从模板创建并让用户填写(**不要把 key 写进对话或提交到 git**):
```bash
cp .env.example .env
# 然后引导用户编辑 .env,填入 IMAGE_API_BASE_URL 和 IMAGE_API_KEY
```
`.env` 需要三项:
- `IMAGE_API_BASE_URL` — 中转站基址,如 `https://your-relay.com`(脚本自动补 `/v1/images/...`)
- `IMAGE_API_KEY` — API Key
- `IMAGE_MODEL` — 默认模型,默认 `gpt-image-2`
## 标准流程
**1. 打磨提示词。** 用户给的描述往往简短,先在心里扩写成一句信息充分的英文或中文提示词——主体、风格、光线、构图、色调、画质关键词。除非用户明确要求逐字使用,否则主动增强。生图模型对细节敏感,「一只猫」远不如「a fluffy orange tabby cat sitting on a windowsill, soft morning light, shallow depth of field, cozy warm tones」。
**2. 选参数:**
- `--size`:`1024x1024`(方,头像/图标)、`1536x1024`(横,海报/封面)、`1024x1536`(竖,手机壁纸/人像)、`auto`
- `--quality`:`low`/`medium`/`high`/`auto`(gpt-image 系支持;越高越慢越贵)
- `--background transparent`:要透明底的图标/贴纸时加
- `--n`:一次出几张(默认 1;多给几张让用户挑时用 `--n 2` 或 `4`)
**3. 执行(文生图):**
```bash
cd "<skill 根目录>" && python3 scripts/gen_image.py \
"a fluffy orange tabby cat on a windowsill, soft morning light, cozy tones, highly detailed" \
--size 1024x1024 --quality high
```
图片存到 `output/img-<时间戳>-<序号>.png`,脚本会打印完整路径。
**4. 图生图 / 编辑**(用户给了输入图):
```bash
python3 scripts/gen_image.py "把背景换成雪山日落" --edit /path/to/input.png --size 1024x1024
```
多图参考:多次 `--edit a.png --edit b.png`。局部重绘:加 `--mask mask.png`(PNG 中**透明区域**为要重绘的部分,其余保留)。
**5. 交付。** 打印出保存路径后,简要告诉用户生成了什么、存在哪。图无法在终端直接显示,用户会自己打开;若在支持预览的环境可提示路径。
## 常见参数速查
| 需求 | 命令片段 |
|------|---------|
| 头像/图标(方图) | `--size 1024x1024` |
| 海报/封面(横) | `--size 1536x1024` |
| 手机壁纸/人像(竖) | `--size 1024x1536` |
| 透明背景贴纸 | `--background transparent` |
| 多出几张挑选 | `--n 4` |
| 高画质 | `--quality high` |
| 换模型 | `--model dall-e-3` |
| 基于图改 | `--edit input.png` |
| 局部重绘 | `--edit input.png --mask mask.png` |
## 排错
- **缺 IMAGE_API_BASE_URL / IMAGE_API_KEY** → `.env` 没配好,回到「配置凭证」。
- **HTTP 401/403** → key 无效或额度不足,让用户核对中转站账户。
- **HTTP 404** → base_url 写错,或该中转站不支持 `/v1/images/generations`;确认接口路径。
- **HTTP 400 model 相关** → 该中转站不认 `gpt-image-2`,换 `--model dall-e-3` 或问用户支持的模型名。
- **响应没有图片数据** → 部分中转站返回结构不同,把打印的原始响应给用户看以便排查。
不要把 API Key 输出到对话里,也不要提交 `.env`。