For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
主要導覽

圖像生成

讓模型生成或編輯圖像。

圖像生成工具可讓你透過文字提示詞生成圖像,也可選擇提供圖像輸入。它使用 GPT Image 模型,包括 gpt-image-2.5-sunburstgpt-image-2.5-flaregpt-image-2gpt-image-1.5gpt-image-1gpt-image-1-mini,並會自動最佳化文字輸入以改善生成效果。

image_generation 工具的 model 設為 gpt-image-2.5-sunburst,即可進行精準編輯;設為 gpt-image-2.5-flare,則可快速生成高品質圖像。在 Responses 的頂層 model 欄位中,請使用支援的主系列模型。

如要進一步瞭解圖像生成,請參閱我們的專門文件:圖像生成 指南

使用方式

在請求中加入 image_generation 工具後,模型便能根據你的提示詞和任何提供的圖像輸入,決定在對話中何時生成圖像,以及如何生成。

image_generation_call 工具呼叫的結果會包含一張以 base64 編碼的圖像。

生成圖像
from openai import OpenAI
import base64

client = OpenAI()

response = client.responses.create(
    model="gpt-6-astra",
    input="Generate an image of gray tabby cat hugging an otter with an orange scarf",
    tools=[{"type": "image_generation", "model": "gpt-image-2.5-sunburst"}],
)

# Save the image to a file
image_data = [
    output.result
    for output in response.output
    if output.type == "image_generation_call"
]

if image_data:
    image_base64 = image_data[0]
    with open("otter.png", "wb") as f:
        f.write(base64.b64decode(image_base64))

你可以使用檔案 ID 或 base64 資料來提供輸入圖像

若要強制呼叫圖像生成工具,可以將 tool_choice 參數設為 {"type": "image_generation"}

工具選項

你可以透過圖像生成工具的參數設定下列輸出選項:

  • 尺寸:圖像的長寬尺寸,例如 1024 × 1024 或 1024 × 1536
  • 品質:算繪品質,例如低、中或高
  • 格式:輸出檔案的格式
  • 壓縮:JPEG 和 WebP 格式的壓縮程度(0-100%)
  • 背景:透明、不透明或自動
  • 動作:指定請求要生成圖像、編輯圖像,或自動選擇

sizequalitybackground 都支援 auto 選項,讓模型根據提示詞自動選擇最適合的設定。

對於 gpt-image-2.5-sunburstgpt-image-2.5-flarequality 也接受 xhighmax。較早的 GPT Image 模型不支援這些值。預設品質仍為 auto

gpt-image-2 支援彈性設定 size 值,只要符合其解析度限制即可。透明背景目前以預覽功能提供;設定 background: "transparent" 即可要求使用透明背景。請使用 png(預設值)或 webpjpeg 不支援透明背景。

如需可用選項的詳細資訊,請參閱圖像生成指南

使用 Responses API 的圖像生成工具時,支援的 GPT Image 模型可以選擇生成新圖像,或編輯對話中已有的圖像。選用的 action 參數可控制這項行為:將 action 保持設為 auto,讓模型選擇生成或編輯;也可以設為 generateedit,強制執行對應動作。若未指定,預設值為 auto

修訂後的提示詞

使用圖像生成工具時,主系列模型(例如 gpt-5.5)會自動修訂你的提示詞,以改善生成效果。

你可以在圖像生成呼叫的 revised_prompt 欄位中取得修訂後的提示詞:

{
  "id": "ig_123",
  "type": "image_generation_call",
  "status": "completed",
  "revised_prompt": "A gray tabby cat hugging an otter. The otter is wearing an orange scarf. Both animals are cute and friendly, depicted in a warm, heartwarming style.",
  "result": "..."
}

提示詞撰寫技巧

在提示詞中使用 drawedit 等詞語,能讓圖像生成達到最佳效果。

例如,若要合併圖像,可以不用 combinemerge,改為「編輯第一張圖像,將第二張圖像中的這個元素加入其中。」之類的說法。

多輪編輯

你可以參照先前的回應 ID 或圖像 ID,反覆編輯圖像,藉此在多輪對話中逐步調整圖像。

多輪圖像生成
from openai import OpenAI
import base64

client = OpenAI()

response = client.responses.create(
    model="gpt-6-astra",
    input="Generate an image of gray tabby cat hugging an otter with an orange scarf",
    tools=[{"type": "image_generation", "model": "gpt-image-2.5-sunburst"}],
)

image_data = [
    output.result
    for output in response.output
    if output.type == "image_generation_call"
]

if image_data:
    image_base64 = image_data[0]

    with open("cat_and_otter.png", "wb") as f:
        f.write(base64.b64decode(image_base64))


# Follow up

response_fwup = client.responses.create(
    model="gpt-6-astra",
    previous_response_id=response.id,
    input="Now make it look realistic",
    tools=[{"type": "image_generation", "model": "gpt-image-2.5-sunburst"}],
)

image_data_fwup = [
    output.result
    for output in response_fwup.output
    if output.type == "image_generation_call"
]

if image_data_fwup:
    image_base64 = image_data_fwup[0]
    with open("cat_and_otter_realistic.png", "wb") as f:
        f.write(base64.b64decode(image_base64))

串流

圖像生成工具支援在生成最終結果的過程中,以串流方式傳送部分生成的圖像。這能更快提供視覺回饋,縮短使用者感受到的等待時間。

你可以透過 partial_images 參數,設定部分生成圖像的數量(1-3 張)。

串流傳送圖像
from openai import OpenAI
import base64

client = OpenAI()


def save_base64_image(filename, image_base64):
    image_bytes = base64.b64decode(image_base64)
    with open(filename, "wb") as f:
        f.write(image_bytes)


stream = client.responses.create(
    model="gpt-6-astra",
    input="Draw a gorgeous image of a river made of white owl feathers, snaking its way through a serene winter landscape",
    stream=True,
    tools=[
        {"type": "image_generation", "model": "gpt-image-2.5-sunburst", "partial_images": 2}
    ],
)

for event in stream:
    if event.type == "response.image_generation_call.partial_image":
        idx = event.partial_image_index
        save_base64_image(f"river-partial-{idx}.png", event.partial_image_b64)
    elif event.type == "response.completed":
        image_data = [
            output.result
            for output in event.response.output
            if output.type == "image_generation_call"
        ]

        if image_data:
            save_base64_image("river-final.png", image_data[0])

支援的模型

下列模型支援圖像生成工具:

  • gpt-5.5
  • gpt-5.4-mini
  • gpt-5.4-nano
  • gpt-5.2
  • gpt-5
  • gpt-5-nano
  • o3
  • gpt-4.1
  • gpt-4.1-mini
  • gpt-4.1-nano
  • gpt-4o
  • gpt-4o-mini