Program
Imagen 3, farklı stillerde ayrıntılı sahneleri doğru bir şekilde üretebilen ve görsellerin içine metin dahi yerleştirebilen bir metinden-görüntüye üretim modelidir; bu da onu reklam ve medya içerik üretimi gibi uygulamalar için uygun kılar.
Imagen 3’ü Vertex AI Studio arayüzü üzerinden kullanabilir veya bir API ile doğrudan uygulamalara entegre edebiliriz.
Bu eğitimde, Google Generative API’yi Python ile kullanarak Imagen 3 ile nasıl görsel üreteceğinizi açıklayacağım. Ortamı nasıl kuracağınızı, gerekli kodu nasıl yazacağınızı ve bu teknolojiyi projelerinize nasıl entegre edeceğinizi gösteren pratik örnekler üzerinden ilerleyeceğim. İster uygulamalarınızı dinamik görsellerle zenginleştirmek isteyin ister sadece merakınızı gidermek isteyin, bu rehber Imagen 3’ü programatik olarak anlamak ve kullanmak için doğrudan bir yol sunacaktır.
Yapay Zeka Uygulamaları Geliştirin
Google Generative AI API’sini Kurma
Python’da Imagen 3 ile çalışmaya başlamak için birkaç temel adım izlememiz gerekiyor. İlk olarak bir Google Cloud projesi oluşturacağız. Projemiz hazır olduğunda bir API anahtarı üretmemiz gerekecek. Bu anahtar, Python kodumuzun Imagen 3 servisiyle iletişim kurmasını sağlar.
Google Cloud projesi oluşturma
Google’ın AI API’sini kullanmak için ilk adım bir Google Cloud projesi oluşturmaktır. Süreci birlikte adım adım inceleyelim:
- Google Cloud konsoluna erişin: Google Cloud Console’a giderek başlayalım. Google hesabınızla oturum açmanız gerekecek.
- Proje seçin veya yeni bir proje oluşturun: Konsolda üst gezinme çubuğundaki proje açılır menüsünü bulun. Buna tıklamak, mevcut bir projeyi seçme veya yeni bir tane oluşturma seçeneklerini gösterir. Devam etmek için “New Project” seçeneğini tercih ediyoruz.
- Proje ayrıntılarını girin: Basit bir form temel bilgileri isteyecektir. Proje için herhangi bir ad seçebiliriz; ancak açıklayıcı bir isim seçmek faydalıdır. Gerekirse daha sonra değiştirilebilir. Biz
Imagen-tutorialkullanacağız. Organization alanı boş bırakılabilir.

API anahtarı oluşturma
Google Cloud projesi oluşturulduğuna göre, Google AI Studio’da API key sayfasına giderek bir API anahtarı oluşturabiliriz.
Anahtarı oluşturmak için “Create API key” düğmesine tıklayın:

Açılan pencerede yukarıda oluşturduğumuz projenin adını yazın, seçin ve “Create API key in existing project” seçeneğine tıklayın:

Anahtarı kopyalayın ve Python betiğini yazacağımız aynı klasörde .env adlı bir dosya oluşturun. .env dosyasının içeriği şöyle olmalıdır:
GEMINI_API_KEY=<paste_your_key_here>
Faturalandırma hesabı
API anahtarını şimdi kullanmayı denersek, “Imagen API is only accessible to billed users at this time.” şeklinde bir hata alırız. Bunun nedeni API’nin ücretsiz olmaması ve kullanmadan önce projeyle bir faturalandırma hesabı ilişkilendirmemiz gerekmesidir.
Bu yazı yazılırken, Imagen 3 ile bir görsel oluşturmanın fiyatı 0,03 $. Daha fazla bilgi için fiyatlandırma sayfalarına bakın.
Bir faturalandırma hesabı eklemek için Google AI Studio’da API anahtarının yanındaki “Set up Billing” düğmesine tıklayın.

Bu işlem bizi Google Cloud web sitesine yönlendirecek; burada “Link a billing account” ile mevcut bir faturalandırma hesabını seçebilir veya “Manage billing accounts” ile yeni bir hesap oluşturabilirsiniz.

Diyelim ki hesabımız yok; bu durumda “Manage billing accounts” ile ilerliyoruz. Sayfanın sol üstünde “Create account” düğmesi var. Hesabı oluşturmak için kişisel bilgilerinizi ve ödemeleri işlemek üzere bir kredi kartı bilgisi girmeniz gerekecek.
Python ile Imagen 3 Kullanarak Görsel Oluşturma
Anaconda ile ortam kurulumu
Bu eğitimde, paket yönetimini ve proje kurulumunu kolaylaştırarak Python betiklerini çalıştırmayı basitleştiren popüler bir platform olan Anaconda’yı kullanıyoruz.
Anaconda’yı resmî web sitelerinden kurabiliriz.
Anaconda ortamını kurmak için bir terminal açın ve:
- Bir ortam oluşturun:
conda create -n imagen python=3.9. Bu komut,imagenadlı ve Python 3.9 kullanan bir ortam oluşturur. - Ortamı etkinleştirin:
conda activate imagen. - Google generative AI paketini kurun:
pip install -q -U google-genai. - Oluşturulan görselleri işlemek için bir görüntü işleme paketi kurun:
pip install pillow. - API anahtarını yüklemek için bir paket kurun:
pip install python-dotenv
Paketleri Anaconda kullanmadan doğrudan da kurabiliriz; ancak mevcut paketlerin bazılarıyla yeni paketlerin çakışma riski vardır veya Python kurulumumuz farklı bir Python sürümü kullanıyor olabilir. Anaconda, bu olası sorunları önlemeye yardımcı olur.
İlk görselimizi oluşturma
Artık Imagen 3’ü kullanmaya hazırız. Örneğin gen_image.py adında, .env dosyasıyla aynı klasörde bir Python betiği oluşturun.
Önce gerekli paketleri içe aktarıyoruz:
# Google generative AI:
from google import genai
from google.genai import types
# Packages to process the generated image:
from PIL import Image
from io import BytesIO
# Packages to load the .env file:
import os
from dotenv import load_dotenv
Sonra, API anahtarını .env dosyasından yüklüyoruz:
load_dotenv()
api_key = os.getenv("GEMINI_API_KEY")
Ardından Google generative AI istemcisini başlatıyoruz. Bu nesne, Google API ile iletişim kurmamıza olanak tanır:
client = genai.Client(api_key=api_key)
Bir görsel üretmek için client.models.generate_images() fonksiyonunu kullanıyoruz:
prompt="""
A dog surfing at the beach
"""
response = client.models.generate_images(
model="imagen-3.0-generate-002",
prompt=prompt,
config=types.GenerateImagesConfig(
number_of_images=1,
)
)
Son olarak, Image nesnesini kullanarak oluşturulan görseli görüntülüyoruz:
for generated_image in response.generated_images:
image = Image.open(BytesIO(generated_image.image.image_bytes))
image.show()
İşte sonuç:

Metin üretimi
Imagen 3’ün diğer metinden-görüntüye modellerle karşılaştırıldığında ilginç özelliklerinden biri metin üretebilmesidir. Bunu, taze çay yapraklarıyla “Tea” kelimesini oluşturmasını isteyerek deneyelim:
prompt="""
Word "tea" made from fresh tea leaves, white background
"""
response = client.models.generate_images(
model="imagen-3.0-generate-002",
prompt=prompt,
)
İşte sonuç:

Imagen 3 ile Görsel Oluşturma Seçenekleri
Görsel oluşturma seçenekleri types.GenerateImagesConfig ile sağlanır. Yukarıdaki örnekte yalnızca üretilecek görsel sayısını belirttik:
config=types.GenerateImagesConfig(
number_of_images=1,
)
Bu bölümde, Imagen 3 API’sinin sunduğu diğer seçenekleri inceliyoruz. Daha fazla bilgi için resmî dokümantasyona bakın.
Birden çok görsel oluşturma
number_of_images parametresiyle tek bir istemden birden fazla görsel üretebiliriz. Varsayılan olarak dört görsel üretilir.
Bir çizgi roman için iki görsel üretmeyi deneyelim.
prompt="""
Single comic book panel of two people overlooking a destroyed city.
A speech bubble points from one of them and says: I guess this is the end.
"""
response = client.models.generate_images(
model="imagen-3.0-generate-002",
prompt=prompt,
config=types.GenerateImagesConfig(
number_of_images=2,
)
)
İşte sonuç:

Bu, görsellerde metin üretmenin bir başka örneği. Soldaki görselde istenmeyen fazladan metin olsa da, birden fazla görsel üretebilme sayesinde istenen çıktıyı elde etme şansımızı artırabiliriz. Sağdaki görsel istemimize neredeyse tamamen uyuyor.
En-boy oranını kontrol etme
Varsayılan olarak oluşturulan görseller 1:1 en-boy oranına sahip karedir. Model şu en-boy oranlarını destekler: 1:1, 3:4, 4:3, 9:16 ve 16:9.
Bir telefon arka planı olarak kullanmak için 9:16 bir görsel üretelim:
prompt="""
A drone shot of a river flowing between mountains with a stormy sky.
"""
response = client.models.generate_images(
model="imagen-3.0-generate-002",
prompt=prompt,
config=types.GenerateImagesConfig(
aspect_ratio="9:16",
)
)
İşte sonuç:

Güvenlik seviyesi filtresi
Dokümantasyonda, görsel filtreleme seviyesini belirtmek için safety_filter_level kullanabileceğimiz belirtiliyor. Oluşturulan her görsel, güvensiz olma olasılığını (örneğin, uygunsuz içerik) ölçen bir olasılık puanı alır.
Güvenlik seviyesi filtresini ayarlamak önemlidir; çünkü bu, oluşturulan içeriğin uygun olmasını ve kullanıcı tercihleriyle uyumlu kalmasını sağlayarak çeşitli uygulamalar için güvenli ve saygılı bir ortam yaratmaya yardımcı olur.
Dokümantasyona göre üç seviye desteklenir:
BLOCK_LOW_AND_ABOVE: Düşük olasılık puanında bile görseli engelle.BLOCK_MEDIUM_AND_ABOVE: Yalnızca orta ve yüksek olasılık puanlarına sahip görselleri engelle.BLOCK_ONLY_HIGH: Yalnızca yüksek olasılık puanına sahip görselleri engelle.
Ancak yaptığımız denemelerden sonra, API’nin artık yalnızca BLOCK_LOW_AND_ABOVE seçeneğini desteklediğini gördük. Başka bir seçenek vermek hatayla sonuçlanıyor.
Kişi oluşturma
Modelin insanları üretmesine izin verilip verilmeyeceğini person_generation seçeneğiyle kontrol edebiliriz. İki seçenek sunar:
DONT_ALLOW: İnsan bulunan görseller engellenir.ALLOW_ADULT: İnsan (yalnızca yetişkin) içeren görsellerin üretilmesine izin verir.
Varsayılan seçenek, insanlara izin vermektir. Örneğin, seçeneği insanlara izin vermeyecek şekilde ayarlayıp yemek pişiren birinin görselini üretmeyi denersek, hiçbir görsel alamayız.
prompt="""
A person cooking.
"""
response = client.models.generate_images(
model="imagen-3.0-generate-002",
prompt=prompt,
config=types.GenerateImagesConfig(
person_generation="DONT_ALLOW",
)
)
print(response.generated_images)
Çıktı şöyle olacaktır:
None
Imagen 3 için İyi İstem Yazma
Resmî dokümantasyon, Imagen 3 için kapsamlı bir istem kılavuzu sunuyor; bu nedenle burada tekrar etmeyeceğim. İyi bir istem hazırlamak için temel fikirler şunlardır:
- İstem yazımının temelleri:
- Konu: Betimlemek istediğiniz ana nesneye, kişiye veya sahneye odaklanın.
- Bağlam ve arka plan: Konunun yer aldığı ortamı veya çevreyi tanımlayın.
- Stil: İstediğiniz sanatsal veya fotoğrafik stili belirtin (ör. eskiz, resim, fotoğraf).
- Açıklayıcı dil kullanın: İstenen çıktıyı netleştirmek için ayrıntılı sıfatlar ve bağlam kullanın.
- Belirli stillere atıf yapın: Estetiği yönlendirmek için tanınmış sanatçılardan veya sanat akımlarından yararlanın.
- Görsellerde metin: Metni 25 karakter veya daha azıyla sınırlayın ve ek bilgi sağlamak için belirgin ifadeler kullanın.
- İstem parametrizasyonu: Aynı stilde birden fazla görsel üretmemiz gerekiyorsa, yeniden kullanılabilir bir istem şablonu oluşturmak ve yalnızca değişen kısmı girdi olarak vermek iyi bir fikirdir.
- Fotoğrafçılık: Sonucu etkilemek için kamera ayarlarını, lens türlerini ve ışıklandırmayı belirtin.
- Sanat: “... resmi” gibi tanımlayıcılar veya “... sulu boya resmi” gibi belirli teknikler kullanın.
- Görüntü Kalitesi Değiştiricileri: “high-quality” veya “4K” gibi anahtar kelimeler kullanarak çıktının kalitesini artırın.
- Fotogerçekçi Görseller: Gerçekçiliği artırmak için lens türü ve odak uzaklığı gibi teknik ayrıntıları ekleyin.
Görsel Düzenleme ve Özelleştirme
Imagen 3, görselleri düzenleme ve özelleştirme yeteneklerine de sahiptir. Ne yazık ki bu özellikler hâlâ kilitli ve yalnızca belirli kullanıcılara açıktır.
Örneğin özelleştirme özelliği, bir istemden referans bir görseli özelleştirmemize olanak tanır. Örnek olarak bir kadının fotoğrafı verilmiş ve istem, aynı kişinin portakallar tuttuğu bir görsele dönüştürmüştür.
Bu özellikler ve erişim talep formu hakkında daha fazla bilgi web sitelerinde bulunabilir.
Sonuç
Bu eğitimde, Python ve Google’ın Generative API’sini kullanarak Imagen 3 ile nasıl görseller oluşturulacağını öğrendik. Genel olarak, API ile yaptığım denemelerde elde ettiğim çıktılardan memnun kaldım. Sonuçların yüksek kaliteli olduğunu ve daha az yapay zekâ izi içerdiğini, bu nedenle gerçek görsellerden ayırt etmenin daha zorlaştığını düşünüyorum.
Görsellerde metinle çalışabilmek, marka oluşturma ve pazarlama için kullanışlı. Genel olarak bu modelin iyi performans gösterdiğini düşünüyorum. Keşke tüm özellikleri açık olsaydı; çünkü bence görsel düzenleme, görsel oluşturmadan bile daha kullanışlı.


