วิธีใช้ gpt-image-2 API

Ashley Innocent

Ashley Innocent

22 April 2026

วิธีใช้ gpt-image-2 API

Apidog สำหรับองค์กร

ติดตั้งภายในองค์กร

SSO & RBAC

รองรับ SOC 2

จองเดโม

API gpt-image-2 คือปลายทาง (endpoint) การสร้างภาพใหม่ของ OpenAI ซึ่งเปิดตัวพร้อมกับ ChatGPT Images 2.0 เมื่อวันที่ 21 เมษายน 2026 หากคุณเรียกใช้ API แชทหรือการฝังของ OpenAI อยู่แล้ว การเพิ่มความสามารถในการสร้างภาพจะใช้รูปแบบคำขอใหม่เพียงรูปแบบเดียว, คีย์ API ที่มีขอบเขตที่เหมาะสม และใช้เวลาประมาณสิบนาที

คู่มือนี้เป็นเรื่องเกี่ยวกับ API โดยเฉพาะ: การยืนยันตัวตน, พารามิเตอร์คำขอ, ตัวอย่างโค้ดในสามภาษา, โหมดการคิด, การสร้างภาพเป็นชุด, การจัดการการตอบกลับ, รหัสข้อผิดพลาด, ข้อจำกัดอัตรา และเวิร์กโฟลว์การทดสอบที่จะช่วยให้คุณไม่เสียเครดิตไปกับพรอมต์ที่ผิดพลาด สำหรับภาพรวมระดับผลิตภัณฑ์ของสิ่งใหม่ใน ChatGPT Images 2.0 โปรดดูที่ บทวิเคราะห์ ChatGPT Images 2.0 ของเรา

ในตอนท้าย คุณจะมีโค้ดที่ทำงานได้จริง, คอลเลกชัน Apidog ที่นำกลับมาใช้ใหม่ได้สำหรับการวนซ้ำ และภาพที่ชัดเจนว่าพารามิเตอร์แต่ละตัวมีค่าใช้จ่ายเท่าใด

button

ข้อกำหนดเบื้องต้น

ก่อนส่งคำขอแรก คุณต้องมีสี่สิ่งดังนี้:

ตั้งค่าคีย์ในเชลล์ของคุณครั้งเดียว เพื่อให้ทุกตัวอย่างในคู่มือนี้ทำงานได้โดยไม่ต้องแก้ไข:

export OPENAI_API_KEY="sk-proj-..."

ปลายทางและการยืนยันตัวตน

gpt-image-2 ใช้ปลายทางการสร้างภาพเดียวกันกับโมเดลก่อนหน้า:

POST https://api.openai.com/v1/images/generations

การยืนยันตัวตนคือโทเค็นผู้ถือ (bearer token) ในส่วนหัว Authorization ทุกคำขอยังมีเนื้อหา JSON พร้อมด้วย ID โมเดล, พรอมต์ และพารามิเตอร์เอาต์พุต

curl https://api.openai.com/v1/images/generations \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "A sharp product hero image for an API testing platform, dark background",
    "size": "1024x1024",
    "n": 1,
    "quality": "high"
  }'

หากการเรียกสำเร็จ คุณจะได้รับออบเจกต์ JSON ที่มีอาร์เรย์ data ของรูปภาพ หากเกิดข้อผิดพลาด จะส่งกลับข้อผิดพลาดมาตรฐานของ OpenAI พร้อมกับ code และ message ที่อ่านเข้าใจได้สำหรับมนุษย์; ตารางข้อผิดพลาดในคู่มือนี้จะครอบคลุมข้อผิดพลาดทั่วไป

พารามิเตอร์คำขอ

ทุกฟิลด์ในเนื้อหาคำขอจะเปลี่ยนแปลงสิ่งที่คุณจ่ายและสิ่งที่คุณได้รับ นี่คือแผนที่พารามิเตอร์ที่สมบูรณ์สำหรับ gpt-image-2

พารามิเตอร์ ประเภท ค่า หมายเหตุ
model สตริง gpt-image-2 จำเป็น
prompt สตริง สูงสุด 32,000 ตัวอักษร จำเป็น พรอมต์ที่ยาวขึ้นจะใช้โทเค็นอินพุตมากขึ้น
size สตริง 1024x1024, 1024x1536, 1536x1024, 2000x1000, 1000x2000, 2000x667, 667x2000 กำหนดจำนวนโทเค็นเอาต์พุต
quality สตริง standard, high high มีค่าใช้จ่ายประมาณ 2 เท่า แต่รองรับข้อความละเอียดและองค์ประกอบ UI ได้ดี
n จำนวนเต็ม 1–10 คำขอแบบกลุ่มจะใช้สไตล์ร่วมกันทั้งชุด
thinking สตริง off, low, medium, high งบประมาณการคิดก่อนการเรนเดอร์
response_format สตริง url, b64_json URL จะหมดอายุในหนึ่งชั่วโมง
user สตริง อิสระ ใช้สำหรับการตรวจจับการละเมิด; ส่ง ID ผู้ใช้ที่เข้ารหัส
background สตริง auto, transparent, opaque เอาต์พุตแบบโปร่งใสจะส่งเป็น PNG พร้อมอัลฟา
seed จำนวนเต็ม int32 ใดๆ การควบคุมแบบหลวมๆ; seed เดียวกันบวกกับพรอมต์เดียวกันจะได้ผลลัพธ์ที่ใกล้เคียง แต่ไม่เหมือนกันเป๊ะ

พารามิเตอร์สามตัวที่เปลี่ยนแปลงค่าใช้จ่ายมากที่สุดคือ size, quality และ thinking รูปภาพขนาด 2000 พิกเซลคุณภาพ high พร้อม thinking: "high" อาจมีค่าใช้จ่าย 4–5 เท่าของรูปภาพพื้นฐานขนาด 1024x1024 คุณภาพ standard

ตัวอย่าง Python

SDK อย่างเป็นทางการ (openai>=1.50.0) เพิ่มการรองรับแบบเนทีฟสำหรับ gpt-image-2:

import base64
from pathlib import Path
from openai import OpenAI

client = OpenAI()

response = client.images.generate(
    model="gpt-image-2",
    prompt=(
        "A minimalist diagram of an OAuth 2.1 authorization code flow with PKCE. "
        "Five boxes labeled in English: User, Client, Auth Server, Resource Server, Token. "
        "Sharp sans-serif text, off-white background, teal accent arrows."
    ),
    size="1536x1024",
    quality="high",
    n=2,
    thinking="medium",
    response_format="b64_json",
)

out_dir = Path("out")
out_dir.mkdir(exist_ok=True)

for i, image in enumerate(response.data):
    png_bytes = base64.b64decode(image.b64_json)
    (out_dir / f"oauth_{i}.png").write_bytes(png_bytes)

print(f"Generated {len(response.data)} images into {out_dir.resolve()}")

สองสิ่งที่ควรสังเกต:

ตัวอย่าง Node.js / TypeScript

import fs from "node:fs/promises";
import OpenAI from "openai";

const client = new OpenAI();

const response = await client.images.generate({
  model: "gpt-image-2",
  prompt:
    "Dashboard UI mockup for a REST client, sentence-case labels, latency sparkline in the top-right, cool grey palette.",
  size: "1536x1024",
  quality: "high",
  n: 4,
  thinking: "medium",
  response_format: "b64_json",
});

await Promise.all(
  response.data.map(async (image, i) => {
    if (!image.b64_json) return;
    await fs.writeFile(`dash_${i}.png`, Buffer.from(image.b64_json, "base64"));
  }),
);

console.log(`Saved ${response.data.length} images`);

ใช้ SDK อย่างเป็นทางการแทนที่จะใช้ fetch โดยตรง เว้นแต่คุณมีเหตุผลที่ไม่ควรใช้ SDK จัดการการลองใหม่, ส่วนหัว idempotency และการสตรีม และยังติดตามการเปลี่ยนแปลงสคีมาที่สำคัญระหว่างการแก้ไขโมเดล

โหมดการคิด: ควรใช้เมื่อใด

thinking ควบคุมว่าโมเดลจะใช้การประมวลผลมากแค่ไหนในการวางแผนเลย์เอาต์ก่อนการเรนเดอร์ สี่ค่าโดยประมาณ:

กฎที่ใช้งานได้จริง: หากพรอมต์มีตัวเลข, ป้ายกำกับ หรือข้อจำกัดด้านตำแหน่ง ให้เลื่อนขึ้นหนึ่งระดับ หากแค่บอกว่า “ฉากที่อบอุ่นสบาย” ให้ลดลงหนึ่งระดับ

โหมดการคิดจะเพิ่มโทเค็นการคิดเหตุผลลงในบิล นอกเหนือจากโทเค็นเอาต์พุตภาพ หน้าการกำหนดราคาของ OpenAI แสดงอัตราต่อโทเค็นปัจจุบัน; ให้งบประมาณสำหรับ 1.2–2 เท่าของค่าใช้จ่ายภาพพื้นฐานของคุณเมื่อเปิด medium หรือ high

การสร้างภาพเป็นชุด

การตั้งค่า n > 1 จะส่งคืนรูปภาพหลายรูปในการตอบกลับครั้งเดียวที่ใช้การจัดองค์ประกอบและสไตล์ร่วมกัน นี่ไม่ใช่แบบเดียวกับการเรียกปลายทาง n ครั้งพร้อมกัน ซึ่งจะให้รูปภาพสี่รูปที่ไม่เกี่ยวข้องกัน เอาต์พุตแบบกลุ่มมีความสอดคล้องกัน ซึ่งตรงกับวิธีการทำงานของทีมออกแบบ

response = client.images.generate(
    model="gpt-image-2",
    prompt="Four different hero illustrations for an API documentation landing page, shared color palette, shared line weight.",
    size="1536x1024",
    quality="high",
    n=4,
    thinking="low",
)

คุณจ่ายตามรูปภาพ ดังนั้น n=4 จึงมีค่าใช้จ่ายประมาณ 4 เท่าของ n=1 ข้อดีคือความสอดคล้อง ไม่ใช่ปริมาณงาน

รูปแบบการตอบกลับและการจัดเก็บ

สองรูปแบบ, สองกรณีการใช้งาน:

สำหรับการใช้งานจริง ให้ดาวน์โหลด URL และอัปโหลดไปยัง S3, R2 หรือ Cloudflare Images ของคุณเองทันที ห้ามส่ง URL ของ OpenAI ให้ผู้ใช้ปลายทาง เนื่องจากมันจะหมดอายุ

การจัดการข้อผิดพลาดและข้อจำกัดอัตรา

gpt-image-2 ส่งคืนรูปแบบข้อผิดพลาดมาตรฐานของ OpenAI นี่คือข้อผิดพลาดที่คุณจะพบ:

HTTP code สาเหตุ วิธีแก้ไข
400 invalid_request_error ขนาดไม่ถูกต้อง, อัตราส่วนไม่รองรับ, พรอมต์ยาวเกิน 32k ตัวอักษร ตรวจสอบรายการขนาดและตัดพรอมต์ให้สั้นลง
401 invalid_api_key คีย์ขาดหายไปหรือไม่ถูกต้อง ส่งออก OPENAI_API_KEY ใหม่
403 insufficient_quota ไม่มีเครดิต หรืออยู่ใน Free tier เพิ่มการเรียกเก็บเงิน, ตรวจสอบ tier
429 rate_limit_exceeded ส่งคำขอมากเกินไปต่อนาที ถอยกลับพร้อม jitter; ลองใหม่พร้อม Retry-After
429 image_generation_user_error การปฏิเสธนโยบายเนื้อหา เปลี่ยนถ้อยคำของพรอมต์
500 server_error ปัญหาชั่วคราวของ OpenAI ลองใหม่สองครั้งด้วย exponential backoff
503 overloaded การใช้งานสูงสุดทั่วทั้งภูมิภาค รอแล้วลองใหม่

ข้อจำกัดอัตราบน gpt-image-2 เป็นแบบแบ่งตามระดับ (tier-based) ที่ Tier 1 คุณเริ่มต้นที่ประมาณ 50 คำขอต่อนาที; ระดับที่สูงขึ้นจะเพิ่มขึ้น อ่านส่วนหัว x-ratelimit-remaining-requests และ x-ratelimit-remaining-tokens ในทุกการตอบกลับเสมอ และลดความเร็วลงก่อนที่จะชนข้อจำกัด

ข้อผิดพลาดที่สามารถลองใหม่ได้ในการใช้งานจริง:

import time
from openai import OpenAI, RateLimitError, APIStatusError

client = OpenAI()

def generate_with_retry(prompt: str, tries: int = 3):
    delay = 1.0
    for attempt in range(tries):
        try:
            return client.images.generate(
                model="gpt-image-2",
                prompt=prompt,
                size="1024x1024",
                quality="high",
                n=1,
            )
        except RateLimitError:
            time.sleep(delay)
            delay *= 2
        except APIStatusError as e:
            if 500 <= e.status_code < 600 and attempt < tries - 1:
                time.sleep(delay)
                delay *= 2
                continue
            raise
    raise RuntimeError("gpt-image-2 retries exhausted")

อย่าลองใหม่กับข้อผิดพลาด 400, 401 หรือ 429 ที่เกี่ยวกับนโยบายเนื้อหา; ข้อผิดพลาดเหล่านั้นล้มเหลวด้วยเหตุผล และการลองใหม่จะทำให้เสียเครดิตโดยเปล่าประโยชน์

การทดสอบ API ด้วย Apidog

การวนซ้ำพรอมต์การสร้างภาพจากเทอร์มินัลเป็นไปอย่างช้าๆ: คุณไม่สามารถเห็นผลลัพธ์, ไม่สามารถเปรียบเทียบการเปลี่ยนแปลงพารามิเตอร์ และไม่สามารถกำหนดเวอร์ชันพรอมต์ที่ดีได้ ไคลเอนต์ API ที่สร้างขึ้นโดยเฉพาะสามารถแก้ไขปัญหาทั้งสามนี้ได้

Apidog ถือว่าปลายทาง gpt-image-2 เป็นคำขอระดับเฟิร์สคลาส เวิร์กโฟลว์ทั่วไป:

  1. สร้างคำขอใหม่ในคอลเลกชัน OpenAI ของคุณ, วิธีการ POST, URL https://api.openai.com/v1/images/generations
  2. เพิ่ม Authorization: Bearer {{OPENAI_API_KEY}} เป็นส่วนหัว; ตั้งค่า OPENAI_API_KEY ในตัวแปรสภาพแวดล้อมเพื่อไม่ให้มีอยู่ในซอร์สโค้ด
  3. วางเนื้อหา JSON พร้อมพรอมต์ของคุณ; Apidog จะตรวจสอบกับสเปค OpenAPI และแสดงประเภทที่ไม่ตรงกันก่อนที่คุณจะส่ง
  4. กด Send การตอบกลับรูปภาพจะแสดงผลในบรรทัด; บันทึกรูปภาพที่ดี, ติดแท็กรูปภาพที่ไม่ดี, แยกคำขอสำหรับตัวแปรต่างๆ
  5. บันทึกสภาพแวดล้อมสำหรับ thinking: off, thinking: medium และ thinking: high เพื่อเปรียบเทียบพรอมต์เดียวกันในระดับการคิดเหตุผลที่ต่างกัน

คุณสมบัติการเปรียบเทียบคำขอของ Apidog เป็นส่วนที่สำคัญที่สุดที่นี่ คุณปรับแต่งพารามิเตอร์เดียว; คุณเห็นรูปภาพก่อนและหลังเคียงข้างกัน; คุณยืนยันผลลัพธ์ที่ชนะไปยังคลังพรอมต์ที่ทั้งทีมของคุณใช้ร่วมกัน นี่คือเวิร์กโฟลว์ที่เทอร์มินัลไม่สามารถให้คุณได้

หากคุณมาจากไคลเอนต์ HTTP ทั่วไปหรือ Postman workspace ที่เสียหาย ดาวน์โหลด Apidog และเชื่อมต่อกับคีย์ OpenAI ของคุณ การตั้งค่าใช้เวลาน้อยกว่าห้านาที ทีมที่กำลังประเมินทางเลือกอื่นสามารถอ่าน คู่มือการทดสอบ API โดยไม่ต้องใช้ Postman และ ภาพรวมส่วนขยาย Apidog VS Code ของเราได้

ข้อผิดพลาดที่พบบ่อย

ข้อผิดพลาดไม่กี่อย่างที่มักจะทำให้เสียเครดิตและเวลาในสัปดาห์แรกที่ใช้ gpt-image-2

คำถามที่พบบ่อย

gpt-image-2 แตกต่างจาก gpt-image-1 ในระดับ API อย่างไร?ปลายทางเดียวกัน, การยืนยันตัวตนเดียวกัน พารามิเตอร์ใหม่: thinking (off/low/medium/high), ค่า size เพิ่มเติมสูงสุด 2000 พิกเซล และ n สูงสุด 10 พร้อมสไตล์ที่ใช้ร่วมกัน การรวม SDK ที่มีอยู่ยังคงทำงานได้หลังจากเปลี่ยน ID โมเดล; คุณเพียงแค่เพิ่มพารามิเตอร์ใหม่ในส่วนที่ช่วย สำหรับความแตกต่างทั้งหมด ดู ภาพรวม ChatGPT Images 2.0

วิธีที่เร็วที่สุดในการสร้างต้นแบบการรวม gpt-image-2 คืออะไร?สร้างคำขอใน Apidog, บันทึกสภาพแวดล้อมสองแบบ (มาตรฐาน vs การคิด), และวนซ้ำพรอมต์โดยไม่ต้องแตะโค้ด ส่งออกคำขอสุดท้ายเป็น curl หรือโค้ด SDK เมื่อคุณพร้อมที่จะใช้งานจริง

API รองรับการแก้ไขภาพ (image editing) หรือการเติมเต็มภาพ (inpainting) หรือไม่?ปลายทางสำหรับการแก้ไขและการสร้างตัวแปร (variation) ตามรูปแบบเดียวกับรุ่นก่อนหน้าภายใต้ ID โมเดลใหม่ ตรวจสอบ การอ้างอิงโมเดล gpt-image-2 สำหรับสคีมาล่าสุด; พารามิเตอร์สำหรับมาสก์และรูปภาพอินพุตมีเอกสารอยู่ที่นั่น

ฉันสามารถใช้ gpt-image-2 สำหรับผลงานเชิงพาณิชย์ได้หรือไม่?ได้ ภายใต้นโยบายการใช้งานมาตรฐานของ OpenAI คุณเป็นเจ้าของรูปภาพที่สร้างขึ้น; OpenAI ยังคงสงวนสิทธิ์ในการใช้ข้อมูลอินพุตและเอาต์พุตสำหรับการตรวจสอบการละเมิด ตัวละครที่มีเครื่องหมายการค้าและบุคคลสาธารณะที่ระบุชื่อยังคงถูกจำกัดโดยระบบป้องกัน

ค่าใช้จ่ายสำหรับการใช้งานจริงเป็นอย่างไร?โดยประมาณ $0.21 ต่อรูปภาพคุณภาพสูงขนาด 1024x1024 ในโหมดมาตรฐาน 10,000 รูปภาพต่อเดือนจะมีค่าใช้จ่ายประมาณ $2,100 โดยไม่มีการคิด เพิ่ม 20–80% สำหรับโหมดการคิด เปรียบเทียบกับทางเลือกที่โฮสต์เอง เช่น คู่มือ API GLM 5V Turbo และ การรวม Qwen 3.5 Omni ของเรา หากงบประมาณสำคัญกว่าคุณภาพสูงสุด

มีทางเลือกที่ถูกกว่าพร้อมการเรนเดอร์ข้อความที่คล้ายกันหรือไม่?ยังไม่มีในคุณภาพเดียวกันสำหรับข้อความหลายภาษา โมเดลแบบโอเพนซอร์สได้ลดช่องว่างในการจัดองค์ประกอบลง แต่ยังคงล้าหลังในสคริปต์ CJK และ Indic

button

ฝึกการออกแบบ API แบบ Design-first ใน Apidog

ค้นพบวิธีที่ง่ายขึ้นในการสร้างและใช้ API