OpenAI 昨天(4月21日)发布了 gpt-image-2,中文文字渲染准确率据说到了 99%。我之前的文章配图一直用 HTML 写信息图 → Playwright 截图的土办法。今天花了一下午实测:gpt-image-2 能不能把这套笨重流程干掉?
我之前怎么做文章配图的
先说痛点。我每天写一篇技术文章,每篇需要 1 张封面图 + 2-3 张内容插图。
之前的流程是这样的:
- 手写一段 HTML + CSS(信息图、数据可视化、架构图)
- 用 Playwright 截图保存为 PNG
- 用
sips压缩成 JPEG
听起来能跑,但实际操作很痛苦:
html
<!-- 这是一张"封面图"的代码量 -->
<!DOCTYPE html>
<html><head><style>
body { width:1200px; height:600px; background:linear-gradient(...); }
.title { font-size:40px; font-weight:800; ... }
.badge { display:inline-flex; ... }
.card { background:rgba(255,255,255,0.04); border-radius:16px; ... }
/* 还有 50-80 行 CSS */
</style></head>
<body>
<!-- 20-30 行 HTML 结构 -->
</body></html>
一张封面图要写 100 行 HTML/CSS。调配色、调布局、调字号,搞完半小时过去了。文章本身才花一小时,配图的时间接近文章的一半。
而且效果还很有限------你能做的只有 CSS 能做的:纯色背景、渐变、简单的卡片布局。想要一点点质感、光影、插画风格?做不到。
gpt-image-2 能做什么
gpt-image-2 是 OpenAI 4 月 21 日发布的图像生成模型。对我来说最关键的三个特性:
- 中文文字渲染准确率 99%------之前的 AI 生图模型中文全是乱码
- 2K 分辨率输出------够用了,不需要后期放大
- API 可调用------能集成到自动化流程里
通过 API 调用:
python
from openai import OpenAI
client = OpenAI(api_key="your-key")
result = client.images.generate(
model="gpt-image-2",
prompt="技术博客封面图:深色背景,左侧大标题'AI Agent 为什么越聊越蠢',右侧一个从绿到红的柱状图,8根柱子高度递减,风格简洁专业",
size="1536x1024",
quality="high"
)
定价(按质量分三档):
| 分辨率 | low | medium | high |
|---|---|---|---|
| 1024×1024 | $0.006 | $0.053 | $0.211 |
| 1536×1024 | $0.009 | $0.080 | $0.317 |
一张 high 质量的封面图 $0.317,约 2 块钱人民币。
实测:5 张封面图对比
我拿最近写的 5 篇文章的封面图做对比。同一个需求,分别用旧流程(HTML+Playwright)和 gpt-image-2 生成。
测试 1:数据可视化封面
需求:AI Agent 回答质量随对话轮次下降的柱状图
HTML 方案:写了 120 行 HTML/CSS,8 根渐变色柱子,精确控制每根的高度百分比。耗时 25 分钟。效果精确但"平"------纯 CSS 做的柱状图就是方块加渐变,看着像 PPT。
gpt-image-2 方案:
python
prompt = """技术博客封面图,16:9 比例,深色科技风背景。
左侧:大标题 'AI Agent 为什么越聊越蠢',白色字,下方小字 '2000 轮对话实测'。
右侧:8 根竖柱状图,从左到右高度递减(4.6, 4.4, 4.1, 3.5, 3.2, 2.9, 2.7, 2.3),
颜色从绿色渐变到红色。柱子下方标注 R1-R8。
右下角标注 '质量衰减 50%+'。
整体风格:干净专业,有科技感的光晕效果。"""
耗时 15 秒。出来的图有光晕、有景深、有质感------HTML/CSS 根本做不到的视觉层次。
中文标题"AI Agent 为什么越聊越蠢"完全准确,没有一个字错。这是之前任何 AI 生图模型都做不到的。
但------柱子的高度不准确。我指定了 4.6, 4.4, 4.1, 3.5 这样的精确数值,实际生成的柱子高度只是"大致递减",比例并不精确。数字标注(R1-R8)倒是对了。
测试 2:架构流程图
需求:MCP Server 的工作流程(用户→Claude Code→MCP→数据库)
HTML 方案:用 flexbox 做了个从左到右的箭头流程。耗时 20 分钟。清晰但极简。
gpt-image-2 方案:生成了一个有图标、有连线、有渐变底色的流程图。视觉效果好很多。但"Claude Code"这个文字里的空格变成了奇怪的间距,"MCP"三个字母倒是清晰。
测试 3-5 汇总
| 封面类型 | HTML 耗时 | gpt-image-2 耗时 | 中文准确率 | 数据精确度 | 视觉质量 |
|---|---|---|---|---|---|
| 数据柱状图 | 25 min | 15 sec | 100% | 60%(高度不准) | gpt-image-2 胜 |
| 架构流程图 | 20 min | 12 sec | 95%(空格问题) | N/A | gpt-image-2 胜 |
| 对比表格风格 | 15 min | 10 sec | 100% | 80%(列对齐偏) | 平手 |
| 品牌+标语 | 10 min | 8 sec | 100% | N/A | gpt-image-2 胜 |
| 代码编辑器截图 | 30 min | 18 sec | 90%(代码有误) | N/A | 平手 |
核心发现:两套方案各有死穴
做完 5 组对比之后,结论不是"谁替代谁",而是它们擅长完全不同的事。
gpt-image-2 的优势
| 维度 | 数据 |
|---|---|
| 生成速度 | 8-18 秒 vs 10-30 分钟 |
| 视觉质量 | 有光影、质感、层次感,CSS 做不到 |
| 中文渲染 | 标题级中文 99% 准确 |
| 成本 | $0.05-0.32/张 |
结论:适合生成"氛围型"封面------标题 + 视觉风格 + 品牌感。 不需要精确数据的场景,gpt-image-2 完胜。
gpt-image-2 的死穴
1. 数据精确度不可控。 你指定"柱子高度分别是 95%, 91%, 84%, 72%",它画出来的只是"大致递减"。如果你的封面图里有具体数字需要精确对应视觉元素(比如柱状图、折线图),gpt-image-2 做不到。
2. 代码渲染有错误。 让它画一个代码编辑器截图,代码块里的内容有语法错误、缩进不对。用来做"装饰性的代码背景"可以,用来展示真实代码不行。
3. 布局不可精确控制。 你无法指定"标题距左边 55px,字号 40px"。它会给你一个大致合理的布局,但像素级的精确控制做不到。
HTML+Playwright 的不可替代场景
| 场景 | 为什么 gpt-image-2 不行 |
|---|---|
| 数据可视化(精确柱状图/折线图) | 高度/比例必须精确 |
| 真实代码展示 | 代码内容必须零错误 |
| 像素级对齐的 UI 截图 | 间距/字号必须精确 |
| 需要和文章数据严格一致的图 | 图里的数字必须和正文匹配 |
我最终采用的混合方案
两套都用,按场景分工:
python
def choose_image_method(image_type):
"""根据图片类型选择生成方式"""
# 需要精确数据的 → HTML+Playwright
if image_type in ["data_chart", "code_screenshot", "precise_table"]:
return "html_playwright"
# 氛围/品牌/概念型 → gpt-image-2
if image_type in ["cover", "concept", "brand", "architecture_overview"]:
return "gpt_image_2"
# 默认走 gpt-image-2(更快)
return "gpt_image_2"
实际操作:
| 图片类型 | 方案 | 原因 |
|---|---|---|
| 文章封面(标题+氛围) | gpt-image-2 | 速度快、质感好、中文准确 |
| 数据对比图(精确柱状图) | HTML+Playwright | 柱子高度必须精确 |
| 架构概念图(粗略流程) | gpt-image-2 | 视觉质量高、不需要精确 |
| 代码截图(真实代码) | HTML+Playwright | 代码必须零错误 |
封面图以后全用 gpt-image-2。从写 100 行 HTML 到写一段 prompt,速度从 20 分钟降到 15 秒。正文里需要精确数据的插图继续用 HTML 方案。
集成到自动化流程
我把 gpt-image-2 接到了写文章的工具链里。因为我平时用 API 网关调语言模型,发现它第一时间就上了 gpt-image-2 的支持,同一个 Key 文本和图片都能调,不用单独去 OpenAI 申请图片 API 的配额。
python
from openai import OpenAI
# 同一个 client,既能调文本模型也能调 gpt-image-2
client = OpenAI(
base_url="https://api.therouter.ai/v1",
api_key="your-key"
)
def generate_cover(title, subtitle, style="dark tech"):
"""一行代码生成封面图"""
result = client.images.generate(
model="gpt-image-2",
prompt=f"""技术博客封面图,16:9 比例,{style}风格。
大标题:'{title}'
副标题:'{subtitle}'
整体风格:干净专业,有科技感""",
size="1536x1024",
quality="high"
)
return result.data[0].url
# 同一个 client 调文本模型
chat = client.chat.completions.create(
model="deepseek/deepseek-v3",
messages=[{"role": "user", "content": "帮我写个封面图的 prompt"}]
)
之前生成一张封面图 20 分钟 + 100 行代码。现在 15 秒 + 5 行代码。而且文本模型和图片模型走同一个 Key、同一个账单,不用管两套计费。
prompt 写法的几个坑
测了一下午,总结几条 gpt-image-2 prompt 的注意事项:
1. 中文标题要用引号括起来。
❌ 大标题是 AI Agent 的上下文管理
✅ 大标题:'AI Agent 的上下文管理'
不加引号的话模型偶尔会"创意发挥"改你的标题。加了引号准确率接近 100%。
2. 数字不要指望精确渲染到图形上。
❌ 画一个柱状图,8 根柱子高度分别是 95%, 91%, 84%, 72%, 61%, 53%
✅ 画一个柱状图,8 根柱子从左到右高度递减,最高的大约是最矮的 2 倍
给精确数字它也画不准。给比例关系("递减""大约 2 倍")反而更符合预期。
3. 指定"不要加的元素"很重要。
✅ 不要出现人物、不要有手、不要有 watermark、不要有渐变彩虹色
不说的话它偶尔会加一些你不想要的装饰元素。
4. 风格参考比抽象描述有效。
❌ 风格简洁专业
✅ 风格类似 Vercel 官网的暗色设计,深蓝黑背景,紫色和青色的微光效果
成本核算
以我每天 1 篇文章(1 封面 + 2 插图)计算:
| 方案 | 每日成本 | 每日耗时 | 月成本 |
|---|---|---|---|
| 纯 HTML+Playwright | $0 | 45 min | $0 |
| 纯 gpt-image-2 (high) | $0.95 | 1 min | $28.50 |
| 混合方案(封面 AI + 插图 HTML) | $0.32 | 15 min | $9.60 |
混合方案每月多花 $9.60(约 70 块),但每天省 30 分钟。一个月省 15 小时。这个交换对我来说非常值得。
常见问题
Q: gpt-image-2 的中文渲染真的到 99% 了吗?
A: 标题级别的大字(10 字以内)确实接近 99%。但小字、密集排版(比如模拟一整页中文文档)的准确率明显下降,我测到大约 85-90%。目前适合做标题和短语,不适合做整段文字的排版。
Q: 能替代 Figma/Canva 做正式的设计稿吗?
A: 不能。gpt-image-2 生成的是"图片"不是"可编辑的设计文件"。你无法修改里面的某个元素。它适合一次性生成的配图,不适合需要反复修改的设计稿。
Q: API 调用有速率限制吗?
A: 有。目前免费版每分钟限制较低,Plus/Pro 用户限制更宽松。批量生成图片建议加延迟或者走 API 网关做限流控制。