الانتقال إلى المحتوى الرئيسي

نظرة عامة

يبقى هذا endpoint لعملاء variation القدامى المتوافقين مع OpenAI. ليس المسار الموصى به لتدفقات image-to-image الحالية؛ استخدم /v1/images/edits مع gpt-image-2 أو /v1/images/generations مع نموذج image-to-image مثل nano-banana-pro عندما يكون ذلك ممكنًا. يتطلب multipart/form-data.

جسم الطلب

مهلة الطلبات المتزامنة: قد يعيد بعض مزودي الصور الذين يتم التوجيه إليهم الصورة النهائية inline وينتظرون اكتمال التوليد. قد تستغرق طلبات الدقة العالية أو الجودة العالية ما يقارب دقيقة أو أكثر، لذا اضبط مهلة عميل HTTP على 120s على الأقل. إذا احتوت استجابة الإنشاء على status: "pending" أو task_id أو poll_url، فاتبع poll_url المُعاد بدلًا من الانتظار.
image
file
مطلوب
الصورة المستخدمة كأساس للتنويع. يجب أن تكون ملف PNG صالح، أقل من 50MB، ومربعة.
model
string
مطلوب
معرّف نموذج مطلوب للمسارات القديمة المتوافقة مع variation. لا توجد قيمة افتراضية ضمنية؛ لتدفقات image-to-image الحالية، فضّل /v1/images/edits أو /v1/images/generations مع نموذج حالي.
n
integer
افتراضي:"1"
عدد الصور المراد إنشاؤها. يجب أن يكون بين 1 و 10.
size
string
حجم الصور المُنشأة للمسارات القديمة المتوافقة مع variation. تعتمد القيم المدعومة على النموذج المحدد.
response_format
string
افتراضي:"url"
تنسيق إرجاع الصور المُنشأة. يجب أن يكون url أو b64_json.
user
string
معرف فريد يمثل المستخدم النهائي لمراقبة سوء الاستخدام.

الاستجابة

created
integer
الطابع الزمني Unix لوقت إنشاء الصور.
data
array
مصفوفة تنويعات الصور المُنشأة.كل عنصر يحتوي على:
  • url (string): رابط صورة التنويع (إذا كان response_format هو url)
  • b64_json (string): الصورة بترميز Base64 (إذا كان response_format هو 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://..."
    }
  ]
}

ملاحظات

هذا endpoint توافق قديم. لا يظهر في كتالوج نماذج الصور الموصى بها حاليًا. للتكاملات الجديدة استخدم /v1/images/edits مع gpt-image-2، أو /v1/images/generations مع operation: "image-to-image" ونموذج image-to-image حالي.