GPT-4o Görüntü Oluşturma API'si (gpt-image-1) Nasıl Kullanılır

Bu rehber, GPT-4o Image Generation API'sini derinlemesine inceler. Model, özellikler, fiyatlandırma ve Python ile adım adım kullanım.

Efe Demir

Efe Demir

5 June 2025

GPT-4o Görüntü Oluşturma API'si (gpt-image-1) Nasıl Kullanılır

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.

💡
Harika bir API Dokümantasyonu oluşturan harika bir API Test aracı mı istiyorsunuz? Güzel API Dokümantasyonu?

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!
button

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?

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:

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.

quality: İşleme detayı ve belirteç maliyeti.

output_format: Döndürülen b64_json verileri için dosya türü.

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.

Ö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, ş

Explore more

Fathom-R1-14B: Hindistan'dan Gelişmiş Yapay Zeka Muhakeme Modeli

Fathom-R1-14B: Hindistan'dan Gelişmiş Yapay Zeka Muhakeme Modeli

Yapay zeka hızla gelişiyor. FractalAIResearch/Fathom-R1-14B, 14.8 milyar parametreyle matematik ve genel akıl yürütmede başarılı.

5 June 2025

Mistral Code: İşletmeler için En Özelleştirilebilir Yapay Zeka Destekli Kodlama Asistanı

Mistral Code: İşletmeler için En Özelleştirilebilir Yapay Zeka Destekli Kodlama Asistanı

Mistral Code'u keşfedin: Kurumsal kullanıma özel, en özelleştirilebilir yapay zeka destekli kodlama asistanı.

5 June 2025

Claude Code'un 2025'te Yapay Zeka Kodlamasını Nasıl Dönüştürdüğü

Claude Code'un 2025'te Yapay Zeka Kodlamasını Nasıl Dönüştürdüğü

Claude Code, 2025'te yapay zeka destekli kodlamayı nasıl devrimleştiriyor? Özelliklerini, kullanımını ve Windsurf kısıtlamalarından sonra neden popüler olduğunu öğrenin. Geliştiriciler için okunması gereken!

5 June 2025

API Tasarım-Öncelikli Yaklaşımı Apidog'da Uygulayın

API'leri oluşturmanın ve kullanmanın daha kolay yolunu keşfedin