API 레퍼런스

이미지: 비동기 작업

POST/v1/images/tasks
GET/v1/images/tasks/{task_id}
GET/v1/images/tasks/{task_id}/content

비동기 이미지 생성 — 목록의 모든 이미지 모델이 사용하는 경로입니다. 제출하면 task_id가 반환됩니다. 상태 엔드포인트를 폴링한 뒤 /content에서 영구 결과 URL을 읽거나 — 웹훅을 등록해 폴링을 건너뛰세요.

#요청 파라미터

  • modelstring필수

    비동기 이미지 모델 ID(예: gpt-image-2). 동기 전용 모델은 이 엔드포인트를 거부합니다.

  • promptstring필수

    그릴 내용.

  • sizestring선택

    화면 비율 프리셋(예: "16:9"). 대부분의 이미지 모델이 이 형식을 사용하며, 정확한 값은 모델 카드에 나와 있습니다. 일부 구형 모델은 WIDTHxHEIGHT도 받습니다.

  • resolutionstring선택

    출력 해상도 구간(예: "1K", "2K", "4K"). 모델 카드에 나와 있을 때 지정할 수 있습니다 — 요금 구간 기준이기도 합니다.

  • qualitystring선택

    제공업체 품질 수준(예: standard / hd) — 요금 구간 기준이기도 합니다.

  • ninteger선택

    이미지 수(이미지 수만큼 과금이 곱해집니다).

  • imagesarray선택

    편집하거나 참고할 이미지로, URL 또는 data URI로 넣습니다. 모델마다 받는 개수는 모델 카드에서 확인하세요.

  • maskstring선택

    첫 번째 참고 이미지의 한 부분만 다시 그립니다. 아래 "이미지 일부만 편집"을 참고하세요. 모델 카드에 mask가 있는 모델만 받으며, mask_url로 써도 같습니다.

  • webhook_urlstring선택

    작업이 최종 상태에 도달하면 호출되는 HTTPS URL — 콜백 규약은 동영상 가이드를 참고하세요.

  • webhook_secretstring선택

    설정하면 전송에 X-Xiaoxiang-Signature: sha256=hex(HMAC-SHA256(body, secret))가 포함됩니다.

파라미터는 모델마다 다릅니다

모델마다 받는 필드와 값은 모델 카드에서 확인하세요. gpt-image-2.5-ext는 size에 비율을 넣고 resolution을 함께 지정합니다. 2560x1088 같은 픽셀 크기는 가장 가까운 비율과 해상도(21:9, 2K)로 바뀝니다. background는 설정할 수 없습니다. "auto"는 무시되고 다른 값은 거부됩니다. 요청당 한 장만 만들며 version은 고를 수 없습니다. 생략하거나 "flare"를 보내세요.

필드 이름은 모델 계열마다 다를 수 있음

작업 상태 페이로드는 업스트림 제공업체가 보고한 내용을 그대로 반영합니다. 실제 응답을 기준으로 삼고, 제공업체와 관계없이 안정적인 task_id, status, /content 엔드포인트에 의존하세요.

#이미지 일부만 편집

images에 원본 이미지를 넣고 mask를 함께 보내면 마스크로 지정한 부분만 다시 그리고 나머지는 그대로 둡니다. 그 부분에 무엇이 들어갈지는 prompt에 쓰세요. 현재 gpt-image-2.5-flare와 gpt-image-2.5-sunburst가 mask를 지원하며, 모델 카드에는 mask 필드로 표시됩니다.

curl https://www.aisplice.store/v1/images/tasks \
  -H "Authorization: Bearer sk-YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2.5-flare",
    "prompt": "Replace the mug with a glass of orange juice; keep everything else",
    "images": ["https://example.com/desk.png"],
    "mask": "https://example.com/desk-mask.png",
    "resolution": "1K"
  }'

마스크 만드는 법

알파 채널이 있는 PNG를 사용합니다. 완전히 투명한 픽셀이 다시 그릴 부분이고 나머지는 유지됩니다. 크기는 첫 번째 참고 이미지의 픽셀 크기와 정확히 같아야 하며(출력 크기가 아님) 4 MB 미만이어야 합니다. 요청당 마스크는 하나이며, 참고 이미지가 여러 장이면 첫 번째 이미지에 적용됩니다. gpt-image-2.5 모델에서는 size를 빼면 결과가 원본 이미지의 비율을 유지합니다.
  • 400 invalid_request참고 이미지 없이 mask를 보냈거나 mask를 받지 않는 모델에 보냈습니다(gpt-image-2.5-ext는 "mask is not supported on Ext"를 반환합니다).

전체 오류 코드 표 →

#관련 오류

  • 404 not_found알 수 없는 경로나 모델 이름, 또는 만료되었거나 다른 계정의 task_id입니다.
  • 401Bearer 토큰이 유효하지 않거나 없습니다. 이 경로에는 error.code가 없으므로 상태 코드로 판단하세요.
  • 402 insufficient_user_quota지갑 잔액이 사전 차감 추정액보다 부족합니다.
  • 429키별 속도 제한입니다. 본문은 비어 있으며 Retry-After만큼 기다리세요. insufficient_user_quota가 포함된 429는 속도 제한이 아니라 일일 지출 한도입니다.
  • 503 model_not_found알 수 없는 모델이거나, 현재 이 모델을 제공하는 정상 채널이 없습니다.

전체 오류 코드 표 →

#요청 예시

# 1. submit
curl https://www.aisplice.store/v1/images/tasks \
  -H "Authorization: Bearer sk-YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "gpt-image-2.5-ext", "prompt": "A red paper crane on a desk", "size": "16:9", "resolution": "1K"}'

# 2. poll every 3s until a terminal status
curl https://www.aisplice.store/v1/images/tasks/$TASK_ID -H "Authorization: Bearer sk-YOUR_KEY"

# 3. fetch persistent result URLs
curl https://www.aisplice.store/v1/images/tasks/$TASK_ID/content -H "Authorization: Bearer sk-YOUR_KEY"

#응답

response.json
// POST /v1/images/tasks
{"task_id": "task_xxx", "status": "queued"}

// GET /v1/images/tasks/{task_id}
{"task_id": "task_xxx", "status": "in_progress", "progress": "60%"}

// GET /v1/images/tasks/{task_id}/content — after completion
{"created": 1720000000, "data": [{"url": "https://…"}]}

아직 해결되지 않았나요?

요청 ID나 오류 메시지를 보내 주시면 확인해 드리겠습니다.