OpenAI 图像编辑 API:蒙版、参数、定价及 GlobalGPT 工作流

OpenAI 图像编辑 API:蒙版、参数、定价及 GlobalGPT 工作流

OpenAI 图像编辑 API 可根据提示对现有图像进行修改。. 原生路径是 POST /v1/images/edits; ;它支持接收图像、提示词以及可选的编辑控件(如蒙版或参考图像)。若需进行针对性请求,请使用 Image API;若产品需要多轮图像工作流,请使用 Responses API。.

可靠的编辑是一个简短的工作流程:锁定源文件,明确必须保留的内容,明确可以更改的内容,检查返回的字节,然后保存已审核通过的素材。如果您希望在一个工作区中在图像模型和其他多媒体工具之间切换,, 使用 GPT Image 2 in GlobalGPT 创建和编辑图像; 其公共 API 采用了一种不同的异步任务契约,本指南将其与 OpenAI 的原生端点区分开来。.

简答:在编写代码之前先确定实现路径

需要路线请求形状待处理的结果
生成或编辑一张图片OpenAI 图像应用程序接口POST /v1/images/edits, 多联表单data[0].b64_json; 对其进行解码并存储
使用图像上下文进行几次转换OpenAI 响应 APIPOST /v1/responses 使用图像生成工具提取图像生成输出项
一个账号背后有多个媒体模型GlobalGPT 公共 APIPOST /tasks, 然后轮询 GET /tasks/{id}output.url; 请在30天期限结束前保存

这些端点名称看起来很相似,但请求正文和结果处理方式并不通用。.

OpenAI 图像编辑 API 有什么作用?

编辑流程以现有图片为起点。 您的提示词描述了需要进行的修改,而输入图片则提供了在编辑过程中应保留的视觉上下文。您可以替换背景、添加或移除元素、进行更广泛的风格调整,或者传入多张图片作为参考。模型仍会解读该请求;该 API 并非一款能保证选区边界的像素编辑器。.

OpenAI 记录了两个有用的工作流。该 图像 API 当一个请求应返回一张图片时,这是首选方案。该 响应 API 当用户需要检查结果、要求进行另一项修改,并在多个轮次中保持图像上下文时,哪种方式更合适?这一选择既影响请求的结构,也影响提取结果的代码。.

Image API 与 Responses API 的对比

问题图像 API响应 API
最适合一次“生成或编辑”操作多轮编辑体验
典型输入多部分图像、提示词、可选蒙版对话输入加图像生成工具
输出处理data[0].b64_json查找图像生成输出项
费用明细直接编辑使用当前的输入/输出速率缓存的输入规则可能有所不同;请查看当前价格

使用原生 OpenAI API 进行首次编辑

请将 API 密钥保存在服务器上,并通过环境变量加载。下面的示例向文档中记载的编辑端点发送一张图片和一条提示。该 image[] 当所选模型支持多个输入时,该字段可以重复出现。Shell 管道会将返回的第一个 base64 图像解码为本地 PNG 文件。.

原生 curl 编辑:保存 b64_json 结果

bash
curl -s \
  -X POST "https://api.openai.com/v1/images/edits" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -F "model=gpt-image-2.5-sunburst" \
  -F "image[]=@source.png" \
  -F "prompt=仅将背景替换为温暖米色的摄影棚场景;保持产品和标签不变。" \
| jq -r '.data[0].b64_json' \
| base64 --decode > edited.png

Python SDK 编辑:解码返回的字节

蟒蛇
from openai import OpenAI
import base64

client = OpenAI()
result = client.images.edit(
    model="gpt-image-2.5-sunburst",
    image=open("source.png", "rb"),
    prompt="仅将背景替换为暖米色的摄影棚场景;保持产品和标签不变。",
)

image_bytes = base64.b64decode(result.data[0].b64_json)
with open("edited.png", "wb") as output:
    output.write(image_bytes)

在将该文件视为“已准备就绪可投入生产”之前,请先验证解码后的文件:检查其MIME类型、尺寸、字节数,以及关键的视觉细节是否仍然存在。200响应仅表示请求已被接受;它并不能说明标签、徽标或产品几何形状是否完好无损。.

安全使用蒙版和参考图像

蒙版用于告知模型您希望修改的区域,但 GPT Image 的蒙版功能仍基于提示词。OpenAI 的指南明确指出,模型将蒙版视为指导而非绝对的像素边界。请在提示词中明确指定需要保留的对象,并在生成后检查整张图像。.

蒙版预检

  • 图像和蒙版采用相同的格式。.
  • 图像和蒙版具有相同的尺寸。.
  • 该蒙版文件小于 50 MB。.
  • 该蒙版包含一个Alpha通道。.
  • 提示中指明了哪些内容必须保持不变,哪些内容应被替换。.

上传前请检查面具

蟒蛇
from PIL import Image

source = Image.open("source.png")
mask = Image.open("mask.png")

assert source.format == mask.format, (source.format, mask.format)
assert source.size == mask.size, (source.size, mask.size)
assert mask.width * mask.height > 0
assert mask.mode in {"RGBA", "LA"}, mask.mode
assert mask.fp is None or True  # 请单独检查磁盘上的文件大小
print("source:", source.size, source.format)
print("掩码:", mask.size, mask.mode)

如果你传入多张带有蒙版图片,根据当前指南,蒙版将应用于第一张图片。这对设计参考工作流来说是一个有用的界定原则:将第一张输入图片设为需要编辑的区域,并将其余图片视为参考图,而不是假设蒙版会跨所有图片进行选择。.

参考图像则解决了另一个问题。它们可以提供产品特征、照明风格、配色方案或构图参考。它们不会强制要求模型保留每一个轮廓。如果必须保持包装形状或标签完全不变,请在模型输出后设置视觉审核环节或进行常规编辑步骤。.

选择模型和参数

当前的 OpenAI 图像指南列出了 gpt-image-2.5-sunburst, gpt-image-2.5-flare, 和 gpt-image-2. 将模型名称和支持的选项视为动态文档:在集成它们之前,请立即查看模型页面;如果可重复性很重要,请固定一个带日期的版本。.

防止可避免故障的参数决策

决定实用规则为什么重要
输入保真度省略 input_fidelity 对于 gpt-image-2; 其图像输入经过高保真处理。.发送一个不受支持的字段可能会导致原本有效的编辑请求被拒绝。.
质量《2.5 太阳放射纹与耀斑路线》文档 低, 中等, 高, xhigh, 和 max.较高的设置是一种成本与延迟之间的权衡,而非对更好保存效果的保证。.
格式查询当前端点支持的输出格式,然后检查解码后的文件。.您的存储管道应信任字节内容和 MIME 类型,而不仅仅依赖于请求选项。.
背景在提示中说明所需的背景,并在支持的情况下使用文档中所述的背景选项。.该模型仍然对场景进行解释;请明确指定主题约束条件。.
参考文献利用参考图来指导视觉风格、色彩或光影效果,并明确每个输入元素的作用。.图像角色的模糊性使得诊断漂移变得更加困难。.

OpenAI 图像编辑 API 的费用是多少?

OpenAI 根据令牌类别对 GPT Image 的使用进行计费,而非按每次编辑收取统一的固定费用。当前的定价页面分别列出了图像输入、缓存输入和图像输出的费率。 直接调用 Image API 进行编辑时,不会像 Responses API 中图像生成工具所描述的那样享受“缓存输入”的处理方式,因此请勿将 Responses 中的估算值复制到直接 /v1/images/edits 预算。.

已发布图像令牌费率,核查日期:2026-09-28

模型图像输入 / 100万个令牌缓存图像输入 / 100万个令牌图像输出 / 100万个令牌
GPT Image 2.5$8$2*$30
GPT 映像 2$4$1*$15

*“缓存输入”列显示的是已发布的定价上下文。定价指南指出,缓存输入适用于 Responses API 中的图像生成工具,而不适用于直接的 Images API 请求,例如 /v1/images/edits. 费率可能会发生变化;请根据您自己的请求返回的使用量进行计算。.

根据使用情况做出透明的估算

蟒蛇
def estimate_image_cost(image_input_tokens, image_output_tokens,
 input_rate, output_rate):
    return (image_input_tokens / 1_000_000) * input_rate + \
 (image_output_tokens / 1_000_000) * output_rate

# 仅供示例:请在您的回复中替换为实际用法。
estimate = estimate_image_cost(
    image_input_tokens=250_000,
    image_output_tokens=120_000,
    input_rate=4.00,
    output_rate=15.00,
)
print(f"${estimate:.4f}")

此公式仅为规划示例,并非对每张图片固定费用的承诺。请在您的预算中纳入重试、文件存储以及任何单独的文本或工具使用费用。当输出结果至关重要时,请将请求、响应使用情况、解码后文件的哈希值以及审批决定一并考虑在内。.

GlobalGPT 使用了一个不同的图像编辑 API 合约

"(《世界人权宣言》) GlobalGPT API 文档 将图像、视频和音频生成描述为异步媒体任务。其公开的基础网址是 https://api2.glbgpt.com/ai-api/open/v1. 将 JSON 提交至 /任务, 民意调查 /tasks/{id}, ,并阅读 output.url 任务成功完成后。模型目录中列出了 gpt-image-2 和 gpt-image-2.5 作为图像编辑/参考路由,最多支持四张输入图像,并且 aspect_ratio.

GlobalGPT 公共媒体任务 API 文档,展示了提交、估算、轮询和输出 URL 等字段

S05 公共 API 文档: 关于异步任务契约的公开文档证据;本文将其与 OpenAI 的原生多部分编辑端点区分开来。.

GlobalGPT 公共图像模型目录,展示了 GPT Image 的路径及支持的任务详情

S06 公开模型目录: 关于 GPT Image 路径及其已记录的图像任务限制的公开模型目录证据;发布前请核实动态署名信息和字段。.

GlobalGPT 公共任务结构

bash
BASE="https://api2.glbgpt.com/ai-api/open/v1"

# 可选:无需创建任务或预留配额即可进行估算。
curl "$BASE/tasks/estimate" \
  -H "Authorization: Bearer $GLOBALGPT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2.5",
    "prompt": "保持瓶身和标签不变。 仅将背景替换为温暖的米色摄影棚灯光。",
    "images": ["https://YOUR_PUBLIC_IMAGE_URL/product.png"],
    "aspect_ratio": "3:2"
  }'

# 请在确认报价后再提交。
curl "$BASE/tasks" \
  -H "Authorization: Bearer $GLOBALGPT_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: image-edit-example-001" \
  -d '{
    "model": "gpt-image-2.5",
    "prompt": "保持瓶身和标签不变。 仅将背景替换为暖米色的摄影棚灯光。",
    "images": ["https://YOUR_PUBLIC_IMAGE_URL/product.png"],
    "aspect_ratio": "3:2"
  }'

# 持续查询返回的任务 ID,直到成功或失败。
curl "$BASE/tasks/TASK_ID" \
  -H "Authorization: Bearer $GLOBALGPT_API_KEY"

请勿粘贴 OpenAI 的多部分内容 面具, input_fidelity, 尺寸, 或 质量 将这些字段填入此 JSON 中,并假设它们有效。当前公开的 GlobalGPT 文档中并未列出该映像路由的这些字段。不支持的字段可能会被丢弃,并在 被忽略的参数, ,因此在断定某项设置已生效之前,请先检查该响应。.

根据公开文档,GlobalGPT 在提交媒体任务时会预留配额,任务失败时释放配额,并将成功的媒体资源保留 30 天。如果 URL 需要保留更长时间,请将返回的资源保存到您控制的存储中。 在执行批处理之前请使用预估端点;重试网络请求时请使用幂等性密钥;若轮询仅是速度较慢,则请使用原始任务 ID。.

GlobalGPT模型测试的结果显示

为了具体说明这一区别,我于2026年9月28日对一个有界GlobalGPT模型进行了API测试,测试中使用了两个虚构的、未标注品牌的输入提示语和两个编辑提示语。 每项任务均使用了 GPT Image 2,采用 3:2 比例的请求,并仅采纳第一个有效输出。下方的图片是模型测试证据,并非浏览器工作区会话、基准测试,亦不承诺每次编辑都能保留所有轮廓。.

在纯白背景上,一只哑光象牙色陶瓷瓶,标签上印有“NORTH”和“250ml”字样

P00 输入: 冻结的源图像:一个虚构的、无品牌的瓶子,配有短小的白色瓶盖和短小的标签。.

一幅温暖的米色室内静物画,画中有一只陶瓷器皿,窗外透进柔和的光线

P01 参考: 冻结参考图:仅用于灯光和色彩参考,不作为第二种产品标识。.

T01:单张图片背景编辑

型号: GPT 图片 2 · 日期: 2026年9月28日 · 输出: 第一个有效的 1536×1024 PNG 文件

显示完整的提示
请保持输入图片中的陶瓷瓶、短款白色瓶盖、虚构标签文字"NORTH"和"250ml"、颜色、拍摄角度以及比例不变。仅将纯白色背景替换为受柔和窗光和轻柔阴影启发的暖米色室内摄影棚场景。 请勿添加任何新物体、徽标、文字、水印、人物或标签。在3:2的横向构图中,将瓶子作为唯一的拍摄主体保留。.
NORTH陶瓷水瓶融入了一幅温暖的米色工作室场景中
瓶身依然清晰可辨,贴有“NORTH / 250ml”的标签,白色背景转变为一幅温暖的米色室内场景,其中带有柔和的、宛如窗影般的阴影。.

这说明了: 瓶身依然清晰可辨,贴有“NORTH / 250ml”的标签,白色背景转变为一幅温暖的米色室内场景,其中带有柔和的、宛如窗影般的阴影。.

限制: 这是一个有效的初始输出。它并不能证明像素得到了精确保留,也无法证明标签的整体准确性。.

T02:两张图像的灯光与色彩参考

型号: GPT 图片 2 · 日期: 2026年9月28日 · 输出: 第一个有效的 1536×1024 PNG 文件

显示完整的提示
将输入图像1作为产品的精确参考,输入图像2仅作为暖米色光线、色温及柔和室内阴影的参考。保持输入图像1中的陶瓷瓶形状、短款白色瓶盖、虚构标签文字"NORTH"和"250ml"、颜色、拍摄角度及比例不变。 将白色背景替换为宁静的暖米色室内摄影棚场景。请勿复制输入图像2中的任何额外物体、文字、徽标、水印、人物或标签。保持瓶子作为3:2横向构图中的唯一主体。.
NORTH陶瓷水瓶置于一间暖米色的房间里,窗外柔和的光线洒入室内
产品和“NORTH / 250ml”标签依然醒目,而场景则延续了P01中那种温暖的米色房间、桌面以及窗边光线的氛围。.

这说明了: 产品和“NORTH / 250ml”标签依然醒目,而场景则延续了P01中那种温暖的米色房间、桌面以及窗边光线的氛围。.

限制: 瓶盖的比例、瓶身轮廓和位置都发生了明显变化。不要称其为完美或完全保持原样;当商品尺寸必须一致时,请采用人工比对。.

如何使用这些证据: 其有用的成果是一个可重复的审核流程。冻结输入的URL,命名受保护的主题,描述引用角色,检查返回的字节,并在发布前将批准的产品与源内容进行对比。即使几何形状发生偏移,风格迁移仍可成功实现。.

处理错误和响应缓慢的情况

症状 → 检查 → 处理

症状先检查一下安全的下一步
401 / 身份验证错误服务器端密钥、账户权限、端点主机先暂停并修复身份验证问题;不要对图像质量进行评分。.
400 / 422 请求错误模型 ID、多部分字段名称、文件类型、不支持的选项仅修改错误中提到的字段,然后保留原始的失败请求。.
429 / 5xx / 容量是否已创建任务 ID如果不存在任务 ID,则根据您的策略重试一次;如果存在任务,则轮询该 ID。.
任务仍处于队列中或正在处理中状态、上次检测时间、服务商估算值以固定间隔进行轮询;在状态未知时,不要创建重复项。.
输出是一个以图像形式保存的 JSON 对象内容类型、前几个字节、解码格式解析响应,解码 b64_json 或下载 output.url, 然后进行验证。.
该参数似乎没有效果GlobalGPT 被忽略的参数 以及模型卡删除不支持的字段,并使用特定于模型的契约。.

将传输证据与质量证据区分开来。超时、DNS 故障或提供商容量响应意味着您没有有效的图像可供评分。相反,如果有效图像的封面或标签发生了变化,则应将其作为视觉结果原样报告,即使其构图看起来很吸引人。.

生产环境安全的图像编辑检查清单

  1. 冻结源代码: 存储输入文件、尺寸、格式和哈希值。.
  2. 分配图像角色: 确定主题图像,以及任何与光线、色调或构图相关的参考信息。.
  3. 写保护提示: 列出需要审核的标签、轮廓、颜色和比例。.
  4. 选择合同: 对于原生编辑端点,请使用 OpenAI 多部分请求;对于其公共媒体 API,请使用 GlobalGPT JSON 任务。.
  5. 估算并提交: 使用当前的 OpenAI 费率或 GlobalGPT /任务/估算; 添加一个幂等键,以确保提交操作在重试时安全。.
  6. 轮询和解码: 保留一个任务 ID,验证返回的文件,并将字节或 URL 保存到指定的存储位置。.
  7. 通过目视检查: 在内容进入产品目录、广告或面向客户的页面之前,将其输出与源内容进行对比。.

如果您想运行相同的流程,却不想将单独的模型仪表盘拼接在一起,请尝试 GPT Image 2 在 GlobalGPT 中. 有关面向浏览器的流程版本,请参阅 在 GlobalGPT 工作区中编辑图像; ;有关更全面的配置和定价讨论,请参阅 GPT 图像 API 的配置与定价.

常见问题

什么是 OpenAI 图像编辑 API?

这是 POST /v1/images/edits 端点的图像编辑流程。您需要发送一张输入图像和一条提示语,可选地附带蒙版或参考图像,然后解码返回的图像数据。若需进行单次编辑,请使用 Image API;若产品需要进行多轮图像对话,请使用 Responses API。.

OpenAI 图像编辑 API 会返回公开的图像 URL 吗?

文档中提供的 Image API 示例返回的是 b64_json 格式。请对这些字节进行解码,验证文件,并将其保存到您控制的存储中。请不要认为成功的响应就是托管在 CDN 上的 URL。.

OpenAI图像掩码是否属于精确像素选择?

不。蒙版用于引导基于提示的编辑。模型可能会修改请求区域周围的像素,因此请检查标签、产品详情、安全标识以及其他必须保持正确的元素。.

一个图像编辑工具最多可以使用多少张输入图像?

当前的图像引导功能支持在参考工作流中使用多张输入图像。有关具体限制及特定模型的行为,请查阅当前模型的文档;支持的最大数量并不保证在每次合成中都能完美保留图像。.

我能否通过修改 base_url,将 OpenAI /v1/images/edits 请求发送到 GlobalGPT?

GlobalGPT 的公开媒体合同使用 JSON POST /tasks,随后是 GET /tasks/{id},其中包含图片和 aspect_ratio,前提是所选模型支持这些参数。 公开文档中未列出 OpenAI 针对该路由的多部分掩码、input_fidelity、size 或 quality 规范。.

在提交图像任务之前,我应该如何对其进行估算?

对于 GlobalGPT,请先将相同的 JSON 请求体发送至 /tasks/estimate。该操作不会创建任务,也不会预留信用额度。对于 OpenAI,请根据当前每百万令牌的费率进行计算,然后在响应或计费记录中核对实际使用量。.

分享帖子:

相关帖子