Saltar para o conteúdo principal

Visão geral

Este endpoint é mantido para clientes legacy de variações compatíveis com OpenAI. Ele não é o caminho recomendado para workflows image-to-image atuais; use /v1/images/edits com gpt-image-2 ou /v1/images/generations com um modelo image-to-image como nano-banana-pro quando possível. Requer multipart/form-data.

Corpo da requisição

Timeout de solicitações síncronas: alguns provedores de imagem roteados retornam a imagem final inline e aguardam a geração terminar. Solicitações de alta resolução ou alta qualidade podem levar perto de um minuto ou mais, então configure o timeout do seu cliente HTTP para pelo menos 120s. Se a resposta de criação incluir status: "pending", task_id ou poll_url, siga o poll_url retornado.
image
file
obrigatório
A imagem a ser usada como base para a variação. Deve ser um arquivo PNG válido, menor que 50MB e quadrado.
model
string
obrigatório
Identificador de modelo obrigatório para rotas legacy compatíveis com variações. Não há padrão implícito; para workflows image-to-image atuais, prefira /v1/images/edits ou /v1/images/generations com um modelo atual.
n
integer
padrão:"1"
O número de imagens a gerar. Deve estar entre 1 e 10.
size
string
O tamanho das imagens geradas para rotas legacy compatíveis com variações. Os valores compatíveis dependem do modelo selecionado.
response_format
string
padrão:"url"
O formato em que as imagens geradas são retornadas. Deve ser url ou b64_json.
user
string
Um identificador único representando seu usuário final para monitoramento de abuso.

Resposta

created
integer
Timestamp Unix de quando as imagens foram criadas.
data
array
Array de variações de imagem geradas.Cada objeto contém:
  • url (string): URL da imagem de variação (se response_format for url)
  • b64_json (string): Imagem codificada em Base64 (se response_format for 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://..."
    }
  ]
}

Observações

Este é um endpoint de compatibilidade legacy. Ele não está incluído no catálogo atual de modelos de imagem recomendados. Para novas integrações, use /v1/images/edits com gpt-image-2, ou /v1/images/generations com operation: "image-to-image" e um modelo image-to-image atual.