Doğru metin ve sayılar için “underdrawing” kullanmak
(samcollins.blog)- underdrawing, sayıların ve metin konumlarının yer aldığı bir taslak görseli önce deterministik bir araçla oluşturup, ardından görüntü üretim modelinin bunun üzerine görsel stil uygulayarak doğruluğu artırdığı bir yöntemdir
- 50 adet basamak taşını spiral biçimde yerleştirip 1’den 50’ye kadar numaralandırma görevinde Gemini 3 Pro ve ChatGPT Images 2, underdrawing olmadan sayıları ve sıralamayı tutarlı biçimde doğru veremedi
- Aynı görevde underdrawing birlikte verildiğinde Gemini 3.0 Pro, numaraları, düğme sayısını ve sırasını, ayrıca spiral biçimini doğru olan bir sonuç üretti
- Uygulama, SVG/HTML gibi araçlarla sayı ve metni istenen konum ve yönde yerleştirip bunu görsel olarak dışa aktardıktan sonra, multimodal görüntü modeline bu görseli ve metin istemini birlikte vermek şeklinde yapılabilir
- Bu yöntem her seferinde kusursuz olmasa da, metin ve sayı yerleşiminin önemli olduğu görsel üretiminde deterministik yerleşim ile üretim modelinin görsel ifade gücünü ayrı ayrı kullanmayı sağlar
Temel bağlam ve uygulama yöntemi
- 100 aşamalı bir macera tahtası görseli üretme sürecinde ortaya çıkan bir örüntüdür ve “önce konturu verip sonra üzerine boyatmak” yaklaşımı olarak özetlenir
-
Deterministik katman
- SVG/HTML görsel olarak kuru kalabilir, ancak matematiksel yerleşim ve hassasiyette güçlüdür
- Sayı ve metni istenen konum ve yöne göre yerleştirip, ilgili pikselleri içeren bir görsel olarak dışa aktarmak yeterlidir
- Biçim olarak SVG, Python, Mermaid gibi istenen araçlar kullanılabilir
-
Üretken katman
- Görüntü üretim modeli görsel olarak etkileyici sonuçlar üretebilir, ancak matematik ve metin konusunda güvenilirliği düşüktür
- Gemini 3.0 Pro gibi görüntü ve metin girdisi alıp görsel çıktısı üretebilen bir multimodal görüntü modeline, underdrawing görseli ile metin istemi birlikte verilir
- Örnek 1. aşama istemi, 50 adet basamak taşını saat yönünün tersine içe doğru spiral biçimde yerleştirip her taşa 1’den 50’ye kadar ardışık numaralar veren bir SVG üretmesini ister
- Örnek 2. aşama istemi ise bu görseli, zanaat çikolataları ve şekerlerin spiral bir yol olarak dizildiği, alçak açıdan çekilmiş eğik fotoğraf tarzı bir claymation dioramaya dönüştürmesini ister
-
Otomasyon ve sınırlamalar
- Claude Code veya Codex her adımı sizin yerinize gerçekleştirebilir
- Sonuçlar iyi olsa da her zaman kusursuz değildir; nihai çıktıda da “71” görünmez
1 yorum
Hacker News görüşleri
LLM’lerin özünde iyi yaptığı ve iyi yapamadığı şeyleri, yani imkansız demek olmasa da temel kısıtlar nedeniyle başarı olasılığı düşük olan işleri daha derinden anlama yönündeki eğilim sevindirici
Bu, yazılım mimarisini insanın belirleyip fonksiyonların implementasyonunu LLM’e bırakma yaklaşımına ya da veri analizinin kendisini yaptırmak yerine SQL sorguları yazdırma yaklaşımına benziyor
Hangi iş birimlerinin LLM’lere uygun olup hangilerinin olmadığını daha net açıklayan bir görev sınıflandırma çerçevesi ve araştırma olsa iyi olurdu; sezgiler yavaş yavaş oluşuyor ama burada hâlâ sık sık tökezleyen çok kişi görüyorum
Önce bir taslak çıkarttırıp sonra her fonksiyonu ayrı ayrı uygulatmak şeklindeydi; animasyon çalışmalarından alınmış bir terimle bu yaklaşımı anlatan blog yazıları da HN’de birkaç kez paylaşılmıştı
Daha 2 yıl önce karakter sayma ya da fonem işleme gibi, “temel kısıtlar” yüzünden imkansız denilen işler artık çoğu zaman araç olmadan da ciddi sorun çıkarmıyor
Görsel üretim prompt’larını her okuduğumda, modelin açıkça görmezden geldiği çok spesifik detaylar görüyorum
Burada da son iki görseldeki çikolata/şekerler zanaatkâr el yapımı hissinden uzak; fazla steril seri üretim ürünü gibi duruyorlar ve perspektif de doğru değil
Model bunların çoğunu görmezden geliyorsa neden bu kadar uzun prompt’lar yazıldığı sorusu akla geliyor
rustic, homemade, amateur gibi ifadeler etiketlemeyle daha iyi eşleşebilir
İlk başta bunu kendi prompt yazma beceriksizliğim sanmıştım ama bu tür uyumsuzluklara dikkat ederek bakmaya başlayınca oldukça sık ortaya çıktıkları görülüyor
Eğer amaç, son örnekteki gibi küçük “düğmelerin” spiral biçimde dizildiği bir görseldiysa, şeker gibi görünmüyor olsa da, Blender’da çok iyi olmayan biri bile bunu bir öğleden sonra içinde yapabilirdi gibi geliyor
AI üretimi görsellerde metin ve sayıları tutarlı biçimde elde etmek için basit bir teknik buldum
Görsel modellerinin bunu zaten yapmıyor olması şaşırtıcı geldiği için, epey faydasını gördüğüm bu yöntemi paylaşmak istedim
Yalnızca SVG’yi temel görsel olarak kullanan aynı tekniği bir süredir kullanıyorum ve iyi çalışıyor
Görsel üretim laboratuvarlarının bunu yakında benimsediğini görebilirim
Kullanıcı, modeli 0-shot çözmeye zorlamak yerine 1-shot veya k-shot biçiminde çözüme yardımcı oluyor
Benzer teknikleri çok etkili şekilde kullandım; alan o kadar yeni ve hızlı ilerliyor ki ortak terminoloji hâlâ eksik gibi, bu yüzden blog yazısı ve örnekler çok faydalı
Yine de bu olgunun daha küçük topluluklarda ya da başka isimlerle daha önce fark edilip anlaşılmış olması da mümkün görünüyor
Bu, doğru yapıya sahip ilk görseli kodla üretip ardından yapılan bir img2img işleminden ibaret
Stable Diffusion’ın ilk günlerinden beri üretici modeller kullandıysanız bu oldukça yaygın ve faydalı bir tekniktir; eskizleri (SVG, el çizimi vb.) geçici bir ControlNet gibi kullanarak model çıktısını yönlendirirsiniz
Eskiden mimari görselleştirmelerde yerleşim kurarken benzer bir yaklaşım kullanıyordum
Kanepe, sandalye ya da başka mobilyaları belirli yerlere koymak istiyorsanız, Poser gibi araçlarla ana “set piece” konumlarını kabaca yerleştiren basit bir sahne oluşturup, oradan bir derinlik haritası üretüp bunu o dönemin SDXL gibi üretici modellerine vererek nesne yerleşimini yönlendirebiliyordunuz
Bu hack kesinlikle “bunu neden ben düşünmedim” dedirten türden bir numara
Bir dahaki sefere görsel üretim beklentimi karşılamadığında kullanabilecek olmak güzel
Sadece performansı bugünkü kadar iyi değildi; bu yüzden bunun neden yeni sayıldığını çok bilmiyorum
Standart karşı argüman şu: LLM gerçekten zeki olsaydı, neden bu iki aşamalı sürecin daha iyi sonuç verdiğini kendi başına keşfedemiyor?
Strateji kurmak, sonucu gözden geçirmek ve yeniden denemek için bunun üstünde bir ajan tipi süreç gerekir
Nano Banana ve gpt-image-2’de bundan biraz var gibi görünüyor; bu, modele kodu tek seferde yazdırmakla, işi araçlarla donatılmış bir ajan altyapısına yaptırmak arasındaki farka benziyor
Çok basit bir ajan bile tek başına ChatGPT’den daha iyi kod üretebilir
Bu tür yöntemler çok uzun zamandır var; derinlik haritası ya da line art kullanarak silüeti kontrol etmeye benziyor
Sonuç bölümündeki “çalışıyor ama aslında pek de çalışmıyor” hissi hoşuma gitti
Tam LLM/üretici yapay zeka çılgınlığına uygun biçimde, çok dar bir örneği tutturmak için karmaşık bir çaba harcanıyor; neredeyse olacakmış gibi görünse de sonunda yine tam olarak olmuyor ve yazı bunu baştan sona gösteriyor
Bir insanın sayıların doğru olup olmadığını kontrol etmesi kolaydır; yanlışsa görseli yeniden üretirsiniz
Bu, modeli hiç kullanmadan görseli baştan yapmaktan birkaç basamak daha kolay
Sık karşılaşılan “bisiklete binen pelikan SVG’si” görevi için ters yönden bir yaklaşım denenebilir diye düşündüm
Modele doğrudan SVG üretmesini söylersek kalitenin düşük olması beklenir
Ama görsel üretim etkileyici gerçekçi görselleri kolayca oluşturabildiğine göre, önce görseli üretip sonra modele bunun üzerinden iz sürdürerek SVG çıkarttırmak, iyi bir bisikletli pelikan SVG’si elde etmenin mantıklı bir yolu olabilir
Sonuçta insanlar da genelde Not Defteri’ne sadece sayılar yazarak SVG sanat eseri üretmiyor; asıl mesele hâlâ onu görsel olarak görmek ve onun üzerine düşünmek
Bu, insanların bir şeyi tam doğru yapmak için izlediği yönteme de benziyor
Bir sanatçıdan, hiçbir düzeltme ya da eskiz yapmadan, büyük dairesel bir taş dizisini tek seferde sırayla numaralandırarak çizmesini isteseniz, yerleşim hataları olması hiç şaşırtıcı olmaz