OpenAI đã ra mắt ChatGPT Images 2.5 vào ngày 8 tháng 9 năm 2026, với hai mô hình API mới: gpt-image-2.5-flare và gpt-image-2.5-sunburst. Cả hai đều nằm sau các điểm cuối (endpoint) tương tự như gpt-image-2, vì vậy nếu bạn đã làm theo hướng dẫn API gpt-image-2 của chúng tôi, hầu hết mã của bạn vẫn hoạt động khi đổi ID mô hình. Điều đã thay đổi là thang chất lượng và cách API Phản hồi (Responses API) cho phép bạn chọn một mô hình cho mỗi lệnh gọi công cụ.
Hướng dẫn này chỉ bao gồm lộ trình dành cho nhà phát triển: tạo ảnh, chỉnh sửa đa phần với ảnh tham chiếu và mặt nạ, công cụ API Phản hồi, truyền phát (streaming), và đọc usage để biết chi phí thực tế. Để hiểu ý nghĩa của bản phát hành này đối với người dùng ChatGPT, hãy đọc tổng quan về ChatGPT Images 2.5 của chúng tôi; bài đăng ra mắt của OpenAI có cung cấp khung sản phẩm. Mọi con số dưới đây đều đến từ tài liệu, trang giá hoặc công cụ tính toán của OpenAI được đọc vào ngày 9 tháng 9 năm 2026.
API gpt-image-2.5: Sơ lược
| Mục | Giá trị (Tài liệu OpenAI) |
|---|---|
| ID Mô hình | gpt-image-2.5-flare, gpt-image-2.5-sunburst (phiên bản -2026-09-08) |
| Điểm cuối | POST /v1/images/generations, POST /v1/images/edits, công cụ Responses API image_generation |
| Đầu vào / đầu ra | Văn bản và hình ảnh vào, chỉ hình ảnh ra |
| Chất lượng | low, medium, high, xhigh, max, auto (mặc định). xhigh và max là mới |
| Kích thước | 1024x1024, 1536x1024, 1024x1536 được khuyến nghị; kích thước tùy chỉnh là bội số của 16, tỷ lệ khung hình 1:3 đến 3:1, tối đa 4K tổng số pixel |
| Đầu ra | data[].b64_json; output_format png, jpeg, webp; background: "transparent" cần png hoặc webp |
| Truyền phát | partial_images 0-3, mỗi ảnh một phần tốn thêm 100 token đầu ra |
| Giá (cả hai mô hình) | 30 đô la cho 1 triệu token đầu ra hình ảnh, 8 đô la cho 1 triệu token đầu vào hình ảnh, 5 đô la cho 1 triệu token đầu vào văn bản |
Mức phí theo token khớp với gpt-image-2; chi phí mỗi hình ảnh vẫn thay đổi vì số lượng token cho mỗi cấp độ chất lượng đã thay đổi.
Điều kiện tiên quyết
- Tài khoản nhà phát triển OpenAI ở gói sử dụng trả phí. Các điểm cuối hình ảnh yêu cầu Bậc 1 trở lên, có nghĩa là phải thêm phương thức thanh toán; gói đăng ký ChatGPT không được tính. Hướng dẫn về khóa API OpenAI của chúng tôi bao gồm các khóa theo dự án.
- SDK
openaichính thức cho Python hoặc Node. - Một cách để xem trước phản hồi hình ảnh. Curl in base64, gây khó khăn cho việc lặp lại; Apidog hiển thị hình ảnh đã giải mã trực tiếp, và phần cuối cùng sẽ chuyển quy trình làm việc sang đó.
Xuất khóa một lần:
export OPENAI_API_KEY="sk-proj-..."
Tạo hình ảnh bằng curl
Trước tiên, hãy sử dụng Flare; trang mô hình của OpenAI gọi nó là “lựa chọn mặc định cho hầu hết các ứng dụng”.
curl https://api.openai.com/v1/images/generations \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2.5-flare",
"prompt": "Ảnh sản phẩm bàn phím cơ màu đen mờ, ánh sáng studio, không chữ",
"size": "1536x1024",
"quality": "medium",
"output_format": "webp",
"background": "transparent"
}'
Phản hồi chứa một mảng data với một b64_json cho mỗi hình ảnh, cộng với một đối tượng usage với input_tokens và output_tokens. Giữ lại usage; đây là tín hiệu chi phí chính xác duy nhất bạn nhận được. Lưu ý về tham số từ hướng dẫn tạo hình ảnh: output_format mặc định là png và OpenAI nói “Sử dụng jpeg nhanh hơn png”; output_compression (0-100) chỉ áp dụng cho jpeg và webp; background: "transparent" không hoạt động với jpeg.
Python: tạo, sau đó chỉnh sửa bằng ảnh tham chiếu
Cuộc gọi SDK tương tự như nội dung curl. Giải mã b64_json và ghi các byte.
import base64
from openai import OpenAI
client = OpenAI()
gen = client.images.generate(
model="gpt-image-2.5-flare",
prompt="Mô phỏng bảng điều khiển phân tích API sạch, chủ đề tối, biểu đồ độ trễ ở trên cùng bên phải",
size="1536x1024",
quality="high",
output_format="png",
)
open("dashboard.png", "wb").write(base64.b64decode(gen.data[0].b64_json))
print(gen.usage.output_tokens, "output tokens")
Chỉnh sửa là nơi các mô hình 2.5 phát huy giá trị của chúng; bài đăng ra mắt nói rằng chúng “tốt hơn trong việc chỉ chỉnh sửa những gì bạn yêu cầu, trong khi vẫn giữ nguyên các chi tiết còn lại”, và OpenAI định vị Sunburst cho “kiểm soát chặt chẽ hơn trong các chỉnh sửa”. Điểm cuối chỉnh sửa là đa phần: một hình ảnh tham chiếu, một mặt nạ tùy chọn và một lời nhắc. Tại nơi mặt nạ trong suốt, mô hình sẽ vẽ lại; ở những nơi khác, nó giữ nguyên bản gốc.
edit = client.images.edit(
model="gpt-image-2.5-sunburst",
image=open("dashboard.png", "rb"),
mask=open("chart-area-mask.png", "rb"),
prompt="Thay thế biểu đồ độ trễ bằng biểu đồ cột tỷ lệ lỗi cho mỗi điểm cuối; giữ nguyên mọi thứ khác",
size="1536x1024",
quality="high",
)
open("dashboard-v2.png", "wb").write(base64.b64decode(edit.data[0].b64_json))
print(edit.usage.input_tokens, "input tokens (includes the reference image)")
Bỏ mask và mô hình sẽ tự quyết định thay đổi gì chỉ từ lời nhắc. Ảnh tham chiếu được tính phí dưới dạng token đầu vào hình ảnh với 8 đô la cho 1 triệu; OpenAI không công bố số lượng token đầu vào cho mỗi hình ảnh, vì vậy hãy đọc usage.input_tokens.
Node và TypeScript: ghi b64_json vào đĩa
import fs from "node:fs/promises";
import OpenAI from "openai";
const client = new OpenAI();
const res = await client.images.generate({
model: "gpt-image-2.5-flare",
prompt: "Ảnh chính cho tài liệu API: các thẻ JSON nổi trên nền gradient màu xanh ngọc, không chữ",
size: "1536x1024",
quality: "medium",
output_format: "jpeg",
output_compression: 80,
});
const b64 = res.data?.[0]?.b64_json;
if (!b64) throw new Error("no image returned");
await fs.writeFile("hero.jpg", Buffer.from(b64, "base64"));
Ghim gpt-image-2.5-flare-2026-09-08 trong môi trường sản xuất để giữ ổn định đầu ra khi tên gọi chung thay đổi.
API Phản hồi: tạo hình ảnh như một công cụ
Ở đây, một mô hình chính đọc lời nhắc của bạn, sửa đổi nó và gọi công cụ image_generation. Bạn chọn mô hình hình ảnh bằng cách đặt model bên trong định nghĩa công cụ; model cấp cao nhất phải là một mô hình chính, và tài liệu công cụ của OpenAI sử dụng gpt-6-astra. Hướng dẫn API Phản hồi của chúng tôi bao gồm cấu trúc yêu cầu. Trường action nhận auto (mặc định), generate, hoặc edit; đặt edit khi bạn truyền ảnh tham chiếu và muốn nó được sửa đổi, không phải diễn giải lại.
import base64
with open("product.png", "rb") as f:
ref = base64.b64encode(f.read()).decode()
first = client.responses.create(
model="gpt-6-astra",
input=[{"role": "user", "content": [
{"type": "input_text", "text": "Đặt chai này trên một bề mặt đá cẩm thạch trắng với ánh sáng ban ngày dịu nhẹ"},
{"type": "input_image", "image_url": f"data:image/png;base64,{ref}"},
]}],
tools=[{"type": "image_generation", "model": "gpt-image-2.5-sunburst", "action": "edit"}],
)
calls = [o for o in first.output if o.type == "image_generation_call"]
open("bottle-marble.png", "wb").write(base64.b64decode(calls[0].result))
second = client.responses.create(
model="gpt-6-astra",
previous_response_id=first.id,
input="Cảnh tương tự, nhưng thêm một chai thứ hai phía sau, hơi mờ",
tools=[{"type": "image_generation", "model": "gpt-image-2.5-sunburst", "action": "edit"}],
)
Lượt theo dõi previous_response_id giữ hình ảnh đầu tiên trong ngữ cảnh, vì vậy “cảnh tương tự” được giải quyết mà không cần tải lại tệp. Token của mô hình chính được tính phí thêm vào token hình ảnh, và việc viết lại lời nhắc có nghĩa là bạn không thể tái tạo đầu ra chỉ từ văn bản lời nhắc.
Truyền phát ảnh một phần
Cả hai API đều chấp nhận partial_images (0 đến 3). Mỗi ảnh một phần tốn thêm 100 token đầu ra, vì vậy ba ảnh sẽ thêm 300 token, tương đương 0,009 đô la mỗi hình ảnh. Điều này đáng giá cho giao diện người dùng hiển thị tiến độ; nhưng lãng phí trong một công việc theo lô.
stream = client.images.generate(
model="gpt-image-2.5-flare",
prompt="Minh họa isometric về một cổng API định tuyến các yêu cầu đến ba dịch vụ",
size="1024x1024",
quality="medium",
stream=True,
partial_images=2,
)
for event in stream:
if event.type.endswith("partial_image"):
open(f"gateway-partial-{event.partial_image_index}.png", "wb").write(
base64.b64decode(event.b64_json))
elif event.type.endswith("completed"):
open("gateway.png", "wb").write(base64.b64decode(event.b64_json))
Các chuỗi loại sự kiện chính xác nằm trong hướng dẫn tạo hình ảnh; kiểm tra hậu tố giúp vòng lặp hoạt động trên cả hai biến thể API. Để kiểm tra các sự kiện được truyền phát bên ngoài mã, hãy xem hướng dẫn của chúng tôi về kiểm tra phản hồi SSE từ các API AI.
Đọc mức sử dụng và chuyển token thành đô la
Cảnh báo riêng của OpenAI: “Tỷ lệ token bằng nhau không có nghĩa là chi phí mỗi hình ảnh bằng nhau: mức tiêu thụ token có thể khác nhau tùy theo mô hình và cài đặt chất lượng.” Công cụ tính toán trong hướng dẫn tạo hình ảnh đưa ra các ước tính này chỉ cho token đầu ra hình ảnh, với mức 30 đô la cho 1 triệu trên trang giá:
| Chất lượng | 1024x1024 | 1536x1024 |
|---|---|---|
low |
196 token, 0,0059 đô la | 158 token, 0,0047 đô la |
medium |
439 token, 0,0132 đô la | 343 token, 0,0103 đô la |
high |
1.756 token, 0,0527 đô la | 1.372 token, 0,0412 đô la |
xhigh |
3.122 token, 0,0937 đô la | 2.459 token, 0,0738 đô la |
max |
7.024 token, 0,2107 đô la | 5.488 token, 0,1646 đô la |
Lưu ý việc đổi tên. high trên 2.5 sử dụng 1.756 token, ngân sách medium cũ trên gpt-image-2; max sử dụng 7.024 token, ngân sách high cũ. Giữ quality: "high" trong quá trình di chuyển và mỗi hình ảnh sẽ rẻ hơn khoảng 4 lần với ngân sách medium cũ; đối với ngân sách high cũ, hãy chuyển sang max. So sánh Flare vs Sunburst vs gpt-image-2 của chúng tôi thực hiện tính toán chi phí hàng tháng đầy đủ.
Các con số của công cụ tính toán là ước tính. Chi phí thực tế đến từ phản hồi:
OUTPUT_RATE = 30 / 1_000_000 # đô la mỗi token đầu ra hình ảnh
usd = gen.usage.output_tokens * OUTPUT_RATE
print(f"{gen.usage.output_tokens} tokens = ${usd:.4f}")
Ghi lại theo mỗi yêu cầu; theo OpenAI, kích thước lớn hơn không vuông có thể tạo ra ít token hơn so với kích thước vuông nhỏ hơn. Một câu hỏi còn bỏ ngỏ: tab Batch trên trang giá chỉ liệt kê gpt-image-2, vì vậy hãy coi hỗ trợ Batch API cho 2.5 là chưa được xác nhận.
Lỗi, giới hạn tốc độ và thời gian chờ
- Giới hạn tốc độ 429. Hãy thực hiện trì hoãn với sự dao động (jitter) và tuân thủ
Retry-After. Các trang mô hình 2.5 không công bố giới hạn theo cấp. Để tham khảo,gpt-image-2chạy Bậc 1 ở 5 hình ảnh mỗi phút và 100 nghìn TPM (triệu token mỗi phút), tăng lên Bậc 5 ở 250 IPM (hình ảnh mỗi phút) và 8 triệu TPM. insufficient_quota. Không đủ tín dụng hoặc vẫn ở gói miễn phí. Hãy thêm thanh toán; đừng thử lại.- Từ chối kiểm duyệt. Lời nhắc hoặc hình ảnh tham chiếu đã vi phạm bộ lọc. Hãy viết lại thay vì thử lại;
moderation: "low"nới lỏng ngưỡng. - Thời gian chờ. OpenAI tài liệu hóa rằng “Các lời nhắc phức tạp có thể mất tới 2 phút để xử lý”. Đặt thời gian chờ của client cao hơn mức đó; Sunburst được thiết kế để chạy lâu hơn Flare.
Kiểm tra Flare và Sunburst cạnh nhau trong Apidog
Việc lặp lại lời nhắc hình ảnh trên terminal rất chậm vì bạn không thể xem đầu ra, và một giá trị quality sai sẽ tốn tiền thật cho mỗi lần gửi. Apidog là một client API và nền tảng kiểm thử: nó gửi các cuộc gọi và kiểm tra phản hồi; máy chủ của OpenAI thực hiện việc hiển thị.
- Lưu khóa một lần. Thêm
OPENAI_API_KEYlàm biến môi trường và tham chiếu nó dưới dạngBearer {{OPENAI_API_KEY}}trong tiêu đề Authorization; khóa không bao giờ được lưu trong yêu cầu đã lưu. - Hai môi trường, một yêu cầu. Tạo các môi trường có tên
flarevàsunburst, mỗi môi trường có một biếnMODEL, và đặt"model": "{{MODEL}}"trong nội dung. Chuyển đổi, gửi lại và so sánh hình ảnh cùngusagecạnh nhau. Đối với các chỉnh sửa, sử dụng nội dung form-data vớiimagevàmasklàm trường tệp. - Giải mã
b64_jsontrong bộ xử lý hậu kỳ. Một đoạn script ngắn kéodata[0].b64_json, giải mã nó và lưu tệp, để mỗi lần gửi sẽ tạo ra một hình ảnh có thể xem được bên cạnh JSON thô. - Xác nhận chi phí, sau đó lên lịch. Xác nhận rằng
usage.output_tokensnằm trong ngân sách, ví dụ 2.000 cho một lần hiển thịhigh1536x1024, và chạy yêu cầu dưới dạng kiểm thử hồi quy theo thời gian. Nếu ai đó nâng cấp chất lượng lênmaxhoặc một phiên bản chụp nhanh làm thay đổi số lượng token, kiểm thử sẽ thất bại trước khi hóa đơn được lập.
Tải xuống Apidog, trỏ nó đến khóa OpenAI của bạn, và bạn sẽ có một thư viện lời nhắc chia sẻ với các rào cản chi phí.
Các câu hỏi thường gặp
Tôi có cần thay đổi mã gpt-image-2 của mình để sử dụng 2.5 không? Đổi ID mô hình và kiểm tra lại quality. Các điểm cuối, xác thực và cấu trúc phản hồi không thay đổi, nhưng high giờ đây tương ứng với ngân sách token nhỏ hơn. Hướng dẫn API gpt-image-2 vẫn bao gồm mô hình cũ hơn.
Flare hay Sunburst cho API? Bắt đầu với Flare. OpenAI định vị nó là mặc định với “độ trễ thấp hơn 50%” so với gpt-image-2 ở cùng mức giá theo token. Chuyển sang Sunburst khi độ chính xác chỉnh sửa quan trọng hơn tốc độ, chẳng hạn như hình ảnh sản phẩm được xây dựng từ ảnh tham chiếu. Cả hai đều có cùng số lượng token trong công cụ tính toán, vì vậy sự đánh đổi là thời gian, không phải tiền bạc.
Tôi có thể sử dụng các mô hình này trong Chat Completions không? Không. Tạo hình ảnh nằm trên API Hình ảnh và công cụ image_generation của API Phản hồi. Chat Completions không cung cấp nó.
Có cách nào miễn phí để thử 2.5 qua API không? Không có gói API miễn phí vĩnh viễn, và các điểm cuối hình ảnh yêu cầu Bậc 1. Con đường thực tế rẻ nhất là quality: "low" với 196 token, khoảng 0,006 đô la cho mỗi hình ảnh 1024x1024. Ứng dụng người tiêu dùng là một vấn đề khác; xem cách sử dụng ChatGPT Images 2.5 miễn phí.
Tiếp theo nên làm gì
Bắt đầu với lệnh gọi curl, xác nhận usage.output_tokens so với bảng tính toán, sau đó chuyển yêu cầu vào một client nơi bạn có thể xem hình ảnh. Bài viết của Simon Willison cho thấy Sunburst giữ nguyên biểu đồ trong khi thêm một đối tượng; hãy kiểm tra hành vi chỉnh sửa đó trên ảnh tham chiếu của riêng bạn trước khi cam kết.
