Langsung ke konten utama

Ikhtisar

Endpoint ini dipertahankan untuk client variasi legacy yang kompatibel dengan OpenAI. Ini bukan jalur yang direkomendasikan untuk workflow image-to-image saat ini; gunakan /v1/images/edits dengan gpt-image-2 atau /v1/images/generations dengan model image-to-image seperti nano-banana-pro jika memungkinkan. Memerlukan multipart/form-data.

Isi Permintaan

Timeout permintaan sinkron: beberapa penyedia gambar yang dirutekan mengembalikan gambar final secara inline dan menunggu proses generasi selesai. Permintaan resolusi tinggi atau kualitas tinggi dapat memakan waktu hampir satu menit atau lebih, jadi atur timeout HTTP client Anda minimal 120s. Jika respons pembuatan berisi status: "pending", task_id, atau poll_url, ikuti poll_url yang dikembalikan.
image
file
wajib
Gambar yang digunakan sebagai dasar untuk variasi. Harus berupa file PNG yang valid, kurang dari 50MB, dan berbentuk persegi.
model
string
wajib
ID model wajib untuk rute legacy yang kompatibel dengan variasi. Tidak ada default implisit; untuk workflow image-to-image saat ini, pilih /v1/images/edits atau /v1/images/generations dengan model saat ini.
n
integer
default:"1"
Jumlah gambar yang akan dihasilkan. Harus antara 1 dan 10.
size
string
Ukuran gambar yang dihasilkan untuk rute legacy yang kompatibel dengan variasi. Nilai yang didukung bergantung pada model yang dipilih.
response_format
string
default:"url"
Format pengembalian gambar yang dihasilkan. Harus url atau b64_json.
user
string
Pengidentifikasi unik yang mewakili pengguna akhir Anda untuk pemantauan penyalahgunaan.

Respons

created
integer
Timestamp Unix saat gambar dibuat.
data
array
Array variasi gambar yang dihasilkan.Setiap objek berisi:
  • url (string): URL gambar variasi (jika response_format adalah url)
  • b64_json (string): Gambar yang dikodekan Base64 (jika response_format adalah b64_json)
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://..."
    }
  ]
}

Catatan

Ini adalah endpoint kompatibilitas legacy. Endpoint ini tidak termasuk dalam katalog model gambar rekomendasi saat ini. Untuk integrasi baru, gunakan /v1/images/edits dengan gpt-image-2, atau /v1/images/generations dengan operation: "image-to-image" dan model image-to-image saat ini.