이미지
이미지 생성 (Create Image)
프롬프트를 기반으로 이미지를 생성합니다.
개요
GET /v1/models?recommended_for=image를 사용하여 현재 이미지 모델을 확인한 다음, 선택한 model을 명시적으로 전송하십시오.
gpt-image-2는 토큰 기반 가격이 책정되는 GPT 이미지 모델입니다. TokenLab은 텍스트 입력, 이미지 입력, 보고된 캐시 입력 및 이미지 출력 토큰에 대해 OpenAI의 공식 사용량 산정 방식을 따르며, 이미지당 고정 요금이 부과되지 않습니다.
gpt-image-2 이미지 생성 시 지원되는 공개 파라미터는 prompt, n, size, quality, response_format, async, background, output_format, output_compression 또는 compression, moderation, user입니다. background는 auto 또는 opaque를 허용하며, transparent는 지원되지 않습니다. size나 quality를 생략하면 TokenLab이 auto를 사용합니다. 사용자 지정 size 값은 아래에 문서화된 유연한 WIDTHxHEIGHT 계약을 따라야 합니다.
input_fidelity는 현재 TokenLab에서 gpt-image-2에 대해 지원하는 필드가 아니므로 생략하십시오. 포함할 경우 400 unsupported_parameter 오류가 반환됩니다.
모델 동작 참고 사항
Google Gemini 이미지 제품군 모델은 동일한 선택자 계약을 공유하지 않습니다:
gemini-3.1-flash-image,gemini-nano-banana-2.1,gemini-3-pro-image,nano-banana-2.1,nano-banana-pro는 공개 텍스트-이미지 변환(text-to-image), 이미지-이미지 변환(image-to-image) 및 이미지 편집(image-edit) 작업에 대해aspect_ratio와resolution(1k,2k,4k)을 지원합니다.nano-banana-2는 텍스트-이미지 변환 및 이미지-이미지 변환 생성 모두에 대해aspect_ratio와resolution(1k,2k,4k)을 지원합니다.gemini-3.1-flash-lite-image및nano-banana-2-lite는1k해상도에서만 텍스트-이미지 변환, 이미지-이미지 변환 및 이미지 편집을 지원합니다.nano-banana는aspect_ratio를 지원하지만 공개resolution선택은 노출하지 않습니다.gemini-3.1-flash-image,gemini-nano-banana-2.1,gemini-3.1-flash-lite-image또는gemini-3-pro-image를 사용한 이미지-이미지 변환의 경우, 이 엔드포인트에서operation: "image-to-image"와 참조 이미지를 사용하십시오. 해당 모델에 대한 이미지 편집 요청은/v1/images/edits로 보내십시오.- Nano Banana 참조 이미지 요청의 경우, 이 엔드포인트(
/v1/images/generations)에서operation: "image-to-image"및image_urls와 함께nano-banana-2,nano-banana-2.1,nano-banana-2-lite또는nano-banana-pro를 사용하십시오.nano-banana-2,nano-banana-2.1,nano-banana-2-lite및nano-banana-pro에 대한 이미지 편집 요청 또한 이 엔드포인트에서operation: "image-edit"을 사용하여 수행합니다. Nano Banana 참조 이미지 요청을/v1/images/edits로 보내지 마십시오. - 이 엔드포인트의 참조 이미지는 JSON
image_url/image_urls또는 멀티파트image파일로 제공할 수 있습니다.images[]및file_id는/v1/images/generations에서 허용되지 않습니다./v1/files참조는images[].file_id를 문서화하는/v1/images/edits모델에 대해서만 생성하십시오.
Google 이미지 제품군의 경우 aspect_ratio를 우선적으로 사용하고, 모델이 명시적으로 지원하는 경우에만 resolution을 전송하십시오.
xAI Grok Imagine 이미지 모델(grok-imagine-image, grok-imagine-image-2.0 및 레거시 grok-imagine-image-pro)은 aspect_ratio와 resolution(1k, 2k)을 지원합니다. grok-imagine-image-pro는 grok-imagine-image-2.0와의 호환성을 위해 유지됩니다.
요청 본문 (Request Body)
동기식 요청 타임아웃: 일부 이미지 요청은 최종 이미지를 인라인으로 반환하며 생성이 완료될 때까지 대기합니다. 고해상도 또는 고품질 요청은 1분 이상 소요될 수 있으므로 HTTP 클라이언트 타임아웃을 최소 120s로 설정하십시오. 생성 응답에 status: "pending", task_id 또는 poll_url이 포함된 경우, 반환된 poll_url을 따르십시오.
사용할 모델입니다(예: gpt-image-2, flux-pro-1.1 또는 nano-banana-pro). 현재 권장 목록은 GET /v1/models?recommended_for=image를 쿼리하십시오.
원하는 이미지에 대한 텍스트 설명입니다.
이미지-이미지 변환을 위한 공개 HTTPS 참조 이미지 URL입니다. Nano Banana 참조 이미지 요청의 경우 operation을 image-to-image로 설정하십시오. nano-banana-pro는 resolution을 포함할 수 있습니다.
공개 HTTPS 참조 이미지 URL입니다. JSON 요청에서 하나 이상의 참조 이미지를 사용할 때 사용하십시오. file_id 및 images[]는 이 엔드포인트에서 지원되지 않습니다.
기본 입력과 참조를 구분하는 모델을 위한 추가 참조 이미지 URL입니다.
이미지-이미지 변환을 위한 멀티파트 참조 이미지 파일입니다. 소스 이미지가 비공개이거나 헤더 보호가 필요한 경우 사용하십시오. 이는 이 엔드포인트에서 허용되지 않는 /v1/files의 file_id와는 다릅니다.
1생성할 이미지 수입니다(1-10, 모델에 따라 다름).
이미지 크기입니다. OpenAI 스타일의 이미지 제품군 및 정확한 픽셀 크기를 허용하는 기타 모델에 사용하십시오.
gpt-image-2의 경우 size는 auto 또는 WIDTHxHEIGHT를 허용합니다. 사용자 지정 치수는 모두 16의 배수여야 하며, 가장 긴 변은 최대 3840px, 긴 변과 짧은 변의 비율은 최대 3:1, 총 픽셀 수는 655,360에서 8,294,400 사이여야 합니다. aspect_ratio와 resolution은 현재 gpt-image-2의 TokenLab 모델 세부 정보에 포함되어 있지 않습니다.
해상도 계층이 있는 Google 이미지 모델(gemini-3.1-flash-image, gemini-nano-banana-2.1, gemini-3-pro-image, gemini-3.1-flash-lite-image, nano-banana-2, nano-banana-2.1 및 nano-banana-pro)의 경우, size는 모델의 크기 표에 있는 출력 크기(예: 1376x768, 1K에서 16:9) 또는 해상도 계층(1K, 2K, 4K)을 허용합니다. TokenLab은 계층을 resolution으로 전송하므로 요청 및 가격은 resolution을 사용할 때와 동일합니다. 모델이 지원하지 않는 계층(예: gemini-3.1-flash-lite-image에서의 2K)이나 resolution과 다른 계층을 사용할 경우, 400 오류와 함께 invalid_image_size_contract 코드 및 모델의 allowed_resolutions가 반환됩니다. 이러한 모델의 경우 aspect_ratio와 resolution을 함께 사용하는 것이 권장됩니다.
모델에 따른 가로세로 비율 선택자입니다.
일반적인 Google 이미지 제품군 값으로는 1:1, 16:9, 9:16, 3:2, 2:3이 있습니다.
모델에 따른 출력 해상도입니다. gemini-3.1-flash-image, gemini-nano-banana-2.1, gemini-3-pro-image, nano-banana-2, nano-banana-2.1 및 nano-banana-pro는 1k, 2k, 4k를 지원하며, Grok Imagine 이미지 모델은 1k와 2k를 지원합니다. 선택한 모델과 작업이 명시적으로 지원하지 않는 한 이 필드를 생략하십시오.
이미지 품질입니다. gpt-image-2와 같은 GPT 이미지 모델은 auto, low, medium 또는 high를 사용합니다. 다른 모델은 다른 값을 사용할 수 있으므로 기본값이 아닌 값을 보내기 전에 모델 세부 정보를 확인하십시오.
이미지 반환 방식입니다: url 또는 b64_json.
- 생략 시: 모델이 이미지 바이트를 반환하면 각 이미지는
data[].b64_json에 포함되며, TokenLab이 저장한 경우data[].url에도 포함됩니다. 모델이 링크를 반환하면 각 이미지는data[].url에 포함됩니다. url: 각 이미지는data[].url에만 포함됩니다.b64_json: 각 이미지는 Base64 데이터로서data[].b64_json에만 포함됩니다.
링크는 TokenLab 미디어 결과 URL입니다. 30일 동안 유효합니다. 데이터 보존을 참조하십시오.
falsegpt-image-2 또는 공식 FLUX/BFL 이미지 모델과 함께 true로 설정하여 작업을 먼저 생성하십시오. 완료된 비동기 이미지 작업은 요청된 response_format과 관계없이 URL을 반환합니다. b64_json이 필요한 경우 동기식 요청을 사용하십시오.
선택적 스타일 선택자입니다. 선택한 모델이 명시적으로 문서화한 경우에만 전송하십시오. 모델 메타데이터에 별도 언급이 없는 한 gpt-image-2에서는 생략하십시오.
최종 사용자를 위한 고유 식별자입니다.
응답 (Response)
인라인 응답 (Inline Response)
생성된 Unix 타임스탬프입니다.
생성된 이미지 배열입니다.
각 객체는 다음을 포함합니다:
url(string): 30일간 유효한 TokenLab 미디어 결과 URL입니다.response_format이b64_json인 경우 존재하지 않습니다.response_format이 생략되었을 때 TokenLab이 이미지를 저장할 수 없었던 경우에도 누락될 수 있습니다.b64_json(string): Base64 이미지 데이터입니다.response_format이b64_json이거나, 생략되었을 때 모델이 이미지 바이트를 반환하는 경우 존재합니다.revised_prompt(string): 선택한 모델이 반환하는 경우, 선택적 프롬프트 수정 내용입니다.
비동기 작업 응답 (Async Task Response)
gpt-image-2 또는 공식 FLUX/BFL 이미지 모델과 함께 async: true를 설정하면 생성 요청에서 최종 이미지를 기다리는 대신 작업을 생성합니다. 응답에는 status: "pending", task_id 및 poll_url이 포함됩니다. 작업이 completed 또는 failed 상태가 될 때까지 poll_url을 폴링하십시오.
비동기 이미지 작업은 최종 이미지 URL만 반환합니다. 원시 b64_json 이미지 데이터가 필요한 경우 동기식 요청을 사용하십시오.
작업 생성 시 예상 비용이 예약될 수 있습니다. 완료된 작업은 실제 사용량에 따라 청구되며, 실패하거나 타임아웃된 작업은 환불되거나 예약이 해제됩니다.
생성된 Unix 타임스탬프입니다.
폴링을 위한 고유 작업 식별자입니다.
초기 상태: pending.
결과를 폴링하기 위한 상대 URL입니다(예: /v1/tasks/{id}).
작업이 보류 중인 동안에는 비어 있습니다. 완료된 이미지 작업은 data[].url에 생성된 이미지 URL을 반환합니다.
status: "pending"을 수신하면 poll_url 또는 GET /v1/tasks/{task_id}를 사용하여 결과를 검색하십시오.
요청
curl -X POST "https://api.tokenlab.sh/v1/images/generations" \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3-pro-image",
"prompt": "A cinematic portrait of a white cat sitting on a rainy windowsill",
"aspect_ratio": "16:9",
"resolution": "2k"
}'from openai import OpenAI
client = OpenAI(
api_key="sk-your-api-key",
base_url="https://api.tokenlab.sh/v1"
)
response = client.images.generate(
model="gemini-3-pro-image",
prompt="A cinematic portrait of a white cat sitting on a rainy windowsill",
extra_body={"aspect_ratio": "16:9", "resolution": "2k"}
)
print(response.data[0].url)import OpenAI from 'openai';
const client = new OpenAI({
apiKey: 'sk-your-api-key',
baseURL: 'https://api.tokenlab.sh/v1'
});
const response = await client.images.generate({
model: 'gemini-3-pro-image',
prompt: 'A cinematic portrait of a white cat sitting on a rainy windowsill',
aspect_ratio: '16:9',
resolution: '2k'
});
console.log(response.data[0].url);<?php
$ch = curl_init('https://api.tokenlab.sh/v1/images/generations');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'Authorization: Bearer sk-your-api-key'
],
CURLOPT_POSTFIELDS => json_encode([
'model' => 'gemini-3-pro-image',
'prompt' => 'A cinematic portrait of a white cat sitting on a rainy windowsill',
'aspect_ratio' => '16:9',
'resolution' => '2k'
])
]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
echo $data['data'][0]['url'];비율 전용 이미지 제품군 예시: nano-banana의 경우 aspect_ratio를 전송하고 resolution은 생략하십시오:
{
"model": "nano-banana",
"prompt": "A clean editorial product shot of a citrus soda can",
"aspect_ratio": "16:9"
}Nano Banana Pro 참조 이미지 예시: /v1/images/edits가 아닌 /v1/images/generations로 요청을 보내십시오. resolution은 선택 사항이며 1k, 2k 또는 4k로 설정할 수 있습니다:
{
"model": "nano-banana-pro",
"prompt": "Create a clean cinematic character image based on the reference images",
"operation": "image-to-image",
"image_urls": ["https://example.com/reference-1.png"],
"aspect_ratio": "1:1",
"resolution": "2k"
}비공개 또는 로컬 소스 이미지를 위한 직접 멀티파트 업로드 예시입니다. /v1/images/generations에 file_id를 전달하지 마십시오:
curl -X POST "https://api.tokenlab.sh/v1/images/generations" \
-H "Authorization: Bearer sk-your-api-key" \
-F "model=nano-banana-pro" \
-F "prompt=Create a clean cinematic character image based on this reference" \
-F "operation=image-to-image" \
-F "image=@reference.png" \
-F "aspect_ratio=1:1" \
-F "resolution=2k"응답
{
"created": 1706000000,
"data": [
{
"url": "https://...",
"revised_prompt": "A fluffy white cat with bright eyes sitting peacefully on a wooden windowsill, watching raindrops stream down the glass window..."
}
]
}모델 선택 (Choose a Model)
현재 가용성, 기능 및 가격은 GET /v1/models?recommended_for=image를 쿼리하거나 모델 페이지를 참조하십시오.
모델을 항상 동기식 또는 항상 비동기식으로 하드코딩하지 마십시오. 생성 응답이 status: "pending"을 반환하면 poll_url을 따라 완료될 때까지 폴링하십시오.
작업 기반 응답 처리 (Handling Task-Based Responses)
이미지 모델의 경우 응답에 status: "pending" / status: "processing"이 포함되어 있는지 항상 확인하십시오:
import requests
import time
def generate_image(prompt, model="gpt-image-2"):
# 이미지 생성 요청
response = requests.post(
"https://api.tokenlab.sh/v1/images/generations",
headers={"Authorization": "Bearer sk-your-api-key"},
json={"model": model, "prompt": prompt, "async": True},
timeout=120
)
response.raise_for_status()
data = response.json()
# 작업 기반인지 확인
if data.get("status") in ("pending", "processing"):
task_id = data["task_id"]
poll_url = data.get("poll_url")
print(f"Image task started: {task_id}")
# 결과 폴링
while True:
status_resp = requests.get(
f"https://api.tokenlab.sh{poll_url}" if poll_url else f"https://api.tokenlab.sh/v1/tasks/{task_id}",
headers={"Authorization": "Bearer sk-your-api-key"},
timeout=30
)
status_resp.raise_for_status()
status_data = status_resp.json()
if status_data["status"] == "completed":
return status_data["data"][0]["url"]
elif status_data["status"] == "failed":
raise Exception(status_data.get("error", "Generation failed"))
time.sleep(3)
else:
# 인라인 응답
return data["data"][0]["url"]
# 사용 예시
url = generate_image("a beautiful sunset over mountains", model="gpt-image-2")
print(f"Generated image: {url}")Hy Image 3.5 Preview는 텍스트로부터 1024픽셀 정사각형 이미지를 생성하고 서면 지침을 사용하여 참조 이미지를 편집합니다. 시각 자료 초안 작성 및 구성 개선에 유용합니다.
{
"model": "hy-image-v3.5-preview",
"prompt": "A yellow lemon on a white table",
"size": "1024x1024",
"n": 1,
"response_format": "url"
}인증
BearerAuth API 키 인증입니다. Dashboard > API > API Keys에서 API 키를 생성하거나 관리하십시오.
위치: header
헤더
요청별 전송 정책입니다. API 키 및 Workspace 기본값을 재정의합니다. 자동으로 TokenLab Verified를 먼저 시도하며, 출력, 요청 수락 또는 영구 리소스 생성 전에 Official 전용으로 한 번 전환될 수 있습니다.
허용 값
- "auto"
- "verified"
- "official"
응답
application/json
application/json
application/json
application/json
application/json
application/json
application/json