GPT图像2.5 API指南:使用Sunburst和Flare生成与编辑图像

来源: Elser AI

使用 Image API 进行直接的单步生成和编辑。当图像创建属于对话或多步流程时,使用 Responses API。在 Image API 中,直接选择 gpt-image-2.5-sunburstgpt-image-2.5-flare

先选择界面

图像API提供了生成和编辑端点。响应API支持作为工具的迭代图像生成,并能将图像输入和输出保持在上下文中。这一架构决策比SDK语法更为重要。

最小生成模式

import OpenAI from "openai";
import fs from "fs";

const client = new OpenAI();
const result = await client.images.generate({
  model: "gpt-image-2.5-flare",
  prompt: "一个干净的设计插画,描绘一座太阳能图书馆,无文字元素"
  size: "1536x1024",
  quality: "中等",
  output_format: "png"
});

fs.writeFileSync("library.png", Buffer.from(result.data[0].b64_json, "base64"));

将API密钥保存在服务器端,并远离源代码控制。

输出控制

两个模型均支持从自动到最高质量、官方限制内的自定义尺寸、PNG/JPEG/WebP格式、JPEG/WebP压缩,以及透明或不透明背景。如需Alpha通道,请使用PNG或WebP格式。

编辑模式

使用一张或多张图片调用编辑端点,并提供一个将更改与保留细节分开的提示。在发送前验证输入类型和大小。为每个参考赋予一个角色。

生产验证

存储请求ID、模型或快照、提示版本、大小、质量、输出格式、参考信息、延迟和接受结果。仅重试瞬时故障;在不更改请求的情况下,不要自动重试语义错误的输出。

模型路由

将日常任务路由到Flare,将高精度任务路由到Sunburst。使用固定基准,避免假设更快的模型更便宜,因为当前令牌费率匹配。

错误处理

处理身份验证、组织验证、速率限制、无效尺寸、内容审核和空输出。对符合条件的瞬时错误使用带抖动的指数退避策略,并限制重试次数。切勿不必要地记录私人图像数据。

下游动画

解码并批准图像后,存储来源信息并将资产传递给下游工作流。当静态图像需要变成以角色为主导的故事板、视频或编辑动画时,Elser AI 是相关的。请在实时产品中验证支持的上传和模型选项。

生成端点与编辑端点

使用文本生成新图像时使用生成功能。当一张或多张现有图像定义了主体或初始状态时,使用编辑功能。对于多参考编辑,请按稳定顺序发送输入,并在提示中标识该顺序。在请求前验证文件类型和尺寸,以便错误输入在本地失败。

用于迭代工作的响应API

当用户创建图像、以对话方式评估图像并请求后续更改时,Responses API 非常有用。图像生成工具可以参与更大的响应流程,并且图像文件 ID 可以保留在上下文中。这减少了应用端的拼接工作,但产品仍然需要明确的状态和版本控制。“和之前一样”不足以作为关键约束条件;请重新表述。

更安全的应用程序架构

保持客户端、任务队列、资产存储和元数据存储相互独立。客户端提交一个简要说明。服务器验证该说明并创建一个任务。工作进程调用OpenAI,解码结果并将其存储在生成的资产ID下。元数据记录模型快照、提示词、设置、引用和审核结果。客户端收到一个短期有效的资产URL,而非原始凭证。

长时间运行的调用不应占用脆弱的浏览器请求。复杂提示可能需要大量时间,因此应展示待处理、已完成和失败的状态。使任务提交具有幂等性,以避免客户端重试时产生重复费用。

验证规则

检查自定义尺寸是否满足文档规定的16的倍数、边缘、比例及总像素限制。背景透明时要求使用PNG或WebP格式。将压缩值限制在支持范围内。仅允许已知的质量和模型参数。在API调用前拒绝缺少提示词的情况。

可靠性与可观测性

记录请求ID、HTTP状态、错误类别、尝试次数和延迟,不记录私有镜像或机密信息。使用带抖动的指数退避重试速率限制和符合条件的服务器错误。不要原样重试身份验证、无效参数或策略错误。对尝试次数设置上限,并返回有用的产品消息。

显示器:

  • 成功率和接受图像率。
  • 按模型和质量划分的p50和p95延迟。
  • 输入和输出令牌。
  • 重试和重复任务。
  • 审核结果。
  • 存储和交付失败。

安全与权利

将API密钥存储在服务端密钥管理器中。对源图像和生成的图像实施访问控制。设置保留规则,移除不应暴露的元数据,并记录用户对上传材料的权利。OpenAI指出,访问GPT图像模型可能需要进行组织验证;请将其作为入职前提条件处理,而非运行时意外。

快照策略

使用未注明日期的ID以获取持续模型更新。当可重复性更为重要时,固定一个带日期的快照。在更改生产流量前,使用相同的基准评估新快照。存储每个资产返回或配置的实际模型标识符。

如果启动文章中包含代码,请在其旁边显示带有日期的验证日期。读者应理解,模型的可用性、SDK 语法、速率限制和组织要求可能会独立于文章的概念架构发生变化。

类型化请求契约

即使图像模型本身不提供结构化输出,也要定义一个内部模式。一项任务可能包含prompt(提示词)、workflow(工作流)、model(模型)、quality(质量)、width(宽度)、height(高度)、format(格式)、background(背景)、compression(压缩)、参考资源ID以及一个幂等键。在转换为SDK调用之前对其进行验证。

不要从浏览器暴露任意的模型名称或文件路径。应将客户端可见的少量选项映射到服务器认可的值。通过受访问控制的资产ID解析引用,并验证当前用户是否有权读取这些资产。

编辑请求草图

import OpenAI from "openai";
import fs from "fs";

const client = new OpenAI();

const result = await client.images.edit({
  model: "gpt-image-2.5-sunburst",
  image: [fs.createReadStream("approved-character.png")],
  prompt: `只将外套改为深绿色羊毛。
保留面部、头发、眼睛颜色、姿势、手部、构图和背景。
不要添加文字、珠宝或其他人。`
  size: "1024x1536",
  quality: "高",
  output_format: "png"
});

const bytes = Buffer.from(result.data[0].b64_json, "base64");
fs.writeFileSync("character-green-coat.png", bytes);

确切的SDK接口可能会演变,因此在部署前请对照当前官方指南验证示例。生产代码应负责任地流式处理或缓冲,验证响应是否存在,并原子化存储,而不是假设每次调用都返回可用数据。

幂等性与重复成本

用户双击或网络重试可能导致同一昂贵的生成任务被提交两次。在创建任务时分配一个幂等键,在分发前持久化任务,当相同键再次出现时返回已有任务。工作进程应仅获取一次任务并记录最终状态。

如果你有意生成多个变体,请将其表示为一个明确的产品操作,而非意外的重试。图像API在文档中支持通过n参数生成多张图像,但你的成本和审核模型应统计每一次输出。

审核与失败用户体验

所有提示词和图像均需经过安全过滤。避免透露敏感的内部审核细节,但应给予用户足够的指导以修改合法请求。将政策拒绝与无效设置、授权、速率限制及临时服务故障区分开来。

当Sunburst不可用时,切勿静默替换为其他模型,这可能违反质量或合同约定。应返回明确的状态,或仅在产品已披露并记录该行为的情况下使用备用方案。

资产存储与交付

在内存中解码base64并设置大小限制,验证声明的格式,生成校验和并存储不可变的原始文件。单独生成缩略图。通过短期有效的签名URL和适当的内容类型提供服务。保留透明PNG/WebP的Alpha通道,避免有损转换破坏可交付成果。

以适当的访问控制存储提示和参考资料,以匹配其敏感程度。定义保留和删除行为。没有来源的生成文件难以审计、复现或安全地交给Elser动画项目。

发布前检查清单

  • 账户和组织访问权限已确认。
  • API 密钥是服务器端且可轮换的。
  • 模型ID和维度规则已列入白名单。
  • 作业提交是幂等的。
  • 重试次数有限且分类。
  • 使用情况、延迟和接受度受到监控。
  • 图像和元数据具有保留规则。
  • 对于身份、品牌和文本敏感的输出,存在人工审核。
  • 已记录一份带日期的快照策略和回滚路径。

常见问题解答

我应该选择哪个 API?

Image API用于直接生成/编辑;Responses API用于对话式或多步骤图像体验。

我可以请求多张图片吗?

Image API 在文档中支持用于多个输出的 n 参数。

API 是否返回一个 URL?

当前指南展示了图像API的base64编码图像数据;请解码并安全存储。

结论

可靠的集成将清晰的模型路由与严格的验证、可观测性和资产审查相结合。先构建最小的直接请求,仅在核心图像路径可靠时,再添加对话状态或下游动画。

最新发布