Kurs
BytePlus, en yeni görsel üretim modeli Seedream 4.5’i yayınladı. ByteDance’in kurumsal teknoloji kolu olarak şirket, TikTok gibi platformların arkasındaki yeniliklerden güç alarak dünya çapındaki işletmelere ileri düzey yapay zeka yetenekleri sunuyor.
Bu yazıda, Seedream 4.5’i Python ile nasıl kullanacağınızı, API’sini entegre ederek programatik olarak görseller üretmeyi öğreteceğim.
Seedream gibi görsel üretim modellerinin arkasındaki teknolojiyi kavramak için Generative AI Concepts kursunu öneririm. Başka görsel üretim modelleri de ilginizi çekiyorsa, Google’ın Nano Banana 2 rehberimize göz atın.
Seedream 4.5 nedir
Seedream 4.5, BytePlus’un yapay zeka görsel üretim modelinin en yeni sürümüdür.
Bu sürüm, konu tutarlılığını artırır, küçük metin ayrıntılarını keskinleştirir ve çoklu görsel harmanlamayı iyileştirir. Ayrıca yönergeyi daha iyi anlama, daha güçlü uzamsal akıl yürütme ve daha gelişmiş mantıksal çıkarım yeteneklerine sahiptir.
Model, yüksek kaliteli 4K görseller de üretebiliyor; bu, rakip modellerin yüksek çözünürlüklü görseller üretmekte sıklıkla zorlandığı düşünüldüğünde memnuniyet verici bir gelişme. Maliyet açısından da rekabetçi; görsel başına sadece 4 sentten üretim yapılabiliyor.
ByteDance’in yeni video üretim modeli Seedance 2.0 ile ilgili makalemize de göz atmayı unutmayın.
Seedream 4.5 API Kurulumu
Daha fazla uzatmadan, Seedream 4.5 API ile başlayalım.
API anahtarı oluşturma
Seedream 4.5’i Python ile API üzerinden kullanmak için önce bir API anahtarı oluşturmamız gerekiyor.
-
Resmi sitelerine gidin, sağ alttaki Get API butonuna tıklayın ve oturum açın.
-
Oturum açtıktan sonra sağ üstte bir Access API butonu göreceksiniz. Tıklayın ve API anahtarını oluşturun. API anahtarı oluşturmak için telefon numaranızı doğrulamanız ve fatura bilgisi vermeniz gerekir. Ancak bu bir abonelik değildir; aylık ücret ödemezsiniz. Yalnızca API istekleriniz ücretlendirilir.
-
Python kodunu yazdığımız klasörde
.envadlı bir dosya oluşturun ve anahtarı şu formatta içine kopyalayın:
ARK_API_KEY=<paste_key_here>
Modeli kullanmadan önce, BytePlus ModelArk konsolunda da etkinleştirdiğinizden emin olun. Bu işlem API anahtarından ayrı yapılır. Şöyle yapın:
-
Sol kenar çubuğunda Model activation bölümüne gidin.
-
Ortadaki alanda doğru model kategorisi olarak Media’yı seçin.
-
Sağ tarafta,
ByteDance-Seedream-4.5modelinin bulunduğu satırda Activate’a tıklayın. -
Açılan pencerede onaylayın.
Python bağımlılık kurulumu
Seedream 4.5 API ile etkileşim kurmak için birkaç Python paketi yüklüyoruz:
-
byteplussdkarkruntime: BytePlus Python SDK’sının bir parçası olan ve Seedream 4.5’e API isteği göndermemizi sağlayan resmi Python paketi. -
.envdosyasından API anahtarını yüklemek, asenkron HTTP istekleri ve ayar doğrulaması için birkaç yardımcı paket.
Bu paketleri şu komutla yüklüyoruz:
pip install byteplus-python-sdk-v2 python-dotenv httpx requests typing_extensions pydantic
Seedream 4.5 ile Görsel Üretme
Metin isteminden bir görsel üretmeyi öğrenerek başlayalım. GPT-Image-1 veya Grok Imagine gibi diğer Python AI API eğitimlerimizi okuduysanız, muhtemelen tipik iş akışına zaten aşinasınızdır:
-
Paketleri içe aktarın.
-
API anahtarını
.envdosyasından yükleyin. -
Resmi API paketiyle bir istemci oluşturun.
-
API isteğini gönderin.
Seedream 4.5 de tam olarak bu şekilde çalışır. İşte görsel üretmek için örnek bir betik.
# 1. Gerekli paketleri içe aktarın
from dotenv import load_dotenv
from byteplussdkarkruntime import Ark
import os
# 2. API anahtarını yükleyin
load_dotenv()
# 3. İstemciyi oluşturun
client = Ark(
base_url="https://ark.ap-southeast.bytepluses.com/api/v3",
api_key=os.getenv("ARK_API_KEY"),
)
# 4. API isteğini gönderin
prompt = """
Photorealistic anthropomorphic animals hanging out in a coffee shop with no humans.
"""
imagesResponse = client.images.generate(
model="seedream-4-5-251128",
prompt=prompt,
watermark=False,
)
image_url = imagesResponse.data[0].url
print(image_url)
Bu örnekte kullandığımız istem şuydu:
Photorealistic anthropomorphic animals hanging out in a coffee shop with no humans.
Modelin ürettiği görsel şöyleydi:

Üretilen görseli indirme
Yukarıdaki betik, üretilen görselin URL’sini terminalde gösterir. Bu en kullanışlı iş akışı değildir. Daha iyi bir alternatif, üretilen görseli yerel klasörümüze indiren bir fonksiyon oluşturmaktır.
import requests
from urllib.parse import urlparse
import os
def download_image(url):
try:
response = requests.get(url, stream=True)
response.raise_for_status()
parsed_url = urlparse(url)
filename = os.path.basename(parsed_url.path)
if not filename:
filename = "downloaded_image"
with open(filename, "wb") as f:
for chunk in response.iter_content(1024):
f.write(chunk)
print(f"Image saved to: {filename}")
except Exception as e:
print(f"Error downloading image: {e}")
utils.py adlı yeni bir betik oluşturup bu fonksiyonu oraya koymanızı öneririm. Ardından görseli üreten betikte şu kodu ekleyerek görseli indirebiliriz:
import utils
utils.download_image(image_url)
Görsel boyutunu belirtme
Önceki örneklerde, watermark dışında Seedream 4.5’in varsayılan parametreleri kullanıldı; filigranı gizlemek için False olarak ayarladık.
Seedream 4.5, çıktı görselinin boyutlarını size parametresiyle belirtmek için iki yöntem sunar.
İlk yöntem, oluşturulacak görselin çözünürlüğünü "2K" veya "4K" olarak belirlemek ve en-boy oranını, biçimini veya amacını istemde doğal dilde tarif etmektir; model genişlik ve yüksekliği kendisi belirler. Varsayılan değer "2K"’dır.
Örnek:
prompt = """
Portait Instagram image to be used to promote travel to Tokyo, Japan.
"""
imagesResponse = client.images.generate(
model="seedream-4-5-251128",
prompt=prompt,
size="4K",
watermark=False,
)
Alternatif olarak, görselin boyutunu piksel cinsinden "3750x1250" gibi bir dizeyle belirtebiliriz; ancak iki kurala uymalıyız:
- Toplam piksel (genişlik × yükseklik) 3,6 milyon ile 16,7 milyon arasında olmalıdır.
- En-boy oranı (genişlik ÷ yükseklik) 1/16 ile 16 arasında olmalıdır.
Yalnızca bir kural sağlanırsa, boyut geçerli değildir. Bu hesapları yapmak zorunda kalmamak için yukarıdaki çözünürlük yöntemini veya aşağıdaki geçerli boyutlardan birini kullanmanızı öneririm:

Toplu üretim
Seedream 4.5, tematik olarak ilişkili bir görsel seti üretmek için kullanılabilen bir toplu üretim moduna sahiptir. Örneğin, bir storyboard veya ortak bir konu etrafında görseller üretmek için faydalıdır.
Toplu görsel üretmek için API isteğine sequential_image_generation ve sequential_image_generation_options parametrelerini sağlamamız gerekir. İşte 4 görsel üretmek için bir örnek:
from byteplussdkarkruntime.types.images.images import SequentialImageGenerationOptions
prompt = """
Generate a series of four visually coherent and stylistically consistent images illustrating these stages of a human life: Child, Adolescent, Adult, and Elderly. Make sure it's the same person in the four images.
"""
imagesResponse = client.images.generate(
model="seedream-4-5-251128",
prompt=prompt,
size="2K",
sequential_image_generation="auto",
sequential_image_generation_options=SequentialImageGenerationOptions(max_images=4),
response_format="url",
watermark=False
)
Toplu üretim kullandığımızda, tüm görselleri içeren farklı bir yanıt formatı alırız. Bu görseller üzerinde yineleme yapıp şöyle indiririz:
# Tüm görsel verileri üzerinde yineleyin
for image in imagesResponse.data:
utils.download_image(image.url)
Bunu şu istemle denedim:
Generate a series of four visually coherent and stylistically consistent images illustrating these stages of a human life: Child, Adolescent, Adult, and Elderly. Make sure it's the same person in the four images.
Ancak nedense dördüncü görsel her seferinde tutarlılığı bozdu ve bir kadın olarak çıktı (birkaç kez denedim).

Farklı sayıda görsel üretmek için API isteğindeki max_images değerini değiştiririz. Bu sayı 1 ile 15 (dahil) arasında herhangi bir tamsayı olabilir. Örneğin 6 görsel üretmek için şöyle yaparız:
imagesResponse = client.images.generate(
model="seedream-4-5-251128",
prompt=prompt,
size="2K",
sequential_image_generation="auto",
sequential_image_generation_options=SequentialImageGenerationOptions(max_images=6),
response_format="url",
watermark=False
)
Metin üretimi
Seedream 4.5’in metin üretme yeteneğini test edelim. Testte, istediğim metni açıkça belirtmeden matematiksel bir ispatın yer aldığı bir görsel üretebilip üretemeyeceğini görmek istedim. Bu aynı zamanda modelin bağlamı anlama yeteneğini de sınar.
Kullandığım istem şuydu:
Generate an image of a math professor standing in front of a blackboard. On the blackboard, there is a written proof that the square root of 2 is irrational.
Sonuç şöyle:

Sonuçtan oldukça memnun kaldım. İspat doğru olmakla kalmadı, model büyük miktarda metni de doğru şekilde işleyebildi.
Seedream 4.5 ile Görsel Düzenleme
Bu bölümde görselleri nasıl düzenleyeceğimizi öğreniyoruz. Seedream 4.5 ile bir görseli düzenlemenin en basit yolu, image parametresiyle görsel URL’sini vermek ve değişiklikleri istemde açıklamaktır.
Tam bir betik örneği:
from dotenv import load_dotenv
from byteplussdkarkruntime import Ark
import os
import utils
load_dotenv()
client = Ark(
base_url="https://ark.ap-southeast.bytepluses.com/api/v3",
api_key=os.getenv('ARK_API_KEY'),
)
image = "https://images.pexels.com/photos/34408249/pexels-photo-34408249.jpeg"
prompt = """
Make in snowy.
"""
imagesResponse = client.images.generate(
model="seedream-4-5-251128",
prompt=prompt,
image=image,
response_format="url",
watermark=False,
size="1664x2496"
)
image_url = imagesResponse.data[0].url
utils.download_image(image_url)
Bu örnekte, Michael Fischer’ın Pexels’te herkese açık bir fotoğrafını kullandım ve Seedream 4.5 ile kış manzarasına çevirdim.
Elde ettiğim sonuç:

Yukarıdaki örnekte, giriş görselinin en-boy oranına uyması için çıktının boyutunu "1664x2496" olarak açıkça belirttiğimize dikkat edin. Çoğu yapay zekâ görsel modelinin aksine, Seedream 4.5 girdiyle aynı boyutlarda otomatik olarak üretmez. Boyut parametresini atladığımda çıktı kare oldu.
Yerel görselleri düzenleme
Bir görsel URL’si kullanmak, Seedream 4.5’e görsel vermenin en kolay yoludur. Ancak görsel zaten barındırılmıyorsa zahmetli olabilir.
Seedream API’sı yerel bir görseli de kolayca kullanmamıza izin verir. Bunun için görseli base64 olarak yüklememiz gerekir. İşte bunu yapan bir fonksiyon:
import mimetypes
import base64
def load_image_as_base64(file_path):
mime_type, _ = mimetypes.guess_type(file_path)
if mime_type is None or not mime_type.startswith("image/"):
raise ValueError("File is not a recognized image type")
with open(file_path, "rb") as f:
encoded = base64.b64encode(f.read()).decode("utf-8")
return f"data:{mime_type};base64,{encoded}"
Bunu, görsel indirme fonksiyonunu da içeren utils.py dosyasına eklemenizi öneririm; böylece ana betikte kolayca kullanılır.
Diyelim ki aynı klasörde motard.jpeg adlı yerel bir görselimiz var. Bu görseli şöyle yükleyip düzenleyebiliriz:
image = utils.load_image_as_base64("motard.jpeg")
prompt = """
Remove the sunglasses and add a helmet.
"""
imagesResponse = client.images.generate(
model="seedream-4-5-251128",
prompt=prompt,
image=image,
response_format="url",
watermark=False
)

Çoklu görsel girdisiyle düzenleme
Seedream 4.5 birden fazla görsel girdisini destekler. Bunlar, bu görsellerin tarzlarını ve görsel unsurlarını harmanlayarak yeni bir görsel üretmek için kullanılabilir.
Bir API isteğinde birden fazla görsel sağlamak, görselleri bir liste olarak göndermek kadar basittir. İşte bir kişiye ait görsel ile bir kıyafeti birleştirip kişinin kıyafeti giydiği bir görsel üreten örnek:
image1 = utils.load_image_as_base64("woman.jpeg")
image2 = utils.load_image_as_base64("outfit.jpeg")
prompt = """
Make the woman from image 1 wear the outfit in image 2.
"""
imagesResponse = client.images.generate(
model="seedream-4-5-251128",
prompt=prompt,
image=[image1, image2],
response_format="url",
watermark=False,
)

Bu örnek, Seedream 4.5’in yüzleri koruma konusunda oldukça başarılı olduğunu gösteriyor; nihai görseldeki kişi hâlâ orijinaline çok benziyor. Diğer modellerin çoğu bu konuda geride kalma eğilimindedir.
Çoklu görsel çıktısıyla düzenleme
Yukarıda öğrendiğimiz toplu işlevsellik, toplam görsel sayısının (girdiler + çıktılar) 15’i aşmaması koşuluyla görsel düzenlemede de çalışır. Örneğin, bir görselden hareketle birden fazla varyasyon üretmek için çok kullanışlıdır.
Bunu yapmak için, görüntü parametresini yukarıda öğrendiğimiz toplu üretim parametreleriyle birleştiririz. İşte bir istek örneği:
prompt = """
Use the given logo to create a visual design system for an outdoor hiking brand,
including backpack, hat, and shoes.
"""
image = utils.load_image_as_base64("logo.jpeg")
imagesResponse = client.images.generate(
model="seedream-4-5-251128",
prompt=prompt,
size="2K",
image=image,
sequential_image_generation="auto",
sequential_image_generation_options=SequentialImageGenerationOptions(max_images=3),
response_format="url",
watermark=False
)
Maskeleme
Bazı yapay zekâ görsel üretim modelleri, düzenlemek istedikleri alanları belirtmek için kullanıcıların siyah-beyaz bir görsel maskesi sağlamasına izin vererek maskelemeyi destekler. Ancak Seedream 4.5, yerleşik maskeleme parametrelerini yerel olarak desteklemez.
Yine de denedim: maskeyi bir giriş görseli olarak verip, istemde ne istediğimi belirterek anlayıp benzer sonucu taklit edip edemeyeceğini görmek istedim:

Bu örnekte işe yaradı; ancak modelin yerleşik bir özelliği olmadığı için çok güvenilir değil. Örneğin, aynı yöntemi köpek eklemek için denediğimde işe yaramadı.
Seedream 4.5 En İyi Uygulamalar
Gördüğümüz gibi, Seedream 4.5 iyi bir performans ve birkaç hoş özellik sunuyor. Ondan en iyi şekilde yararlanmak için şu en iyi uygulamaları aklınızda tutun.
Temel istem yönergeleri
Seedream 4.5’ten en iyi görsel üretim sonuçları için, ne istediğinizi, neden istediğinizi ve üslubun nasıl olacağını kısa ve net şekilde yanıtlayın:
- Konu, eylem ve ortamı yalın bir dille açıklayın.
- Amaç/kullanım senaryosunu belirtin (logo, afiş, storyboard, UI, vb.).
- Stili kesin anahtar kelimelerle veya bir referans görselle kontrol edin.
- Uzun sıfat listeleri yerine kısa ve kesin istemleri tercih edin.
- Görselde yer alması şart olan metni çift tırnak içine alın.
Görsel düzenleme yönergeleri
Görselleri düzenlerken, tam olarak hangi değişiklikleri yaptığınızı ve nelerin aynı kalması gerektiğini belirtin. Eylemleri tanımlamak için şu dört kelimeyi kullanın:
- Ekle
- Kaldır
- Değiştir
- Modifiye et
Sahne karmaşıksa, bölgeleri işaretlemek için görsel ipuçları (oklar, kutular, karalamalar) kullanmak modele yardımcı olabilir.
Kimlik, stil veya ürün özelliklerini korumak için bir referans görsel kullandığınızda, daima şunları belirtin:
- Referans hedefi: neyin çıkarılacağı/korunacağı (ör. karakter tasarımı, malzeme, stil).
- Üretilen sahne: nerede/nasıl kullanılacağı (yerleşim, ortam, gerçekçilik, boyut, konum).
Toplu üretim yönergeleri
Birden fazla giriş görseli kullanırken rolleri açıkça atayın:
- Hangisi konuyu, hangisi kıyafet/stil/arka planı sağlıyor?
- Görsellere görsel 1, görsel 2 vb. diye atıfta bulunun.
Modelde kaç görsel istediğimizi belirtmek için parametreler olsa da, istemde de ne istediğimizi netleştirmek daha iyidir:
- “Bir seri”, “bir set” isteyin veya tam sayıyı belirtin.
- Storyboard’lar, çizgi romanlar, tutarlı marka setleri, emoji paketleri vb. için kullanın.
Sonuç
Seedream 4.5, Nano Banana gibi üst düzey modellerle omuz omuza duran, benzer doğruluk, yönergeye uyum ve görseller arası tutarlılık sunarken maliyet etkin kalan olgun, üretime hazır bir görsel üretici olarak öne çıkıyor.
Pratikte API’nin ne kadar kullanışlı hissettirmesi dikkatimi çekti: aynı generate uç noktası tek atımlık üretimi, düzenlemeleri (URL veya base64 ile), çoklu görsel harmanlarını ve ardışık toplu işlemleri yönetiyor; her modu birkaç net isimli parametreyi ayarlayarak etkinleştiriyoruz.
Bununla birlikte, özel bir yenilik getirdiğini düşünmüyorum: kavramsal bir sıçramadan ziyade artık tanıdık hale gelen görsel üretim araç setinin mükemmel, iyi uygulanmış bir yorumu.
İleri Düzey Öğrenme
Bu yürütmenin ardından ivmeyi sürdürmek istiyorsanız, Seedream 4.5 projelerini üretimde akıcı kılan temelleri güçlendirmeyi düşünün.
Kimlik doğrulamalı istekleri ve hata yakalamayı ustalıkla öğrenmek için Introduction to APIs in Python kursuyla başlayın, işlem hatlarınızda yeniden boyutlandırma, birleştirme ve biçim dönüştürmelerini yönetmek için Image Processing in Python ile eşleştirin.
Eğer uygulamalı ML ve araçlara daha resmî bir giriş hedefliyorsanız, AI Engineer kariyer yolu, güvenilir ve ölçeklenebilir yapay zekâ özellikleri sunma iş akışlarını bir araya getirir.
Seedream 4.5 SSS
Seedream 4.5, Nano Banana ile nasıl karşılaştırılır?
Seedream 4.5, maliyet ve görsel kalitesi açısından Nano Banana’nın ilk sürümüyle rekabet edebilse de, yeni sürüm Nano Banana 2 Google’a Seedream 4.5 karşısında avantaj sağlıyor
Yine de Seedream 4.5, yüksek aslına uygunlukta toplu tutarlılık ve fotogerçekçi 4K çıktılarda öne çıkar. Nano Banana ise hızlı uzamsal akıl yürütme ve hassas yerel düzenlemede parlıyor.
Seedream 4.5 yüksek çözünürlüklü görseller üretebilir mi?
Evet, Seedream 4.5 4K görseller üretebilir.
Bir görsel üretmenin maliyeti nedir?
Hem 2K hem 4K görseller, BytePlus ArkRuntime API üzerinden üretildiğinde 0,04 $ tutarındadır.
Seedream 4.5’i kullanmak için abonelik gerekir mi?
Hayır. Seedream 4.5’i BytePlus ArkRuntime API aracılığıyla kullanabilir ve yalnızca ürettiğimiz görseller için ödeme yaparız.
Filigransız görsel üretmek mümkün mü?
Evet, watermark parametresini False yaparak mümkündür.

