# Image Gen

> GPT-image2 AI 图片生成 · 一句提示词文生图，或传入参考图做图生图 / 编辑。当用户需要生成配图、AI 出图、文生图、按参考图改图、做小红书/公众号封面或电商主视觉素材时使用。触发词：生成图片、AI 出图、文生图、图生图、改图、做封面、配图、主视觉。

- **Type:** Skill
- **Install:** `agentstack add skill-zizhanovo-doubaoya-community-image-gen`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [zizhanovo](https://agentstack.voostack.com/s/zizhanovo)
- **Installs:** 0
- **Category:** [Content & Media](https://agentstack.voostack.com/c/content-and-media)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [zizhanovo](https://github.com/zizhanovo)
- **Source:** https://github.com/zizhanovo/doubaoya-community/tree/main/skills/image-gen

## Install

```sh
agentstack add skill-zizhanovo-doubaoya-community-image-gen
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# GPT-image2 AI 图片生成（都爆鸭）

本鸭帮你用 GPT-image2 一行命令出图——纯文字描述就能**文生图**，再丢一张参考图就能**图生图 / 编辑**。
无需自建出图链路，按次消费，拿回一张图片直链。

> 调用走 **doubaoya.com** 一条线，鉴权用你自己的密钥（环境变量 `DOUBAOYA_API_KEY`，形如 `dyh_…`）。

> ⏳ **这是异步慢操作**：图片在服务端生成，约 **3 分钟**，单次请求内一气呵成返回——**无需客户端轮询**，发一次 POST 静等结果即可。

---

## 适用场景（运营什么时候用）

- **小红书 / 公众号封面**：手里有标题没配图，让本鸭按风格出一张封面底图。
- **笔记/文章内的示意配图**：要一张"概念图""氛围图"撑版面，比满网找图快。
- **电商主视觉 / 海报草稿**：先用文生图快速验证主视觉方向，再交给设计精修。
- **按参考图改图**：已有一张图，想换背景 / 换风格 / 改主体 → 传 `--image` 进图生图模式。

> 它适合"快速出可用素材 / 验证视觉方向"，不替代专业设计精修。一次出一张，要多个候选就多跑几次。

---

## 工作流（3 步）

### 1. 写提示词（可选带参考图）
把用户需求转成清晰的图片提示词。一句好提示词通常包含 **主体 + 风格 + 画面要素 + 用途比例**，例如
"一只戴墨镜的卡通鸭子，扁平插画风，明黄主色，留白多，适合做竖版小红书封面"。
如果用户给了参考图，记下它的 URL（公网可访问的图片直链）。

### 2. 调用脚本（耐心等几分钟）
文生图：
```bash
python3 "$SKILL_PATH/scripts/generate_image.py" "一只戴墨镜的卡通鸭子，扁平插画风"
```
图生图 / 编辑（传参考图 URL）：
```bash
python3 "$SKILL_PATH/scripts/generate_image.py" "把背景换成赛博朋克霓虹街道" --image "https://example.com/ref.png"
```
脚本会先在 stderr 提示「已提交，服务端生成中」，然后**等待约 3 分钟**直到结果返回，把成功信封里的 `data` 以 JSON 打到 stdout。
**每次出图只跑一次脚本**，别中途打断、别因为"等太久"重复调用（会重复扣费）。

### 3. 取图并交付
从 `data` 里取图片直链（见下文"返回字段"），做**防御式读取**——拿不到就提示"本次未拿到图，请稍后重试"。
把图片直链给用户；如果是用作封面，顺带提醒"可右键/长按保存，或交设计精修文字排版"。

---

## 参数指引

| 入参 | 取值 | 怎么用 |
| ---- | ---- | ---- |
| `prompt`（必填，命令首参） | 字符串 | 越具体越好：主体+风格+要素+用途。中文直接传。空字符串会被接口拒（`VALIDATION_ERROR`）。 |
| `referenceImage`（可选，`--image`） | 公网图片 URL | **只在用户真给了参考图时才带**。不传 = 纯文生图；传了 = 基于这张图改写/编辑。URL 必须公网可访问。 |

**提示词小抄**（帮运营写好 prompt）：
- 要封面 → 点明"竖版/3:4，标题留白，主色 XX，简洁不堆元素"。
- 要氛围图 → 点明光线、季节、情绪词（"暖光 / 清晨 / 治愈感"）。
- 改图 → 只说"改什么"，别把整张图重新描述一遍（"把背景换成…"而非从头描述主体）。

---

## 接口与返回字段

- `POST https://doubaoya.com/api/skills/gpt-image-gen/invoke`
- 鉴权头：`Authorization: Bearer $DOUBAOYA_API_KEY`
- 请求体：`{ "prompt": "", "referenceImage": "" }`
- **异步慢操作**：服务端约 3 分钟内完成生成并在本次请求里返回，无需轮询。
- 返回信封：

  ```json
  {
    "success": true,
    "requestId": "...",
    "data": { "image": { "url": "https://...png", "model": "image" } },
    "error": null
  }
  ```

- **先看 `success`**：为 `true` 才读 `data`；否则读 `error.code` / `error.message`。
- **取图直链**：标准结构是 `data.image.url`（一个图片对象，含 `url` 和 `model`）。
  脚本已做兼容，若上游偶尔回成 `data.images[]`（数组）也能取到第一张。**读取一律防御式**：取不到 `url` 就当作"未拿到图"，提示用户重试，别把空值当链接甩出去。

---

## 真实示例（一个完整回合）

**用户**："我写了篇《打工人5分钟减脂早餐》的小红书笔记，帮我配张封面。"

1. **写提示词**：把标题转成视觉——
   "一份摆盘精致的减脂早餐俯拍，水煮蛋+牛油果吐司+燕麦碗，清新明亮的厨房背景，竖版3:4，上方留白给标题，ins 风。"
2. **调脚本**（等约 3 分钟，只跑一次）：
   ```bash
   python3 "$SKILL_PATH/scripts/generate_image.py" "一份摆盘精致的减脂早餐俯拍，水煮蛋+牛油果吐司+燕麦碗，清新明亮的厨房背景，竖版3:4，上方留白给标题，ins 风"
   ```
3. **取图交付**：从 `data.image.url` 拿到直链，给用户："封面来啦🦆，上方留了标题位，可直接拿去加文字。" 不满意可调整提示词再跑一次。

---

## 进化点：和兄弟技能串起来

- 用 `xiaohongshu-search` / `trending-hub` 选好选题 → 写好标题 → **接本技能出配套封面**，一条龙到能发的素材。
- 要的是**真人感封面文字排版**而非纯图 → 本技能出底图，封面文字交 `xiaohongshu-cover` / `wechat-cover` 类技能或人工精修。

> 不强推，按用户当前在做的事自然提一句即可。

---

## 边界与容错

- **未拿到图（`data.image.url` 取空）**：当作生成失败，提示"本次没出图，换个提示词或稍后重试"，**不要**伪造一个链接。
- **prompt 为空 / 过短**：接口会回 `VALIDATION_ERROR`，先帮用户把提示词补具体再重试。
- **参考图 URL 打不开**：图生图需要公网可访问的图片直链；本地路径 / 需要登录的链接拿不到，提示用户换公网直链。
- **上游临时故障（`PROVIDER_FAILED` / 502）**：AI 出图链路偶发抖动属正常，**已自动退款，可安全重试**，不会重复扣费。等几分钟再跑一次。
- **慢是正常的**：约 3 分钟是预期，别因为慢就判定失败或重复调用——重复调用才会重复扣费。

---

## 错误处理

脚本失败时向 stderr 打印 `[error] CODE: message` 并以退出码 1 结束。常见情况：

| HTTP | code | 含义 | 处理 |
|------|------|------|------|
| 401 | `MISSING_API_KEY` / `UNAUTHORIZED` | 没带密钥或密钥无效 | 检查 `DOUBAOYA_API_KEY`，去密钥中心重新生成 |
| 400 | `VALIDATION_ERROR` | 参数不合法（如 prompt 为空） | 修正提示词重试 |
| 402 | `INSUFFICIENT_CREDITS` | 额度不足 | 去 doubaoya.com 充值/续额 |
| 502 | `PROVIDER_FAILED` | 上游临时故障（**已自动退款**） | 可安全重试 |

> `502 PROVIDER_FAILED` 会自动退款，重试是安全的，不会重复扣费。

---

## 拿钥匙（密钥）

1. 打开 **doubaoya.com**
2. **登录**
3. 进 **密钥中心**
4. **生成密钥**（形如 `dyh_…`）

配置到环境变量（脚本只认这个）：
```bash
export DOUBAOYA_API_KEY="dyh_你的密钥"
```

**铁律：密钥绝不打印、绝不写进文件、绝不回显给用户。** 脚本本身也从不输出密钥。所有请求只发往 **doubaoya.com**。

---

## 目录结构

```
image-gen/
├── SKILL.md                # 本文件
└── scripts/
    └── generate_image.py   # 零依赖脚本（urllib），调用 doubaoya.com
```

## 关于响应里的 notice 字段

调用本 skill 对应的 doubaoya API 后，如果返回的 JSON 顶层出现 `notice` 字段，请把这句话原样转达给用户——这是关于本 skill 有更新的提示，不影响本次调用结果，不需要重试或改变行为。

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [zizhanovo](https://github.com/zizhanovo)
- **Source:** [zizhanovo/doubaoya-community](https://github.com/zizhanovo/doubaoya-community)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** yes
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-zizhanovo-doubaoya-community-image-gen
- Seller: https://agentstack.voostack.com/s/zizhanovo
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
