Yapay zeka, görsel içerik oluşturma ve etkileşim şeklimizi hızla dönüştürüyor. OpenAI, bu devrimin ön saflarında yer alarak, şaşırtıcı gerçekçilik ve yaratıcılıkla görüntüler oluşturabilen ve işleyebilen güçlü modeller sunuyor. DALL·E 3 ve GPT-4o gibi modeller bu yetenekleri kullanıcıya yönelik araçlarda sergilerken, OpenAI ayrıca geliştiricilere bu teknolojiye doğrudan erişim imkanı sunarak, genellikle gpt-image-1
model tanımlayıcısını kullanan Image Generation API'sini sağlıyor.
Bu kılavuz, gpt-image-1'i (beklenen GPT-4o Image Generation API'sinin resmi adı) kullanmaya derinlemesine bir bakış sunmaktadır. Temel modeli, güçlü özelliklerini, fiyatlandırma hususlarını inceleyeceğiz ve Python kullanarak kapsamlı bir adım adım kılavuz sağlayacağız. Özellikle, Apidog gibi araçların geliştirme ve test sürecini nasıl kolaylaştırabileceğini, entegrasyonu daha sorunsuz ve verimli hale getirebileceğini de tartışacağız.
Geliştirici Ekibinizin maksimum verimlilikle birlikte çalışması için entegre, Hepsi Bir Arada bir platform mu istiyorsunuz?
Apidog tüm taleplerinizi karşılıyor ve Postman'in yerini çok daha uygun bir fiyata alıyor!

GPT-4o Image Generation API (gpt-image-1
) Nedir?

Esasen, gpt-image-1 (gpt-4o Image Generation API), geliştiricilerin OpenAI'nin gelişmiş yapay zeka modellerini kullanarak programlı bir şekilde görüntüler oluşturmasına ve değiştirmesine olanak tanıyan bir hizmettir. Bu API ile etkileşimde bulunduğunuzda, gpt-image-1
'i belirterek (veya API'nin genellikle GPT-4o/DALL·E 3 yetenekleriyle uyumlu olan en son önerilen modele varsayılan olarak geçmesine izin vererek), büyük miktarda metin ve görüntü verisi üzerinde eğitilmiş sofistike bir sisteme erişmiş olursunuz.
Neden GPT-4o Image Generation API (gpt-image-1) Kullanmalısınız?
- Yüksek Doğrulukta Görüntü Oluşturma: Metin açıklamalarından (istekler) ayrıntılı, tutarlı ve görsel olarak ilgi çekici görüntüler oluşturun. Model, doğru sonuçlar vermek için istemlerdeki nüansları anlamada mükemmeldir.
- Çeşitli Stil Aralığı: Foto-gerçekçiliğin ötesine geçin. İstediğiniz estetiği isteminizde açıklayarak yağlı boya, sulu boya, piksel sanatı, 3D render, minimalist çizgi sanatı ve daha birçok farklı stilde görüntüler oluşturun.
- Gelişmiş Görüntü Düzenleme (İç Boyama ve Dış Boyama): Mevcut görüntüleri değiştirin. Belirli parçaları sorunsuz bir şekilde düzenlemek (iç boyama) veya görüntüyü orijinal sınırlarının ötesine genişletmek (dış boyama, ancak genellikle istem yinelemesi yoluyla yapılır) için bir görüntü ve bir maske (değişikliklerin nerede gerçekleşmesi gerektiğini gösteren şeffaf bir alan) ile birlikte bir istem sağlayabilirsiniz.
- Görüntü Varyasyonları: Çekirdek konuyu ve stili korurken, yaratıcı varyasyonlar sunarak bir giriş görüntüsünün farklı versiyonlarını oluşturun.
- Gelişmiş İstek Anlayışı: Model, istemde açıklanan karmaşık cümleleri, uzamsal ilişkileri, birden fazla nesneyi ve soyut kavramları anlar.
- Geliştirilmiş Metin İşleme: Önemli gelişmelerden biri, oluşturulan görüntüler içinde okunabilir ve bağlamsal olarak uygun metin oluşturma yeteneğidir ve önceki nesil görüntü modelleri için büyük bir engel aşılmıştır.
- Tasarım Gereği Güvenlik: Entegre güvenlik sistemleri, istemlere ve görüntü analizine dayalı olarak zararlı, uygunsuz veya politika ihlali içeren içerik oluşturulmasını önlemek için çalışır.
API Maliyeti, Gecikme Süresi ve İçerik Denetimi
gpt-image-1
API'sini entegre ederken maliyeti ve yanıt süresini etkileyen faktörleri anlamak çok önemlidir.
Maliyet ve Gecikme Süresi:
Basit görüntü başına fiyatlandırmadan farklı olarak, gpt-image-1
için maliyet ve gecikme süresi, görüntü belirteçleri cinsinden ölçülen, gereken hesaplama çabasıyla doğrudan orantılıdır. Model, nihai görüntüyü oluşturmadan önce görsel içeriği temsil eden özel görüntü belirteçleri oluşturur.
Oluşturulan görüntü belirteçlerinin sayısı, istenen görüntü boyutlarına (size
) ve kalite ayarına (quality
) bağlıdır:
Kalite | Kare (1024×1024) | Portre (1024×1536) | Manzara (1536×1024) |
---|---|---|---|
Düşük | 272 belirteç | 408 belirteç | 400 belirteç |
Orta | 1056 belirteç | 1584 belirteç | 1568 belirteç |
Yüksek | 4160 belirteç | 6240 belirteç | 6208 belirteç |
Daha yüksek kalite ayarları ve daha büyük boyutlar, önemli ölçüde daha fazla görüntü belirteci gerektirir ve bu da artan maliyete ve potansiyel olarak daha yüksek gecikme süresine (daha uzun yanıt süreleri) yol açar.
Önemli: Ayrıca, isteminiz tarafından tüketilen giriş metin belirteçlerini de hesaba katmalısınız. İstek başına toplam maliyet, hem giriş istemi belirteçlerine hem de oluşturulan görüntü belirteçlerine dayanmaktadır.
Metin ve görüntü belirteci başına kesin, güncel fiyatlandırma için, her zaman resmi OpenAI fiyatlandırma sayfasına başvurun: https://openai.com/pricing.
İçerik Denetimi:
OpenAI, güvenlik ve sorumlu kullanım sağlamak için tüm giriş istemlerini ve oluşturulan görüntüleri içerik politikasına göre filtreler. gpt-image-1
'i kullanırken, isteğe bağlı moderation
parametresi aracılığıyla denetim sıkılığı üzerinde bir miktar kontrole sahipsiniz:
auto
(Varsayılan): Belirli potansiyel olarak yaşa uygun olmayan içerik kategorilerinin oluşturulmasını sınırlamayı amaçlayan standart filtreleme uygular.low
: Daha az kısıtlayıcı filtreleme uygular.
Uygulamanızın bağlamına ve kullanıcı tabanına uygun ayarı seçerken, OpenAI'nin kullanım politikalarına uyun.
OpenAI Image Generation API'sini (gpt-image-1
) Nasıl Kullanılır?
Bu bölüm, resmi openai
Python kitaplığı aracılığıyla gpt-image-1
modeliyle OpenAI Image Generation API'sini nasıl kullanacağınızı gösteren kapsamlı kod parçacıkları sağlar.
Önkoşullar ve Kurulum
Bir OpenAI hesabınız ve API anahtarınız olduğundan emin olun. Gerekli kitaplıkları yükleyin:
pip install --upgrade openai pillow
Gerekli modülleri içe aktarın ve istemciyi başlatın (OPENAI_API_KEY
ortam değişkenini otomatik olarak kullanır):
import os
import base64
from io import BytesIO
from openai import OpenAI
from PIL import Image # b64_json işleniyorsa görüntü işleme için
# İstemciyi başlat
client = OpenAI()
# API anahtarının ortam değişkeni olarak ayarlandığından emin olun veya şununla başlatın:
# client = OpenAI(api_key="YOUR_API_KEY")
# Önerilen: Doğrudan işleme için response_format='b64_json' kullanın
# b64_json verilerini işlemek için yardımcı işlev (isteğe bağlı):
def process_b64_json(b64_json_data, output_path):
try:
image_bytes = base64.b64decode(b64_json_data)
image = Image.open(BytesIO(image_bytes))
# İsteğe bağlı: Yeniden boyutlandırma veya diğer işleme
# image = image.resize((512, 512), Image.LANCZOS)
image.save(output_path) # Uzantıdan çıkarılan biçimde kaydeder
print(f"Görüntü {output_path} konumuna kaydedildi")
except Exception as e:
print(f"Görüntü işlenirken hata: {e}")
# Çıktı dizinini oluştur
os.makedirs("generated_images", exist_ok=True)
output_dir = "generated_images"
Görüntü Oluşturma (client.images.generate
)

Metin istemlerinden yeni görüntüler oluşturun. gpt-image-1
, ayrıntılı talimatları izlemede mükemmeldir.
Temel Oluşturma:
prompt_text = """
Bu karakterin gerçekçi bir görüntüsünü oluşturun:
Blobby Alien Character Spec Adı: Glorptak... [yemek kitabından ayrıntılı istemin geri kalanı]
"""
try:
response = client.images.generate(
model="gpt-image-1",
prompt=prompt_text,
size="1024x1024", # Seçenekler: "1024x1024", "1024x1792", "1792x1024", "auto" (yemek kitabı ayrıca "1536x1024", "1024x1536" bahseder)
quality="high", # Seçenekler: "standard", "hd" (API Belgeleri) veya "low", "medium", "high", "auto" (Yemek Kitabı) - API belgeleri standardı aracılığıyla en iyi kalite için 'hd' kullanın.
style="vivid", # Seçenekler: "vivid", "natural" (İsteğe bağlı, gerçekçiliği/dramayı etkiler)
n=1, # Oluşturulacak görüntü sayısı
response_format="b64_json" # Veya "url"
)
# Yanıtı işleyin (yardımcı işlevi kullanarak)
image_b64 = response.data[0].b64_json
output_path = os.path.join(output_dir, "glorptak.png") # PNG olarak kaydet
process_b64_json(image_b64, output_path)
except Exception as e:
print(f"Oluşturma sırasında hata: {e}")
Çıktıyı Özelleştirme:
Yemek kitabı, oluşturma sırasında çıktıyı ince ayar yapmak için ek parametreleri vurgular.
prompt_pixel_cat = "karanlık bir arka plan üzerinde sarışın bir kadın gibi giyinmiş gri bir tekir kedinin piksel sanatı tarzında bir portresini oluşturun."
try:
response = client.images.generate(
model="gpt-image-1",
prompt=prompt_pixel_cat,
size="1024x1536", # Portre yönlendirmesi
quality="low", # Daha düşük kalite ayarı (yemek kitabından)
output_format="jpeg", # JPEG çıktısı isteyin
output_compression=50, # JPEG sıkıştırma düzeyi (0-100)
response_format="b64_json",
n=1
)
# Yanıtı işleyin
image_b64 = response.data[0].b64_json
output_path = os.path.join(output_dir, "pixel_cat.jpeg")
process_b64_json(image_b64, output_path)
except Exception as e:
print(f"Özel oluşturma sırasında hata: {e}")

Şeffaf Arka Plan:
output_format="png"
veya "webp"
kullanın ve background="transparent"
ayarlayın. İsteme "şeffaf arka plan" eklemek de bunu otomatik olarak tetikleyebilir (yemek kitabına göre).
prompt_transparent_hat = "şeffaf bir arka plan üzerinde pembe bir tüy kalemli yeşil bir kova şapkasının piksel sanatı tarzında bir resmini oluşturun."
try:
response = client.images.generate(
model="gpt-image-1",
prompt=prompt_transparent_hat,
size="1024x1024",
quality="low",
output_format="png", # Şeffaflık için gerekli
# background="transparent", # Açıkça ayarlanabilir
response_format="b64_json",
n=1
)
# Yanıtı işleyin
image_b64 = response.data[0].b64_json
output_path = os.path.join(output_dir, "hat_transparent.png")
process_b64_json(image_b64, output_path)
except Exception as e:
print(f"Şeffaf görüntü oluşturulurken hata: {e}")

Görüntüleri Düzenleme (client.images.edit
)
Mevcut görüntüleri bir isteme göre değiştirin. Birden fazla görüntüyü birleştirebilir veya maskeler kullanabilirsiniz. Görüntü dosyalarının ikili okuma modunda ('rb'
) açılmasını gerektirir.
Birden Fazla Görüntüyü Birleştirme/Düzenleme (Yemek Kitabı Örneği):
image
parametresine açılmış dosya nesnelerinin bir listesini sağlayın.
prompt_combine = "Kedinin şapkayı taktığını ve hala piksel sanatı tarzında bir ağaçta tüneklediğini göstermek için görüntüleri birleştirin."
cat_image_path = os.path.join(output_dir, "pixel_cat.jpeg") # Var olduğu varsayılır
hat_image_path = os.path.join(output_dir, "hat_transparent.png") # Var olduğu varsayılır
img1_file = None
img2_file = None
try:
img1_file = open(cat_image_path, "rb")
img2_file = open(hat_image_path, "rb")
response = client.images.edit(
model="gpt-image-1",
image=[img1_file, img2_file], # Dosya nesnelerinin listesini geçin
prompt=prompt_combine, # İstenen birleştirilmiş sonucu açıklayın
size="1024x1536", # İstenen çıktı boyutuyla eşleşin
response_format="b64_json",
n=1
)
# Yanıtı işleyin
image_b64 = response.data[0].b64_json
output_path = os.path.join(output_dir, "cat_with_hat.jpeg")
process_b64_json(image_b64, output_path)
except FileNotFoundError:
print("Hata: Giriş görüntü dosyası(ları) bulunamadı.")
except Exception as e:
print(f"Görüntü birleştirme/düzenleme sırasında hata: {e}")
finally:
# ÖNEMLİ: Dosyaları kapatın
if img1_file: img1_file.close()
if img2_file: img2_file.close()

Bir Maske ile Düzenleme:
Tek bir temel image
ve bir mask
dosyası (alfa kanallı PNG) sağlayın. İstek, maskelenmiş alanı dikkate alarak istenen nihai görüntüyü açıklar.

Adım 1: Maske Elde Edin/Oluşturun: Birini manuel olarak oluşturabilir veya API'nin kendisini kullanabilirsiniz.
# --- Kod Parçacığı: API aracılığıyla S&B Maskesi Oluşturma (Yemek Kitabından) ---
base_image_path = os.path.join(output_dir, "glorptak.png") # Var olduğu varsayılır
mask_prompt = "resimdeki tüm karakteri sınırlayan, karakterin olduğu yerde beyaz ve arka plan için siyah kullanan bir maske oluşturun. Giriş görüntüsüyle aynı boyutta bir görüntü döndürün."
bw_mask_output_path = os.path.join(output_dir, "glorptak_mask_bw.png")
img_input_file = None
try:
img_input_file = open(base_image_path, "rb")
mask_gen_response = client.images.edit( # Evet, düzenleme uç noktası maskeler oluşturabilir
model="gpt-image-1",
image=img_input_file,
prompt=mask_prompt,
size="1024x1024", # Giriş boyutuyla eşleşin
response_format="b64_json"
)
# Oluşturulan S&B maskesini kaydedin
mask_b64 = mask_gen_response.data[0].b64_json
process_b64_json(mask_b64, bw_mask_output_path)
except Exception as e:
print(f"Maske oluşturulurken hata: {e}")
finally:
if img_input_file: img_input_file.close()

Adım 2: S&B Maskesini Alfa Maskesine Dönüştürme (Yemek Kitabından): API, maskenin bir alfa kanalına sahip olmasını gerektirir.
# --- Kod Parçacığı: Maske için Alfa Kanalı Oluşturma ---
bw_mask_path = os.path.join(output_dir, "glorptak_mask_bw.png") # Var olduğu varsayılır
alpha_mask_path = os.path.join(output_dir, "glorptak_mask_alpha.png")
try:
mask = Image.open(bw_mask_path).convert("L") # Gri tonlamalı olarak yükle
mask_rgba = mask.convert("RGBA") # RGBA'ya dönüştür
mask_rgba.putalpha(mask) # Alfa için gri tonlamalı yoğunluğu kullan
mask_rgba.save(alpha_mask_path, format="PNG") # PNG olarak kaydet
print(f"Alfa maskesi {alpha_mask_path} konumuna kaydedildi")
except FileNotFoundError:
print(f"Hata: S&B maskesi {bw_mask_path} konumunda bulunamadı")
except Exception as e:
print(f"Alfa maskesi oluşturulurken hata: {e}")
Adım 3: Maskelenmiş Düzenlemeyi Gerçekleştirin: Temel görüntüyü ve alfa maskesini kullanın.
# --- Kod Parçacığı: Alfa Maskesi ile Düzenleme ---
base_image_path = os.path.join(output_dir, "glorptak.png") # Var olduğu varsayılır
alpha_mask_path = os.path.join(output_dir, "glorptak_mask_alpha.png") # Var olduğu varsayılır
edit_prompt_masked = "Renkli bir galaksi arka planında, çok sayıda yıldız ve gezegenle garip bir karakter."
masked_edit_output_path = os.path.join(output_dir, "glorptak_masked_edit.jpeg")
img_input_file = None
mask_alpha_file = None
try:
img_input_file = open(base_image_path, "rb")
mask_alpha_file = open(alpha_mask_path, "rb") # Alfa maskesini kullanın
response = client.images.edit(
model="gpt-image-1",
image=img_input_file,
mask=mask_alpha_file, # Alfa maskesi dosyasını sağlayın
prompt=edit_prompt_masked,
size="1024x1024",
response_format="b64_json",
n=1
)
# Yanıtı işleyin
image_b64 = response.data[0].b64_json
process_b64_json(image_b64, masked_edit_output_path)
except FileNotFoundError:
print("Hata: Temel görüntü veya alfa maskesi dosyası bulunamadı.")
except Exception as e:
print(f"Maskelenmiş düzenleme sırasında hata: {e}")
finally:
if img_input_file: img_input_file.close()
if mask_alpha_file: mask_alpha_file.close()

Görüntü Varyasyonları Oluşturma (client.images.create_variation
)
Mevcut bir görüntünün varyasyonlarını oluşturun. Yemek kitabı örneğinde kapsanmamıştır ancak API aracılığıyla mevcuttur.
base_image_for_variation_path = os.path.join(output_dir, "glorptak.png") # Var olduğu varsayılır
variation_output_path_template = os.path.join(output_dir, "glorptak_variation_{i}.png")
img_input_file = None
try:
img_input_file = open(base_image_for_variation_path, "rb")
response = client.images.create_variation(
model="gpt-image-1", # Varsayılandan (DALL-E 2) farklıysa modeli belirtin
image=img_input_file, # Temel görüntü dosyası nesnesi
n=2, # Oluşturulacak varyasyon sayısı
size="1024x1024", # Varyasyonlar için istenen boyut
response_format="b64_json"
)
# n > 1 ise birden fazla sonucu işleyin
for i, data_item in enumerate(response.data):
image_b64 = data_item.b64_json
output_path = variation_output_path_template.format(i=i+1)
process_b64_json(image_b64, output_path)
print(f"Oluşturulan {len(response.data)} varyasyon.")
except FileNotFoundError:
print(f"Hata: Temel görüntü {base_image_for_variation_path} konumunda bulunamadı")
except Exception as e:
print(f"Varyasyonlar oluşturulurken hata: {e}")
finally:
if img_input_file: img_input_file.close()
Bu kod parçacıkları, resmi openai
kitaplığını kullanarak gpt-image-1
için yemek kitabında ve API belgelerinde gösterilen temel işlevleri kapsar. Tam uygulamanızda hataları uygun şekilde ele almayı ve dosya kaynaklarını (dosyaları kapatma) yönetmeyi unutmayın.
gpt-image-1 API Çıktı Boyutunu, Kalitesini ve Biçimini Özelleştirin
gpt-image-1
API'si, format, kalite, boyutlar ve arka plan şeffaflığı dahil olmak üzere, oluşturulan görüntü çıktısını özel ihtiyaçlarınıza göre ince ayar yapmak için çeşitli parametreler sunar.
Bu gpt-image-1
API parametrelerini kullanarak oluşturulan görüntüleri optimize edin:
size
: Görüntü boyutları. Belirteç maliyetini ve gecikme süresini etkiler.
- Seçenekler:
"1024x1024"
(Kare, Varsayılan),"1024x1536"
(Manzara),"1536x1024"
(Portre),"auto"
.
quality
: İşleme detayı ve belirteç maliyeti.
- Seçenekler:
"low"
,"medium"
,"high"
,"auto"
(Varsayılan). (API belgelerindeki"hd"
muhtemelen"high"
ile eşleşir). Daha yüksek kalite, önemli ölçüde daha fazla belirteç kullanır.
output_format
: Döndürülen b64_json
verileri için dosya türü.
- Seçenekler:
"png"
(Varsayılan, şeffaflığı destekler, kayıpsız),"jpeg"
(kayıplı, şeffaflık yok),"webp"
(modern, şeffaflığı destekler, iyi sıkıştırma).
output_compression
(yalnızca jpeg
/webp
için): Kalite/boyut değişimi (0=maksimum sıkıştırma, 100=minimum sıkıştırma). Örnek: output_compression=75
.

gpt-image-1 ile Şeffaf Arka Plan Görüntüsü Oluşturun
background
: Şeffaflık için "transparent"
olarak ayarlayın.
output_format="png"
veya"webp"
gerektirir.quality="medium"
veya"high"
ile en iyi sonucu verir.- İstemde "şeffaf arka plan"dan bahsetmek de bunu etkinleştirebilir.
Örnek: Yüksek Kaliteli Şeffaf WebP Görüntüsü Oluşturma:
from openai import OpenAI
import base64, os
client = OpenAI()
output_dir = "generated_images"; os.makedirs(output_dir, exist_ok=True)
try:
result = client.images.generate(
model="gpt-image-1",
prompt="Stilize bir roket gemisinin vektör sanatı simgesi, şeffaf arka plan",
size="1024x1024",
quality="high", # Daha iyi şeffaflık için daha yüksek kalite
output_format="webp", # WebP, ş