이 엔드포인트는 기존 OpenAI 호환 variation 클라이언트를 위해 유지됩니다. 현재 image-to-image 워크플로에는 권장 경로가 아닙니다. 가능하면 /v1/images/edits와 gpt-image-2를 사용하거나 /v1/images/generations에서 nano-banana-pro 같은 image-to-image 모델을 사용하세요. multipart/form-data가 필요합니다.
요청 본문
동기 요청 타임아웃: 일부 라우팅된 이미지 제공자는 생성이 완료될 때까지 기다린 뒤 최종 이미지를 inline 으로 반환합니다. 고해상도 또는 고품질 요청은 1분 안팎이거나 그 이상 걸릴 수 있으므로 HTTP 클라이언트 타임아웃을 최소 120s 로 설정하세요. 생성 응답에 status: "pending", task_id, 또는 poll_url 이 포함되어 있으면 반환된 poll_url 을 따라 폴링하세요.
변형의 기반으로 사용할 이미지. 유효한 PNG 파일이어야 하며, 50MB 미만이고 정사각형이어야 합니다.
기존 variation 호환 라우트용 필수 모델 ID입니다. 암시적 기본값은 없습니다. 현재 image-to-image 워크플로에서는 현재 모델과 함께 /v1/images/edits 또는 /v1/images/generations를 우선 사용하세요.
생성할 이미지 수. 1에서 10 사이여야 합니다.
기존 variation 호환 라우트에서 생성되는 이미지 크기입니다. 지원 값은 선택한 모델에 따라 달라집니다.
생성된 이미지가 반환되는 형식. url 또는 b64_json이어야 합니다.
남용 모니터링을 위한 최종 사용자의 고유 식별자.
생성된 이미지 변형 배열. 각 객체에 포함된 항목:
url (string): 변형 이미지의 URL (response_format이 url인 경우)
b64_json (string): Base64로 인코딩된 이미지 (response_format이 b64_json인 경우)
cURL
Python
JavaScript
Go
PHP
curl -X POST "https://api.tokenlab.sh/v1/images/variations" \
-H "Authorization: Bearer sk-your-api-key" \
-F "model=your-legacy-variation-model" \
-F "image=@cat.png" \
-F "n=2" \
-F "size=1024x1024"
from openai import OpenAI
client = OpenAI(
api_key = "sk-your-api-key" ,
base_url = "https://api.tokenlab.sh/v1"
)
response = client.images.create_variation(
model = "your-legacy-variation-model" ,
image = open ( "cat.png" , "rb" ),
n = 2 ,
size = "1024x1024"
)
for image in response.data:
print (image.url)
import OpenAI from 'openai' ;
import fs from 'fs' ;
const client = new OpenAI ({
apiKey: 'sk-your-api-key' ,
baseURL: 'https://api.tokenlab.sh/v1'
});
const response = await client . images . createVariation ({
model: 'your-legacy-variation-model' ,
image: fs . createReadStream ( 'cat.png' ),
n: 2 ,
size: '1024x1024'
});
response . data . forEach ( image => console . log ( image . url ));
package main
import (
" bytes "
" fmt "
" io "
" mime/multipart "
" net/http "
" os "
)
func main () {
body := & bytes . Buffer {}
writer := multipart . NewWriter ( body )
writer . WriteField ( "model" , "your-legacy-variation-model" )
file , _ := os . Open ( "cat.png" )
defer file . Close ()
part , _ := writer . CreateFormFile ( "image" , "cat.png" )
io . Copy ( part , file )
writer . WriteField ( "n" , "2" )
writer . WriteField ( "size" , "1024x1024" )
writer . Close ()
req , _ := http . NewRequest ( "POST" , "https://api.tokenlab.sh/v1/images/variations" , body )
req . Header . Set ( "Authorization" , "Bearer sk-your-api-key" )
req . Header . Set ( "Content-Type" , writer . FormDataContentType ())
client := & http . Client {}
resp , _ := client . Do ( req )
defer resp . Body . Close ()
result , _ := io . ReadAll ( resp . Body )
fmt . Println ( string ( result ))
}
<? php
$ch = curl_init ( 'https://api.tokenlab.sh/v1/images/variations' );
$image = new CURLFile ( 'cat.png' , 'image/png' , 'cat.png' );
curl_setopt_array ( $ch , [
CURLOPT_RETURNTRANSFER => true ,
CURLOPT_POST => true ,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer sk-your-api-key'
],
CURLOPT_POSTFIELDS => [
'model' => 'your-legacy-variation-model' ,
'image' => $image ,
'n' => 2 ,
'size' => '1024x1024'
]
]);
$response = curl_exec ( $ch );
curl_close ( $ch );
$data = json_decode ( $response , true );
foreach ( $data [ 'data' ] as $image ) {
echo $image [ 'url' ] . " \n " ;
}
{
"created" : 1706000000 ,
"data" : [
{
"url" : "https://..."
},
{
"url" : "https://..."
}
]
}
참고 사항
이 엔드포인트는 기존 호환용이며 현재 추천 이미지 모델 카탈로그에 포함되지 않습니다. 새 연동에서는 /v1/images/edits와 gpt-image-2를 사용하거나 /v1/images/generations에서 operation: "image-to-image" 및 현재 image-to-image 모델을 사용하세요.