GPT Image 2
텍스트와 최대 16장의 참조 이미지로 1K, 2K, 4K 또는 정확한 픽셀 크기의 이미지를 생성하거나 편집합니다.
- 비동기 방식입니다. 생성 요청은 곧바로 작업 ID를 반환하며, 작업이 성공하면 이미지가 도착합니다.
- 작업 하나에 이미지 한 장입니다. 여러 장이 필요하면 작업을 여러 개 만드세요.
- 텍스트로 이미지를 만들거나, 공개 HTTPS 링크로 전달한 최대 16장의 참조 이미지를 편집·합성합니다.
resolution과aspect_ratio로 프레임을 정하거나,1536x1024같은 정확한size하나로 정합니다. 두 가지를 함께 쓸 수는 없습니다.- 크기 등급(1K, 2K, 4K)별 이미지당 가격이며, 실패한 작업은 비용이 들지 않습니다.
API Explorer에서 이 모델을 엽니다. BeatAPI API 키를 입력해 작업을 만드세요. 실제 호출이며 본인 잔액에서 과금됩니다.
모델 ID
세 모델 모두 이 엔드포인트를 사용하며 같은 필드를 받습니다. 아래 값은 게이트웨이 계약에서 그대로 가져왔습니다.
엔드포인트와 인증
POST https://api.beatapi.io/v1/images/tasks
Authorization
string
필수
BeatAPI API 키를 Bearer <BEATAPI_API_KEY>로 보내세요. 키는 대시보드에서 만듭니다. 키는 서버에 보관하고, 브라우저나 모바일 앱에 포함하지 마세요.
본문은 Content-Type: application/json과 함께 JSON으로 보냅니다. Idempotency-Key는 선택 사항입니다. 논리적 요청마다 고유한 값(최대 255자)을 보내고, 완전히 같은 본문을 재시도할 때만 다시 사용하세요. 24시간 안에 같은 키와 본문으로 재시도하면 첫 응답을 Idempotent-Replayed: true와 함께 다시 반환하고, 같은 키에 다른 본문을 보내면 409 idempotency_conflict를 반환합니다. 2xx 이외의 응답은 저장되지 않으므로 400이나 402 이후의 재시도는 다시 실행됩니다.
요청 처리 방식
작업 만들기
아래 파라미터를 엔드포인트로 POST하세요. 201은 작업이 접수되었고 가격만큼 잔액이 보류되었다는 뜻이며, 작업은 백그라운드에서 실행됩니다. data.id를 저장하세요.
완료 기다리기
status가 succeeded 또는 failed가 될 때까지 GET /v1/tasks/{task_id}를 호출하고, 호출 사이에 data.poll_after_seconds만큼 기다리세요(이미지 5초, 영상 8초). 또는 task.succeeded와 task.failed에 대한 웹훅을 등록하세요. 처리 시간 초과로 중단된 작업은 이벤트를 보내지 않으므로 폴링은 대비책으로 유지하세요.
입력 모드
요청 파라미터
model
string
필수
실행할 모델입니다.
값: gpt-image-2
값이 잘못된 경우
- 누락:
"model" is required - 알 수 없는 모델 ID:
"model" gpt-image-9 is not catalogued - 이 엔드포인트로 영상 모델을 보낸 경우:
"model" seedance-2.5 is served by POST /v1/videos/tasks, not this endpoint
prompt
string
필수
그릴 내용 또는 참조 이미지에서 바꿀 내용입니다. 피사체, 스타일, 조명, 구도, 이미지에 꼭 들어가야 하는 텍스트를 평이한 말로 적는 것이 가장 좋습니다.
길이: 1–5000자
- 길이는 문자 수로 계산합니다(한중일 문자 하나는 1자).
images를 보낼 때는 각 이미지의 역할을 적으세요. 예: “첫 번째 이미지는 제품, 두 번째 이미지는 배경으로 사용”.
값이 잘못된 경우
- 누락:
"prompt" is required - 비어 있거나 한도보다 긴 경우:
"prompt" has an unsupported length - 문자열이 아닌 경우:
"prompt" must be a string
images
string[]
선택
편집하거나 합성할 참조 이미지입니다. 이 필드를 보내면 요청이 텍스트로 이미지 생성에서 이미지 편집으로 바뀝니다.
항목 수: 1–16
각 항목은 공개 https:// URL입니다. 로컬 파일은 POST /v1/files로 먼저 업로드한 뒤 반환된 data.url을 전달하세요.
- 각 링크는 공개 HTTPS로 이미지 파일 자체(PNG, JPEG, WebP, 최대 50 MB)를 반환해야 합니다. 게이트웨이는 작업을 만들기 전에 모든 링크의 처음 몇 바이트를 내려받아, 파일 이름이나
Content-Type이 아니라 그 바이트로 형식을 판별합니다. - 웹 페이지, 로그인이 필요한 페이지, 만료된 서명 URL, 핫링크 방지 호스트로 연결되는 링크는 이미지를 반환하지 않으므로 거부됩니다.
- 오류 메시지의 위치는 0부터 시작합니다.
images[0]이 첫 번째 링크입니다.
값이 잘못된 경우
- 최대 개수를 넘은 경우:
"images" accepts at most 16 items - 빈 배열:
"images" requires at least 1 item - https:// 링크가 아닌 경우:
"images[0]" must be a public HTTPS URL - 비공개 또는 안전하지 않은 주소:
"images[0]" must be a publicly reachable HTTPS image URL - 호스트가 4xx 오류로 응답한 경우:
"images[0]" could not be downloaded: the URL returned HTTP 404 - 링크가 PNG, JPEG, WebP 이외의 형식을 반환한 경우:
"images[0]" is not a PNG, JPEG or WebP image: the URL returned text/html - 50 MB보다 큰 경우:
"images[2]" is 63.4 MB; images must be 50 MB or smaller
예시
aspect_ratio
string
선택기본값: auto
가로:세로로 나타낸 이미지 모양입니다. resolution과 함께 보내거나, 둘 다 생략하고 size를 보내세요.
허용 값: auto, 1:1, 3:2, 2:3, 4:3, 3:4, 5:4, 4:5, 16:9, 9:16, 2:1, 1:2, 3:1, 1:3, 21:9, 9:21
기본값: auto
- 기본값이
auto이므로 이 필드를 생략한 요청도 정사각형으로 렌더링됩니다. - 파노라마 비율
2:1,1:2,3:1,1:3,21:9,9:21도 허용됩니다. 가장 넓거나 긴 프레임은 3:1입니다. size와 함께 사용할 수 없습니다.
auto는 ‘참조 이미지를 따름’이 아닙니다. images가 있든 없든 선택한 resolution에서 정사각형 프레임을 요청합니다. 편집 결과를 다른 모양으로 바꾸려면 비율을 지정하거나 size를 보내세요.
값이 잘못된 경우
- 목록에 없는 값:
"aspect_ratio" must be one of: [auto 1:1 3:2 2:3 4:3 3:4 5:4 4:5 16:9 9:16 2:1 1:2 3:1 1:3 21:9 9:21] size와 함께 보낸 경우:"size" already fixes the output; do not send "aspect_ratio" with it
resolution
string
선택기본값: 1K
이미지 크기 등급입니다. 등급이 높을수록 이미지가 커지고 비용도 늘어납니다. 정확한 픽셀 크기는 aspect_ratio에 따라 달라지며 모델이 정합니다.
허용 값: 1K, 2K, 4K
기본값: 1K
- 대문자 K를 사용하세요.
2k는 거부됩니다. - 이 페이지는 등급별 정확한 픽셀 크기를 보장하지 않습니다. 정확한 프레임이 필요하면
size를 보내세요. - 자체 크기를 지정하고 픽셀 수로 과금되는
size와 함께 사용할 수 없습니다.
값이 잘못된 경우
- 목록에 없는 값:
"resolution" must be one of: [1K 2K 4K] size와 함께 보낸 경우:"size" already fixes the output; do not send "resolution" with it
size
string
선택
정확한 출력 프레임을 픽셀 단위의 WIDTHxHEIGHT로 지정합니다(예: 1536x1024). resolution과 aspect_ratio를 대신합니다.
- 가로와 세로 모두 16의 배수이면서 16~3840 px여야 합니다.
- 전체 픽셀 수는 655,360~8,294,400이어야 하며, 긴 변은 짧은 변의 3배를 넘을 수 없습니다.
- 구분자는
x,X,×중 하나를 사용할 수 있으며, 앞뒤 공백은 무시됩니다. - 가격 등급은 픽셀 수에 따릅니다. 2,097,152픽셀 이하는 1K, 5,898,240픽셀 이하는 2K, 그보다 크면 4K입니다. 예시는 아래 ‘
size과금 방식’ 표에 있습니다. - 기본값이라도
resolution이나aspect_ratio를 함께 보내지 마세요.
size는 보낸 그대로 검사하고 과금하지만, 전달되는 이미지가 정확히 그 픽셀 크기라고 보장하지는 않습니다. 파이프라인이 정확한 크기에 의존한다면 저장된 파일을 확인하세요.
값이 잘못된 경우
- 문자열이 아닌 경우:
"size" must be a string - WIDTHxHEIGHT 형식이 아닌 경우(숫자만 있음,
auto, 쉼표):"size" must be WIDTHxHEIGHT in pixels, for example 1536x1024 - 한 변이 16의 배수가 아닌 경우:
"size" width and height must be multiples of 16 - 한 변이 16 미만 또는 3840 초과인 경우:
"size" edges must be between 16 and 3840 pixels - 픽셀 수가 너무 적거나 많은 경우:
"size" must have between 655,360 and 8,294,400 pixels; 512x512 has 262,144 - 3:1보다 넓거나 긴 경우:
"size" must not be wider or taller than 3:1 resolution과 함께 보낸 경우:"size" already fixes the output; do not send "resolution" with itaspect_ratio와 함께 보낸 경우:"size" already fixes the output; do not send "aspect_ratio" with it
예시
background
string
선택기본값: auto
이미지에 채워진 배경을 둘지, 투명 배경으로 할지 정합니다.
허용 값: auto, opaque, transparent
기본값: auto
auto(기본값)는 모델에 맡깁니다.opaque는 채워진 배경을 요청합니다.transparent는 배경에 색이 없는 이미지를 요청합니다. 결과는 알파 채널이 있는 PNG이며,output.media[].mime_type을 확인하세요.- 이 필드는 가격에 영향을 주지 않습니다.
값이 잘못된 경우
- 목록에 없는 값:
"background" must be one of: [auto opaque transparent]
게이트웨이는 작업을 만들기 전에 다음 조합도 검사합니다.
- size는 WIDTHxHEIGHT 형식이며 resolution과 aspect_ratio를 대신합니다. 두 변 모두 16의 배수이면서 16-3840 px, 전체 655,360-8,294,400픽셀, 최대 3:1
- size는 2,097,152픽셀 이하면 1K, 5,898,240픽셀 이하면 2K, 그보다 크면 4K로 과금됩니다
- gpt-image-2-std는 토큰 단위로 과금되는 공식 버전입니다. quality로 low, medium, high를 받지만 이 모델은 받지 않습니다
입력 미디어 제한
게이트웨이는 작업을 만들기 전에 모든 입력을 읽고, 아래 제한을 벗어난 입력은 해당 입력을 명시한 400 bad_request로 거부합니다. 과금되지 않습니다.
- 참조 이미지: PNG, JPEG, WebP(파일 내용으로 판별), 각 최대 50 MB(10진 메가바이트, 호스트가 크기를 알려 줄 때 검사), 링크 1~16개. GIF, HEIC, SVG는 거부됩니다.
- 참조 이미지 자체의 픽셀 수나 화면비 제한은 검사하지 않습니다.
- 호스트가 제시간에 응답하지 않아도 생성 시점에 링크를 거부하지는 않습니다. 작업이 실행될 때 게이트웨이가 다시 가져오며, 그때도 가져올 수 없으면 작업이 실패하고 환불됩니다.
- 로컬 파일이 있다면
POST /v1/files로 업로드하고 반환된data.url을 전달하세요.
프레임 선택: resolution과 aspect_ratio, 또는 size
이미지의 크기와 모양을 지정하는 방법은 두 가지이며, 서로 함께 쓸 수 없습니다.
- 등급과 비율.
resolution(1K,2K또는4K)을 보내고, 원하는 모양이 있으면aspect_ratio도 보냅니다. 둘 다 생략하면1K와auto, 즉 정사각형 프레임이 됩니다. - 정확한 크기.
size만 보냅니다(예:1536x1024). 픽셀 수로 과금됩니다(아래 표 참고).
size를 resolution 또는 aspect_ratio와 함께 보내면 "size" already fixes the output; do not send "resolution" with it(또는 "aspect_ratio")으로 거부됩니다. 다른 필드가 기본값이어도 마찬가지입니다.
이 모델이 받지 않는 필드
이미지 엔드포인트는 다른 이미지 모델이나 다른 API가 사용하는 필드도 몇 가지 알고 있습니다. 이 모델에서 그런 필드를 보내면 무시하지 않고 거부하므로, 효과 없는 설정에 비용을 내는 일이 없습니다.
quality,seed,output_format,enhance_prompt→field "quality" is not supported by model gpt-image-2(보낸 필드와 호출한 모델 포함). 이 모델들은 결과 형식을 선택할 수 없으며, 출력의mime_type을 확인하세요.n,moderation같은 그 밖의 알 수 없는 필드 →unknown field: n.n은 없습니다. 작업 하나에 이미지 한 장입니다.
size 과금 방식
size는 픽셀 수가 속한 등급으로 가격이 정해집니다. 아래 예시는 규칙을 그대로 따릅니다. 2,097,152픽셀 이하는 1K, 5,898,240픽셀 이하는 2K, 그보다 크면 4K입니다.
요청 예시
텍스트로 이미지 생성
등급과 비율을 지정해 프롬프트로 만드는 2K 가로 이미지입니다.
이미지 한 장 편집
제품은 유지하고 배경만 바꿉니다. auto는 정사각형으로 렌더링하므로 모양을 명시합니다.
여러 이미지 합성
프롬프트에서 각 참조 이미지를 순서로 지칭하세요.
정확한 크기
1536x1024 프레임입니다. size는 단독으로 사용하며 resolution도 aspect_ratio도 보내지 않습니다. 1K로 과금됩니다.
투명 배경
배경이 없는 스티커 스타일 피사체입니다. 결과는 알파 채널이 있는 PNG입니다.
응답
작업 생성(201)
작업 객체입니다. 작업이 성공할 때까지 output는 null입니다. ‘실행 중’으로 표시된 필드는 작업이 끝나면 사라집니다.
완료된 작업
GET /v1/tasks/{task_id}는 HTTP 200과 함께 status: "succeeded", 그리고 data.output에 결과를 반환합니다.
출력 필드
실패한 작업
실패한 작업도 GET /v1/tasks/{task_id}에서는 HTTP 200입니다. 실패 정보는 본문에 있습니다. 보류 금액이 전액 환불되므로 과금되지 않습니다.
전체 예시
작업을 만들고, 서버의 폴링 안내에 따라 기다린 뒤 결과 URL을 출력합니다. 환경 변수에 BEATAPI_API_KEY를 설정하고 requests를 설치하세요.
과금
- 작업 하나에 이미지 한 장이며, 크기 등급별로 가격이 정해집니다. 보낸
resolution, 또는size가 속한 등급(위 표)이 기준입니다.background는 가격에 영향을 주지 않습니다. - 가격은 작업 생성 시 잔액에서, 키에 한도가 있다면 키 한도에서도 보류됩니다. 작업이 생기기 전에 거부된 요청은 비용이 들지 않습니다.
- 성공한 작업은 보류 금액이 그대로 청구됩니다. 실패한 작업은 전액 환불됩니다.
현재 정가이며 가격 페이지와 같습니다. 별도 할인 계약이 있는 계정은 더 적게 지불하며, 실제 청구 금액은 항상 작업의 data.usage에서 확인할 수 있습니다.
자주 발생하는 오류
HTTP 오류 요약
작업이 생성되기 전의 오류는 2xx가 아닌 응답으로 오며 과금되지 않습니다. error.code 또는 error.retryable로 분기하세요. message에 문제가 표시됩니다. 전체 목록과 재시도 정책은 오류에 있습니다.
인증
API 키를 Authorization: Bearer <BEATAPI_API_KEY>로 보내세요.
헤더
본문은 Content-Type: application/json과 함께 JSON으로 보냅니다. Idempotency-Key는 선택 사항입니다. 논리적 요청마다 고유한 값(최대 255자)을 보내고, 완전히 같은 본문을 재시도할 때만 다시 사용하세요. 24시간 안에 같은 키와 본문으로 재시도하면 첫 응답을 Idempotent-Replayed: true와 함께 다시 반환하고, 같은 키에 다른 본문을 보내면 409 idempotency_conflict를 반환합니다. 2xx 이외의 응답은 저장되지 않으므로 400이나 402 이후의 재시도는 다시 실행됩니다.
요청
실행할 모델입니다.
값: gpt-image-2
값이 잘못된 경우
- 누락:
"model" is required - 알 수 없는 모델 ID:
"model" gpt-image-9 is not catalogued - 이 엔드포인트로 영상 모델을 보낸 경우:
"model" seedance-2.5 is served by POST /v1/videos/tasks, not this endpoint
그릴 내용 또는 참조 이미지에서 바꿀 내용입니다. 피사체, 스타일, 조명, 구도, 이미지에 꼭 들어가야 하는 텍스트를 평이한 말로 적는 것이 가장 좋습니다.
길이: 1–5000자
- 길이는 문자 수로 계산합니다(한중일 문자 하나는 1자).
images를 보낼 때는 각 이미지의 역할을 적으세요. 예: “첫 번째 이미지는 제품, 두 번째 이미지는 배경으로 사용”.
값이 잘못된 경우
- 누락:
"prompt" is required - 비어 있거나 한도보다 긴 경우:
"prompt" has an unsupported length - 문자열이 아닌 경우:
"prompt" must be a string
가로:세로로 나타낸 이미지 모양입니다. resolution과 함께 보내거나, 둘 다 생략하고 size를 보내세요.
허용 값: auto, 1:1, 3:2, 2:3, 4:3, 3:4, 5:4, 4:5, 16:9, 9:16, 2:1, 1:2, 3:1, 1:3, 21:9, 9:21
기본값: auto
- 기본값이
auto이므로 이 필드를 생략한 요청도 정사각형으로 렌더링됩니다. - 파노라마 비율
2:1,1:2,3:1,1:3,21:9,9:21도 허용됩니다. 가장 넓거나 긴 프레임은 3:1입니다. size와 함께 사용할 수 없습니다.
참고: auto는 “참조를 따름”이 아닙니다. images 유무와 관계없이 선택한 resolution에서 정사각형 프레임을 요청합니다. 편집 결과를 다른 모양으로 바꾸려면 비율을 지정하거나 size를 보내세요.
값이 잘못된 경우
- 목록에 없는 값:
"aspect_ratio" must be one of: [auto 1:1 3:2 2:3 4:3 3:4 5:4 4:5 16:9 9:16 2:1 1:2 3:1 1:3 21:9 9:21] size와 함께 보낸 경우:"size" already fixes the output; do not send "aspect_ratio" with it
이미지에 채워진 배경을 둘지, 투명 배경으로 할지 정합니다.
허용 값: auto, opaque, transparent
기본값: auto
auto(기본값)는 모델에 맡깁니다.opaque는 채워진 배경을 요청합니다.transparent는 배경에 색이 없는 이미지를 요청합니다. 결과는 알파 채널이 있는 PNG이며,output.media[].mime_type을 확인하세요.- 이 필드는 가격에 영향을 주지 않습니다.
값이 잘못된 경우
- 목록에 없는 값:
"background" must be one of: [auto opaque transparent]
편집하거나 합성할 참조 이미지입니다. 이 필드를 보내면 요청이 텍스트로 이미지 생성에서 이미지 편집으로 바뀝니다.
항목 수: 1–16
각 항목은 공개 https:// URL입니다. 로컬 파일은 POST /v1/files로 먼저 업로드한 뒤 반환된 data.url을 전달하세요.
- 각 링크는 공개 HTTPS로 이미지 파일 자체(PNG, JPEG, WebP, 최대 50 MB)를 반환해야 합니다. 게이트웨이는 작업을 만들기 전에 모든 링크의 처음 몇 바이트를 내려받아, 파일 이름이나
Content-Type이 아니라 그 바이트로 형식을 판별합니다. - 웹 페이지, 로그인이 필요한 페이지, 만료된 서명 URL, 핫링크 방지 호스트로 연결되는 링크는 이미지를 반환하지 않으므로 거부됩니다.
- 오류 메시지의 위치는 0부터 시작합니다.
images[0]이 첫 번째 링크입니다.
값이 잘못된 경우
- 최대 개수를 넘은 경우:
"images" accepts at most 16 items - 빈 배열:
"images" requires at least 1 item - https:// 링크가 아닌 경우:
"images[0]" must be a public HTTPS URL - 비공개 또는 안전하지 않은 주소:
"images[0]" must be a publicly reachable HTTPS image URL - 호스트가 4xx 오류로 응답한 경우:
"images[0]" could not be downloaded: the URL returned HTTP 404 - 링크가 PNG, JPEG, WebP 이외의 형식을 반환한 경우:
"images[0]" is not a PNG, JPEG or WebP image: the URL returned text/html - 50 MB보다 큰 경우:
"images[2]" is 63.4 MB; images must be 50 MB or smaller
예시
"images": [
"https://cdn.beatapi.io/samples/smart-bottle.png",
"https://cdn.beatapi.io/samples/neon-singer.png"
]
이미지 크기 등급입니다. 등급이 높을수록 이미지가 커지고 비용도 늘어납니다. 정확한 픽셀 크기는 aspect_ratio에 따라 달라지며 모델이 정합니다.
허용 값: 1K, 2K, 4K
기본값: 1K
- 대문자 K를 사용하세요.
2k는 거부됩니다. - 이 페이지는 등급별 정확한 픽셀 크기를 보장하지 않습니다. 정확한 프레임이 필요하면
size를 보내세요. - 자체 크기를 지정하고 픽셀 수로 과금되는
size와 함께 사용할 수 없습니다.
값이 잘못된 경우
- 목록에 없는 값:
"resolution" must be one of: [1K 2K 4K] size와 함께 보낸 경우:"size" already fixes the output; do not send "resolution" with it
정확한 출력 프레임을 픽셀 단위의 WIDTHxHEIGHT로 지정합니다(예: 1536x1024). resolution과 aspect_ratio를 대신합니다.
- 가로와 세로 모두 16의 배수이면서 16~3840 px여야 합니다.
- 전체 픽셀 수는 655,360~8,294,400이어야 하며, 긴 변은 짧은 변의 3배를 넘을 수 없습니다.
- 구분자는
x,X,×중 하나를 사용할 수 있으며, 앞뒤 공백은 무시됩니다. - 가격 등급은 픽셀 수에 따릅니다. 2,097,152픽셀 이하는 1K, 5,898,240픽셀 이하는 2K, 그보다 크면 4K입니다. 예시는 아래 ‘
size과금 방식’ 표에 있습니다. - 기본값이라도
resolution이나aspect_ratio를 함께 보내지 마세요.
참고: size는 보낸 그대로 검사하고 과금하지만, 제공되는 이미지가 정확히 그 픽셀 크기라고 보장하지는 않습니다. 파이프라인이 정확한 크기에 의존한다면 저장된 파일을 확인하세요.
값이 잘못된 경우
- 문자열이 아닌 경우:
"size" must be a string - WIDTHxHEIGHT 형식이 아닌 경우(숫자만 있음,
auto, 쉼표):"size" must be WIDTHxHEIGHT in pixels, for example 1536x1024 - 한 변이 16의 배수가 아닌 경우:
"size" width and height must be multiples of 16 - 한 변이 16 미만 또는 3840 초과인 경우:
"size" edges must be between 16 and 3840 pixels - 픽셀 수가 너무 적거나 많은 경우:
"size" must have between 655,360 and 8,294,400 pixels; 512x512 has 262,144 - 3:1보다 넓거나 긴 경우:
"size" must not be wider or taller than 3:1 resolution과 함께 보낸 경우:"size" already fixes the output; do not send "resolution" with itaspect_ratio와 함께 보낸 경우:"size" already fixes the output; do not send "aspect_ratio" with it
예시
"size": "1536x1024"
응답
작업 객체입니다. 작업이 성공할 때까지 output는 null입니다. ‘실행 중’으로 표시된 필드는 작업이 끝나면 사라집니다.

