Görseller

Görüntü Oluştur

Bir istem (prompt) verildiğinde görüntü oluşturur

POST
/v1/images/generations

Genel Bakış

Güncel görüntü modellerini almak için GET /v1/models?recommended_for=image komutunu kullanın, ardından seçilen model değerini açıkça gönderin.

gpt-image-2, token bazlı fiyatlandırılan bir GPT Görüntü modelidir. TokenLab; metin girişi, görüntü girişi, raporlanan önbelleğe alınmış giriş ve görüntü çıkış token'ları için OpenAI'ın resmi kullanım dökümünü takip eder; görüntü başına sabit bir model olarak faturalandırılmaz.

gpt-image-2 görüntü oluşturma için desteklenen genel parametreler şunlardır: prompt, n, size, quality, response_format, async, background, output_format, output_compression veya compression, moderation ve user. background parametresi auto veya opaque değerlerini kabul eder; transparent desteklenmez. TokenLab'in auto kullanmasını sağlamak için size veya quality parametrelerini atlayın; özel size değerleri, aşağıda belgelenen esnek WIDTHxHEIGHT sözleşmesini kullanmalıdır.

input_fidelity, gpt-image-2 için mevcut TokenLab destekli alanların bir parçası değildir; bu alanı atlayın, aksi takdirde istek 400 unsupported_parameter hatası döndürür.

Model davranışı notları

Google Gemini görüntü ailesi modelleri aynı seçici sözleşmesini paylaşmaz:

  • gemini-3.1-flash-image, gemini-nano-banana-2.1, gemini-3-pro-image, nano-banana-2.1 ve nano-banana-pro; genel metinden görüntüye, görüntüden görüntüye ve görüntü düzenleme işlemleri için aspect_ratio ve resolution (1k, 2k, 4k) destekler.
  • nano-banana-2, hem metinden görüntüye hem de görüntüden görüntüye oluşturma için aspect_ratio ve resolution (1k, 2k, 4k) destekler.
  • gemini-3.1-flash-lite-image ve nano-banana-2-lite, yalnızca 1k çözünürlükte metinden görüntüye, görüntüden görüntüye ve görüntü düzenleme işlemlerini destekler.
  • nano-banana, aspect_ratio destekler ancak genel resolution seçimi sunmaz.
  • gemini-3.1-flash-image, gemini-nano-banana-2.1, gemini-3.1-flash-lite-image veya gemini-3-pro-image ile görüntüden görüntüye (image-to-image) işlemi için, bu uç noktayı operation: "image-to-image" ve referans görüntülerle kullanın. Bu modeller için görüntü düzenleme (image-edit) isteklerini /v1/images/edits adresine gönderin.
  • Nano Banana referans görüntüsü istekleri için, bu uç noktada (/v1/images/generations) operation: "image-to-image" ve image_urls ile nano-banana-2, nano-banana-2.1, nano-banana-2-lite veya nano-banana-pro kullanın. nano-banana-2, nano-banana-2.1, nano-banana-2-lite ve nano-banana-pro için görüntü düzenleme istekleri de operation: "image-edit" ile bu uç noktayı kullanır. Nano Banana referans görüntüsü isteklerini /v1/images/edits adresine göndermeyin.
  • Bu uç noktadaki referans görüntüler, JSON image_url / image_urls olarak veya çok parçalı (multipart) image dosyası olarak sağlanabilir. images[] ve file_id parametreleri /v1/images/generations üzerinde kabul edilmez; /v1/files referanslarını yalnızca images[].file_id belgelenen /v1/images/edits modelleri için oluşturun.

Google görüntü aileleri için aspect_ratio tercih edin ve resolution değerini yalnızca model açıkça desteklediğinde gönderin.

xAI Grok Imagine görüntü modelleri (grok-imagine-image, grok-imagine-image-quality ve eski grok-imagine-image-pro), aspect_ratio ve resolution (1k, 2k) destekler. grok-imagine-image-pro, grok-imagine-image-quality için bir uyumluluk kimliği olarak tutulmaktadır.

İstek Gövdesi

Senkron istek zaman aşımı: Bazı görüntü istekleri, nihai görüntüyü satır içi (inline) olarak döndürür ve oluşturmanın tamamlanmasını bekler. Yüksek çözünürlüklü veya yüksek kaliteli istekler bir dakikaya veya daha uzun süreye yakın sürebilir, bu nedenle HTTP istemcisi zaman aşımınızı en az 120s olarak ayarlayın. Oluşturma yanıtı status: "pending", task_id veya poll_url içeriyorsa, döndürülen poll_url adresini takip edin.

modelstringzorunlu

Kullanılacak model (örneğin, gpt-image-2, flux-pro-1.1 veya nano-banana-pro). Güncel önerilen liste için GET /v1/models?recommended_for=image sorgusunu kullanın.

promptstringzorunlu

İstenen görüntünün metin açıklaması.

image_urlstring

Görüntüden görüntüye oluşturma için genel HTTPS referans görüntü URL'si. Nano Banana referans görüntüsü istekleri için operation değerini image-to-image olarak ayarlayın; nano-banana-pro çözünürlük (resolution) içerebilir.

image_urlsstring[]

Genel HTTPS referans görüntü URL'leri. JSON isteklerinde bir veya daha fazla referans görüntü için bunu kullanın. file_id ve images[] bu uç noktada desteklenmez.

reference_image_urlsstring[]

Birincil girdileri referanslardan ayıran modeller için ek referans görüntü URL'leri.

imagefile

Görüntüden görüntüye oluşturma için çok parçalı (multipart) referans görüntü dosyası. Kaynak görüntü özel olduğunda veya başlık korumalı olduğunda bunu kullanın. Bu, bu uç noktada kabul edilmeyen /v1/files file_id değerinden farklıdır.

nintegervarsayılan: 1

Oluşturulacak görüntü sayısı (1-10, modele bağlıdır).

sizestring

Görüntü boyutu. Bunu, OpenAI tarzı görüntü aileleri ve tam piksel boyutlarını kabul eden diğer modeller için kullanın.

gpt-image-2 için size, auto veya WIDTHxHEIGHT değerlerini kabul eder. Özel boyutların her ikisi de 16'nın katı olmalı, en uzun kenar en fazla 3840px olmalı, uzun/kısa oranı en fazla 3:1 olmalı ve toplam piksel sayısı 655,360 ile 8,294,400 arasında olmalıdır. aspect_ratio ve resolution, gpt-image-2 için mevcut TokenLab model detaylarının bir parçası değildir.

Çözünürlük katmanlarına sahip Google görüntü modelleri (gemini-3.1-flash-image, gemini-nano-banana-2.1, gemini-3-pro-image, gemini-3.1-flash-lite-image, nano-banana-2, nano-banana-2.1 ve nano-banana-pro) için size, modelin boyut tablosundan bir çıktı boyutu (örneğin 1K'da 16:9 için 1376x768) veya bir çözünürlük katmanı (1K, 2K veya 4K) kabul eder. TokenLab, katmanı resolution olarak gönderir, bu nedenle istek ve fiyatı resolution ile aynıdır. Modelin desteklemediği bir katman (örneğin gemini-3.1-flash-lite-image üzerinde 2K) veya resolution değerinden farklı bir katman, invalid_image_size_contract kodu ve modelin allowed_resolutions değerleri ile 400 hatası döndürür. Bu modeller için önerilen biçim, resolution ile birlikte aspect_ratio kullanmaktır.

aspect_ratiostring

Modele bağlı en boy oranı seçici.

Yaygın Google görüntü ailesi değerleri arasında 1:1, 16:9, 9:16, 3:2 ve 2:3 bulunur.

resolutionstring

Modele bağlı çıktı çözünürlüğü. gemini-3.1-flash-image, gemini-nano-banana-2.1, gemini-3-pro-image, nano-banana-2, nano-banana-2.1 ve nano-banana-pro modelleri 1k, 2k ve 4k destekler; Grok Imagine görüntü modelleri 1k ve 2k destekler. Seçilen model ve işlem açıkça desteklemedikçe bu alanı atlayın.

qualitystring

Görüntü kalitesi. gpt-image-2 gibi GPT Görüntü modelleri auto, low, medium veya high kullanır. Diğer modeller farklı değerler kullanabilir; varsayılan olmayan bir değer göndermeden önce model detaylarını kontrol edin.

response_formatstring

Görüntülerin nasıl döndürüleceği: url veya b64_json.

  • Atlandığında: model görüntü baytlarını döndürdüğünde, her görüntü data[].b64_json içindedir ve TokenLab depoladıysa data[].url içinde de bulunur. Model bir bağlantı döndürdüğünde, her görüntü data[].url içindedir.
  • url: her görüntü yalnızca data[].url içindedir.
  • b64_json: her görüntü yalnızca Base64 verisi olarak data[].b64_json içindedir.

Bağlantılar TokenLab medya sonucu URL'leridir. 30 gün boyunca geçerli kalırlar. Bkz: Veri saklama.

asyncbooleanvarsayılan: false

Önce bir görev oluşturmak için gpt-image-2 veya resmi FLUX/BFL görüntü modelleri ile true olarak ayarlayın. Tamamlanan asenkron görüntü görevleri, istenen response_format değerinden bağımsız olarak URL'ler döndürür; b64_json ihtiyacınız olduğunda senkron istekleri kullanın.

stylestring

İsteğe bağlı stil seçici. Bunu yalnızca seçilen model açıkça belgeliyorsa gönderin; model meta verileri aksi belirtmedikçe gpt-image-2 için atlayın.

userstring

Son kullanıcı için benzersiz bir tanımlayıcı.

Yanıt

Satır İçi (Inline) Yanıt

createdinteger

Oluşturulma zamanının Unix zaman damgası.

dataarray

Oluşturulan görüntülerin dizisi.

Her nesne şunları içerir:

  • url (string): Görüntünün 30 gün geçerli TokenLab medya sonucu URL'si. response_format b64_json olduğunda mevcut değildir. response_format atlandığında, TokenLab görüntüyü depolayamadıysa eksiktir.
  • b64_json (string): Base64 görüntü verisi. response_format b64_json olduğunda veya atlandığında ve model görüntü baytları döndürdüğünde mevcuttur.
  • revised_prompt (string): Seçilen model bir tane döndürdüğünde isteğe bağlı istem revizyonu.

Asenkron Görev Yanıtı

Oluşturma isteğinde nihai görüntüyü beklemek yerine bir görev oluşturmak için gpt-image-2 veya resmi FLUX/BFL görüntü modelleri ile async: true ayarını kullanın. Yanıt status: "pending", task_id ve poll_url içerir. Görev completed veya failed durumuna ulaşana kadar /v1/tasks/{task_id} adresini yoklayın (poll).

Asenkron görüntü görevleri yalnızca nihai görüntü URL'lerini döndürür. Ham b64_json görüntü verisine ihtiyacınız varsa, senkron bir istek kullanın.

Faturalandırma, görev oluşturulduğunda tahmini tutarı rezerve edebilir. Tamamlanan görevler gerçek kullanıma göre faturalandırılır, başarısız olan veya zaman aşımına uğrayan görevler serbest bırakılır veya iade edilir.

createdinteger

Oluşturulma zamanının Unix zaman damgası.

task_idstring

Yoklama (polling) için benzersiz görev tanımlayıcısı.

statusstring

Başlangıç durumu: pending.

poll_urlstring

Sonuçları yoklamak için göreceli URL, örneğin /v1/tasks/{id}.

dataarray

Görev beklemedeyken boştur. Tamamlanan görüntü görevleri, oluşturulan görüntü URL'lerini data[].url içinde döndürür.

status: "pending" aldığınızda, sonucu almak için poll_url veya GET /v1/tasks/{task_id} kullanın.

İstek

cURL
curl -X POST "https://api.tokenlab.sh/v1/images/generations" \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3-pro-image",
    "prompt": "A cinematic portrait of a white cat sitting on a rainy windowsill",
    "aspect_ratio": "16:9",
    "resolution": "2k"
  }'
Python
from openai import OpenAI

client = OpenAI(
    api_key="sk-your-api-key",
    base_url="https://api.tokenlab.sh/v1"
)

response = client.images.generate(
    model="gemini-3-pro-image",
    prompt="A cinematic portrait of a white cat sitting on a rainy windowsill",
    extra_body={"aspect_ratio": "16:9", "resolution": "2k"}
)

print(response.data[0].url)
JavaScript
import OpenAI from 'openai';

const client = new OpenAI({
  apiKey: 'sk-your-api-key',
  baseURL: 'https://api.tokenlab.sh/v1'
});

const response = await client.images.generate({
  model: 'gemini-3-pro-image',
  prompt: 'A cinematic portrait of a white cat sitting on a rainy windowsill',
  aspect_ratio: '16:9',
  resolution: '2k'
});

console.log(response.data[0].url);
PHP
<?php
$ch = curl_init('https://api.tokenlab.sh/v1/images/generations');

curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        'Authorization: Bearer sk-your-api-key'
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'model' => 'gemini-3-pro-image',
        'prompt' => 'A cinematic portrait of a white cat sitting on a rainy windowsill',
        'aspect_ratio' => '16:9',
        'resolution' => '2k'
    ])
]);

$response = curl_exec($ch);
curl_close($ch);

$data = json_decode($response, true);
echo $data['data'][0]['url'];

Yalnızca oran (ratio) içeren görüntü ailesi örneği: nano-banana için aspect_ratio gönderin ancak resolution değerini atlayın:

{
  "model": "nano-banana",
  "prompt": "A clean editorial product shot of a citrus soda can",
  "aspect_ratio": "16:9"
}

Nano Banana Pro referans görüntüsü örneği: isteği /v1/images/edits adresine değil, /v1/images/generations adresine gönderin. resolution isteğe bağlıdır ve 1k, 2k veya 4k olarak ayarlanabilir:

{
  "model": "nano-banana-pro",
  "prompt": "Create a clean cinematic character image based on the reference images",
  "operation": "image-to-image",
  "image_urls": ["https://example.com/reference-1.png"],
  "aspect_ratio": "1:1",
  "resolution": "2k"
}

Özel veya yerel kaynak görüntüler için doğrudan çok parçalı (multipart) yükleme örneği. /v1/images/generations adresine file_id geçmeyin:

curl -X POST "https://api.tokenlab.sh/v1/images/generations" \
  -H "Authorization: Bearer sk-your-api-key" \
  -F "model=nano-banana-pro" \
  -F "prompt=Create a clean cinematic character image based on this reference" \
  -F "operation=image-to-image" \
  -F "image=@reference.png" \
  -F "aspect_ratio=1:1" \
  -F "resolution=2k"

Yanıt

{
  "created": 1706000000,
  "data": [
    {
      "url": "https://...",
      "revised_prompt": "A fluffy white cat with bright eyes sitting peacefully on a wooden windowsill, watching raindrops stream down the glass window..."
    }
  ]
}

Bir Model Seçin

Güncel kullanılabilirlik, yetenekler ve fiyatlar için GET /v1/models?recommended_for=image sorgusunu yapın veya Modeller sayfasını kullanın.

Bir modeli her zaman senkron veya her zaman asenkron olacak şekilde sabit kodlamayın (hard-code). Oluşturma yanıtı status: "pending" döndürürse, poll_url adresini takip edin ve tamamlanana kadar yoklayın.

Görev Tabanlı Yanıtları İşleme

Görüntü modelleri için, yanıtın status: "pending" / status: "processing" içerip içermediğini her zaman kontrol edin:

import requests
import time

def generate_image(prompt, model="gpt-image-2"):
    # Görüntü isteği oluştur
    response = requests.post(
        "https://api.tokenlab.sh/v1/images/generations",
        headers={"Authorization": "Bearer sk-your-api-key"},
        json={"model": model, "prompt": prompt, "async": True},
        timeout=120
    )
    response.raise_for_status()
    data = response.json()

    # Görev tabanlı olup olmadığını kontrol et
    if data.get("status") in ("pending", "processing"):
        task_id = data["task_id"]
        poll_url = data.get("poll_url")
        print(f"Görüntü görevi başlatıldı: {task_id}")

        # Sonuç için yokla
        while True:
            status_resp = requests.get(
                f"https://api.tokenlab.sh{poll_url}" if poll_url else f"https://api.tokenlab.sh/v1/tasks/{task_id}",
                headers={"Authorization": "Bearer sk-your-api-key"},
                timeout=30
            )
            status_resp.raise_for_status()
            status_data = status_resp.json()

            if status_data["status"] == "completed":
                return status_data["data"][0]["url"]
            elif status_data["status"] == "failed":
                raise Exception(status_data.get("error", "Oluşturma başarısız oldu"))

            time.sleep(3)
    else:
        # Satır içi yanıt
        return data["data"][0]["url"]

# Kullanım
url = generate_image("a beautiful sunset over mountains", model="gpt-image-2")
print(f"Oluşturulan görüntü: {url}")

Hy Image 3.5 Preview, metinden 1024 piksellik kare görüntüler oluşturur ve yazılı talimatları kullanarak referans görüntüleri düzenler. Görseller tasarlamak ve bir kompozisyonu iyileştirmek için kullanışlıdır.

{
  "model": "hy-image-v3.5-preview",
  "prompt": "A yellow lemon on a white table",
  "size": "1024x1024",
  "n": 1,
  "response_format": "url"
}

Yetkilendirme

BearerAuth
AuthorizationBearer <token>

API Anahtarı kimlik doğrulaması. API anahtarlarını Dashboard > API > API Keys bölümünden oluşturun veya yönetin.

Konum: header

Başlıklar

X-TokenLab-Delivery-Policy?string

İstek bazlı Teslimat politikası. API anahtarı ve Çalışma Alanı varsayılanlarını geçersiz kılar. Otomatik olarak önce TokenLab Verified dener ve çıktı, istek kabulü veya kalıcı kaynak oluşturma öncesinde bir kez Official seçeneğine geçiş yapabilir.

Geçerli değerler

  • "auto"
  • "verified"
  • "official"

İstek gövdesi

Yanıt

application/json

application/json

application/json

application/json

application/json

application/json

application/json