GPT Image
AI 生图 API 示例:从 Prompt 到保存图片
AI 生图 API 示例提供 OfApp.cn 图像生成最小请求、JavaScript 和 Python 保存图片、流式预览、Prompt 模板、参数记录、发布复核和排错清单。
API 生图示例适合已经看过 GPT Image 接入教程,想把一
次图片生成真正跑起来的人。本文不追求复杂参数,而是把一个 Prompt、一次请
求、一个输出文件、一次人工复核讲清楚。示例使用 OfApp.cn 的 OpenAI 兼容入
口 https://api.ofapp.cn/v1;具体模型、尺寸、格式、价格和额度请以
OfApp.cn 控制台或官方文档为准。
| 项目 | 内容 |
|---|---|
| 阅读时间 | 约 7 分钟 |
| 更新时间 | 2026-07-03 |
| 适合人群 | 开发者、内容运营、自媒体作者、设计协作人员、产品经理和需要批量生成配图的团队 |
| 核心收益 | 把一次 AI 生图请求变成可保存、可记录、可复核、可复用的最小工作流 |
| 你会得到 | 最小请求、JavaScript 和 Python 保存脚本、Prompt 拆解卡、流式预览、批量生成策略、参数记录模板、排错清单和发布复核矩阵 |
| 边界提醒 | 示例不承诺固定模型、尺寸、格式、质量、价格或额度;涉及 OfApp.cn 能力时,请以 OfApp.cn 控制台或官方文档为准 |
| 目标 | 这页会做什么 | 不会做什么 |
|---|---|---|
| 跑通接口 | 用环境变量、cURL、JavaScript、Python 完成最小生图 | 不承诺某个模型永远可用 |
| 保存图片 | 读取 b64_json 并写入本地文件 |
不把图片直接当最终设计稿 |
| 记录参数 | 保存 Prompt、模型、输出路径和人工备注 | 不把生成记录当审计系统 |
| 排查问题 | 区分 Key、Base URL、模型名、返回字段和内容问题 | 不替代官方控制台状态 |
| 进入工作流 | 给封面、配图、产品草案提供脚本起点 | 不跳过版权、商标和人物复核 |
如果你还没确认图像端点、Base URL 和模型名,先看 GPT Image 接入教程。
什么时候适合用 API 生图
Section titled “什么时候适合用 API 生图”| 场景 | 适合原因 | 仍需人工处理 |
|---|---|---|
| 知识库和教程封面 | 主题稳定,适合沉淀 Prompt 和尺寸规范 | 标题文字、品牌字体、平台裁切 |
| 产品功能草案 | 可以快速探索构图、情境和视觉方向 | 真实 UI、商标、产品事实和卖点 |
| 自媒体批量选题图 | 同一栏目需要多张候选封面 | 人物肖像、夸张表达、平台规则 |
| 内部素材库 | 需要记录 Prompt、输出文件和复核备注 | 版权边界、团队命名规范 |
| 内容后台工具 | 需要让编辑在界面中生成和筛选草案 | 失败重试、权限、日志和成本控制 |
如果只是偶尔生成一张图,网页工具会更轻。API 更适合重复任务、团队工具和需 要保留生成记录的流程。
什么时候不适合直接用 API 生图
Section titled “什么时候不适合直接用 API 生图”| 情况 | 风险 | 更稳妥的做法 |
|---|---|---|
| 商标、包装、真实商品细节不能出错 | 生成图可能误画或添加不存在的元素 | 使用真实素材,AI 只做背景或方向探索 |
| 图片要表达事实、价格、时间或承诺 | 模型可能生成错误文字或误导画面 | 文案和关键数字在设计工具中人工排版 |
| 涉及真人肖像、身份或敏感场景 | 可能带来肖像权和身份误导问题 | 使用授权素材或抽象化表达 |
| 客户交付物需要审稿链路 | 只有生成图不等于可发布资产 | 建立复核、留痕和责任人确认流程 |
这个流程适合做最小闭环。生成成功不代表可以发布;它只说明接口、模型、返回 字段和文件保存方式已经跑通。
export OPENAI_BASE_URL="https://api.ofapp.cn/v1"export OPENAI_API_KEY="sk-xxxx"export IMAGE_MODEL="以控制台可用图像模型为准"真实 Key 只放在服务端、本机环境变量或密钥管理里。不要把 Key 写进前端页面、 截图、公开仓库或示例文档。
示例一:文章封面草案
Section titled “示例一:文章封面草案”这个示例适合给 AI 教程、办公指南、知识库文章生成封面草案。
为一篇中文 AI 自动化办公教程生成封面草案。画面:干净的现代办公桌,笔记本电脑打开抽象的文档摘要界面,旁边有纸质会议记录和一杯水。风格:清爽、可信、现代、适合知识库文章。构图:16:9,右侧留出标题区域,画面不要拥挤。限制:不要品牌 logo,不要可识别人物,不要水印,不要生成可读正文。适合保存为 cover-office-automation.png,再由设计工具补标题、品牌字体和
平台尺寸。
这个 Prompt 为什么这样写?
Section titled “这个 Prompt 为什么这样写?”| 组成 | 示例写法 | 作用 |
|---|---|---|
| 用途 | 中文 AI 自动化办公教程封面 | 让模型知道图片服务哪类内容 |
| 主体 | 现代办公桌、文档摘要、会议记录 | 给画面提供稳定对象 |
| 风格 | 清爽、可信、现代 | 避免过度夸张或广告化 |
| 构图 | 16:9,右侧留出标题区域 | 为后续排版预留空间 |
| 限制 | 不要品牌 logo、人物、水印、可读正文 | 降低商标、肖像和错字风险 |
写 Prompt 时,不要只写“生成一张高级封面”。把用途、主体、场景、构图和禁 止项拆开,后续才能知道是哪一部分导致效果不稳定。
示例二:产品功能配图
Section titled “示例二:产品功能配图”这个示例适合 SaaS、工具站、产品文档或功能介绍页。
生成一张产品功能介绍配图草案。主题:AI 帮用户把零散资料整理成结构化清单。画面:桌面上有几份资料卡片,逐步汇聚成清晰的任务列表;背景干净,不出现真实软件界面。风格:克制、专业、轻量科技感。构图:中景,主体居中,四周留白。限制:不要品牌 logo,不要具体公司名称,不要夸张营销文字。如果图片中出现真实产品 UI、公司标志或乱码文字,建议重生成或在设计工具中 移除。
cURL 最小请求
Section titled “cURL 最小请求”OpenAI 官方 Images API 文档示例会从 data[0].b64_json 读取图片并保存。接
入 OfApp.cn 时,先打印完整响应确认字段,再按实际结构解析。
curl "$OPENAI_BASE_URL/images/generations" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -H "Content-Type: application/json" \ -d "{ \"model\": \"$IMAGE_MODEL\", \"prompt\": \"为一篇中文 AI 自动化办公教程生成封面草案,画面清爽可信,不要品牌 logo,不要可识别人物。\" }"如果你在本机有 jq 和 base64,可以在确认返回结构后把图片写入文件:
curl "$OPENAI_BASE_URL/images/generations" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -H "Content-Type: application/json" \ -d "{ \"model\": \"$IMAGE_MODEL\", \"prompt\": \"为一篇中文 AI 自动化办公教程生成封面草案,画面清爽可信,不要品牌 logo,不要可识别人物。\" }" \ | jq -r ".data[0].b64_json" \ | base64 --decode > cover.pngWindows PowerShell、macOS 和 Linux 的 base64 命令行为可能不同。脚本化保存 时,JavaScript 或 Python 更容易控制错误处理。
JavaScript 保存图片
Section titled “JavaScript 保存图片”npm install openaiimport fs from "node:fs";import OpenAI from "openai";
const client = new OpenAI({ apiKey: process.env.OPENAI_API_KEY, baseURL: process.env.OPENAI_BASE_URL,});
const prompt = `为一篇中文 AI 自动化办公教程生成封面草案。画面:现代办公桌、文档摘要、会议记录、柔和自然光。风格:清爽、可信、知识库文章配图。限制:不要品牌 logo,不要可识别人物,不要水印。`;
const result = await client.images.generate({ model: process.env.IMAGE_MODEL, prompt,});
const imageBase64 = result.data?.[0]?.b64_json;
if (!imageBase64) { console.error(JSON.stringify(result, null, 2)); throw new Error("没有找到 data[0].b64_json,请按当前响应结构调整解析逻辑。");}
fs.mkdirSync("outputs", { recursive: true });fs.writeFileSync("outputs/cover-office-automation.png", Buffer.from(imageBase64, "base64"));保存文件之外,还建议把 Prompt 和参数记录到同名 .json 文件,便于复现。
Python 保存图片
Section titled “Python 保存图片”pip install openaiimport base64import jsonimport osfrom pathlib import Path
from openai import OpenAI
client = OpenAI( api_key=os.environ["OPENAI_API_KEY"], base_url=os.environ["OPENAI_BASE_URL"],)
prompt = """为一篇中文 AI 自动化办公教程生成封面草案。画面:现代办公桌、文档摘要、会议记录、柔和自然光。风格:清爽、可信、知识库文章配图。限制:不要品牌 logo,不要可识别人物,不要水印。"""
result = client.images.generate( model=os.environ["IMAGE_MODEL"], prompt=prompt,)
output_dir = Path("outputs")output_dir.mkdir(exist_ok=True)
image_base64 = result.data[0].b64_json(output_dir / "cover-office-automation.png").write_bytes( base64.b64decode(image_base64))
(output_dir / "cover-office-automation.meta.json").write_text( json.dumps( { "model": os.environ["IMAGE_MODEL"], "prompt": prompt, "output": "cover-office-automation.png", }, ensure_ascii=False, indent=2, ), encoding="utf-8",)如果响应对象字段不同,先打印完整响应,再调整 result.data[0].b64_json 这
一行。
流式预览示例
Section titled “流式预览示例”OpenAI Images API 文档说明可以使用 stream: true 和 partial_images 接收
部分图片事件。接入 OfApp.cn 时,相关参数是否可用请以当前模型、控制台和官
方文档为准。
const stream = await client.images.generate({ model: process.env.IMAGE_MODEL, prompt: "生成一张 AI 办公教程封面草案,清爽可信,不要品牌 logo。", stream: true, partial_images: 2,});
for await (const event of stream) { if (event.type === "image_generation.partial_image") { const file = `outputs/preview-${event.partial_image_index}.png`; fs.writeFileSync(file, Buffer.from(event.b64_json, "base64")); }}流式预览适合用户界面和创作工具;后台批量任务更适合非流式请求,方便重试和 记录。
批量生成的最小策略
Section titled “批量生成的最小策略”批量生成不是把同一个 Prompt 连续跑很多遍,而是有目的地比较方向。建议一次 只变动一个维度。
| 批量维度 | 示例 | 适合观察什么 |
|---|---|---|
| 构图 | 居中主体、左侧留白、右侧留白 | 哪种布局更适合标题和按钮 |
| 场景 | 办公桌、资料墙、抽象流程图 | 哪种场景更贴近内容主题 |
| 风格 | 写实、轻插画、产品说明图 | 哪种风格更符合站点气质 |
| 限制 | 不要人物、不要文字、不要真实 UI | 哪些限制能减少返工 |
| 尺寸 | 以当前模型和发布平台支持为准 | 哪个比例更适合封面或社媒 |
批量生成时给每张图保留 prompt_id、variant 和 review_note。只保存图
片本身,后续很难判断哪条 Prompt 值得复用。
参数记录模板
Section titled “参数记录模板”| 字段 | 示例 | 为什么要记录 |
|---|---|---|
task |
文章封面、产品图、社媒配图 | 方便按场景复盘 |
prompt |
完整 Prompt 文本 | 复现和改写都依赖它 |
model |
控制台可用模型名 | 排查 model not found |
size |
以模型支持为准 | 关联平台裁切和输出尺寸 |
output_format |
以模型支持为准 | 关联网页加载和发布格式 |
output_path |
outputs/cover.png |
找到原始图片 |
review_note |
文字需重排、人物需替换 | 人工复核结果 |
accepted |
true / false |
标记是否进入后续设计 |
把这些信息记录下来,比只保存一张图片更有用。后续你可以比较哪些 Prompt 更 稳定、哪些参数更容易出错、哪些场景需要人工重做。
| 现象 | 常见原因 | 处理 |
|---|---|---|
| 401 | Key 错误、过期或变量没读到 | 检查 OPENAI_API_KEY,不要打印完整 Key |
| 404 | Base URL 或端点路径错误 | 确认是 https://api.ofapp.cn/v1/images/generations |
| model not found | 模型名不可用或写错 | 从 OfApp.cn 控制台或官方文档复制 |
没有 b64_json |
返回格式和示例不同 | 打印完整响应,按实际字段解析 |
| 图片质量不稳定 | Prompt 太泛、限制项不清 | 明确主体、场景、构图和禁止项 |
| 图片不适合发布 | 有商标、肖像、错字或误导元素 | 重生成或进入人工设计流程 |
失败时先看连接、鉴权、端点和模型名,再看 Prompt。把基础链路排干净,才知道 是不是内容质量问题。
发布复核矩阵
Section titled “发布复核矩阵”| 复核项 | 要看什么 | 处理建议 |
|---|---|---|
| 版权和来源 | 是否像某个已知作品、品牌视觉或受保护素材 | 不确定时重生成,或改用自有素材 |
| 商标和品牌 | 是否出现真实 logo、包装、公司名或相似标识 | 移除、替换或重新生成 |
| 人物和身份 | 是否出现可识别人物、职业身份或敏感暗示 | 使用抽象人物、背影或无人物方案 |
| 文字和数字 | 是否有错字、乱码、错误价格、错误日期 | 在设计工具中重新排版文字 |
| 产品事实 | 是否展示不存在的功能、界面或效果 | 用真实截图或明确标注为概念图 |
| 平台适配 | 是否被封面比例、移动端裁切或深浅色背景破坏 | 按发布平台重新裁切和导出 |
这张矩阵适合放进团队素材提交表。AI 负责生成候选方向,人负责决定能否进入 发布链路。
返回字段和示例不一样怎么办?
Section titled “返回字段和示例不一样怎么办?”先打印完整响应,再按当前接口返回结构调整解析逻辑。不要假设所有兼容服务、 所有模型和所有参数组合都会返回完全一样的字段。
失败时应该先改 Prompt 吗?
Section titled “失败时应该先改 Prompt 吗?”如果是 401、404、model not found 或没有权限,先查 Key、Base URL、端点和模 型名。只有内容安全、画面质量或生成结果不符合预期时,才优先改 Prompt。
size、output_format、quality 要不要一开始就写?
Section titled “size、output_format、quality 要不要一开始就写?”不建议一开始写很多参数。先用 model 和 prompt 跑通,再根据当前模型支持
范围逐项加入尺寸、格式、质量或压缩参数。
可以把生成图片直接放到生产环境吗?
Section titled “可以把生成图片直接放到生产环境吗?”不建议。发布前应检查版权、商标、人物、文字、事实表达、平台规则和品牌一 致性。AI 生图更适合作为草案和素材起点。
JavaScript 和 Python 示例应该选哪个?
Section titled “JavaScript 和 Python 示例应该选哪个?”网站、后台任务和 Node.js 工具可以选 JavaScript;数据处理、批量脚本和自动
化办公可以选 Python。两者的核心都是读取 b64_json 并保存文件。
什么时候用流式预览?
Section titled “什么时候用流式预览?”当用户会在界面上等待图片生成时,可以考虑流式预览。后台批量生成、定时任 务、内容素材库更看重稳定性,非流式请求通常更容易维护。
- GPT Image 接入教程:先理解端点、参数和安全边界。
- 自媒体封面生成:把示例用于文章和社媒封面。
- 产品图、海报、头像、插画场景:拓展更多视觉任务。
- 生图 Prompt:改写可复用的图像提示词模板。
- 图像生成 Images API 示例:查看更通用的图像 API 写法。
- AI 处理图片视频:进入完整内容生产流程。
- OfApp.cn 官方首页、API 文档与 Genius Playground 页面:用于确认网页入口、API Key、OpenAI 兼容 Base URL、Images API 示例、图片参数入口和能力边界;涉及模型、尺寸、格式、质量、价格和额度时,请以 OfApp.cn 控制台或官方文档为准。
- OpenAI Image generation 文档:用于参考 Images API 生成图片、读取 base64 图片、保存文件、流式预览和部分图片事件的组织方式。
- OpenAI Images API reference:用于参考图片对象可能包含 base64 或 URL 字段的说明。
- 本站已有专题:GPT Image 接入教程、生图 Prompt、自媒体封面生成 和 AI 处理图片视频。
API 生图示例的价值不在于一次生成成功,而在于形成可复现流程:Prompt 写清
楚,环境变量分开配置,响应字段先验证,图片和参数一起保存,发布前再做人工
复核。使用 OfApp.cn 时,用 https://api.ofapp.cn/v1 和控制台可用模型跑通
最小请求;涉及模型、尺寸、格式、价格和额度时,请以 OfApp.cn 控制台或官方
文档为准。