跳转到主要内容

n8n 接入 GPT Image 2.5:从生成请求到可用图片文件

11 分钟阅读API 指南

n8n 接入 GPT Image 2.5 可以使用支持该模型的 OpenAI 节点,也可以通过 HTTP Request 调用。本文说明版本判断、Flare 与 Sunburst 型号填写、Base64 转图片文件,以及图片编辑和用量记录的注意点。

n8n 工作流通过原生节点或 HTTP Request 调用 GPT Image 2.5 并取得图片文件

在 n8n 中使用 GPT Image 2.5,先检查当前 OpenAI 节点能否选择或填写 gpt-image-2.5-flaregpt-image-2.5-sunburst。能选到且参数满足任务时,可以直接使用原生图片节点;需要自行设置请求参数、保留完整响应,或者当前节点尚未提供模型入口时,再用 HTTP Request。不能仅凭旧版教程中没有 2.5,就判断必须绕过原生节点。

本文依据 2026 年 9 月 21 日核验的官方文档和公开源码整理配置示例,未在本机运行 n8n,也未进行付费生图测试。流程完成的标准是下游取得能够打开的图片文件,而不只是看到请求节点变绿。

先确认你用的是哪一种 OpenAI 节点

n8n 的应用版本和 OpenAI 节点版本不是同一个数字。当前公开实现中,图片生成操作对节点版本 2.2 及以上使用动态模型选择,旧节点版本使用静态列表;这说明不能把某一张旧界面截图推广到所有安装环境。n8n 图片生成源码

还有一条可核查的实例:n8n 的公开 issue 报告在应用版本 2.38.6、OpenAI 节点 typeVersion: 2.3 下使用 gpt-image-2.5-flare,问题是图片用量没有进入统计。这是报告者的环境记录,不能据此保证你当前安装也具有同样的模型列表或权限。图片用量统计 issue

打开自己的工作流后,按下面几个条件决定入口:

当前情况合适的做法需要检查的结果
OpenAI 的 Image / Generate an Image 能选择准确型号,所需参数也齐全使用原生节点输出的 Binary 中是否出现图片文件
节点没有型号入口,或需要明确控制原始请求字段使用 HTTP RequestJSON 中是否含图片数据,再转为文件
需要把原始 usage 单独存入日志使用能保留完整响应的 HTTP Request响应中的实际用量字段是否被保存
连 API 服务本身也提示无权访问该模型先处理账号、凭据或模型权限换节点不会自动取得模型权限

原生节点中选择 OpenAI 凭据、Image、Generate an Image,填写具体型号和提示词,执行后检查输出。n8n 文档说明图片默认放在名为 data 的二进制字段;当前源码也会把 b64_json 解码为二进制文件。因此,原生节点已经输出图片文件时,不要再接一次 Base64 解码。 n8n 图片操作文档

文档里的部分选项仍围绕 DALL-E 或 GPT Image 1 描述。配置 2.5 时,要对照实际模型和当前节点暴露的设置,不要机械照搬旧例中的 response_format: url

用 HTTP Request 建立一个容易核对的生成请求

HTTP Request 方式把接口响应直接交给你,适合检查型号、请求字段和用量。下面使用 OpenAI 官方接口;凭据应保存在 n8n Credentials 中,选用相应的预定义凭据,或用 Header Auth 配置 Authorization 头,其值为 Bearer <你的 API Key>。不要把真实 key 写进工作流说明、截图或可分享的 JSON。

设置请求:

项目
MethodPOST
URLhttps://api.openai.com/v1/images/generations
Send Body开启
Body Content TypeJSON
Response FormatJSON

JSON 请求体可以从这个最小例子开始:

json
{ "model": "gpt-image-2.5-flare", "prompt": "为中文咖啡店菜单设计一张方形插画:白色陶瓷杯、浅木桌面、柔和晨光,右上方留出空白,不出现文字。", "size": "1024x1024", "quality": "medium", "output_format": "png" }

需要比较 Sunburst 时,仅将 model 换为 gpt-image-2.5-sunburst,先保留其他设置,便于观察任务结果。两者都支持生图与编辑;Flare 的官方定位偏向速度,Sunburst 偏向精确编辑。系列名 gpt-image-2.5 不应代替具体请求型号。Flare 模型页Sunburst 模型页

这个请求使用 Images API。不要把 Responses API 中的 tools 配置混入这份请求体;两种接口的组织方式不同。官方图片指南的生成示例返回 data[0].b64_json,这里因此选择 JSON 响应,而不是把整份 HTTP 响应直接当图片下载。OpenAI 图片生成指南

把 Base64 字符串变成下游能读取的图片

HTTP Request 请求成功后,如果看到 data 数组中的 b64_json,拿到的仍然是 JSON 内的一段编码文本。邮件附件、对象存储上传等节点通常需要 n8n 的二进制文件,转换过程要单独完成。

一个清晰的连接方式是:HTTP Request → Edit Fields → Convert to File → 保存或上传节点。

HTTP Request 的 Base64 响应经 Edit Fields 与 Convert to File 转为二进制图片文件

  1. 检查响应中确实有非空的 data[0].b64_json。先排除错误响应,不要对空值执行转换。
  2. 在 Edit Fields 新建字符串字段 image_base64,值使用表达式 {{ $json.data[0].b64_json }}
  3. 添加 Convert to File,选择 Move Base64 String to File
  4. Base64 Input Field 填为 image_base64。这里需要的是字段名,不是刚才那段很长的 Base64 值。
  5. 将文件名设为 cafe-menu.png,MIME Type 设为 image/png;把 Put Output File in Field 设为 data,下游使用这个二进制字段。

这些选项依据 Convert to File 官方说明。文件后缀和 MIME 类型应对应请求中的 output_format;仅把文件名改为 .jpg 并不会将 PNG 内容转换成 JPEG。

默认情况下,HTTP Request 只输出响应体。如果开启 Include Response Headers and Status,图片响应会被包装在 body 下,此时第二步的表达式应改为 {{ $json.body.data[0].b64_json }}。字段路径必须以本次执行的实际 JSON 为准。HTTP Request 响应选项

转换完成后,在输出的 Binary 中查看或下载文件,确认能够打开。再把 data 交给保存或上传节点,并核对目标位置确实出现文件。上游生图成功、n8n 已生成二进制文件、远端已接收图片,是三个需要分别确认的结果。

如果一次响应包含多张图片,上面的 [0] 只处理第一张。要保存全部结果,需要先逐项拆分响应数组,再为每一项生成独立文件名,不能把第一张成功当作整批已完成。

需要参考图或局部编辑时,调整请求形式

图像编辑使用 /v1/images/edits,需要将输入图片随请求提交。HTTP Request 中选择 Form-Data,并将图片参数设为 n8n Binary File;参数的 Name 按接口要求填写,Input Data Field Name 则指向上游图片所在的二进制字段,例如 datamodelprompt 等文本参数作为普通表单字段提交。OpenAI 图片编辑说明n8n multipart 参数说明

这里容易混淆的是两种“名字”:接口需要的上传参数名,和 n8n 内部保存图片的字段名。它们可以不同;不要把文件路径或 Base64 字符串填进要求二进制字段名的位置。也不要手工写一个没有 boundary 的 Content-Type: multipart/form-data,让节点生成完整表单请求头。

原生 OpenAI 节点也有 Edit Image 操作,但是否能在你的节点版本中选到所需 2.5 模型及参数,应当单独检查,不能根据 Generate an Image 可用就推定编辑配置完全相同。对于需要严格保留商品细节的任务,可结合 Flare 与 Sunburst 的编辑选型说明 制定输出检查项。

节点变绿后,仍可能漏掉什么

分别核对 API 图片返回、文件可打开和目标位置已收到图片

最常见的故障不需要先更换模型。按输出停在哪一步检查,更容易定位:

现象优先检查
模型不存在或没有权限准确模型 ID、所用 API 服务、凭据所属账号的权限
转换节点找不到 image_base64Edit Fields 输出,以及是否开启了响应包装
有很长的文本,却没有可上传的文件是否完成 Convert to File,而不是直接传递 JSON
原生节点已经有 Binary,后接解码却失败删除重复解码,直接读取二进制字段
上传节点成功但找不到预期图片目标目录、文件名、上传节点实际返回值与远端文件
统计面板没有图片用量原生节点是否保留 usage,不要据此认为免费

截至本次查看,原生生成源码提取图片 data 后,没有把响应中的 usage 一并交付,相关 issue 仍未关闭。需要按任务计算消耗时,可在 HTTP Request 返回后另存原始 usage、模型、尺寸、质量和任务编号,再把图片数据送去转换;账单仍以实际服务的计费记录为准。n8n 用量问题记录

耗时较长时,检查 HTTP Request 的 Timeout 设置,单位是毫秒;文档将其定义为等待响应头或响应体开始的时间。不要把一个固定等待时长当成图片已经完成的证据。发生超时且无法判断服务端是否已经生成时,先保留执行记录并核对状态,避免无条件重试产生重复任务或重复费用。

完成第一次连接后,保留一份能够查看原始响应、打开图片并确认保存位置的执行记录。后续再增加批量处理和业务分支,这样遇到问题时能清楚区分是请求、文件转换,还是交付环节出了错。

#GPT Image 2.5#n8n#图片生成#工作流
分享文章: