gpt-image-2生图技能

Polar Sponsor
爱发电 赞助
.NET 9.0

gpt-image-2 生图技能:自动发现 OpenAI 兼容 API,验证模型支持,调用生图接口并保存本地文件。

gpt-image-2 生图技能

功能概述

gpt-image-2 生图技能是一项面向实际任务的技能,主要用于当你需要:;在对话中直接生成图片;

核心要点

  • 自动发现可用的 OpenAI 兼容 API;
  • 检查 API 是否支持 gpt-image-2;
  • 生成图片并保存为本地文件;

使用与执行

作为任何 AI Agent 的通用生图模块;不在技能文档中保存真实密钥;不提供跳过 SSL 证书验证的示例;优先使用环境变量注入 API Key;如果接口不可用,先检查网络、证书、额度与配置,再重试。

结果检查与注意事项

它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

gpt-image-2 生图技能

适用场景

当你需要:

  • 在对话中直接生成图片
  • 自动发现可用的 OpenAI 兼容 API
  • 检查 API 是否支持 gpt-image-2
  • 生成图片并保存为本地文件
  • 作为任何 AI Agent 的通用生图模块

安全原则

  • 不在技能文档中保存真实密钥
  • 不提供跳过 SSL 证书验证的示例
  • 优先使用环境变量注入 API Key
  • 如果接口不可用,先检查网络、证书、额度与配置,再重试
  • 验证 /v1/models 与 /v1/images/generations 时必须使用同一个 base URL 和同一组凭证

实战发现

  • 同一网关上,模型列表和生图能力要分别验证
  • 有的网关能返回模型列表,但图片生成仍然需要单独确认
  • 先查 /v1/models,再查 /v1/images/generations,不要混用不同 endpoint 的配置
  • gpt-image-2 的返回通常是 b64_json
  • 成功响应里常见 data[0].b64_json,需要本地解码保存
  • 尺寸参数需要以实际网关为准;若不支持 2048x1024,回退到 1024x1024
  • 不同 AI / 不同宿主的配置来源可能不同
  • 优先读取环境变量:OPENAI_BASE_URL、OPENAI_API_KEY、CLAWTO_BASE_URL、CLAWTO_API_KEY
  • 若宿主 AI 把配置写入 config.yaml,也应支持从其配置文件读取同名字段或等价字段,例如:model.base_url、model.api_key、auxiliary.vision.base_url、auxiliary.vision.api_key
  • 目标是让技能在不同 AI 环境中都能自动发现可用 OpenAI 兼容接口,而不是绑定某一个宿主实现

1. 发现可用 API

优先按以下顺序发现配置:

环境变量:

  • OPENAI_BASE_URL
  • OPENAI_API_KEY
  • CLAWTO_BASE_URL
  • CLAWTO_API_KEY

宿主配置文件 config.yaml:

  • model.base_url
  • model.api_key
  • auxiliary.vision.base_url
  • auxiliary.vision.api_key
  • 其它宿主约定的 OpenAI 兼容字段

只要能映射成 base_url + api_key,即可用于验证与生成。

示例:

python3 - <<'PY'
import os
candidates = [
    ('OPENAI_BASE_URL', 'OPENAI_API_KEY'),
    ('CLAWTO_BASE_URL', 'CLAWTO_API_KEY'),
]
for base_var, key_var in candidates:
    base = os.getenv(base_var)
    key = os.getenv(key_var)
    if base and key:
        print(f'{base_var}={base}')
        print(f'{key_var}=SET')
        break
else:
    print('no_api_found')
PY

如果环境变量不可用,则读取宿主 config.yaml,把里面的 base_url 和 api_key 作为 API 发现结果。

2. 验证是否支持 gpt-image-2

对发现的 API 调用 /v1/models:

python3 - <<'PY'
import os, json, urllib.request, ssl
base = os.environ['API_BASE_URL'].rstrip('/')
key = os.environ['API_KEY']
url = f'{base}/models'
req = urllib.request.Request(url, headers={'Authorization': f'Bearer {key}'})
ctx = ssl.create_default_context()
with urllib.request.urlopen(req, context=ctx, timeout=30) as r:
    data = json.loads(r.read().decode('utf-8', 'ignore'))
    models = [m.get('id') for m in data.get('data', [])]
    print('has_gpt_image_2=', 'gpt-image-2' in models)
    print(models)
PY

如果列表里包含 gpt-image-2,再继续下一步。

3. 调用 gpt-image-2

python3 - <<'PY'
import os, json, urllib.request, ssl
base = os.environ['API_BASE_URL'].rstrip('/')
key = os.environ['API_KEY']
api = f'{base}/images/generations'
payload = json.dumps({
    'model': 'gpt-image-2',
    'prompt': 'a stylish female livestream host in a professional streaming studio, smiling, modern lighting, realistic, safe and tasteful, no suggestive pose',
    'size': '1024x1024'
}).encode()
req = urllib.request.Request(api, data=payload, headers={
    'Authorization': f'Bearer {key}',
    'Content-Type': 'application/json'
})
ctx = ssl.create_default_context()
with urllib.request.urlopen(req, context=ctx, timeout=180) as r:
    print(r.status)
    print(r.read().decode('utf-8', 'ignore'))
PY

大尺寸示例

如果网关支持,可以尝试:

  • size=2048x1024

如果返回 400 或尺寸不支持,先回退到 1024x1024。

4. 保存图片

如果返回里包含 data[0].b64_json,解码保存:

python3 - <<'PY'
import json, base64, pathlib
body = json.loads(open('response.json').read())
out = pathlib.Path('gpt_image_2.png')
out.write_bytes(base64.b64decode(body['data'][0]['b64_json']))
print(out)
PY

5. Session Learnings / Operational Notes

  • If the first attempt to generate via a generic image skill fails because the target service's billing is exhausted, switch to the user's OpenAI-compatible gateway if one is available rather than continuing to retry the same provider.
  • For OpenAI-compatible gateways, verify model availability by calling /v1/models with the same base URL and same credentials before attempting image generation.
  • Do not assume /v1/images/generations is the only valid entrypoint; some gateways expose gpt-image-2 in /v1/models but use a different generation path or an OpenAI Responses-based flow.
  • When a user says the image should be saved to a specific directory, persist that preference and default future image outputs to that location.

6. Support files

  • references/clawto-api-notes.md — gateway discovery and endpoint behavior observed in this session.

常见问题

证书错误

优先检查系统证书链、代理和网络环境,不要通过跳过证书校验规避。

请求超时

gpt-image-2 可能生成较慢,建议把超时提高到 180 秒或更长,并允许重试。

返回格式不是直接图片 URL

该链路可能返回 b64_json,先检查 JSON 里的 data[0]。

余额不足

如果出现 insufficient balance,说明不是接口问题,而是账户额度问题。

401 Unauthorized

优先检查环境变量是否真正注入,base URL 和 API Key 是否来自同一套配置。

400 / 不支持模型

优先确认 /v1/models 和 /v1/images/generations 使用的是同一 gateway;不要把一个网关的模型列表和另一个网关的生图端点混用。

示例提示词

  • a stylish female livestream host in a professional streaming studio, smiling, modern lighting, realistic, safe and tasteful, no suggestive pose

可按场景替换为:

  • 专业直播间
  • 产品展示
  • 访谈主持
  • 商业宣传图
  • 宇宙女神主题

验证标准

  • 能发现一个已配置 API
  • /v1/models 返回 200
  • gpt-image-2 存在于模型列表中
  • /v1/images/generations 返回 200
  • 响应里存在 data[0].b64_json
  • 图片成功写入本地文件

5. Session Learnings / Operational Notes

  • If the first attempt to generate via a generic image skill fails because the target service's billing is exhausted, switch to the user's OpenAI-compatible gateway if one is available rather than continuing to retry the same provider.
  • For OpenAI-compatible gateways, verify model availability by calling /v1/models with the same base URL and same credentials before attempting image generation.
  • Do not assume /v1/images/generations is the only valid entrypoint; some gateways expose gpt-image-2 in /v1/models but use a different generation path or an OpenAI Responses-based flow.
  • When a user says the image should be saved to a specific directory, persist that preference and default future image outputs to that location.

6. Support files

  • references/clawto-api-notes.md — gateway discovery and endpoint behavior observed in this session.

相关专题

更多
Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

0

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

0

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

0

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

0

10

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

2026.10.22

0

25

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

2026.10.22

0

15

Golangci-lint安装与入门教程
Golangci-lint安装与入门教程

本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。

2026.10.22

0

15

PHP2Shell高危漏洞修复教程
PHP2Shell高危漏洞修复教程

PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。

2026.10.22

0

12

剧云人物设定与关系管理教程
剧云人物设定与关系管理教程

本专题介绍剧云人物设定与关系管理,讲解角色小传、性格职业、人物目标、背景资料和关系网络的创建及维护方法。

2026.10.22

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134万人学习