1A1API 生图专用分组 Key 调 Image 2.0 教程和 Skill

给小白看的 1A1API 生图教程:区分只整理提示词与真实付费生成,使用专用分组 Key 和随包安全脚本保存 gpt-image-2 图片,并处理 URL、Base64、审核拒绝和超时未知状态。

内容更新 2026-08-28

先看结论

先区分“只整理提示词”和“明确授权真实生成”;真实生成固定 n=1、关闭自动重试,用随包脚本安全保存图片,不把 Key、Base64、签名 URL 或原始错误体打进日志。

操作步骤

  1. 登录 1A1API 后台,先创建一个专门用于生图的分组,名字建议写 image2-demo、image2-client-a 或 image2-agent。
  2. 给这个分组设置小额度或可控预算;客户 Demo 先给低额度,避免误调用时烧掉主余额。
  3. 在 API 密钥页面为这个分组创建新 Key,备注写清用途,例如 gpt-image-2 海报 Demo。
  4. 复制 Key 后只保存到本机环境变量、服务器环境变量或密钥管理器,不要写进前端代码和提示词。
  5. 确认 BASE_URL,一般按 1A1API / OpenAI-compatible 地址填写到 /v1;如果后台显示不同,以后台为准。
  6. 只需要提示词时明确写“不要调用 API”;只有你当次明确要求真实生成,才允许消耗图片额度。
  7. 安装下方完整 Skill 包,用随包 generate_image.py 从提示词文件生成一张图片;脚本固定 n=1、关闭 SDK 自动重试,并安全保存 URL 或 Base64 结果。
  8. 核对脚本输出的请求尺寸与实际 PNG 像素;同宽高比但像素不同不一定失败,商用前仍需人工验收。

命令与示例

# 尚未安装时,先执行下一段完整包安装命令
# 再创建 UTF-8 提示词文件;不要把 Key 或客户资料写进命令参数
# ONEA1_API_KEY 由密码管理器或当前进程环境安全注入
python "$HOME/.codex/skills/1a1api-image2-generation/scripts/generate_image.py" \
  --prompt-file ./image-prompt.txt \
  --out ./generated-image.png \
  --size 1024x1024 \
  --quality medium \
  --confirm-charge
umask 077
name="1a1api-image2-generation"
root="${CODEX_HOME:-$HOME/.codex}/skills"
target="$root/$name"
base="https://thinktank.1a1api.top/skills/$name"
manifest_expected="9ffe466aa405fbeb1f8829880a28ff16c0569dab65733176b4d6925e88a28578"
mkdir -p "$root"
staging="$(mktemp -d "$root/.${name}.XXXXXX")"
backup=""
cleanup() { rm -rf "$staging"; }
trap cleanup EXIT HUP INT TERM
mkdir -p "$staging/scripts" "$staging/references"
curl --fail --proto '=https' --tlsv1.2 "$base/SHA256SUMS" -o "$staging/SHA256SUMS"
actual="$(shasum -a 256 "$staging/SHA256SUMS" | awk '{print $1}')"
[ "$actual" = "$manifest_expected" ] || { echo 'Manifest SHA-256 mismatch' >&2; exit 1; }
for file in SKILL.md scripts/generate_image.py references/prompt-patterns.md; do
  curl --fail --proto '=https' --tlsv1.2 "$base/$file" -o "$staging/$file"
done
(cd "$staging" && shasum -a 256 -c SHA256SUMS)
for file in SHA256SUMS SKILL.md scripts/generate_image.py references/prompt-patterns.md; do
  printf '\n===== %s =====\n' "$file"
  sed -n '1,500p' "$staging/$file"
done
printf '已完整审阅全部文件,输入 yes 才安装:' >&2
IFS= read -r confirm
[ "$confirm" = yes ] || exit 1
chmod 600 "$staging/SKILL.md" "$staging/SHA256SUMS" "$staging/references/prompt-patterns.md"
chmod 700 "$staging/scripts/generate_image.py"
if [ -e "$target" ]; then
  backup="$target.bak.$(date +%Y%m%d-%H%M%S)"
  [ ! -e "$backup" ] || { echo 'Backup path exists' >&2; exit 1; }
  mv "$target" "$backup"
fi
if ! mv "$staging" "$target"; then
  [ -z "$backup" ] || mv "$backup" "$target"
  exit 1
fi
trap - EXIT HUP INT TERM
printf 'Installed: %s\n' "$target"

# 安装完成后新开会话,或按当前 Agent 的官方方法重新加载技能。

为什么要建生图专用分组 Key

生图任务很适合单独隔离。它通常用于海报、商品图、封面、Demo 配图,调用频率和成本不好预测;专用分组能让你看清消耗、限制额度、出事时只停掉图片 Key。

  • 好对账:控制台里能看出哪些请求是图片任务。
  • 好限额:客户 Demo 或测试脚本先给小额度,避免误调用。
  • 好停用:Key 泄露或项目结束时,只停生图 Key,不影响聊天模型和 Codex / Claude Code。
  • 好分工:一个客户、一个 Demo、一个 Agent 工作流可以各用一个 Key。

后台设置清单

  1. 进入 1A1API 控制台,找到分组或 API 密钥相关页面。
  2. 新建分组:名称建议 image2-demo、image2-client-a、image2-agent。
  3. 给分组设置额度、并发或可控预算;新手建议先小额度测试。
  4. 创建 API Key 时选择这个生图分组,并写清备注。
  5. 确认这个分组可以访问图片模型,模型名以后台列表为准。
  6. 复制 Key 后立刻保存到本机环境变量或密码管理器,不要再发到聊天窗口。

.env 模板

真实项目里由密码管理器、进程环境或服务端密钥管理器注入 Key。不要把真实 Key 放进 .env 示例、静态站前端、提示词文件或命令参数。

ONEA1_IMAGE_BASE_URL=https://1a1api.top/v1
# ONEA1_API_KEY 只在本机安全注入,不写入此文件
# 随包脚本固定 model=gpt-image-2、n=1,并要求 --confirm-charge

为什么推荐随包脚本

旧版 Node/Python 最小示例只把 URL 或整段 Base64 打到终端,没有验证并保存图片,也可能把签名 URL、原始错误体或请求内容留进日志。新版统一使用经过测试的随包脚本。

  • 关闭 OpenAI SDK 自动重试,真实生成固定 n=1。
  • 兼容 b64_json、PNG data URL 与公网 HTTPS URL。
  • 拒绝 HTTP、私网地址、重定向、错误 MIME、空文件、超大文件和损坏 PNG。
  • 原子写入且不覆盖旧文件;只输出脱敏状态与本地路径。
status=ok
source=https_url
bytes=<字节数>
dimensions=<实际宽>x<实际高>
requested_dimensions=1024x1024
exact_size=<true|false>
elapsed_s=<秒>
output=<本地 PNG 绝对路径>

请求尺寸不等于实际像素保证

Images 请求里的 size 表达目标尺寸与宽高比,但上游可能返回同宽高比的不同实际像素。脚本会读取 PNG 的真实宽高:同宽高比差异会明确报告,不会把请求值伪装成实际值;宽高比不一致则停止。

成功返回长什么样

上游可能返回 HTTPS URL、Base64 或 PNG data URL。不要把这些字段直接打印到日志;随包脚本会在内存中解析、验证并保存,只报告 source=https_url、b64_json 或 data_url。

下载可复用 Skill

这是一个完整 Skill 包,不再只是单个 SKILL.md。入口指令、生成脚本和提示词参考缺一不可;安装前先固定校验 SHA256SUMS,再逐文件校验并完整审阅。

  • 在线查看:https://thinktank.1a1api.top/skills/1a1api-image2-generation/SKILL.md
  • 包内容:SKILL.md、scripts/generate_image.py、references/prompt-patterns.md、SHA256SUMS。
  • 推荐目录:~/.codex/skills/1a1api-image2-generation/ 或当前项目的 skills/1a1api-image2-generation/。
  • 安装后新开会话,或按你当前 Agent 的官方帮助重新加载技能;不要照抄不存在的通用 reload 命令。
上方第二段命令是完整安装器:先固定校验 SHA256SUMS,再下载并逐文件校验、展示全文、等待 yes 确认,最后以同文件系统重命名方式安装并保留旧版本备份。任何校验失败都不会替换现有 Skill。

给 Agent 的 7 栏生图提示词模板

这里把生图需求拆成 7 栏:用途、主体、构图、场景、光线材质、文字信息、验收标准。优先描述希望画面呈现什么,不要附加一长串与任务无关的否定词。

请先帮我整理 gpt-image-2 生图提示词,不要直接调用 API。

1. 用途:{电商主图 / 广告海报 / 小红书封面 / UI 展示图 / 信息图 / 人像 / 文章配图}
2. 主体:{产品、人物、角色、界面、空间或信息图主题}
3. 构图:{1:1 居中主图 / 4:5 竖版广告 / 9:16 手机截图 / 16:9 横幅 / 2x2 网格 / 9 宫格分镜}
4. 场景:{背景、道具、使用场景、前中后景、留白位置}
5. 光线与材质:{自然光 / 棚拍柔光 / 霓虹 / 胶片感 / 金属 / 玻璃 / 布料 / 水珠 / 纸张质感}
6. 文字信息:{精确短标题与层级,或明确不渲染文字}
7. 验收标准:{主体比例准确、材质可信、文字可读、构图留白、无水印等与本任务直接相关的标准}

请输出:
A. 一版中文提示词
B. 一版英文提示词
C. 建议比例和 API 请求尺寸
D. 需要人工核对的假设与验收项

从一句话升级成可控提示词

很多失败的生图不是模型不行,而是提示词太泛。把“好看的产品图”改成“主体在什么位置、画面是什么比例、背景有什么、光从哪里来、哪些文字必须清楚、成片需要满足哪些标准”,结果会稳定很多。

弱提示词:
帮我生成一张保温杯电商主图,要高级一点。

升级后:
生成一张 1:1 电商主图,主体是一只哑光白色不锈钢保温杯,杯身居中,占画面 65%,放在浅灰石材台面上。背景为干净的暖白色摄影棚,左侧柔光箱照明,杯身有轻微高光和真实金属反射。画面右上角保留干净留白,不渲染文字。整体风格为可信的家居商业摄影,杯口比例准确,金属材质自然,主体边缘清楚,画面不带水印。

电商主图提示词模板

电商图最重要的是“产品清楚、卖点清楚、背景不抢戏”。参考案例库里的产品广告和 9 宫格分镜写法,建议把产品位置、材质、道具、卖点文字和禁用项写死。

生成一张 {比例,如 1:1 / 4:5} 电商产品主图。
产品:{商品名称和外观,比如黑色折叠蓝牙键盘,磨砂塑料外壳,圆角键帽}。
构图:产品放在画面 {居中 / 左侧三分之一 / 右下角前景},占画面约 {60%},主体边缘清晰。
场景:{干净白底 / 办公桌 / 厨房台面 / 户外露营桌},加入 {2-4 个相关道具},道具保持次要且不遮挡产品。
光线:{柔和棚拍光 / 清晨自然光 / 克制的商业摄影反光},材质准确,阴影自然。
卖点文字:{精确短标题和 1-2 个已核对卖点,或不渲染文字},放在留白区。
成片标准:可信商业摄影,产品比例与材质准确,构图干净,不添加未提供的品牌、认证或水印。

广告海报 / 社媒封面模板

广告图要先定平台比例和信息层级。2x2 网格、4:5 竖版海报、品牌板和价格角标等构图可用于小红书、朋友圈、短视频封面和落地页首图,但正式发布前仍要核对文字与价格。

生成一张 {平台:小红书 / 朋友圈 / 抖音封面 / 官网横幅} 广告图,比例 {4:5 / 9:16 / 16:9}。
主题:{活动或产品主题}。
主视觉:{产品 / 人物 / 场景} 放在 {中心 / 右侧 / 底部前景},第一眼能看懂主题。
文字层级:
- 大标题:{8-14 个字以内}
- 副标题:{一句已核对的利益点}
- 角标:{已核对的短标签}
- 行动按钮:{精确短文案}
视觉风格:{商业摄影 / 轻科技 / 清爽外贸 / 暖色生活方式 / 发布会}。
配色:主色 {颜色},辅助色 {颜色},背景保持干净。
成片标准:移动端可读、文案克制,只使用提供且已核对的品牌与事实,不添加水印。

UI / 信息图 / 多宫格模板

如果要生成教程配图、数据看板、课程海报或 UI 展示图,建议用结构化写法。广告案例里的 JSON 网格和 UI 案例里的手机截图式 prompt 都说明:越明确卡片数量、区域位置、标题和图标数量,越容易得到可用草稿。

{
  "task": "生成一张中文信息图概念图",
  "ratio": "16:9 或 9:16",
  "theme": "1A1API 生图工作流",
  "layout": {
    "structure": "顶部标题 + 中间 4 张步骤卡片 + 底部状态栏",
    "sections": [
      { "position": "top", "text": "Image 2.0 生图流程", "style": "大标题,清晰可读" },
      { "position": "middle-left", "title": "1 创建分组", "visual": "key icon" },
      { "position": "middle-center-left", "title": "2 写提示词", "visual": "prompt document" },
      { "position": "middle-center-right", "title": "3 明确授权", "visual": "confirmation control" },
      { "position": "middle-right", "title": "4 人工审核", "visual": "checklist" }
    ]
  },
  "visual_style": "白底,深绿与蓝色点缀,细边框,统一间距,简洁图标",
  "acceptance": "标签简短清楚,卡片对齐,内容不拥挤,不添加实时数据或随机品牌"
}

人像 / 角色 / 生活方式图模板

人像类不要只写“美女、帅哥、真实”。更稳的写法是:镜头、姿态、服装、光线、环境、肤质、景深、负面约束一起写。公开商用时要避免冒用真人身份、明星肖像和敏感场景。

生成一张 {比例} 的生活方式人像图。
人物:原创成年人物,{年龄段、职业感、穿着、表情、动作}。
镜头:{35mm 胶片感 / 50mm 人像 / 近景 / 半身 / 全身}。
场景:{办公室 / 咖啡馆 / 展会 / 户外街道 / 工作台},背景有少量真实生活细节但保持次要。
光线:{窗边自然光 / 柔和棚拍 / 傍晚逆光 / 夜晚霓虹},肤质与织物纹理自然。
用途:{品牌海报 / 客户案例配图 / 课程封面 / Agent 角色设定}。
成片标准:人物身份原创,姿态和手部自然,画面不带水印;文字只在提供精确短文案时渲染。

生成前检查清单

  • 模型名:请求体里的 model 写 gpt-image-2,不写 image2.0。
  • 比例:先想清楚 1:1、4:5、9:16 还是 16:9;平台不同,比例不同。
  • 主体:写清楚主体是什么、放在哪里、占画面多大。
  • 构图:是否需要网格、卡片、分镜、留白、标题区、按钮区。
  • 文字:中文要短;标题、价格、按钮、角标分开写;不要让模型画大段正文。
  • 材质:产品图要写金属、玻璃、布料、塑料、纸张、水珠、反光等细节。
  • 光线:写自然光、棚拍柔光、霓虹、逆光、胶片闪光,别只写“高级”。
  • 验收项:主体比例、文字可读性、材质、人物姿态、品牌准确性和水印;只写与当前任务直接相关的约束。
  • 成本:第一次 n=1,满意后再多出几张,不要一上来批量生成。
  • 验收:商用前人工检查商标、人物、文字、承诺、版权和敏感内容。

适合哪些工作流

  • 电商运营:商品主图、场景图、详情页氛围图先出草稿,再由设计师修。
  • 内容生产:公众号、小红书、视频封面配图,先生成多个方向供人工挑选。
  • Agent Demo:给客户看“上传资料 → 生成文案 → 生成配图 → 人工审核”的完整流程。
  • 知识库文章:给教程、案例和工具说明配一张主题图,不要使用侵权素材。
  • 外贸业务:产品概念图、包装方向、展会海报草稿,但商标和认证文字必须人工确认。

不同 Agent 工具怎么用

  • Claude Code / Codex / OpenCode:适合写后端脚本、读取环境变量、保存图片到本地;不要让它把 Key 写进前端。
  • OpenClaw:可通过已审查的 skill、plugin 或后端工具调用生图接口;不要假设 Control UI 自带拖拽式生图节点。
  • cc-switch:主要用于模型 provider 切换;生图接口仍建议用脚本或后端服务固定调用。
  • 静态网页:只展示教程、表单或 Demo,不直接暴露真实 Key 调图。

返回结果怎么处理

  • HTTPS URL:随包脚本先确认公网地址并固定已验证 IP 下载,拒绝重定向、私网、错误 MIME、空文件和超大文件。
  • Base64 / PNG data URL:在内存中解码,不把原文打印到终端或日志。
  • 保存前验证 PNG 结构、CRC、实际尺寸和宽高比;原子写入,不覆盖已有文件。
  • 只记录脱敏结果:响应形态、字节数、耗时、请求尺寸、实际像素和本地路径。
  • 给客户前人工检查:文字、Logo、人物、手指、商标、版权风险。

常见报错对照

  • 先记录失败时间和请求 ID,到控制台日志确认状态码、模型、分组与上游结果,再按 https://help.1a1api.top/troubleshooting 排查。
  • 401:常见于 Key 无效、Authorization 格式或入口不匹配,不要只靠反复生成 Key。
  • 403:常见于分组、模型权限、策略或上游拒绝;检查当前 Key 分组与日志。
  • 400:可能是请求参数错误或内容审核拒绝;不要只改模型名,也不要连续自动改词重试。
  • 404 / model not found:可能是路径、协议、模型 ID 或分组映射不匹配;从当前控制台与模型列表核对。
  • 429:可能是请求频率、并发、RPM/TPM、余额/额度或上游限流;脚本已固定 n=1,停止并结合日志判断。
  • 超时 / 连接失败 / 5xx:这笔生成或计费状态可能未知;先查控制台证据,不要自动新生成。
  • 图片不符合预期:提示词太泛;补主体、构图、光线、材质和明确验收标准。
  • 图片里出现乱码字:尽量不要让模型直接画文字,文字后期用设计工具叠加。

上线前安全检查

  • Key 只在环境变量或后端保存,没有出现在前端打包文件、Git、截图、日志里。
  • 生图 Key 有独立分组、独立额度、独立备注。
  • 客户 Demo 使用临时 Key 或小额度 Key。
  • 调用日志能区分不同客户、不同 Demo、不同 Agent。
  • 生成图片上线前经过人工审核,尤其是商标、人物、敏感内容和宣传承诺。

适合谁看

  • 想让 Agent 帮你生成电商图、海报、小红书封面、文章配图或产品概念图
  • 已经有 1A1API 账号,但不知道图像模型该怎么单独配置
  • 担心把主 Key 填到脚本、网页或客户 Demo 里导致额度被刷
  • 想把生图流程写成 Skill,让 Claude Code、Codex、OpenCode 或 OpenClaw 反复调用

需要解决的问题

  • 聊天模型能用,但生图接口不知道填哪个 endpoint
  • 图片任务扣费不好对账,不知道是谁在消耗
  • 多个客户或多个 Demo 共用一个 Key,出问题没法单独停用
  • Agent 总让你把 Key 贴进提示词或前端页面,这是高风险做法

先理解这些

  • 图像生成一般走 Images 接口,1A1API 帮助页公开写有 POST /v1/images/generations 入口
  • 生图成本和失败重试可能比普通聊天更不可控,所以要独立分组、独立 Key、独立限额
  • 页面里可以写 Image 2.0 / 生图 2.0,但实际 API 请求里的 model 建议使用 gpt-image-2,不要直接填 image2.0
  • 静态网页、公开仓库、聊天记录都不适合保存真实 API Key,应该用环境变量或后端代理

遇到困难时

  • 401 / 403:停止调用,核对专用 Key 的分组、图片权限和当前入口;不要输出 Key 或原始响应体。
  • 400:既可能是参数校验,也可能是内容审核拒绝,不能一律归因为模型名;不要自动连续改词重试。
  • 404 / model not found:从当前控制台和帮助页核对路径、模型 ID 与分组映射,不要只猜模型拼写。
  • 429:随包脚本已经固定 n=1 且关闭重试;停止后结合脱敏日志检查额度、并发、频率和上游限制。
  • 超时、连接中断或 5xx:生成与计费状态可能不明确;先核对控制台证据,再由用户决定是否产生一笔新的生成。
  • 图片质量差:先改提示词和验收条件,不要盲目重复生成;优先写清主体、构图、光线、材质和用途。
  • 如果要给客户预览,不要直接从浏览器前端调用 1A1API;用后端代理或本机脚本,避免 Key 暴露。