
生图API 怎么接 gpt-image-2国内直连的完整写法想在项目里用 gpt-image-2 出图卡住的地方往往不是代码。官方接口国内直连不上注册要海外手机号付款要国际信用卡公司报销还拿不到发票。等这几关都过完项目排期早过了。甜甜圈APIdashengfenshen.cn把这一层做掉了一个密钥端点兼容 OpenAI 协议model改个字符串就切换模型。这篇讲 gpt-image-2 具体怎么调、参数怎么给以及超时和重试该怎么设。它适合什么场景生图这边我们常用的是三个模型分工不一样模型 ID用在哪消耗gpt-image-2质感和细节要求高的终稿按次计费nano-banana-pro高清出图支持超宽超高比例10 积分/次nano-banana2跑量、草稿、批量试错8 积分/次gpt-image-2 的长处是对复杂描述的理解和成品质感短板是相对慢、相对贵。所以它不该用来跑量——跑量用 nano-banana2 出十几张挑一张挑中的那张再用 gpt-image-2 或 nano-banana-pro 出终稿这样成本和效果都合适。接进来的完整写法端点和 OpenAI 的chat/completions一致所以现有代码几乎不用改换掉 baseURL 和密钥就能跑不用装任何 SDK。文生图content直接给一段描述asyncfunctiontextToImage(prompt,modelgpt-image-2){constrawaitfetch(https://API_HOST/v1/chat/completions,{method:POST,headers:{Authorization:Bearer${process.env.TTQ_API_KEY},Content-Type:application/json,},body:JSON.stringify({model,messages:[{role:user,content:prompt}],}),// 生图比对话慢得多别照抄对话那套 30 秒signal:AbortSignal.timeout(120_000),});if(!r.ok)thrownewError(${model}HTTP${r.status});returnr.json();}图生图改图、换背景、局部调整把content换成数组图和文字一起给asyncfunctionimageToImage(imageUrl,instruction,modelgpt-image-2){returnfetch(https://API_HOST/v1/chat/completions,{method:POST,headers:{Authorization:Bearer${process.env.TTQ_API_KEY},Content-Type:application/json,},body:JSON.stringify({model,messages:[{role:user,content:[{type:image_url,image_url:{url:imageUrl}},{type:text,text:instruction},],}],}),signal:AbortSignal.timeout(120_000),}).then((r)r.json());}两个函数的区别只有content一处其余完全一样——封装一次就够不用为文生图和图生图各写一套。失败要能重投。生图的失败率比对话高描述触发了内容策略、上游偶发超时都会失败。把 prompt、model、参考图 URL 落进任务表失败的按 id 重投不要让人工重新填一遍描述。为什么超时要给到两分钟对话接口是流式的首字节很快就回来所以 30 秒超时够用。生图不一样——它要等整张图生成完才返回中间没有任何输出。模型越重、分辨率越高这个等待越长。把超时设成 30 秒的直接后果是服务端其实出图成功了但你的客户端已经断开这次调用照样计费图却拿不到。这是最冤的一种失败。所以实操上有两条超时按模型分档跑量的快模型给 60 秒、终稿的重模型给 120 秒重试之前先确认上一次是真失败还是只是你超时了否则会重复计费。同理前端不要直接调这个接口。让前端等两分钟不现实正确做法是后端收到请求先落一条任务记录返回 id后台去跑前端轮询自己的任务表。顺带也避免了把密钥打进前端包。常见问题Q出一张图要多久A和模型、分辨率、描述复杂度都有关。跑量的快模型通常几秒到十几秒终稿模型会明显更久。上线前拿自己的真实描述跑一轮统计一下别照抄别人的数字。Q一个密钥能不能同时调生视频A可以同一个端点换model就行。生视频的耗时是分钟级超时要单独放长别和生图共用一套配置。Q图生图的参考图能用本地文件吗Aimage_url收的是可访问的 URL本地文件要先传到自己的对象存储或图床。注意那个 URL 要能被服务端访问到内网地址不行。Q返回的图片链接能直接存进数据库吗A不建议。返回链接是有有效期的过期就取不回来了。拿到之后立刻转存到自己的存储数据库里存自己的地址。成本怎么控关键是分级跑量用便宜的快模型多出几版挑中的才用贵的出终稿。一上来就用最贵的模型试错钱都花在废图上了。再加一层结果缓存——同样的描述和参数如果已经出过图直接返回旧结果不要重复调用。批量场景下这一层能省下的比换模型还多。接口服务甜甜圈APIdashengfenshen.cn