模型 API / 中转站 · 小白

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

给小白看的 1A1API 生图教程:先创建生图专用分组和 Key,再用 gpt-image-2 调 /v1/images/generations,并提供电商、广告、UI 信息图、人像场景的提示词模板和可下载 SKILL.md。

  • 1A1API
  • Image 2.0
  • gpt-image-2
  • 生图
  • Skill.md
  • 图像模型
  • 提示词
更新于 2026-06-07

一句话结论

不要拿主 Key 直接生图;先建一个只给图片任务用的分组 Key,再按用途、主体、构图、场景、光线、文字和禁止项写提示词,用 gpt-image-2 调 /v1/images/generations。

适用场景

  • 想让 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,应该用环境变量或后端代理

解决步骤

  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. 用 curl 对 /images/generations 发一次最小请求,模型填 gpt-image-2,确认返回正常。
  7. 把下方 SKILL.md 下载到你的 Agent 技能目录,让 Agent 以后按固定流程生成提示词、调用 API、排错和验收。

可复制命令

export ONEA1_API_KEY="你的_API_KEY"

curl https://1a1api.top/v1/images/generations \
  -H "Authorization: Bearer $ONEA1_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "A tiny blue cube centered on a clean white background, minimal product render",
    "size": "1024x1024",
    "n": 1
  }'
mkdir -p ~/.codex/skills/1a1api-image2-generation
curl -L "https://thinktank.1a1api.top/skills/1a1api-image2-generation/SKILL.md" \
  -o ~/.codex/skills/1a1api-image2-generation/SKILL.md

# 装完后新开会话,或让你的 Agent 重新加载 skills。

仍然不行怎么办

  • 如果返回 401,先确认 Key 是生图分组的新 Key,不是旧 Key、管理员 Key 或已经停用的 Key。
  • 如果返回 403,检查这个分组是否有 gpt-image-2 或图片模型权限。
  • 如果提示 model not found,回到 1A1API 后台复制模型 ID,确认请求里的 model 是 gpt-image-2,不要写成 image2.0 或 image-2.0。
  • 如果返回 429,降低频率,把 n 改成 1,检查生图分组额度、并发和短时间请求数。
  • 如果图片质量差,先改提示词,不要盲目重复生成;把主体、场景、构图、光线、风格、禁止项写清楚。
  • 如果要给客户预览,不要直接从浏览器前端调用 1A1API;用后端代理或本机脚本,避免 Key 暴露。

为什么要建生图专用分组 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 模板

真实项目里建议放到 `.env.local`、服务器环境变量或密钥管理器。静态站前端不能直接读取这些 Key。

ONEA1_IMAGE_BASE_URL=https://1a1api.top/v1
ONEA1_API_KEY=你的_API_KEY
ONEA1_IMAGE_MODEL=gpt-image-2
ONEA1_IMAGE_SIZE=1024x1024

Node.js 最小脚本

如果你要在 Claude Code、Codex 或 OpenCode 项目里调用,可以让它先生成后端脚本。下面示例不要放进浏览器前端。

const API_KEY = process.env.ONEA1_API_KEY;

async function generateImage() {
  const res = await fetch("https://1a1api.top/v1/images/generations", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${API_KEY}`,
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      model: "gpt-image-2",
      prompt: "A tiny blue cube centered on a clean white background, minimal product render",
      size: "1024x1024",
      n: 1
    })
  });

  const data = await res.json();

  if (!res.ok) {
    console.error(data);
    throw new Error("Image generation failed");
  }

  console.log(data.data?.[0]?.url || data.data?.[0]?.b64_json);
}

generateImage();

Python 最小脚本

Python 里建议把超时时间设到 120-180 秒,因为生图通常比文字模型慢。

import os
import requests

api_key = os.environ["ONEA1_API_KEY"]

resp = requests.post(
    "https://1a1api.top/v1/images/generations",
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    json={
        "model": "gpt-image-2",
        "prompt": "A tiny blue cube centered on a clean white background, minimal product render",
        "size": "1024x1024",
        "n": 1,
    },
    timeout=180,
)

data = resp.json()

if resp.status_code != 200:
    print(data)
    raise RuntimeError("Image generation failed")

print(data["data"][0].get("url") or data["data"][0].get("b64_json"))

成功返回长什么样

不同上游可能返回图片 URL,也可能返回 base64。代码里最好同时兼容 `url` 和 `b64_json`。

{
  "created": 1780563719,
  "data": [
    {
      "url": "https://cdnoss.example.com/images/example.png"
    }
  ]
}

下载可复用 Skill

我已经把这个流程整理成 `SKILL.md`,适合放进 Codex、Claude Code、OpenCode 或项目级 skills 目录。它会提醒 Agent 不要索要完整 Key、不要把 Key 写进文件,并按固定步骤生成图片。

  • 在线查看:https://thinktank.1a1api.top/skills/1a1api-image2-generation/SKILL.md
  • 推荐目录:`~/.codex/skills/1a1api-image2-generation/SKILL.md` 或当前项目的 `skills/1a1api-image2-generation/SKILL.md`。
  • 安装后新开会话,或用你的 Agent 支持的 reload skills 命令重新加载。
mkdir -p ~/.codex/skills/1a1api-image2-generation
curl -L "https://thinktank.1a1api.top/skills/1a1api-image2-generation/SKILL.md" \
  -o ~/.codex/skills/1a1api-image2-generation/SKILL.md

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

我参考 EvoLinkAI 的 GPT Image 2 案例库后,把高质量案例拆成 7 栏:用途、主体、构图、场景、光线材质、文字信息、限制项。小白只要把这 7 栏填清楚,图片通常会比一句话提示词稳定很多。

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

1. 用途:{电商主图 / 广告海报 / 小红书封面 / UI 展示图 / 信息图 / 人像 / 文章配图}
2. 主体:{产品、人物、角色、界面、空间或信息图主题}
3. 构图:{1:1 居中主图 / 4:5 竖版广告 / 9:16 手机截图 / 16:9 横幅 / 2x2 网格 / 9 宫格分镜}
4. 场景:{背景、道具、使用场景、前中后景、留白位置}
5. 光线与材质:{自然光 / 棚拍柔光 / 霓虹 / 胶片感 / 金属 / 玻璃 / 布料 / 水珠 / 纸张质感}
6. 文字信息:{标题、副标题、按钮、价格、角标、中文标注;文字少而清楚}
7. 限制项:不要水印、不要乱码、不要多余 Logo、不要变形手指、不要错误品牌、不要夸大宣传。

请输出:
A. 一版中文提示词
B. 一版英文提示词
C. 负面约束
D. 适合 gpt-image-2 的 JSON 请求体,model 必须写 gpt-image-2

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

很多失败的生图不是模型不行,而是提示词太泛。把“好看的产品图”改成“谁在什么位置、画面是什么比例、背景有什么、光从哪里来、哪些文字必须清楚、哪些东西不能出现”,结果会稳定很多。

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

升级后:
生成一张 1:1 电商主图,主体是一只哑光白色不锈钢保温杯,杯身居中,占画面 65%,放在浅灰石材台面上。背景为干净的暖白色摄影棚,左侧柔光箱照明,杯身有轻微高光和真实金属反射。画面右上角留白,用简体中文写标题“全天保温 24 小时”,下方小字“轻量便携 / 食品级内胆”。整体风格为高端家居电商摄影,清晰、干净、可信。不要水印,不要额外品牌 Logo,不要乱码文字,不要夸张反光,不要变形杯口。

电商主图提示词模板

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

生成一张 {比例,如 1:1 / 4:5} 电商产品主图。
产品:{商品名称和外观,比如黑色折叠蓝牙键盘,磨砂塑料外壳,圆角键帽}。
构图:产品放在画面 {居中 / 左侧三分之一 / 右下角前景},占画面约 {60%},主体边缘清晰。
场景:{干净白底 / 办公桌 / 厨房台面 / 户外露营桌},加入 {2-4 个相关道具},但不要遮挡产品。
光线:{柔和棚拍光 / 清晨自然光 / 高级商业摄影反光},材质要真实,阴影自然。
卖点文字:用简体中文写 {主标题},小字写 {2-3 个卖点},文字放在留白区,不压住产品。
风格:真实商业摄影,高级、干净、可信,不要过度科幻。
禁止:不要水印、不要虚假认证标志、不要随机 Logo、不要乱码、不要多余手指、不要错误材质。

广告海报 / 社媒封面模板

广告图要先定平台比例和信息层级。EvoLinkAI 的广告案例里常见 2x2 网格、4:5 竖版海报、品牌板和带价格角标的广告图,适合小红书、朋友圈、短视频封面和落地页首图。

生成一张 {平台:小红书 / 朋友圈 / 抖音封面 / 官网横幅} 广告图,比例 {4:5 / 9:16 / 16:9}。
主题:{活动或产品主题}。
主视觉:{产品 / 人物 / 场景} 放在 {中心 / 右侧 / 底部前景},第一眼能看懂卖什么。
文字层级:
- 大标题:{8-14 个字以内}
- 副标题:{一句补充利益点}
- 角标:{限时 / 新品 / 首单优惠 / 免费体验}
- 行动按钮:{立即咨询 / 查看教程 / 领取方案}
视觉风格:{高级商业摄影 / 轻科技 / 清爽外贸 / 暖色生活方式 / 黑金发布会}。
配色:主色 {颜色},辅助色 {颜色},背景保持干净。
约束:文字必须清晰可读;不要把正文写太多;不要水印;不要多余 Logo;不要夸大疗效、收益或官方背书。

UI / 信息图 / 多宫格模板

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

{
  "task": "生成一张中文信息图或 UI 展示图",
  "ratio": "16:9 或 9:16",
  "theme": "1A1API 生图工作流",
  "layout": {
    "structure": "顶部标题 + 中间 4 张步骤卡片 + 底部注意事项",
    "sections": [
      { "position": "top", "text": "Image 2.0 生图流程", "style": "大标题,清晰可读" },
      { "position": "middle-left", "title": "1 创建分组", "visual": "API key icon" },
      { "position": "middle-center-left", "title": "2 写提示词", "visual": "prompt document" },
      { "position": "middle-center-right", "title": "3 调用接口", "visual": "terminal curl" },
      { "position": "middle-right", "title": "4 人工审核", "visual": "checklist" },
      { "position": "bottom", "text": "不要暴露 Key;model 使用 gpt-image-2;先 n=1 测试" }
    ]
  },
  "visual_style": "干净科技感,白底,深绿与蓝色点缀,卡片边框细,适合教程网站",
  "constraints": "中文不要乱码,不要水印,不要伪造品牌 Logo,不要挤满文字"
}

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

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

生成一张 {比例} 的生活方式人像图。
人物:{年龄段、职业感、穿着、表情、动作},不要指定真实公众人物。
镜头:{35mm 胶片感 / 50mm 人像 / 手机截图 / 近景 / 半身 / 全身}。
场景:{办公室 / 咖啡馆 / 展会 / 户外街道 / 工作台},背景有真实生活细节但不过分杂乱。
光线:{窗边自然光 / 柔和棚拍 / 傍晚逆光 / 夜晚霓虹},皮肤质感自然,不要塑料感。
用途:{品牌海报 / 客户案例配图 / 课程封面 / Agent 角色设定}。
禁止:不要真实明星脸,不要色情化,不要畸形手指,不要过度磨皮,不要水印,不要乱码文字。

生成前检查清单

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

适合哪些工作流

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

不同 Agent 工具怎么用

  • Claude Code / Codex / OpenCode:适合写后端脚本、读取环境变量、保存图片到本地;不要让它把 Key 写进前端。
  • OpenClaw:适合把生图作为工作流中的一个节点,先生成提示词,再调用图像接口。
  • cc-switch:主要用于模型 provider 切换;生图接口仍建议用脚本或后端服务固定调用。
  • 静态网页:只展示教程、表单或 Demo,不直接暴露真实 Key 调图。

返回结果怎么处理

  • 如果返回 URL:先下载到本地或对象存储,再记录提示词、模型、尺寸和时间。
  • 如果返回 base64:解码成 PNG 或 WebP 文件,再给前端展示。
  • 保存时用业务名和日期命名,例如 `poster-20260604-01.png`。
  • 给客户前人工检查:文字、Logo、人物、手指、商标、版权风险。

常见报错对照

  • 401:Key 错、Key 被停用、复制错了旧 Key,先重新生成生图分组 Key。
  • 403:分组没有 gpt-image-2 或图片模型权限,检查模型权限和分组绑定。
  • 404 / model not found:模型名拼错;回后台复制真实模型 ID。
  • 429:请求太快、并发太高或额度不足;先 n=1,降低频率。
  • 图片不符合预期:提示词太泛;补主体、构图、光线、风格、禁止项。
  • 图片里出现乱码字:尽量不要让模型直接画文字,文字后期用设计工具叠加。

上线前安全检查

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

相关问题

还卡着?

可以把截图、日志、需求单或当前页面链接发到 zhemuy@gmail.com。