- PabloNet, web kamerası görüntüsünü gerçek zamanlı diffusion ile dönüştürüp çerçeve biçimli bir LCD’de gösteren bir cihaz; üretilen görüntülerin bir dizüstü demo’su değil, duvara asılmış fiziksel bir nesne gibi deneyimlenmesini sağlıyor
- Uygulama, StreamDiffusion tabanlı bir sunucu ile Raspberry Pi 5 istemcisi, 10,1 inç ekran, Pi NoIR kamera, kızılötesi aydınlatma ve standart bir çerçevenin birleşiminden oluşuyor
- En büyük kısıt düşük kare hızı; TensorRT ve giriş/çıkış görüntülerini sıkıştırma ile iyileştirme yapılmış olsa da tepki hızını artırmak için hâlâ alan var
- İstenen görsel tarzı yalnızca prompt ile elde etmek zor olduğundan ön işleme filtreleri de denendi; mavi Picasso stili Canny edge detection, mavi renklendirme ve blur birleşimiyle elde edildi
- Ocak 2025 güncellemesinde, HN tepkilerinin ardından siparişler gelince Pi Zero, 3D baskı montaj aparatı, lazer kesim arka panel ve WiFi dongle içeren, gönderime daha uygun ve daha derli toplu bir sürüme dönüştü
Duvara asılı gerçek zamanlı diffusion çerçevesi
- PabloNet, web kamerası girdisini alarak gerçek zamanlı görüntü dönüşümü yapar ve sonucu çerçeve formundaki bir LCD’de gösteren bir cihazdır
- StreamDiffusion’ı dizüstünde çalıştıran ilk deneyler eğlenceliydi, ancak dizüstü form faktörü illüzyonu bozuyor; geçici ve “geeky” hissettiriyordu
- Duvara asılı bir LCD çerçeveye dönüştürüldüğünde ekran, basit bir görüntüleyici değil sürekliliği olan bir nesne gibi davranıyor
- Farklı zamanlarda, ruh hâllerinde, ışık koşullarında, nesnelerle ve arkadaşlarla birlikte yeniden karşılaşılabiliyor
- Yüzler, karanlıkta kızılötesi aydınlatma, nesneler ve arkadaşlarla etkileşim örnek videoları yer alıyor
- Şu anki en büyük kısıt düşük FPS
- TensorRT kullanılarak ve giriş/çıkış görüntüleri sıkıştırılarak kare hızı artırıldı
- Yine de hâlâ geliştirme için çok yer var
Donanım bileşenleri ve görsel stil oluşturma
- Kendi başınıza yapabilmeniz veya katkıda bulunabilmeniz için istemci ve sunucu kodu pablonet üzerinde yayımlandı
- İlk donanım yapılandırması:
- Sunucu barındırma: RunPod
- İstemci: Raspberry Pi 5
- Ekran: 10.1" Pi screen
- Aydınlatma: infrared light
- Çerçeve: generic frame
- Kamera: infrared Pi camera
- Kamera deliği, matkapla olduğundan daha temiz kesilebildiği için çerçeve kartonuna delgeç ile açıldı
- Görsel sonuç yalnızca prompt ile oluşturulmadı; ön işleme filtreleri de benzer derecede önemliydi
- Ön işleme olmadan img2img kullanıldığında sonuçlar çoğu zaman fazla gerçekçi görünüyordu
- Mavi Picasso stili Canny edge detection, mavi renklendirme ve blur birleşimiyle oluşturuldu
HN tepkilerinden sonra gönderilebilir ikinci sürüm
- Hacker News başlığından sonra proje ilgi gördü ve beklenmedik siparişler geldi; bunun üzerine gönderime uygun, daha derli toplu bir sürüm yapıldı
- İkinci sürüm, orijinal cihazdaki zahmetleri azaltacak yönde değişti
- Eski cihazda, duvara takmadan önce elektronik parçaların düşmemesi için elde tutulması gerekiyordu
- Yalnızca API çağırmak ve görüntü göstermek için sıradan bir Pi fazla güçlü ve pahalı hissettiriyordu
- Kablolama durumu da iyi değildi
- Satın alınan parçalar Fusion 360’ta CAD’e aktarıldı; özel parçalar dört yinelemeden geçirilerek 2 adet 3D baskı montaj aparatı ve lazer kesim arka panel çözümüne ulaşıldı
- Montaj aparatlarının görevleri:
- Ekranı çerçeve camı ve kartonuna hizalayarak sabitler
- Pi Zero’yu ve kamerayı sabitler
- Duvara asmak için keyhole slot görevi görür
- Vidalar ve somunlarla düzeneğin çerçeveye sabitlenmesini sağlar
- Havya ile 3D baskı parçaya yerleştirilen threaded insert ve vidalar sayesinde arka panelin sabitlenmesini sağlar
Kullanıcının kendi başına yönetebileceği kurulum yöntemi
- Gönderilebilirliği artırmak için kullanıcı affordance’larını çözmek gerekiyordu
- İlk sürüm, Pi’nin USB portu üzerinden önceden ayarlanmış Bluetooth fare ve klavye kullanıyordu
- Kullanıcının arka paneli açıp USB hub, kablolu fare ve klavye ile Bluetooth eşleştirmesini kendisinin ayarlaması iyi bir yöntem olarak görülmedi
- Bunu önlemek için bir WiFi dongle eklendi; böylece Pi, SSH bağlantısı için erişim noktası olarak çalışırken mevcut ağ arayüzü üzerinden internete bağlanabiliyor
- Kendi başınıza üretim detayları pablonet deposunda görülebilir; üretim talepleri e-posta ile alınabiliyor
1 yorum
Hacker News yorumları
Harika. Koda göz gezdirince düşük kare hızını iyileştirmek için birkaç ipucu görüyorum
JPEG baytlarını Base64 ile kodlamak payload’u yaklaşık %30’a kadar büyütür ve hem istemci hem sunucu tarafında CPU kullanır. WebSocket ikili payload gönderebildiği için bunu metne çevirmeye gerek yok
Kayıplı JPEG sıkıştırmayı da kaldırıp, ham RGB baytlarını doğrudan ağ üzerinden göndermeyi düşünmeye değer. Sunucu tarafında sadece
Image.frombuffer(…)çağırmak yeterliStreamDiffusion, pipeline içinde kapsamlı batch işleme yaptığı için yüksek kare hızlarına çıkabiliyor; burada ise istemci aynı anda yalnızca bir kare gönderip yanıt beklediğinden bu avantajdan yararlanılamıyor. Girdi karelerini kuyruğa alıp batch olarak tüketme yöntemi için şu örneğe bakılabilir: https://github.com/cumulo-autumn/StreamDiffusion/blob/main/e...
Alternatif olarak SDXL Turbo ve Lightning modellerine de bakmaya değer. img2img’de çok hızlılar, ancak çözünürlükleri sırasıyla 512² veya 1024² piksel ile sınırlı. Hedefin biraz altında görünüyor ama üst seviye tüketici GPU’larında yerel gerçek zamanlı çalıştırma mümkün. Referans kod burada: https://github.com/GradientSurfer/Draw2Img/tree/main
“Sanat yapmak zordur. Ama sanat çoğunlukla iç dünyayı ortaya koyma işidir ve teknik bunun yalnızca bir parçasıdır. Sanatın tekniğe bu kadar sert eleme yaptırması üzücü” sözü hakkında; Luddite gibi konuşmak istemem ama teknik uçurumun yalnızca basit bir rahatsızlık olduğu fikrinden şüphe duyuyorum
Resim öğrenme ya da müzik yapma sürecinin insanın içinde bir şeyleri değiştirdiğini ve daha derin hayat dersleri öğrettiğini düşünüyorum
“Büyük sanat eserlerini dâhiler yapmaz; deha, fırtına gibi beklenmedik şekilde gelir” diye bir söz duymuştum. Bir sanatçının yapabileceği en iyi şey bu tür fırsatları yetiştirmektir; teknik uçurumu ortadan kaldırmak ise o yetiştirme sürecini, insanın kendini değiştirmesine dair özü ortadan kaldırmak gibi görünüyor
Ne olduklarını bilmediğimiz ve nasıl ifade edeceğimizi de bilemediğimiz halde sürekli geri dönen bazı derin işleyiş ilkeleri var gibi. Proje eğlenceli ve pek çok kişiye faydalı görünüyor ama bazen bana böyle düşündürüyor
Projenin tamamında böyle bir nitelik var mı sorusu daha muğlak, ama kişisel olarak hayır derdim. Psikolojik olarak değil, teknik olarak yönlendirilen bir çalışma gibi görünüyor. Elbette ayna güçlü bir sembol olduğu için, bunun psikolojik bir çalışma olduğunu savunan bir sanatçı notu yazılabilir
Yine de hoşuma gidiyor ve ben yapmış olsaydım gurur duyardım. Ama sanattan çok ustalığa daha yakın
Ben olsam kare hızını artırmak yerine düşürürdüm. Teknik sınırlarla savaşmak yerine o sınırları kullanma yolu bu. Sistemin yalnızca “iyi” görüntüleri göstermesini ve başka bir “iyi” görüntü üretilene kadar ekranı yenilememesini sağlardım. Görüntünün “iyi” olup olmadığına karar veren kod, sistemin en ilginç kısmı olur ve sanatçının niyetini taşıdığı söylenebilir; bu da onu benim kişisel ölçütlerime göre büyük S ile Sanat’a yaklaştırabilir
Bob Shaw’un Light of Other Days’indeki gibi görüntü akışını tamponlamayı da denerdim
Ayrıca Cadılar Bayramı yaklaştığı için, arada bir izleyicinin arkasında duran bir figürü inpaint etme isteği inanılmaz güçlü olurdu
Görüntü kararlılığı elde etmek için, rastgele görüntüler üretmek yerine bir LLM’in rastgele video filtresi kodu yazmasını sağlayabilir miyiz? “Girdi videosunu kübist gibi gösteren bir video filtresi yaz”, “yağlı boya gibi”, “Flash estetiğinde” gibi. Filtre üretildiyse ve gerçekten çökmüyorsa o filtreye geçmek şeklinde. Mümkün mü bilmiyorum
Mona Lisa yalnızca iyi çizilmiş bir insan resmi değildir. Resim eğitimi almış kişilerin anlayabileceği ayrıntılar ve anlamlarla doludur. Yapay zeka fena olmayan ya da ilginç imgeler üretebilir, ama resmin dilini konuşamaz. Bunu öğrenmek ve takdir etmek için gerçek bir emek gerekir. Fırça kullanma becerisini bir insan beynine ya da yapay zeka aracına enjekte etmek, kişiyi sanatçı yapmaz
Bazen bir şeye, onlarca yıllık mevcut tarihin şekillendirmediği taze gözlere sahip birinin bakması iyi olabilir
Bu arada, ekranı sabitlemek için kullanılan çerçevenin bağlantısı erişimi engelliyor
https://www.leroymerlin.fr/produits/decoration-eclairage/dec...
Merak edenler için: MILO 21 x 29,7 cm siyah çerçeve. Aşağıdaki bağlantı bende açılıyor
https://www.leroymerlin.pt/produtos/decoracao-e-tapetes/mold...
Ayrıca kullanılan ekranı, HMTECH Raspberry Pi Screen 10.1'i bulmak da epey zor. Benzer kalite ve özelliklerde önerebileceğiniz bir ekran var mı?
Neden kızılötesi aydınlatma ve kızılötesi kamera kullandığını da merak ediyorum
“Sanat çoğunlukla iç dünyayı ortaya koymaktır, teknik yalnızca bir kısmıdır” sözüyle ilgili olarak, sanatı hep duyguları koruyan ve üreten bir şey olarak düşündüm. Bu yüzden duvara bantlanmış muz da sanattır, pop müzik de hâlâ sanattır diye düşünüyorum
Okulun etkisi olabilir ama ben de sık sık “neden?” diye soruyorum
Bu icadın kendisi kesinlikle bir sanat eseri, ama çıktısı benim gözümde öyle değil. Bulut gibi. Çeşitli şekiller oluşturur; bazıları komik olabilir, bazıları yakınınızdaki birini hatırlatabilir, ama yine de ortalamaya çekilmiş bir rastlantısallıktır
Yine de gerçekliği bu dijital rastlantısallığa yansıtma fikri kuşkusuz sanat bence. Görsel ya da işitsel olmasa bile yazılım, donanım, kod ve tasarım da sanattır. Yapması zor olduğu için de ilk paragraftaki argümana karşı bir örnek sayılır
Duvara bantlanmış muz sanat değildir. Gündelik bir nesnenin gündelik bir yerleşime konmasından ibarettir
Onu sanat gibi hissedebilirsiniz, ama o zaman gerçek sanatla yeterince karşılaşmadığınız için deneyim havuzunuz yoktur ya da bugüne kadar yalnızca yüzeysel örnekler görmüş olabilirsiniz
Kamera çerçeveden başka bir yerde olsa daha havalı olurdu. Sanatsal bir aynaya bakmak biraz sıkıcı görünüyor
İkincisini yapıp birinin evine koysanız, bir taraftaki kamera görüntüsünü diğer tarafa gönderseniz nasıl olur? Başka birinin “yansımasını” görürsünüz ve ikinizin aynı anda o resme baktığı küçük anlar oluşur. Birkaç tane yapıp kimi gördüğünüzü asla bilmeyecek hâle de getirebilirsiniz. Çerçeve versiyonu Omegle gibi olur
Bunun daha önce kamusal alan sanat yerleştirmesi olarak yapılmış olduğunu hatırlıyorum. Dünyanın farklı yerlerindeki insanları görüp onlarla etkileşime girmeyi sağlıyordu
Örneğin şu: https://www.inavateonthenet.net/news/article/vc-art-installa...
Birkaç eski tip alçak gerilim montaj braketi ve fırçalı duvar plakası alıp (https://www.homedepot.com/p/Carlon-1-Gang-Non-Metallic-Low-V..., https://www.homedepot.com/p/Commercial-Electric-1-Gang-Brush...) güç kablosunu duvarın içinden geçirirseniz çok daha iyi görünür gibi
Gerçekten harika bir fikir; kitaplığıma bir tane koymak isterim
“Mevcut kurulumun başlıca sorunu düşük kare hızı” denmiş ama ben buna sınırlama değil, özellik demek isterim. Görüntüyü bir an işleyip özümsemek için zaman olması kötü değil
Hatta yenileme aralığını 5-15 dakikaya çıkarmak ve bir şey değiştiğinde ya da hareket algılandığında yeni bir görüntü yakalayıp üretmesini isterdim
Görseller arasına yüksek kare hızlı bir morphing efekti eklemeyi düşündün mü? Algılanan kare hızını artırır ve oldukça havalı görünebilir
https://hardwork.party/aws-epoch-optimizer/
“Sanat, teknolojiyi fazlasıyla güçlü biçimde filtreliyor. İkisini birbirinden bağımsızlaştırmak mümkün mü?” yönelimi gerçekten hoşuma gidiyor
Üretken yapay zeka yaklaşımına karşı çıkma nedenlerini anlıyorum; ama gerçekte bazen harika bir fikir aklıma gelse bile onu bizzat yapacak beceriye sahip olmuyorum. Böyle fikirlerin her biri için aylar, yıllar harcayamam; yetkin bir sanatçıya yüzlerce dolar ödeyecek kadar önemli de olmayabiliyor
Artık insanların istediklerini üretip keyfini çıkarabileceği bir yol var ve bu iyi bir şey. En azından kişisel kullanımda böyle; ticari amaçlarda ise işler biraz daha karmaşıklaşıyor
Bu yüzden biri “iyi fikir” dediğinde, asıl kastı daha çok “iyi iş”tir
İnsanların yapay zeka çalışmasıyla desteklenmiş fikirleri değerli görüp görmeyeceğini zaman gösterecek. Aradaki ayrımı yapabilecek miyiz ki? Kimse bilmiyor
Burada sunulan şeyi herhangi biri yapamaz; gerçekliği büken bir makine yapmak için teknik beceri gerektiğini istemeden de olsa doğrulamış oluyor. Üretilen fotoğraflar sanat değil
Mevcut kurulumun başlıca sorunu düşük kare hızıysa, belki de tam tersine bunu 0.3~1 fps civarına daha da düşürmek daha iyi olabilir!