GPT-Image-2.5 · 텍스트-이미지
curl --request POST \
--url https://api.gravitex.ai/v1/images/generations \
--header 'Authorization: <authorization>' \
--header 'Content-Type: <content-type>'import requests
url = "https://api.gravitex.ai/v1/images/generations"
headers = {
"Authorization": "<authorization>",
"Content-Type": "<content-type>"
}
response = requests.post(url, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': '<content-type>'}
};
fetch('https://api.gravitex.ai/v1/images/generations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.gravitex.ai/v1/images/generations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: <content-type>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.gravitex.ai/v1/images/generations"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "<authorization>")
req.Header.Add("Content-Type", "<content-type>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.gravitex.ai/v1/images/generations")
.header("Authorization", "<authorization>")
.header("Content-Type", "<content-type>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gravitex.ai/v1/images/generations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = '<content-type>'
response = http.request(request)
puts response.read_bodyimage-2.5
GPT-Image-2.5 · 텍스트-이미지
GPT-Image-2.5 Flare / Sunburst · POST /v1/images/generations
POST
/
v1
/
images
/
generations
GPT-Image-2.5 · 텍스트-이미지
curl --request POST \
--url https://api.gravitex.ai/v1/images/generations \
--header 'Authorization: <authorization>' \
--header 'Content-Type: <content-type>'import requests
url = "https://api.gravitex.ai/v1/images/generations"
headers = {
"Authorization": "<authorization>",
"Content-Type": "<content-type>"
}
response = requests.post(url, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': '<content-type>'}
};
fetch('https://api.gravitex.ai/v1/images/generations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.gravitex.ai/v1/images/generations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: <content-type>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.gravitex.ai/v1/images/generations"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "<authorization>")
req.Header.Add("Content-Type", "<content-type>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.gravitex.ai/v1/images/generations")
.header("Authorization", "<authorization>")
.header("Content-Type", "<content-type>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gravitex.ai/v1/images/generations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = '<content-type>'
response = http.request(request)
puts response.read_body소개
GPT-Image-2.5는 빠른 일상 이미지 생성을 위한 Flare와 세부 표현을 위한 Sunburst로 구성됩니다.POST /v1/images/generations로 텍스트에서 포스터, 상품 이미지, 일러스트, 아이콘 및 인포그래픽을 생성합니다.
두 모델은 auto, low, medium, high, xhigh, max 품질과 PNG, JPEG, WebP 출력을 지원합니다. quality, size, background로 출력 품질과 크기 및 배경을 조정하세요. 투명 배경은 PNG 또는 WebP를 사용합니다.
모델 선택
| 모델 ID | 권장 용도 |
|---|---|
gpt-image-2.5-flare | 빠른 반복 작업과 대화형 생성 |
gpt-image-2.5-sunburst | 세부 묘사 및 복잡한 레이아웃 |
인증
string
필수
Bearer $GRAVITEX_API_KEY
string
필수
application/json
요청 매개변수
| 매개변수 | 유형 | 설명 |
|---|---|---|
model | string | 필수: gpt-image-2.5-flare 또는 gpt-image-2.5-sunburst |
prompt | string | 필수 생성 이미지 설명, 최대 32,000자 |
quality | string | auto / low / medium / high / xhigh / max; 기본 auto |
size | string | auto 또는 WxH, 너비와 높이는 16의 배수. 모델 크기와 픽셀 제한 적용 |
n | integer | 1–10 |
background | string | auto / opaque / transparent; 투명 래스터 출력은 png 또는 webp |
output_format | string | png / jpeg / webp; 기본 png |
output_compression | integer | 0–100, 기본 100; JPEG / WebP 전용 |
moderation | string | auto / low; 기본 auto |
safety_identifier | string | 안정적인 해시 사용자 식별자, 최대 128자; user 대체 |
stream | boolean | 기본 false. true이면 단일 JSON 대신 SSE 이벤트를 읽습니다 |
partial_images | integer | 래스터 스트리밍 전용, 0–3, 기본 0. 요청한 미리보기 수보다 적게 반환될 수 있습니다 |
요청 예시
예시는 터미널 환경 변수 GRAVITEX_API_KEY에서 플랫폼 토큰을 읽습니다. 업로드 시 curl -F가 Content-Type과 boundary를 자동 생성하므로 multipart/form-data 헤더를 직접 고정하지 마세요.기본 생성
curl https://api.gravitex.ai/v1/images/generations \
-H "Authorization: Bearer $GRAVITEX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2.5-flare",
"prompt": "A clean botanical poster with precise typography",
"quality": "medium",
"size": "1024x1024"
}'
투명 배경
curl https://api.gravitex.ai/v1/images/generations \
-H "Authorization: Bearer $GRAVITEX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2.5-flare",
"prompt": "A single green botanical icon, isolated on a transparent background",
"quality": "medium",
"size": "1024x1024",
"background": "transparent",
"output_format": "png"
}'
스트리밍
curl --no-buffer https://api.gravitex.ai/v1/images/generations \
-H "Authorization: Bearer $GRAVITEX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2.5-flare",
"prompt": "A simple green botanical illustration",
"quality": "medium",
"size": "1024x1024",
"stream": true,
"partial_images": 1
}'
제한 및 참고 사항
size 기본값은 auto입니다. WxH의 각 변은 16의 배수이며 비율은 1:3–3:1 범위입니다. image-2 가이드는 최대 변 3840px, 총 픽셀 655,360–8,294,400을 명시하고 2.5 API 참조도 모델별 제한을 요구합니다. 특히 GIF를 포함한 2.6 예산은 기존 모델 상한을 그대로 적용하지 말고 확인하세요. 이 페이지는 공식 문서에서 명시한 GPT-Image-2.5 사용법을 다룹니다. 2.6의 complexity, GIF, SVG 설명을 2.5에 그대로 적용하지 않습니다. 공통 API schema에 필드가 있다고 모든 모델과 채널이 지원하는 것은 아닙니다.응답 예시
다음은 비스트리밍 응답 구조 예시입니다. 이미지 데이터와 토큰 수는 실제 생성 결과가 아닙니다. b64_json을 디코딩하여 해당 형식으로 저장하고 Base64 텍스트를 이미지 파일로 직접 저장하지 마세요.{
"created": 1794268800,
"data": [
{
"b64_json": "<BASE64_IMAGE_DATA>"
}
],
"usage": {
"input_tokens": 100,
"output_tokens": 824,
"total_tokens": 924
}
}
응답 및 과금
비스트리밍 예시는 b64_json으로 이미지를 반환합니다. response_format=url로 이미지 링크를 기대하지 마세요. 같은 토큰 단가가 이미지당 같은 비용을 뜻하지 않으므로 실제 usage를 확인하세요. data[].b64_json과 usage를 반환합니다. 이미지는 Base64 디코딩 후 저장하세요. 아래는 OpenAI 표준 요금이며 GravitexAI 견적이 아닙니다. 캐시 요금은 공식 참고 가격입니다. 가이드에 따르면 GPT Image 2 / 2.5 캐시 입력 할인은 Responses 이미지 도구에만 적용되며 직접 Images API 호출(edits 포함)에는 적용되지 않습니다. 플랫폼 결제는 콘솔 기준입니다.| 유형 | USD / 1M tokens |
|---|---|
| 텍스트 입력 | $5.00 |
| 캐시 텍스트 입력 | $1.25 |
| 이미지 입력 | $8.00 |
| 캐시 이미지 입력 | $2.00 |
| 이미지 출력 | $30.00 |
