Passer au contenu principal

Aperçu

Cet endpoint est conservé pour les clients legacy de variations compatibles OpenAI. Ce n’est pas le chemin recommandé pour les workflows image-to-image actuels ; utilisez /v1/images/edits avec gpt-image-2 ou /v1/images/generations avec un modèle image-to-image comme nano-banana-pro lorsque possible. Requiert multipart/form-data.

Corps de la requête

Timeout des requêtes synchrones : certains fournisseurs d’images routés renvoient l’image finale inline et attendent la fin de la génération. Les requêtes haute résolution ou haute qualité peuvent prendre près d’une minute, voire plus ; configurez donc le timeout de votre client HTTP à au moins 120s. Si la réponse de création contient status: "pending", task_id ou poll_url, suivez plutôt le poll_url renvoyé.
image
file
requis
L’image à utiliser comme base pour la variation. Doit être un fichier PNG valide, inférieur à 50 Mo et carré.
model
string
requis
Identifiant de modèle obligatoire pour les routes legacy compatibles avec les variations. Il n’y a pas de valeur par défaut implicite ; pour les workflows image-to-image actuels, préférez /v1/images/edits ou /v1/images/generations avec un modèle actuel.
n
integer
défaut:"1"
Le nombre d’images à générer. Doit être compris entre 1 et 10.
size
string
Taille des images générées pour les routes legacy compatibles avec les variations. Les valeurs prises en charge dépendent du modèle sélectionné.
response_format
string
défaut:"url"
Le format de retour des images générées. Doit être url ou b64_json.
user
string
Identifiant unique représentant votre utilisateur final pour la surveillance des abus.

Réponse

created
integer
Horodatage Unix de la création des images.
data
array
Tableau des variations d’images générées.Chaque objet contient :
  • url (string) : URL de l’image de variation (si response_format est url)
  • b64_json (string) : Image encodée en Base64 (si response_format est 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://..."
    }
  ]
}

Notes

Il s’agit d’un endpoint de compatibilité legacy. Il n’est pas inclus dans le catalogue actuel des modèles image recommandés. Pour les nouvelles intégrations, utilisez /v1/images/edits avec gpt-image-2, ou /v1/images/generations avec operation: "image-to-image" et un modèle image-to-image actuel.