news 2026/4/23 21:42:36

GPT-Image-2 API 接入实战:Python 调用 3 分钟搞定,附完整可运行代码(2026)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
GPT-Image-2 API 接入实战:Python 调用 3 分钟搞定,附完整可运行代码(2026)

好多朋友找到我说,大霖,GPT-Image-2 这个图片生成模型到底怎么调 API?官方文档看得头大,代码跑不通,Key 还申请不下来。行,今天我把这事儿一次性说清楚。

GPT-Image-2 是 OpenAI 2026 年推出的最新图片生成模型,通过兼容 OpenAI 协议的 API 即可调用。整个流程就三步:注册拿 Key、了解接口参数、跑通 Python 代码。我自己实测下来,从注册到第一张图片生成出来,真就 3 分钟。下面是完整的保姆级教程,代码直接复制就能跑。

先说结论

项目说明
模型名称gpt-image-2
调用方式OpenAI Images API(/v1/images/generations
核心参数promptsizenquality
返回格式Base64 编码或 URL
生成耗时实测 5-15 秒(取决于分辨率和 quality)
失败扣费不扣,生成失败不计费
并发限制聚合接口无并发限制

第一步:注册拿 Key

这步最简单。ofox.ai 是一个 AI 模型聚合平台,一个 API Key 可以调用 GPT-5、Claude Opus 4.6、Gemini 3、GPT-Image-2 等 50+ 模型,支持支付宝/微信付款,按量计费免费版可起步。

操作流程:

  1. 打开 [ofox.ai](https://ofox.ai?utm_source=csdn&utm_medium=ofoxcoding_article&utm_campaign=seo),支付宝/微信直接注册
  2. 进入控制台 → API Keys → 创建新 Key
  3. 复制保存好这个 Key,后面代码里要用

不用折腾信用卡,不用填地址。拿到 Key 就可以开干了。

第二步:接口参数详解

GPT-Image-2 走的是标准的 OpenAI Images API,核心参数就这几个:

参数类型必填说明
modelstring固定填gpt-image-2
promptstring图片描述,越具体效果越好
ninteger生成数量,默认 1,最多 4
sizestring分辨率:1024x1024(默认)、1536x10241024x1536
qualitystringlowmediumhigh,默认medium
response_formatstringurlb64_json,默认url

几个注意点(我踩过的坑):

  • prompt写英文效果明显好于中文,中文也能用但偶尔会出现文字渲染错乱
  • size只支持上面三个值,传512x512之类的会直接报错
  • qualityhigh生成时间会翻倍,但确实细节更好
  • response_format建议用b64_json,URL 方式返回的链接有效期只有 1 小时

POST /v1/images/generations

返回 Base64/URL

响应

你的 Python 代码

ofox.ai 聚合网关

GPT-Image-2 模型

保存为本地图片

第三步:完整可运行的 Python 代码

方案一:同步调用(最简单)

适合生成单张图片,代码最少:

importbase64importosfromopenaiimportOpenAI# 初始化客户端client=OpenAI(api_key="your-ofox-api-key",# 替换成你在 ofox.ai 拿到的 Keybase_url="https://api.ofox.ai/v1")defgenerate_image(prompt:str,size:str="1024x1024",quality:str="medium"):"""同步生成图片,返回本地文件路径"""print(f"正在生成图片:{prompt[:50]}...")response=client.images.generate(model="gpt-image-2",prompt=prompt,n=1,size=size,quality=quality,response_format="b64_json")# 解码 Base64 并保存image_data=base64.b64decode(response.data[0].b64_json)output_path="output.png"withopen(output_path,"wb")asf:f.write(image_data)print(f"图片已保存到:{output_path}")returnoutput_path# 直接运行if__name__=="__main__":generate_image(prompt="A cute robot sitting at a desk writing Python code, digital art style, warm lighting",size="1024x1024",quality="high")

跑一下试试,正常情况下 5-10 秒就能在当前目录看到output.png

方案二:提交 + 轮询(适合批量生成)

说实话方案一够用了,但如果你要批量生成图片,或者想做个异步的图片生成服务,用提交+轮询的方式更靠谱。好处是不会因为网络超时而丢失任务:

importbase64importtimeimportrequestsimportos API_KEY="your-ofox-api-key"# 替换成你的 KeyBASE_URL="https://api.ofox.ai/v1"HEADERS={"Authorization":f"Bearer{API_KEY}","Content-Type":"application/json"}defsubmit_image_task(prompt:str,size:str="1024x1024",quality:str="medium"):"""提交图片生成任务"""payload={"model":"gpt-image-2","prompt":prompt,"n":1,"size":size,"quality":quality,"response_format":"b64_json"}resp=requests.post(f"{BASE_URL}/images/generations",headers=HEADERS,json=payload,timeout=60)ifresp.status_code==200:returnresp.json()else:print(f"提交失败:{resp.status_code}-{resp.text}")returnNonedefpoll_and_save(prompt:str,output_path:str="output.png",max_retries:int=3,size:str="1024x1024",quality:str="medium"):"""带重试的图片生成:提交 + 轮询检查 + 保存"""forattemptinrange(1,max_retries+1):print(f"第{attempt}次尝试生成...")try:result=submit_image_task(prompt,size=size,quality=quality)ifresultand"data"inresultandlen(result["data"])>0:b64_str=result["data"][0].get("b64_json")ifb64_str:image_data=base64.b64decode(b64_str)withopen(output_path,"wb")asf:f.write(image_data)print(f"生成成功!已保存到:{output_path}")returnoutput_path# 如果返回的是 URLurl=result["data"][0].get("url")ifurl:print(f"拿到图片 URL:{url}")img_resp=requests.get(url,timeout=30)withopen(output_path,"wb")asf:f.write(img_resp.content)print(f"生成成功!已保存到:{output_path}")returnoutput_pathprint(f"第{attempt}次未拿到有效结果,等待 3 秒后重试...")time.sleep(3)exceptrequests.exceptions.Timeout:print(f"第{attempt}次请求超时,等待 5 秒后重试...")time.sleep(5)exceptExceptionase:print(f"第{attempt}次出错:{e},等待 3 秒后重试...")time.sleep(3)print("达到最大重试次数,生成失败")returnNonedefbatch_generate(prompts:list,output_dir:str="outputs"):"""批量生成多张图片"""os.makedirs(output_dir,exist_ok=True)results=[]fori,promptinenumerate(prompts):output_path=os.path.join(output_dir,f"image_{i+1}.png")print(f"\n--- 生成第{i+1}/{len(prompts)}张 ---")path=poll_and_save(prompt=prompt,output_path=output_path,max_retries=3,quality="medium")results.append({"prompt":prompt,"path":path,"success":pathisnotNone})# 每张之间歇 1 秒,别太猛ifi<len(prompts)-1:time.sleep(1)# 打印汇总success_count=sum(1forrinresultsifr["success"])print(f"\n=== 批量生成完成:{success_count}/{len(prompts)}成功 ===")returnresults# 运行示例if__name__=="__main__":# 单张生成poll_and_save(prompt="A futuristic city skyline at sunset, cyberpunk style, neon lights reflecting on wet streets",output_path="cyberpunk_city.png",quality="high")# 批量生成prompts=["A minimalist logo design for a tech startup, clean lines, blue and white","An isometric illustration of a cozy home office with plants and a cat","A watercolor painting of a mountain lake at dawn, soft colors",]batch_generate(prompts)

这段代码包含了完整的错误处理、超时重试、批量生成逻辑,直接复制到项目里就能用。

踩坑记录

说几个我实际遇到的坑,帮你们省点时间:

坑 1:中文 prompt 里带引号导致 JSON 解析失败

我一开始直接把用户输入的中文丢进去,结果有人输入了带"的内容,requests 序列化没问题但服务端解析炸了。解决方案:用json库自己序列化一遍,或者干脆用 openai SDK(方案一),SDK 内部会处理好。

坑 2:quality=high+1536x1024偶尔超时

高分辨率加高质量的组合,生成时间可能到 20-30 秒。你的timeout设太短就会断掉。建议 timeout 至少设 60 秒,或者用方案二的重试逻辑兜底。

坑 3:URL 返回格式的链接过期

前面提了,response_format="url"返回的链接只有 1 小时有效期。我之前做了个图片生成服务,把 URL 直接存数据库了,结果第二天用户一刷新全是 404。老老实实用b64_json,拿到就存本地或者传 OSS。

坑 4:prompt 太短效果很差

"一只猫"这种 prompt 出来的图基本没法看。GPT-Image-2 吃细节描述,建议至少写 20-30 个词,包含主体、风格、光线、构图这些信息。英文效果好于中文。

小结

整个流程捋一遍:

  1. 去 ofox.ai 注册拿 Key(1 分钟)
  2. 搞清楚promptsizequality这几个核心参数(1 分钟)
  3. 把上面的代码复制过去,改一下 Key 和 prompt 就能跑(1 分钟)

生成失败不扣钱,聚合接口也没有并发限制,放心大胆地试。我自己现在做的一个小工具就是用 GPT-Image-2 批量生成产品图,一天跑几百张,稳得很。

想试试的直接去 [ofox.ai](https://ofox.ai?utm_source=csdn&utm_medium=ofoxcoding_article&utm_campaign=seo) 注册个账号,免费额度够你把上面的代码全跑一遍了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 21:41:30

QuantEcon.py入门指南:10分钟掌握经济学计算利器

QuantEcon.py入门指南&#xff1a;10分钟掌握经济学计算利器 【免费下载链接】QuantEcon.py A community based Python library for quantitative economics 项目地址: https://gitcode.com/gh_mirrors/qu/QuantEcon.py QuantEcon.py是一个基于社区的Python定量经济学库…

作者头像 李华
网站建设 2026/4/23 21:40:59

线程安全与并发锁:synchronized vs ReentrantLock——面试必问!

一、问题现场还原 那是一个周五的下午&#xff0c;小王正在写一个计数器&#xff1a; public class Counter {private int count 0;public void increment() {count; // 自增}public int getCount() {return count;} } 测试代码&#xff1a; public class CounterTest {p…

作者头像 李华
网站建设 2026/4/23 21:39:38

暗黑2重制版终极自动化脚本Botty:5步配置实现24小时高效MF

暗黑2重制版终极自动化脚本Botty&#xff1a;5步配置实现24小时高效MF 【免费下载链接】botty D2R Pixel Bot 项目地址: https://gitcode.com/gh_mirrors/bo/botty 还在为重复刷怪感到枯燥乏味吗&#xff1f;Botty作为专业的暗黑2重制版像素级自动化脚本&#xff0c;能够…

作者头像 李华
网站建设 2026/4/23 21:36:57

Phi-3.5-mini-instruct高算力适配:消费级显卡上的专业级推理体验

Phi-3.5-mini-instruct高算力适配&#xff1a;消费级显卡上的专业级推理体验 1. 模型概述 Phi-3.5-mini-instruct是微软推出的轻量级指令微调大语言模型&#xff0c;采用Transformer解码器架构&#xff0c;支持128K超长上下文窗口。这个3.8B参数的模型在多语言对话、代码生成…

作者头像 李华
网站建设 2026/4/23 21:36:16

从Git SSL报错到HTTPS原理:手把手教你用OpenSSL诊断并修复证书链问题

从Git SSL报错到HTTPS原理&#xff1a;手把手教你用OpenSSL诊断并修复证书链问题 当你兴致勃勃地准备克隆一个Git仓库时&#xff0c;突然遭遇unable to get local issuer certificate的报错&#xff0c;这就像在高速公路上突然被拦下检查证件&#xff0c;却发现自己的身份证不…

作者头像 李华