GPT Image 2.5 Flare 2026-09-08
GPT Image 2.5 Flare는 설명을 바탕으로 하는 일상적인 이미지 생성을 위한 모델입니다. 사용자 지정 크기, 확장된 품질 수준, 투명 배경을 제공합니다.
모델 소개
이 설명은 모델의 기능을 다룹니다. Ailoot에서 사용할 수 있는 입력, 출력 및 옵션은 아래에 선택한 메서드별로 표시됩니다.
텍스트 설명으로 만드는 일상적인 이미지
GPT Image 2.5 Flare는 이미지를 만드는 OpenAI 모델입니다. 개발사에 따르면 고품질 시각 자료를 일상적으로 빠르게 생성하는 것이 목적입니다. 지시에서 이야기, 스타일, 세부 요소의 배치, 원하는 화면 형태를 설명할 수 있으며 결과는 이미지입니다.
Ailoot의 이 카드는 텍스트 입력의 생성으로 표시되어 있습니다. OpenAI는 원본 이미지, 참고 자료, 수정 작업도 설명합니다. 이런 방식에는 입력 이미지 지원이 필요합니다. 텍스트 호출 방식이 이미 해당 자료를 입력받는다는 뜻은 아닙니다.
초안부터 상세한 이미지까지의 품질
low, medium, high, xhigh, max 수준과 자동 선택 auto를 지원합니다. 품질 설정은 결과를 구성하는 작업량에 영향을 줍니다. 화면 크기와 완성된 파일의 압축과는 별도로 지정합니다.
크기에는 정사각형, 가로형, 세로형, 자동 선택, 사용자 지정 크기가 있습니다. 개발사의 모든 제한을 지키면서 구도에 맞는 비율을 선택할 수 있습니다.
사용자 지정 크기
각 변은 16픽셀의 배수이며 3840픽셀 이하여야 합니다. 긴 변과 짧은 변의 비율은 최대 3:1입니다. 허용 면적은 655 360~8 294 400픽셀입니다. 제한은 함께 적용됩니다. 허용 화면 비율이 면적 제한을 없애지는 않습니다.
2560x1440보다 높은 해상도는 실험적인 것으로 표시되어 있습니다. 큰 화면을 선택할 때에는 구도 자체를 고려해야 합니다. 픽셀이 더 많다고 모든 요소가 오류 없이 배치되는 것은 아닙니다.
결과 파일과 투명도
모델은 PNG, JPEG, WebP를 제공하며 기본 형식은 PNG입니다. JPEG와 WebP에서는 압축을 조절할 수 있습니다. 투명 배경에는 PNG나 WebP가 필요합니다. 개발사는 불투명 배경과 자동 선택도 지원합니다. 투명도는 지정된 바탕 없이 이미지를 이후 구도에 사용할 수 있게 합니다.
개발사의 설정은 모델의 기능을 설명합니다. 실행은 선택한 호출 방식의 설정 지원에 따라 달라집니다. 개별 생성은 새로운 결과를 만드므로 같은 설명이 이미지의 완전한 일치를 보장하지는 않습니다.
완성된 이미지에서 확인할 점
OpenAI에 따르면 복잡한 지시 처리는 최대 2분이 걸릴 수 있습니다. 이는 개발사의 생성에 대한 설명이며 특정 애플리케이션에서 결과를 받을 때까지의 전체 시간을 보장하는 것은 아닙니다.
글자, 대상의 정확한 위치, 이미지 사이의 동일한 외형 유지는 확인해야 합니다. 별도로 지원되는 편집 작업의 마스크는 변경 방향을 정하며 엄격한 경계가 아닙니다. 텍스트 생성에서는 구도를 정확하게 설명하고 파일 자체의 보이는 세부 요소, 가독성, 지정한 이야기와의 일치 여부를 확인하는 것이 유용합니다.
Ailoot · 이미지 POST /v1/images/generations gpt-image-2.5-flare-2026-09-08
gpt-image-2.5-flare-2026-09-08
gpt-image-2.5-flare-2026-09-08시작하기
GPT Image 2.5 Flare는 설명을 바탕으로 하는 일상적인 이미지 생성을 위한 모델입니다. 사용자 지정 크기, 확장된 품질 수준, 투명 배경을 제공합니다.
- 허용 입력
- 텍스트
- 결과
- 이미지
Ailoot에서 사용 가능 · 입력 및 메서드
Ailoot · 이미지 POST /v1/images/generations
- 입력
text- 출력
image- 출력 형식
- 이미지 파일
| 필드 | 유형 | 요건 | 값과 한도 | 기본값 |
|---|---|---|---|---|
필드model | 유형string | 요건필수 | 값과 한도 gpt-image-2.5-flare-2026-09-08 | 기본값— |
필드prompt | 유형string | 요건필수 | 값과 한도 최소 길이: 1 | 기본값— |
필드n | 유형integer | 요건선택 사항 | 값과 한도 최솟값: 1 | 기본값1 |
필드response_format | 유형string | 요건선택 사항 | 값과 한도 url, b64_json | 기본값— |
필드stream | 유형boolean | 요건선택 사항 | 값과 한도 | 기본값false |
필드size | 유형string | 요건선택 사항 | 값과 한도 모델에 따라 다름 | 기본값— |
필드quality | 유형string | 요건선택 사항 | 값과 한도 모델에 따라 다름 | 기본값— |
필드background | 유형string | 요건선택 사항 | 값과 한도 모델에 따라 다름 | 기본값— |
필드output_format | 유형string | 요건선택 사항 | 값과 한도 모델에 따라 다름 | 기본값— |
필드output_compression | 유형integer | 요건선택 사항 | 값과 한도 모델에 따라 다름 | 기본값— |
필드moderation | 유형string | 요건선택 사항 | 값과 한도 모델에 따라 다름 | 기본값— |
필드input_fidelity | 유형string | 요건선택 사항 | 값과 한도 모델에 따라 다름 | 기본값— |
필드style | 유형string | 요건선택 사항 | 값과 한도 모델에 따라 다름 | 기본값— |
필드partial_images | 유형integer | 요건선택 사항 | 값과 한도 모델에 따라 다름 | 기본값— |
입력 자료 조합
텍스트로 이미지 생성 · 필수: prompt
메서드 매개변수와 수명 주기
| 매개변수 | 명세 |
|---|---|
매개변수material_types | 명세text |
매개변수required | 명세model, prompt |
매개변수optional_controls | 명세null |
매개변수content_type | 명세application/json |
수명 주기: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · 실제로 반환된 task_id 또는 미디어 라이브러리 기록
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
메서드 형식과 ID는 정확합니다. 공급자의 기능 지원과 요청 수락은 별개입니다.
요금
Ailoot 메서드 요금
POST /v1/images/generations- 텍스트 입력
- US$0.005 / 1K
- 입력, 이미지
- US$0.008 / 1K tokens
- 출력, 이미지
- US$0.03 / 1K tokens
Ailoot는 요청 전에 예상 금액을 미리 확보합니다. 결과를 받은 뒤 측정된 사용량을 기준으로 최종 요금을 정산합니다. 스트리밍 정산에는 최종 사용량 기록을 사용합니다. 금액 확보와 정산 방식 →
요청 예제
Ailoot · 이미지
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
export AILOOT_API_KEY
: "${AILOOT_PROMPT_FILE:?Set your actual UTF-8 image brief}"
export AILOOT_PROMPT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "gpt-image-2.5-flare-2026-09-08", "prompt": ""}')
f=Path(os.environ["AILOOT_PROMPT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 brief")
p['prompt']=f.read_text(encoding="utf-8")
if not p['prompt'].strip():raise SystemExit("Brief must contain text")
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin
def save_images(items):
if not items: raise SystemExit("No completed images; retain the full response")
for index, item in enumerate(items):
encoded=item.get("b64_json")
uri=item.get("url", "")
if not encoded and uri.startswith("data:image/"):
header, separator, encoded=uri.partition(",")
if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
if encoded:
raw=base64.b64decode(encoded,validate=True)
elif uri:
uri=urljoin("https://api.ailoot.ai",uri)
parsed=urlsplit(uri)
if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
raise SystemExit("Invalid returned image URL")
owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
args=["curl","--fail-with-body","--silent","--show-error",uri]
if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
temporary=Path(f"image-{index}.bin")
subprocess.run(args+["-o",str(temporary)],check=True)
raw=temporary.read_bytes()
temporary.unlink()
else: raise SystemExit("Image has neither bytes nor URL")
if not raw: raise SystemExit("Empty image result")
ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
Path(f"image-{index}.{ext}").write_bytes(raw)
print("Every returned image saved; complete response metadata retained")
save_images(json.loads(Path("result.json").read_text())["data"])
PY_RESULT
from openai import OpenAI
import base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin
def save_images(items):
if not items: raise SystemExit("No completed images; retain the full response")
for index, item in enumerate(items):
encoded=item.get("b64_json")
uri=item.get("url", "")
if not encoded and uri.startswith("data:image/"):
header, separator, encoded=uri.partition(",")
if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
if encoded:
raw=base64.b64decode(encoded,validate=True)
elif uri:
uri=urljoin("https://api.ailoot.ai",uri)
parsed=urlsplit(uri)
if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
raise SystemExit("Invalid returned image URL")
owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
args=["curl","--fail-with-body","--silent","--show-error",uri]
if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
temporary=Path(f"image-{index}.bin")
subprocess.run(args+["-o",str(temporary)],check=True)
raw=temporary.read_bytes()
temporary.unlink()
else: raise SystemExit("Image has neither bytes nor URL")
if not raw: raise SystemExit("Empty image result")
ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
Path(f"image-{index}.{ext}").write_bytes(raw)
print("Every returned image saved; complete response metadata retained")
f=Path(os.environ["AILOOT_PROMPT_FILE"])
if not f.is_file():raise SystemExit("Set your actual UTF-8 image brief file")
request={'model': 'gpt-image-2.5-flare-2026-09-08', 'prompt': ''}
request["prompt"]=f.read_text(encoding="utf-8")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.images.generate(**request)
Path("sdk-result.txt").write_text(str(result),encoding="utf-8")
save_images([{"b64_json":getattr(item,"b64_json",None),"url":getattr(item,"url",None)} for item in result.data])
import OpenAI from "openai";
import { readFileSync, writeFileSync } from "node:fs";
const key=process.env.AILOOT_API_KEY;
if(!key) throw new Error("Set your actual Ailoot API key");
const client=new OpenAI({baseURL:"https://api.ailoot.ai/v1",apiKey:key,maxRetries:0});
const request={"model": "gpt-image-2.5-flare-2026-09-08", "prompt": ""};
if(!process.env.AILOOT_PROMPT_FILE)throw new Error("Set your actual UTF-8 image brief file");
request.prompt=readFileSync(process.env.AILOOT_PROMPT_FILE,"utf8");
const result=await client.images.generate(request);
writeFileSync("sdk-result.json",JSON.stringify(result,null,2));
if(!result.data?.length) throw new Error("No completed images");
for(let index=0;index<result.data.length;index++) {
const item=result.data[index];let encoded=item.b64_json,uri=item.url||"",raw;
if(!encoded && uri.startsWith("data:image/")) {
const comma=uri.indexOf(",");if(comma<0 || !uri.slice(0,comma).includes(";base64")) throw new Error("Unsupported image data URI");
encoded=uri.slice(comma+1);
}
if(encoded) {
if(encoded.length%4!==0 || !/^[A-Za-z0-9+/]*={0,2}$/.test(encoded)) throw new Error("Invalid Base64");
raw=Buffer.from(encoded,"base64");
} else if(uri) {
const u=new URL(uri,"https://api.ailoot.ai");
if(u.protocol!=="https:" || u.username || u.password) throw new Error("Invalid returned URL");
const owned=u.origin==="https://api.ailoot.ai" && u.pathname.startsWith("/v1/media/assets/") && u.pathname.endsWith("/content");
const response=await fetch(u,{headers:owned?{Authorization:"Bearer "+key}:{},redirect:"manual"});
if(!response.ok) throw new Error("Image content download failed: "+response.status);
raw=Buffer.from(await response.arrayBuffer());
} else throw new Error("Image has neither bytes nor URL");
if(!raw.length) throw new Error("Empty image result");
const ext=raw.subarray(0,4).equals(Buffer.from([137,80,78,71]))?"png":raw[0]===255&&raw[1]===216?"jpg":raw.toString("ascii",0,4)==="RIFF"&&raw.toString("ascii",8,12)==="WEBP"?"webp":raw.toString("utf8").trimStart().startsWith("<svg")||raw.toString("utf8").trimStart().startsWith("<?xml")?"svg":"bin";
writeFileSync(`image-${index}.${ext}`,raw);
}
console.log("Every returned image saved; sdk-result.json retains complete metadata");
결과 수신 및 저장
Ailoot · 이미지
반환된 각 이미지를 다운로드하거나 Base64 내용을 저장하세요
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
완료된 결과 모두 보관
완료된 이미지를 모두 저장하세요. 반환된 각 URL에서 가져오거나 Base64 내용을 디코딩하세요.
모든 데이터 항목을 저장하세요. 각 b64_json을 디코딩하거나 반환된 모든 서명된 URL에서 가져오세요. 실제 MIME/바이트에 따라 파일 확장자를 선택하세요.
원래 응답을 확인해야 할 경우
이미지 생성 또는 편집 결과를 확인해야 하는 경우 최초 operation_id/X-Client-Request-ID와 반환된 결과 정보를 보관하세요. 실제 task_id 또는 asset_id 값으로 미디어 라이브러리에서 기존의 소유한 결과를 복구하세요. 생성/편집 요청을 다시 제출하거나 operation_id로 폴링 URL을 구성하지 마세요.
응답 필드
| 필드 | 유형 |
|---|---|
필드created | 유형integer |
필드data[].url | 유형string |
필드data[].b64_json | 유형base64 string |
필드usage | 유형object |
오류와 다음 단계
| 응답 | 조건 | 다음 단계 |
|---|---|---|
응답400 · invalid_request_error | 조건필수 필드, 자료 표현 방식 또는 파라미터 값이 올바르지 않음 | 다음 단계새 생성 요청 전에 표시된 필드를 수정하세요. |
응답server_error | 조건반환된 응답에 작업 또는 결과 확인이 필요하다고 표시되어 있습니다 | 다음 단계최초로 반환된 작업/태스크 ID, 요청 헤더와 응답을 보관하고, 지원되는 조회 방식으로 해당 최초 작업을 계속 조회하세요. 생성 요청을 다시 제출하지 마세요. |
별칭
모델 별칭
Ailoot gpt-image-2.5-flare-2026-09-08
메서드 경로 별칭
위에 표시된 메서드 경로를 사용하세요.
관련 호출용 ID
FAQ · GPT Image 2.5 Flare 2026-09-08
- 어떤 입력과 결과를 사용할 수 있나요?
POST /v1/images/generations·gpt-image-2.5-flare-2026-09-08:text→image- 요청은 어떤 필드를 사용하나요?
POST /v1/images/generations·gpt-image-2.5-flare-2026-09-08:model,prompt,n,response_format,stream- 어떤 제한이 적용되나요?
POST /v1/images/generations·gpt-image-2.5-flare-2026-09-08:n.minimum:1