Skip to main content
Global AI 的图像接口兼容 OpenAI 格式。只要把平台地址作为 base_url、把 令牌 作为 api_key,你现有的 OpenAI SDK 代码不用改结构就能直接跑。

准备工作

1

准备令牌

访问 globalai.vip/keys,复制一个以 sk- 开头的令牌。没有就点「创建API密钥」新建一个,详见 令牌管理令牌分 gpt-image-2kgpt-image-4k 两个分组,能出的尺寸不一样,按你要的最大尺寸来选:一句话:不出 4K,用 gpt-image-2k 就够;要出 4K 必须用 gpt-image-4k,代价是单价更贵。两个分组具体能用哪些模型、各自什么价,见模型广场
2

确认接口地址

生成端点 POST /v1/images/generations,编辑端点 POST /v1/images/edits。Base URL 都是 https://globalai.vip/v1
3

装好 SDK

pip install openai 安装官方 SDK,然后按下面的示例把 base_url 指向 Global AI。(用技能方式可跳过此步。)
4

选好模型与尺寸

追求速度用 gpt-image-2.5-flare(默认),追求质量与文字准确用 gpt-image-2.5-sunburst。尺寸按需要的比例与分辨率选择,见下一节。
准备工作做完后,你有两种用法:技能方式(装一次技能,之后用自然语言让 AI 生图)和 HTTP 方式(用官方 SDK 或 curl 直接调接口)。挑一种即可:

用 Agent 技能调用(推荐)

装一次技能,之后让 AI 直接帮你生图,不用写请求代码。

用 OpenAI SDK 调用

用官方 SDK 或 curl 直接调接口,方便集成进你自己的代码。

模型与尺寸

尺寸按像素数分三组: 「其他合法尺寸」需要同时满足这几条,超出范围会直接报错:
  • 宽和高都是 16 的倍数
  • 最长边不超过 3840
  • 长短边比不超过 3:1
  • 总像素数在 655,360 ~ 8,294,400 之间
默认回退:size 为空、auto 或格式非法时,按 2K 处理。分组决定计费与路由,实际输出尺寸由模型决定;响应里的 size 字段只是回显你请求的值,要拿真实尺寸请读 width / height 或直接看图片文件本身。
常用尺寸的实测耗时与体积:
尺寸与质量每升一档,耗时和配额消耗都会明显上升。建议先用 1024x1024 + low 把流程跑通,再切到目标尺寸。

用 Agent 技能调用

技能是一份 SKILL.md 加一个脚本。装一次之后,直接对 AI 说「用 globalai 生成一张 2K 竖版插画」就能生图,不用自己写请求代码。Codex、Claude Code、Hermes 都能用。

下载

https://static.globalai.vip/skill/globalai-image-gen-skill.zip

放到哪个文件夹

把解压得到的 globalai-image-gen/ 整个目录放进对应位置:
放好后重启一次客户端,技能才会被加载。

配置密钥

技能只需要一个密钥 GLOBALAI_API_KEY,按你的平台设置环境变量即可: 不想动环境变量,也可以把密钥存进技能自己的私有配置:
保存密钥到技能私有配置
密钥的读取优先级是:--api-key 参数 > 环境变量(GLOBALAI_API_KEYGLOBALAI_IMAGE_API_KEY)> 技能私有配置文件。私有配置只属于这个技能,不会读写 OPENAI_API_KEY。想知道密钥存在哪、或想删掉它:
查看与清除配置

使用

对 Agent 直接下指令:
对 Agent 说
或者手动执行脚本:
生成图片
编辑图片
常用参数: 快捷操作 --save-api-key / --show-config-path / --clear-api-key 用于管理密钥;--api-key--base-url 可以临时覆盖默认值。脚本只依赖 Python 标准库,不装 openai 包也能跑。
上面脚本路径以 Codex 为例;用其他工具时,把 ~/.codex/skills/ 换成上表里对应工具的实际位置即可。Windows 上把 python3 换成 python,路径换成 %USERPROFILE%\.codex\skills\ 这类形式。
技能脚本取图只走 b64_json:拿到 base64 就落盘,发现响应里只有 url 时直接报错停下,不会去依赖一个会过期的临时链接。如果你的尺寸与模型组合偏偏只回 url,改用下面的 SDK 或 curl 方式,并按「响应格式」一节把图片下载下来再交付。

用 OpenAI SDK 调用

安装 SDK

生成图片

image_gen.py
一定要带 response_format: "b64_json"。不传的时候,网关可能把图片放在预签名的 url 里返回,b64_json 会是空的;那个链接会过期,存下来也打不开。SDK 只对已知参数做校验,response_formatextra_body 传即可。
如果渠道仍然只回 urlitem.b64_json 为空),图片同样拿得到,只是必须先下载、不能存链接:
兼容两种响应

编辑图片

编辑接口 POST /v1/images/edits 接收一张原图,按提示词修改。传 mask 可以指定只改哪一块:mask 图里透明的区域会被重绘,不透明的区域保持不动。原图与 mask 都支持 PNG、JPEG、WebP。
image_edit.py
mask 需要和原图尺寸一致。如果你只想改一小块,把 mask 做成同尺寸、目标区域透明、其余不透明的 PNG。传多张原图时,image 参数可以重复传多次。

请求参数

生成接口: 编辑接口:

响应格式

图片可能以两种形式回到你手里,取决于这次请求走了哪条上游渠道。先看 b64_json,没有再看 url

情况一:返回 b64_json(推荐)

请求里带上 response_format: "b64_json",响应就直接返回 base64 编码的 PNG,解出来写文件即可:
响应(b64_json)
revised_prompt 是模型实际使用的提示词,效果和预期不一致时可以对比它排查是不是提示词被改写了。usage 里主要是 output_tokens(图像 token)在消耗配额,需要逐笔对账可以看 使用记录
4K 单张的 base64 比原图再大约三分之一,解析后不要直接打印到终端,先落盘再处理。

情况二:返回 url

同一个模型、同一个密钥,响应里放图片的位置也可能是 url 而不是 b64_json——这由该尺寸与模型走的上游渠道决定,不代表你的请求写错了:
响应(url)
这种 url预签名链接:带着临时凭证、会过期,过期后无法再取图。所以:
  • 拿到之后立刻下载并落盘,不要把链接存进数据库,也不要把它当结果交给最终用户。
  • 不要在流程里”先输出链接、稍后再下载”——中间只要过了有效期,图片就取不回来了。
  • 一个响应里不会同时出现两者,判断 b64_json 是否存在即可分流。
url 只是取图的入口,不是图片本体。用”保存链接”代替”保存文件”,最后只会得到一堆打不开的结果。

并发与重试

  • 可重试429500502503504
  • 不要重试400401403、余额不足——这些重试只会白等。
  • 推荐退避:第一次失败等 2 秒,第二次失败等 4 秒,最多尝试 3 次。
  • 客户端超时给足:4K 单张要 60-110 秒,HTTP 超时建议设到 300 秒以上,否则会把正常任务掐断。
  • 并发建议:4K 同时发起 1-2 张比较稳;批量出图时一批跑完再起下一批,比一次性打满成功率更高。
  • OpenAI SDK 默认自带重试(max_retries=2),只覆盖 5xx;429 与连接错误建议自己再兜一层。

不装 SDK 时用 curl

生成图片
解出 PNG(b64_json 与 url 都能处理)
编辑图片
编辑接口是 multipart/form-data,curl 用 -F 传文件;生成接口是 JSON,用 -d。响应里的 b64_json 是 base64 文本,解出来才是 PNG。

常见错误

令牌不正确、已过期或已被删除,到 令牌管理 检查令牌状态;如果提示配额用完,到 配额与充值 补充配额,或提高该令牌的配额上限。这两种情况重试都不会成功。
模型 ID 拼写错误,或当前令牌不允许该模型,用 GET https://globalai.vip/v1/models 核对。尺寸要满足「模型与尺寸」里的合法范围:宽高都是 16 的倍数、最长边 ≤ 3840、长短边比 ≤ 3:1、总像素数在 655,360 ~ 8,294,400 之间,也别把 1K2K4K 直接当尺寸值传。quality 用了当前模型不支持的档位,xhighmax 只有 2.5 系列支持。编辑接口则要确认 image 是 PNG、JPEG 或 WebP,且传 mask 时与原图尺寸一致。请求本身有问题,重试不会成功。
429 是短时间内请求过多或并发过高,按 2 秒、4 秒退避重试并降低并发。502 是上游服务抖动,原样重试一次通常即可成功。503model_not_found)是当前尺寸对应的模型分组没有可用渠道,换一个尺寸重试或联系客服补充渠道。连接超时同理,重试前先把客户端超时设到 300 秒以上;超时后重试是安全的,但可能产生两次计费。
这不算错误:说明这条渠道把图片放进了预签名的 urlb64_jsonurl 不会同时出现,判断 b64_json 是否存在即可。url 会过期,拿到就立刻下载落盘,不要存链接。技能脚本遇到这种情况会直接报错停下,改用 SDK 或 curl 方式,并按「响应格式」一节处理。
b64_json 是 base64 编码的 PNG,要先 base64.b64decode 再写入文件;直接当文本写会得到损坏文件。用 curl 时先把响应存成 resp.json 再解码,别把响应直接重定向成 .png