Görseller
Görüntü Oluştur
Bir istem (prompt) verildiğinde görüntü oluşturur
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.1venano-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çinaspect_ratioveresolution(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çinaspect_ratioveresolution(1k,2k,4k) destekler.gemini-3.1-flash-lite-imagevenano-banana-2-lite, yalnızca1kçö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_ratiodestekler ancak genelresolutionseçimi sunmaz.gemini-3.1-flash-image,gemini-nano-banana-2.1,gemini-3.1-flash-lite-imageveyagemini-3-pro-imageile 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/editsadresine gönderin.- Nano Banana referans görüntüsü istekleri için, bu uç noktada (
/v1/images/generations)operation: "image-to-image"veimage_urlsilenano-banana-2,nano-banana-2.1,nano-banana-2-liteveyanano-banana-prokullanın.nano-banana-2,nano-banana-2.1,nano-banana-2-litevenano-banana-proiçin görüntü düzenleme istekleri deoperation: "image-edit"ile bu uç noktayı kullanır. Nano Banana referans görüntüsü isteklerini/v1/images/editsadresine göndermeyin. - Bu uç noktadaki referans görüntüler, JSON
image_url/image_urlsolarak veya çok parçalı (multipart)imagedosyası olarak sağlanabilir.images[]vefile_idparametreleri/v1/images/generationsüzerinde kabul edilmez;/v1/filesreferanslarını yalnızcaimages[].file_idbelgelenen/v1/images/editsmodelleri 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.
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.
İstenen görüntünün metin açıklaması.
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.
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.
Birincil girdileri referanslardan ayıran modeller için ek referans görüntü URL'leri.
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.
1Oluşturulacak görüntü sayısı (1-10, modele bağlıdır).
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.
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.
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.
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.
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_jsoniçindedir ve TokenLab depoladıysadata[].urliçinde de bulunur. Model bir bağlantı döndürdüğünde, her görüntüdata[].urliçindedir. url: her görüntü yalnızcadata[].urliçindedir.b64_json: her görüntü yalnızca Base64 verisi olarakdata[].b64_jsoniçindedir.
Bağlantılar TokenLab medya sonucu URL'leridir. 30 gün boyunca geçerli kalırlar. Bkz: Veri saklama.
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.
İ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.
Son kullanıcı için benzersiz bir tanımlayıcı.
Yanıt
Satır İçi (Inline) Yanıt
Oluşturulma zamanının Unix zaman damgası.
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_formatb64_jsonolduğunda mevcut değildir.response_formatatlandığında, TokenLab görüntüyü depolayamadıysa eksiktir.b64_json(string): Base64 görüntü verisi.response_formatb64_jsonolduğ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.
Oluşturulma zamanının Unix zaman damgası.
Yoklama (polling) için benzersiz görev tanımlayıcısı.
Başlangıç durumu: pending.
Sonuçları yoklamak için göreceli URL, örneğin /v1/tasks/{id}.
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 -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"
}'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)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
$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 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
İ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"
Yanıt
application/json
application/json
application/json
application/json
application/json
application/json
application/json