For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
기본 탐색 메뉴
Theme

이미지 생성

모델이 이미지를 생성하거나 편집하도록 설정하세요.

이미지 생성 도구를 사용하면 텍스트 프롬프트로 이미지를 생성할 수 있습니다. 필요하면 이미지도 함께 입력할 수 있습니다. 이 도구는 gpt-image-2.5-sunburst, gpt-image-2.5-flare, gpt-image-2, gpt-image-1.5, gpt-image-1-mini 등의 GPT Image 모델을 사용하며, 성능을 높이기 위해 텍스트 입력을 자동으로 최적화합니다.

image_generation 도구의 model 값은 정밀한 편집이 필요하면 gpt-image-2.5-sunburst로, 고품질 이미지를 빠르게 생성하려면 gpt-image-2.5-flare로 설정하세요. Responses 요청의 최상위 model 필드에는 이 도구를 지원하는 메인 모델을 지정하세요.

gpt-image-1은 2026년 10월 23일에 서비스가 종료되었습니다. 마이그레이션 방법은 사용 중단 공지를 참고하세요.

이미지 생성에 관한 자세한 내용은 이미지 생성 가이드를 참고하세요.

사용 방법

요청에 image_generation 도구를 포함하면 모델이 프롬프트와 입력 이미지(있는 경우)를 바탕으로 대화 중 언제, 어떤 방식으로 이미지를 생성할지 결정할 수 있습니다.

image_generation_call 도구 호출 결과에는 base64로 인코딩된 이미지가 포함됩니다.

애플리케이션이 개별 최종 사용자에게 서비스를 제공한다면 후속 편집 요청을 포함한 모든 Responses 요청의 최상위 수준에 safety_identifier를 포함하세요. 사용자별로 일관된 값을 사용하되 개인정보를 보호하세요. 이 값은 요청 매개변수이며 image_generation 도구 옵션이 아닙니다. 두 이미지 API에서 이 값을 사용하는 방법은 이미지 안전 식별자를 참고하세요.

이미지 생성
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%)
  • 배경: 투명, 불투명 또는 자동
  • 동작: 이미지 생성 또는 편집을 지정하거나 모델이 자동으로 선택하도록 설정

size, quality, background는 모두 auto 옵션을 지원합니다. 이 옵션을 사용하면 모델이 프롬프트에 가장 적합한 값을 자동으로 선택합니다.

gpt-image-2.5-sunburst와 gpt-image-2.5-flare에서는 quality 값으로 xhigh와 max도 지정할 수 있습니다. 이전 GPT Image 모델은 이 두 값을 지원하지 않습니다. 기본 품질은 기존과 동일하게 auto입니다.

gpt-image-2에서는 size 값을 해상도 제약 조건을 충족하는 범위에서 자유롭게 지정할 수 있습니다. 투명 배경은 프리뷰로 제공됩니다. 투명 배경을 요청하려면 background: "transparent"로 설정하세요. 파일 형식은 png(기본값) 또는 webp를 사용하세요. 투명 배경에는 jpeg가 지원되지 않습니다.

사용 가능한 옵션에 관한 자세한 내용은 이미지 생성 가이드를 참고하세요.

Responses API의 이미지 생성 도구를 지원하는 GPT Image 모델은 새 이미지를 생성할지, 대화에 이미 있는 이미지를 편집할지 선택할 수 있습니다. 선택적 매개변수인 action으로 이 동작을 제어할 수 있습니다. 모델이 생성과 편집 중에서 선택하도록 하려면 action 값을 auto로 유지하세요. 생성이나 편집 중 하나를 지정하려면 각각 generate 또는 edit로 설정하세요. 값을 지정하지 않으면 기본값은 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": "..."
}

프롬프트 작성 팁

프롬프트에 draw나 edit 같은 표현을 사용하면 이미지 생성 도구에서 가장 좋은 결과를 얻을 수 있습니다.

예를 들어 이미지를 합치려면 combine이나 merge라고만 쓰는 대신 “두 번째 이미지의 이 요소를 첫 번째 이미지에 추가해서 첫 번째 이미지를 편집해 줘”처럼 요청할 수 있습니다.

여러 대화 턴에 걸친 편집

이전 응답의 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])

지원 모델

다음은 사용 중단 예정(deprecated) 상태가 아닌 모델 중 Responses API의 이미지 생성 도구를 지원한다고 문서에 명시된 모델입니다. 최상위 model 필드에 해당 모델 ID를 지정하세요. 이용 가능 여부와 액세스 요건은 각 모델의 페이지에서 확인하세요.

모델의 이용 가능 여부와 서비스 종료일은 사용 중단 예정 안내를 참고하세요.