Tum yazilar
Rehber 14 Mart 2025 · BTWorks

AI Karakter Oluşturma Sistemlerinin Perde Arkası

Bir AI modeline 'güzel bir kadın üret' yazmak neden tutarlı sonuç vermiyor? Üretim seviyesinde çalışan bir prompt pipeline'ının arkasındaki mühendislik kararlarını, karşılaşılan zorlukları ve bunlara bulunan çözümleri ele alıyoruz.

AI Karakter Oluşturma Sistemlerinin Perde Arkası

Herhangi bir görsel üretim modeline “güzel bir kadın fotoğrafı üret” yazıldığında ortaya çıkan sonuç bazen tatmin edici, bazen kabul edilemez olur. Ancak asıl sorun kalite değil, tutarsızlık. Her üretimde yüz değişir, cilt tonu farklılaşır, poz başka bir yöne kayar. Aynı karakteri ikinci kez üretmek neredeyse imkansızdır.

E-ticaret gibi alanlarda bu durum doğrudan iş kaybına dönüşür. Bir marka sanal model oluşturup üzerine farklı kıyafetler giydirmek istiyorsa, o modelin her karede aynı kişi olarak tanınabilir kalması gerekir. Bu yazıda, tam olarak bu sorunu çözmek için tasarlanmış bir prompt mühendisliği sisteminin arkasındaki mantığı inceliyoruz.

Tek bir cümle neden yetmiyor

Sezgisel yaklaşım, kullanıcının seçimlerini toplayıp tek bir prompt cümlesine dönüştürmektir:

"A beautiful 25 year old Mediterranean woman with wavy auburn hair, oval face..."

Sorun şu: bu cümle uzadıkça görsel üretim modelleri ortadaki detayları kaybetmeye başlar. Göz rengi belirtilir ama burun tipi atlanır; saç stili tanımlanır ama cilt dokusu görmezden gelinir. Bu, transformer tabanlı modellerin dikkat mekanizmasının doğal bir sonucu — prompt’un başı ve sonu güçlü ağırlık alırken, orta bölüm zayıflar.

Çözüm, prompt’u monolitik bir cümle yerine anlamsal bloklara ayırmaktır:

Blok 1: Özne    → "A high-end editorial studio portrait of a mediterranean woman..."
Blok 2: Yüz    → "Facial features: oval face shape, almond hazel eyes..."
Blok 3: Cilt   → "Skin: medium skin tone with warm undertones..."
Blok 4: Saç    → "Hair: long wavy auburn hair, styled in long waves..."
Blok 5: Vücut  → "Body: athletic body type, tall height."

Her blok, modelin dikkat mekanizmasında ayrı bir bölgeye düşer. Yüz tanımı okunurken saç bilgisi kaybolmaz, çünkü ikisi farklı semantik bloklar halinde etiketlenmiştir.

Ancak bu yapıyı elde etmek için kullanıcının arayüzde yaptığı her seçimin önce yapılandırılmış bir JSON’a çevrilmesi, ardından bu JSON’un blok yapısına dönüştürülmesi gerekir:

UI seçimi → Yapılandırılmış JSON → Blok bazlı prompt → AI modeli

Bu ara katmanın ikinci bir avantajı daha vardır: preset sistemi. Bir “Akdenizli Klasik” yüz preset’i seçildiğinde, o preset’in JSON değerleri — ela göz, Roma tipi burun, kalın kaşlar — doğrudan veri yapısına merge edilir. Kullanıcı sadece değiştirmek istediği alanı override eder, geri kalanı preset’ten gelir.

Kontrollü kısıtlama: kullanıcı seçimini kasıtlı olarak geçersiz kılmak

Bu tür sistemlerdeki en karşı-sezgisel mühendislik kararlarından biri, kullanıcının bazı seçimlerinin bilinçli olarak yok sayılmasıdır.

Somut bir örnek: kullanıcı arayüzde istediği kıyafeti seçebilir, ancak oluşturulan karakter her zaman nötr, minimal bir base kıyafetle üretilir. Bunun sebebi, karakter oluşturma sürecinin tek başına bir son ürün olmaması — bir başlangıç noktası olmasıdır.

Oluşturulan karakter daha sonra Virtual Try-On sistemine girer ve üzerine gerçek kıyafet görselleri giydirilir. Eğer karakter zaten detaylı bir kıyafetle üretildiyse, AI modeli yeni kıyafeti eskisinin üzerine giydirmeye çalışır. Sonuç: yaka çizgileri çakışır, renkler karışır, kumaş dokuları birbirine sızar.

Nötr bir base bu sorunu tamamen ortadan kaldırır:

  • Temiz yüzey — üzerinde başka kıyafet yok, katman çakışması olmaz
  • Nötr renk — alttan yeni kıyafetin tonunu etkilemez
  • Tekrarlanabilirlik — her try-on denemesi aynı base’den başlar

Bu kalıba kodda Lock Pattern denir. Aynı mantık yüz ifadesi için de uygulanır:

"Facial expression is neutral to soft-smile, mouth closed,
eyes looking directly at the camera."

Sebebi geometrik: gülümseme, şaşırma gibi güçlü ifadeler yüz oranlarını değiştirir. Elmacık kemikleri yükselir, göz açıklığı daralır. Bu değişim, sonraki üretimlerde modelin aynı karakteri tanıyamamasına yol açar. Nötr bir ifade, yüz geometrisinin her üretimde sabit kalmasını garanti eder.

Gereksiz bilgiyi çıkarmak neden sonucu iyileştirir

Prompt mühendisliğinin en az tartışılan ama en etkili prensiplerinden biri: söylenmeyenler, söylenenler kadar belirleyicidir.

Somut bir örnek: kullanıcı göz boyutu olarak “medium” seçtiğinde, bu kelime prompt’a eklenmez.

eye_size: "large"  → "large almond dark brown eyes"
eye_size: "medium" → "almond dark brown eyes"     ← "medium" yok

“Medium” zaten varsayılan değerdir. Modele “orta boyutlu” demek, dikkat bütçesinden gereksiz pay almak anlamına gelir. Görsel üretim modellerinde her ek token, diğer token’ların etkisini marjinal olarak azaltır. Bilgi değeri taşımayan bir sıfatı çıkardığınızda, model asıl ayırt edici detaylara — göz şekline, renge — daha fazla kaynak ayırır.

Bu prensip, expression intensity gibi diğer alanlarda da uygulanır: “moderate” değeri atlanır, sadece “subtle” veya “intense” gibi varsayılandan sapan değerler prompt’a dahil edilir.

Kimlik koruma: sistemin en zorlu mühendislik problemi

Poz sistemi, tek bir master görselden farklı açılarda yeni görüntüler üretir. Konsept olarak basit görünür, ancak pratikte sistemin en karmaşık bileşenidir.

Bunun temel nedeni, kullanılan modelin genel amaçlı bir image editing modeli olması — özelleşmiş bir identity preservation modeli değil. Bu durum birkaç riski beraberinde getirir:

  • Yüz kayması — farklı açıda tamamen farklı yüz hatları
  • Cilt tonu değişimi — ışık açısına bağlı renk sapmaları
  • Saç tutarsızlığı — farklı pozda farklı saç rengi veya dokusu
  • Oran bozulması — bel, kalça, omuz oranlarının kayması

Bu sorunları minimize etmek için prompt’un en başına kimlik koruma talimatı yerleştirilir:

"CRITICAL: Ensure the character maintains exactly the same facial features,
skin tone, hair color, and body proportions as the reference image.
This is the same person."

Burada iki teknik iç içe çalışır. Birincisi, CRITICAL etiketi ve büyük harfler — modelin dikkat mekanizmasında bu token’lar daha yüksek ağırlık alır. İkincisi, “This is the same person” ifadesi — teknik bir parametre değil, ama modeli doğru referans çerçevesine yönlendiren güçlü bir bağlamsal ipucu.

Ek olarak, aynı mesaj üç farklı katmanda tekrarlanır:

  1. Prompt başı: genel kimlik talimatı (en güçlü dikkat bölgesi)
  2. Prompt içi: yüz tutarlılığı lock’u — “keep the face calm, neutral, maintain exact facial identity”
  3. Ortam sabitleme: her zaman aynı stüdyo, aynı ışık, aynı base kıyafet

Neden bu kadar tekrar? Çünkü AI modelleri talimatları ağırlıklandırarak işler. Bir direktif ne kadar farklı bağlamda, ne kadar çok kez ifade edilirse, modelin çıktısı üzerindeki etkisi o kadar güçlü olur. Bu tekniğe Paralel Bilgi Yapısı denir.

Kasıtlı olarak var olmayan seçenekler

Poz preset sisteminde bazı klasik fotoğraf pozları bilinçli olarak bulunmaz:

PozNeden yok
OturmaBacak ve bel bölgesi kapanır — kıyafet try-on uyumsuz
Çapraz kolGövde kapanır — kıyafet görünür alanı daralır
Aşırı eğilmeVücut oranları bozulur — kimlik tutarsızlığı riski

Her preset, pipeline’ın sonraki adımıyla — virtual try-on sistemiyle — geriye dönük uyumlu olacak şekilde tasarlanmıştır. Kollar gövdeyi kapatmamalı, tam vücut görünmeli, yüz kameraya dönük olmalı.

Belirleyici soru “bu poz estetik açıdan güzel durur mu?” değil, “bu poz üzerine kıyafet giydirildiğinde pipeline çalışmaya devam eder mi?” sorusudur. Estetik, pipeline bütünlüğünden sonra gelir.

Anchor tekniği: ilk cümle tüm çıktıyı belirler

Prompt’un açılış cümlesi — anchor — modelin tüm üretimini yönlendiren en kritik unsurdur:

"A high-end editorial studio portrait of a [ethnicity] [gender],
approximately [age] years old."

Bu tek cümle modeli eşzamanlı olarak üç eksende kilitler:

Anahtar kelimeYönlendirme
high-end editorialProfesyonel kalite standardı
studio portraitKontrollü stüdyo ortamı
[ethnicity] [gender]Kimlik referans çapası

Anchor her zaman prompt’un ilk satırında yer alır. Ortaya veya sona yerleştirildiğinde etkisi ölçülebilir şekilde düşer — model farklı yorumlara sapmaya başlar.

Aynı mantıkla, kalite talimatı hem başta hem sonda tekrarlanır:

  • Anchor: “high-end editorial studio portrait”
  • Kapanış: “8k resolution, hyper-realistic, authentic skin texture with visible pores, no plastic smoothing”

Özellikle authentic skin texture with visible pores ve no plastic smoothing ifadeleri kritiktir. Bu direktifler olmadan model cildi aşırı yumuşatır ve o tanıdık yapay, plastik görünümü üretir. Gözenek detayını açıkça talep etmek, çıktının gerçekçilik düzeyini belirgin şekilde artırır.

Prompt mühendisliği yazılım mühendisliğidir

Bu sistemin inşasından çıkan temel sonuç şudur: üretim seviyesinde bir AI prompt sistemi, ne söylendiği kadar ne söylenmediğiyle ve kullanıcıya ne söyletilmediğiyle şekillenir.

Kullanıcıya sınırsız özgürlük tanımak sezgisel olarak doğru görünür, ancak pratikte tutarsız ve kullanılamaz sonuçlara yol açar. Kıyafet seçimini geçersiz kılmak, poz seçeneklerini sınırlandırmak, yüz ifadesini sabitlemek — bunların her biri daha iyi çıktı için yapılan bilinçli mühendislik kararlarıdır. Özgürlüğün kısıtlandığı her noktada, tutarlılık garanti altına alınır.

İkinci çıkarım: prompt’u düz metin olarak değil, bir veri yapısı olarak ele almak. JSON schema, preset merge sistemi, blok tabanlı prompt mimarisi — bunlar yazılım mühendisliğinin temel prensiplerinin prompt mühendisliğine uygulanmasıdır. Prompt ne kadar yapısal olursa, çıktı o kadar tahmin edilebilir ve kontrol edilebilir olur.

Sonuç olarak, AI ile tutarlı karakter üretimi bir “iyi prompt yazma” becerisi değil — bir sistem tasarımı problemidir.