gpt-image-2에 size: "1024x576"을 보냈다가 invalid size 오류를 만났다면, 우선 생성 크기를 1280x720으로 바꾸고 결과를 1024x576으로 축소하세요. 1024×576은 정상적인 16:9 크기지만, 총 픽셀 수가 589,824로 OpenAI가 정한 최소값 655,360보다 작습니다. 화면 비율을 프롬프트에 다시 적어도 이 수치 조건은 달라지지 않습니다.
아래 설명은 2026년 9월 8일 확인한 OpenAI의 직접 API와 gpt-image-2 기준입니다. 유효 여부는 공식 문서와 계산으로 판단했으며, 유료 API 호출을 통한 성공률이나 처리 시간 측정 결과는 아닙니다. 다른 서비스의 API를 사용한다면 마지막의 요청 확인 절차까지 함께 확인하세요.
16:9인데 왜 크기 오류가 날까?
화면 비율이 맞는 것과 생성 요청이 허용되는 것은 별개의 조건입니다. OpenAI의 이미지 출력 설정 문서에 따르면 gpt-image-2의 사용자 지정 크기는 다음 조건을 모두 만족해야 합니다.
- 가로와 세로가 양수이며 각각 16의 배수여야 합니다.
- 긴 변이 3,840픽셀 이하여야 합니다.
- 긴 변을 짧은 변으로 나눈 값이 3 이하여야 합니다.
- 가로×세로가 655,360 이상, 8,294,400 이하여야 합니다.
1024×576은 첫 세 조건을 통과합니다. 1024÷16은 64, 576÷16은 36이고, 긴 변과 짧은 변의 비율도 약 1.78입니다. 하지만 마지막 조건에서 탈락합니다.
text1024 × 576 = 589,824픽셀 최소값 = 655,360픽셀 부족한 양 = 65,536픽셀
따라서 높이를 16의 배수로 반올림하는 식의 수정은 도움이 되지 않습니다. 576은 이미 16의 배수입니다. 가로와 세로를 함께 늘려 총 픽셀 수를 확보해야 16:9를 유지할 수 있습니다.

어떤 크기로 바꾸면 될까?
최종 파일을 1024×576으로 만들 목적이라면 1280×720이 적절한 출발점입니다. 아래 크기는 모두 문서의 조건을 기준으로 계산한 결과입니다.
| 요청할 크기 | 총 픽셀 수 | 화면 비율 | 판단과 용도 |
|---|---|---|---|
1024x576 | 589,824 | 16:9 | 최소 픽셀 수 미달 |
1024x640 | 655,360 | 8:5 | 허용 조건은 충족하지만 원하는 비율과 다름 |
1280x720 | 921,600 | 16:9 | 정확한 16:9 중 가장 작은 허용 크기 |
1536x864 | 1,327,104 | 16:9 | 생성 후 1024×576으로 축소 가능 |
1920x1080 | 2,073,600 | 16:9 | 높이 1080이 16의 배수가 아님 |
2048x1152 | 2,359,296 | 16:9 | 가로와 세로를 절반으로 축소 가능 |
1280×720이 최소인 이유도 계산으로 확인할 수 있습니다. 두 변이 모두 16의 배수인 정확한 16:9 크기는 가로 = 256k, 세로 = 144k 형태로 나타낼 수 있습니다. 여기서 k는 양의 정수입니다. k가 4일 때의 1024×576은 최소 픽셀 수에 못 미치고, 그다음인 k=5의 1280×720부터 조건을 만족합니다. 이 결과가 해당 크기의 비용이나 속도가 가장 좋다는 뜻은 아닙니다.
평소 익숙한 Full HD인 1920×1080도 그대로 넣으면 안 됩니다. 이 경우에는 픽셀 수가 충분해도 1080÷16에 나머지가 생깁니다. 최종 결과가 Full HD여야 한다면 2048×1152로 생성한 뒤 1920×1080으로 줄이는 방법을 사용할 수 있습니다.
요청부터 1024×576 파일 저장까지
핵심은 API에 보내는 size와 저장할 이미지의 크기를 분리하는 것입니다. 1280×720 → 1024×576은 가로와 세로를 모두 80%로 줄이는 변환이므로, 원본이 해당 크기로 나왔다면 자르거나 여백을 넣을 필요가 없습니다.

1. 직접 OpenAI API에 1280×720 요청하기
다음은 OPENAI_API_KEY 환경 변수가 설정되어 있을 때 사용할 요청 예제입니다. 실제로 실행하면 이미지 생성 요청이 발생합니다. 연결과 인증부터 필요하다면 GPT Image 2 API 사용 가이드를 먼저 참고하세요.
bashcurl --fail-with-body https://api.openai.com/v1/images/generations \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-image-2", "prompt": "햇빛이 들어오는 서재의 가로형 일러스트. 책상과 창문이 함께 보이도록 구성해 주세요.", "size": "1280x720", "output_format": "png" }' \ -o response.json
OpenAI의 이미지 생성 가이드는 Images API의 이미지 데이터를 Base64 형식으로 반환한다고 설명합니다. 다음 단계는 response.json에서 그 데이터를 꺼내 실제 파일 크기를 확인합니다. 오류 응답이 저장되었다면 이미지가 없다는 메시지와 함께 멈춥니다.
2. 응답을 읽어 PNG로 축소하기
Python에 Pillow가 없다면 python -m pip install Pillow로 설치합니다. 아래 코드를 save_thumbnail.py로 저장한 뒤 python save_thumbnail.py를 실행하세요. 이미지 생성 API를 추가로 호출하지 않고, 앞 단계에서 받은 데이터만 처리합니다.
pythonimport base64 import io import json from pathlib import Path from PIL import Image response = json.loads(Path("response.json").read_text(encoding="utf-8")) items = response.get("data") or [] if not items or not items[0].get("b64_json"): raise SystemExit("이미지 데이터가 없습니다. response.json의 오류 내용을 확인하세요.") raw = base64.b64decode(items[0]["b64_json"], validate=True) with Image.open(io.BytesIO(raw)) as source: source.load() width, height = source.size print("생성된 이미지 크기:", width, height) if width * 9 != height * 16: raise SystemExit("원본이 16:9가 아닙니다. 실제 요청과 생성 결과를 확인하세요.") if width < 1024 or height < 576: raise SystemExit("원본이 목표 크기보다 작습니다. 더 큰 이미지가 필요합니다.") result = source.resize((1024, 576), Image.Resampling.LANCZOS) result.save("thumbnail-1024x576.png") with Image.open("thumbnail-1024x576.png") as saved: assert saved.size == (1024, 576), saved.size print("저장 완료:", saved.size, saved.format)
파일명에 1024x576을 붙이는 것만으로 이미지 크기가 바뀌지는 않습니다. 마지막 확인은 저장된 PNG를 다시 열어 실제 픽셀 크기를 검사합니다. 웹페이지에서 CSS로 가로폭을 줄이는 것도 화면에 보이는 크기만 바꾸므로, 업로드 규격을 맞춰야 할 때는 파일 자체를 이렇게 변환해야 합니다.
1280×720으로 바꿨는데도 실패한다면
같은 오류가 계속되면 프롬프트를 반복해서 고치기 전에 실제로 전송된 요청을 확인하세요. UI에 선택한 값과 서버가 받은 값이 같아야 원인을 좁힐 수 있습니다.
| 확인할 대상 | 볼 내용 | 다음 행동 |
|---|---|---|
| 요청 주소 | api.openai.com인지 다른 제공자의 주소인지 | 해당 제공자의 크기 규칙과 요청 예제를 확인 |
| 모델 값 | 실제 요청 본문의 model | 다른 모델로 바뀌거나 별칭이 적용되는지 확인 |
| 크기 값 | 실제 요청 본문의 size | 화면의 선택값과 전송된 문자열을 비교 |
| 오류가 난 위치 | 클라이언트 내부 검사인지 서버 응답인지 | 로컬 크기 목록 제한인지 API 거절인지 구분 |
| 응답 내용 | 상태 코드, 오류 메시지, 문제가 된 필드 | 인증·이용 한도 등 다른 오류면 해당 원인부터 해결 |
OpenAI 직접 API에서 size: "1280x720"은 픽셀 치수입니다. 다른 도구가 받는 aspectRatio: "16:9"와는 표현과 역할이 다를 수 있습니다. OpenClaw의 이미지 생성 문서도 size, aspectRatio, resolution을 제공자에 따라 지원 범위가 달라지는 별도 힌트로 설명합니다. 한 서비스의 예제를 다른 API에 그대로 옮기지 말고, 현재 요청 주소가 요구하는 필드를 사용하세요.
크기 입력란에서 1280×720을 선택할 수 없거나 전송 전에 거절된다면, 그 화면만으로 모델이 해당 크기를 지원하지 않는다고 결론 낼 수 없습니다. 클라이언트가 고정된 크기 목록만 허용하는지 확인하고, 직접 OpenAI 연결을 사용하는 경우에는 위 요청 형식과 비교해 보세요. 오류 내용을 공유할 때는 API 키와 Authorization 헤더를 제외하고 주소, 모델, 크기, 오류 메시지를 남기면 됩니다.
이미 다른 비율로 생성한 이미지는 어떻게 처리할까?
1024×640으로 생성한 파일을 1024×576에 맞춰 강제로 늘이거나 줄이면 세로 비율이 눌립니다. 왜곡 없이 맞추려면 자르거나 여백을 넣는 방식 중 하나를 골라야 합니다.
- 이미지로 화면을 꽉 채워야 한다면: 1024×640에서 높이 64픽셀을 잘라냅니다. 가운데 기준이면 위아래 32픽셀씩이지만, 글자나 피사체가 가장자리에 있으면 자르는 위치를 조절해야 합니다.
- 내용 전체가 반드시 보여야 한다면: 16:9 캔버스 안에 원본 비율을 유지해 배치하고 남는 공간을 배경으로 채웁니다.
- 아직 다시 생성할 수 있다면: 처음부터 1280×720 같은 16:9 크기를 요청하면 이 선택을 피할 수 있습니다.
size: "auto" 역시 정확한 최종 파일 치수를 지정하는 방법은 아닙니다. 최종 규격이 1024×576으로 정해진 작업에서는 허용되는 16:9 크기로 생성하고, 결과의 실제 비율을 확인한 다음 파일을 축소하는 과정을 사용하세요.



