그림 — /v1/images

만들기와 고치기. 원본을 보내면 결과가 원본에 가까워집니다.

만들기는 /v1/images/generations, 이미 있는 그림을 고치는 건 /v1/images/edits 예요. 고칠 땐 원본 파일을 같이 보내야 해요 — 안 보내면 매번 새로 그려서 화풍이 통째로 바뀌어요.

있는 그림 고치기
curl https://schoolorder.kr/v1/images/edits \
  -H "Authorization: Bearer $SCHOOLORDER_API_KEY" \
  -F model=gpt-image-1-mini \
  -F image=@./before.png \
  -F prompt="칠판 글씨를 '2학기 시간표'로 바꿔줘"

요청 파라미터#

만들기 — POST /v1/images/generations (JSON)

파라미터받는 값저희가 하는 일
model필수그림 모델 id글 모델을 넣으시면 400 으로 /v1/chat/completions 로 가시라고 알려드려요.
prompt필수문자열손대지 않고 벤더에 닿아요. 값은 부르기 전에 한 장치를 미리 잡았다가 끝나고 실제 사용량으로 정산해요.
size1024x1024 등벤더에 그대로 넘겨요. 다만 xAI 그림 문은 size 를 아예 안 받아서(실측 400) 그쪽 모델엔 안 실어요.
n정수지금은 한 번에 한 장만 그려드려요. 여러 장은 값을 미리 잡는 규칙이 달라져서 아직 안 열었어요.

고치기 — POST /v1/images/edits (multipart/form-data)

파라미터받는 값저희가 하는 일
image필수이미지 파일25MB 까지예요. 넘으면 벤더가 아니라 저희가 먼저 413 으로 알려드려요.
prompt필수문자열손대지 않고 벤더에 닿아요. 값은 부르기 전에 한 장치를 미리 잡았다가 끝나고 실제 사용량으로 정산해요.
model · size · n만들기와 같아요만들기와 같은 규칙이에요 — 한 번에 한 장, xAI 는 size 를 안 받아요. multipart 라 값은 파일이 아니라 폼 필드로 넣어주세요.
mask아직 안 받아요. 보내시면 무시하지 않고 400 으로 말씀드려요 — 조용히 무시하면 「이 부분만 고쳐졌겠지」로 읽히거든요.

응답#

OpenAI 그림 응답 그대로예요. 저희는 만들어질 때까지 기다렸다가 돌려드리니 따로 상태를 물어보실 필요가 없어요 — 대신 한 호출을 2분까지 기다려요.

응답 예시 (줄임)
{
  "created": 1788000000,
  "data": [
    { "b64_json": "iVBORw0KGgoAAAANSUhEUg..." }
  ]
}

값은 어떻게 매겨지나요#

그림은 부르기 전에 토큰 수를 알 수 없어요. 그래서 저희가 한 장치 금액을 먼저 잡아뒀다가, 벤더가 알려준 실제 사용량으로 끝나고 정산해요. 표의 「한 장 예약」이 그 먼저 잡는 금액이고, 실제로 그보다 적게 나오면 남는 만큼 그대로 돌아와요. 실패하면 예약이 통째로 풀려서 한 푼도 안 나가요.

이 문이 받는 모델#

그림 — 만들기와 고치기

POST /v1/images/generations

OpenAI

model입력 / 1M출력 / 1M한 장 예약
gpt-image-2GPT Image 2$5$30$0.28
gpt-image-1.5GPT Image 1.5$5$32$0.29
gpt-image-1GPT Image 1$5$40$0.36
gpt-image-1-miniGPT Image 1 mini$2$8$0.075

xAI

model입력 / 1M출력 / 1M한 장 예약
grok-imagine-imageGrok Imagine$0$0$0.02
grok-imagine-image-2.0Grok Imagine 2.0$0$0$0.06
grok-imagine-image-qualityGrok Imagine Quality$0$0$0.05

그림은 부르기 전에 토큰 수를 알 수 없어서 「한 장 예약」 금액을 먼저 잡아 두고, 답이 오면 벤더가 돌려준 실제 토큰으로 정산해요. 남은 금액은 바로 풀려요.

이 문서를 AI 에게 넘기시려면 마크다운 원문을 쓰세요 — 주소 끝에 .md 를 붙이면 나와요.