GPT Image 2.6 的 GIF 动图和 SVG 矢量图怎么调用
模型页:GPT Image 2.6 Flare API · GPT Image 2.6 Sunburst API —— 价格、规格与在线体验
GIF 是把所有帧画在一张帧图上再切开的,所以帧数越多,每帧越小:3 到 4 帧时每边最大 1920 像素,9 到 16 帧时 960 像素。只传 aspect_ratio 和 resolution 时,apimodels.app 会把每帧自动缩到放得下的最大尺寸;传精确的单帧尺寸时先按原样发送,放不下才按原比例缩小。2026 年 11 月 7 日实测,4 到 16 帧的 GIF 用时 10 到 24 秒。
SVG 是静态矢量文件,不含脚本、外部资源或内嵌位图,画布最大约 1024x1024,适合图标、Logo 和扁平插画。它不能把现成的位图转成矢量,因为 SVG 输出不接受参考图。实测一张 SVG 约 40 秒。
做贴纸类 GIF 时,在提示词里要求纯绿幕背景:每一帧外圈都是纯色绿幕时,apimodels.app 会自动抠成透明,结果仍是 GIF,帧数和帧时长不变。想保留绿底就传 background "opaque"。GIF 的像素只有全透明和不透明两种,做不出柔和的半透明边。
参数
| 字段 | 取值 | 说明 |
|---|---|---|
| output_format | gif / svg(或 png / jpeg / webp) | 决定输出文件类型 |
| frame_count | 2–16,缺省 9 | 仅 GIF;超过 16 直接报错 |
| frame_duration_ms | 20–2000,缺省 200 | 仅 GIF;每帧毫秒数 |
| aspect_ratio + resolution | 例如 1:1 + 1K | 每帧自动缩到放得下的尺寸 |
| image_urls | 最多 16 张参考图 | GIF 可以;SVG 不行(只能文生图) |
| n | 1–10 | SVG 只能 1 |
| background | auto / transparent / opaque | GIF:传 opaque 保留绿幕,不自动抠图 |
| mask | 图片链接 | 不能和 GIF 同用(返回 400) |
| quality | low / medium / high | 对 SVG 不起作用 |
GIF 每帧能多大
整张帧图的长边不能超过 3840 像素、总像素不超过 8,294,400;帧数乘以单帧像素至少 655,360(4 帧 512x512 可以,4 帧 256x256 不行)。
| 帧数 | 网格 | 单帧上限 | 示例尺寸 |
|---|---|---|---|
| 2 | 2x1 | 拼接的那一边 ≤1920,另一边 ≤3840 | 1920x1088 |
| 3–4 | 2x2 | 两边都 ≤1920 | 1440x1440 |
| 5–8 | 4x2 | 短边 ≤960,长边 ≤1920 | 960x960、1344x768 |
| 9–16 | 4x4 | 两边都 ≤960 | 720x720、944x528 |
多少钱
SVG 每张固定 $0.0315,不分画质。GIF 按实际用掉的 token 计费,单价比 OpenAI 低 10%(图像输出每百万 token $27,OpenAI 是 $30),所以帧数、单帧尺寸、画质和参考图都会影响价格。我们实测 6 帧低画质 GIF 约 3.4 美分,带一张参考图、默认画质的 GIF 约 9 美分。失败不扣费;Flare 和 Sunburst 的 GIF、SVG 价格相同。
不适合做什么
别指望 SVG 出照片级画面,也别指望它把你现有的 Logo 文件描成矢量:SVG 只按提示词画。别规划大尺寸 GIF:超过 8 帧后每帧最大 960 像素。GIF 不能和蒙版同用,要局部改动先改静图,再拿静图做动图。GIF 没有半透明,边缘是硬的;需要柔和边缘就在自己的流程里转成 APNG 或 WebP。
调用示例
cURL
# SVG: text-to-image only, n = 1, flat $0.0315
curl -X POST https://api.apimodels.app/v1/images/generations \
-H "Authorization: Bearer $APIMODELS_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "model": "gpt-image-2.6-flare", "prompt": "a flat two-color icon of a coffee cup with steam", "output_format": "svg" }'
# Animated GIF: 12 frames, 120 ms each, green screen keyed out to transparent
curl -X POST https://api.apimodels.app/v1/images/generations \
-H "Authorization: Bearer $APIMODELS_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "model": "gpt-image-2.6-flare", "prompt": "a cartoon cat waving, solid #00FF00 background, loopable", "aspect_ratio": "1:1", "resolution": "1K", "output_format": "gif", "frame_count": 12, "frame_duration_ms": 120 }'
# Both return { "data": { "taskId": "..." } }; poll GET /v1/images/generations?task_id=...Python
import os, time, requests
B = "https://api.apimodels.app/v1"
H = {"Authorization": f"Bearer {os.environ['APIMODELS_API_KEY']}"}
r = requests.post(f"{B}/images/generations", headers=H, json={
"model": "gpt-image-2.6-flare",
"prompt": "a cartoon cat waving, solid #00FF00 background, loopable",
"aspect_ratio": "1:1", "resolution": "1K",
"output_format": "gif", "frame_count": 12, "frame_duration_ms": 120,
})
task_id = r.json()["data"]["taskId"]
while True:
d = requests.get(f"{B}/images/generations", headers=H, params={"task_id": task_id}).json()["data"]
if d["state"] in ("completed", "failed"):
print(d.get("resultUrls") or d.get("failMsg"), d.get("credits")); break
time.sleep(3)常见问题
用 OpenAI SDK 能拿到 GIF 吗?
GIF 和 SVG 请用普通 HTTP 请求。SDK 的 images.generate 带 size 走的是一次调用拿图的路径,只用于普通 PNG、JPEG、WebP;GIF、SVG、蒙版和标注图改图走任务接口:先创建任务,再轮询结果。
一个 GIF 最多几帧?
2 到 16 帧,缺省 9 帧。超过 16 帧会直接报错;网上流传的「2–64 帧」是早期说法,已经不适用。
能把 PNG 的 Logo 转成 SVG 吗?
不能。SVG 输出只支持文生图,不接受参考图,它是按提示词重新画一张矢量图,不是描摹现有文件。可以用文字描述 Logo,或者用专门的矢量化工具做描摹。
GIF 用 Flare 还是 Sunburst?
两档都支持 GIF 和 SVG,价格相同。Flare 是默认档,更快,适合搭流水线;Sunburst 每张多花时间换更细的细节,这在静图上更有用,在尺寸不大的 GIF 帧上差别没那么明显。
GPT Image 2 或 2.5 能出 GIF 吗?
不能。GIF 和 SVG 输出是 GPT Image 2.6 新增的能力。另外 OpenAI 会在 2027 年 2 月 10 日下线 GPT Image 2,指定 2.6 为替代。
