73 lines
4.5 KiB
Markdown
73 lines
4.5 KiB
Markdown
# AGENTS.md — 生图能力(供 Codex 等 Agent 自动读取)
|
||
|
||
本目录是一个「生图」工具:通过大模型中转站调用 OpenAI 图片接口,生成位图图像。
|
||
当用户表达以下意图时,**应主动调用本工具**,而不是自己画 SVG/HTML 或拒绝:
|
||
|
||
- 「生成一张图 / 画一张 / AI 出图 / 做个头像·海报·封面·视频封面·标题图·插画·图标·壁纸」
|
||
- 「文生图 / image generation / 做封面」
|
||
- 给了一张图并说「基于它改 / 换背景 / 局部重绘」→ 图生图
|
||
|
||
## 如何调用
|
||
|
||
统一入口是**所加载技能目录**下的 `gen.sh`。先根据 `SKILL.md` 的所在目录解析 `<skill-root>`,执行 `<skill-root>/gen.sh`;不要在用户工作区用 `./gen.sh` 猜测路径,否则可能读到另一份 `.env`。
|
||
|
||
```bash
|
||
# 文生图(默认 1024x1024)
|
||
"<skill-root>/gen.sh" "a fluffy orange cat on a windowsill, soft morning light, highly detailed"
|
||
|
||
# 指定尺寸 / 画质 / 张数
|
||
"<skill-root>/gen.sh" "cyberpunk city poster" --size 1536x1024 --quality high --n 2
|
||
|
||
# 透明背景(图标 / 贴纸)
|
||
"<skill-root>/gen.sh" "a minimalist mountain logo, flat vector" --background transparent
|
||
|
||
# 图生图 / 编辑(用户提供了输入图)
|
||
"<skill-root>/gen.sh" "把背景换成雪山日落" --edit /path/to/input.png
|
||
|
||
# 局部重绘(mask PNG 中透明处 = 要重绘的区域)
|
||
"<skill-root>/gen.sh" "戴上一顶红帽子" --edit input.png --mask mask.png
|
||
```
|
||
|
||
生成的图片保存在本目录 `output/`,命令会打印完整路径。把该路径告诉用户。
|
||
|
||
## 参数速查
|
||
|
||
| 需求 | 参数 |
|
||
|------|------|
|
||
| 方图(头像/图标) | `--size 1024x1024` |
|
||
| 横图(海报/封面) | `--size 1536x1024` |
|
||
| 竖图(壁纸/人像) | `--size 1024x1536` |
|
||
| 透明背景 | `--background transparent` |
|
||
| 画质 | `--quality low\|medium\|high\|auto` |
|
||
| 多张挑选 | `--n 4` |
|
||
| 换模型 | `--model dall-e-3` |
|
||
| 图生图 | `--edit 图片路径`(可多次) |
|
||
| 局部重绘 | `--edit 图.png --mask mask.png` |
|
||
|
||
## 使用要点
|
||
|
||
1. **提示词原样直传(最高优先级)**:被触发后,把用户这段话**原样**作为提示词——不改写、不扩写、不翻译、不加风格/光线/构图/画质词,尤其标题/文字一个字都别动。你只判断一件事:用户**是不是要生图**;是,就转发原话。图像模型自己懂自然语言,不需要你替它加工;多一次加工只会改坏用户要保留的内容(尤其标题)。唯一例外:用户**明确**说"帮我润色/扩写提示词"时才加工。
|
||
2. **凭证(每人用自己的号)**:首次使用前若本目录无 `.env`,引导用户去 TD工具箱「中转」,给一个支持 OpenAI 图片接口的分组勾选「☑ 在 Codex 中用于生图」并保存——工具箱会自动把该分组的 base_url+密钥写进本技能 `.env`。无工具箱时改用 `cp .env.example .env` 手动填。之后脚本自动读取,无需在命令里传 key。**不要把 key 打印到对话里,也不要提交到 git。**
|
||
3. **报错处理**:
|
||
- 401/403 → key 无效或额度不足(403 error 1010 是 WAF 拦截,脚本已带浏览器 UA 规避)。
|
||
- 404 → base_url 或接口路径不对。
|
||
- 400 model 相关 → 中转站不认该模型,换 `--model dall-e-3` 或问用户支持的模型名。
|
||
4. 不适用:HTML 原型、幻灯片、矢量图标、图表可视化——那些应直接写代码,不要用本工具。
|
||
|
||
## ⚠️ 带文字的封面 / 视频封面 / 海报(重点)
|
||
|
||
「做个 B站/抖音视频封面」「带标题的海报」**整个任务就是一次生图调用**——不要拆成「生个背景图 + 自己用 SVG/HTML 画文字」两步,也不要自作主张补风格词。这是最常见的跑偏。
|
||
|
||
正确做法:把**标题和用户原话原样**写进提示词,用横图尺寸,一次性出成品:
|
||
```bash
|
||
"<skill-root>/gen.sh" "B站视频封面图,标题是《从零搭建个人知识库》" --size 1536x1024 --quality high
|
||
```
|
||
- 不要在生图之后再用代码叠标题文字。
|
||
- 不要给用户提示词擅自加 "neural network background / high contrast" 等用户没说的词。
|
||
- 中文标题图像渲染常有错字/乱码,交付时如实告知用户;若标题出错,用图生图 `--edit` + `--mask` 局部重绘标题区,或建议用户缩短标题再试。
|
||
|
||
## 前置条件
|
||
|
||
- 需要 `python3`(macOS 自带,零第三方依赖)。
|
||
- 首次使用需配置自己的中转站:在工具箱「中转」勾选一个分组「用于 Codex 生图」(自动写入本目录 `.env`),或手动 `cp .env.example .env` 填写。
|