1 poin oleh GN⁺ 2024-10-24 | 1 komentar | Bagikan ke WhatsApp
  • PabloNet adalah perangkat yang mengubah video webcam menjadi diffusion real-time dan menampilkannya pada LCD bergaya bingkai, sehingga gambar generatif terasa seperti objek fisik yang tergantung di dinding, bukan sekadar demo di laptop
  • Implementasinya berupa gabungan server berbasis StreamDiffusion, klien Raspberry Pi 5, layar 10,1 inci, kamera Pi NoIR, pencahayaan inframerah, dan bingkai biasa
  • Kendala terbesarnya adalah frame rate yang rendah; sudah ditingkatkan dengan TensorRT dan kompresi gambar input/output, tetapi masih ada ruang untuk meningkatkan responsivitas
  • Gaya visual yang diinginkan sulit dibuat hanya dengan prompt, sehingga filter prapemrosesan juga ikut diuji; gaya Picasso biru didapat dari kombinasi Canny edge detection, pewarnaan biru, dan blur
  • Pada pembaruan Januari 2025, setelah respons di HN memunculkan pesanan, proyek ini berkembang menjadi versi yang lebih rapi dan siap dikirim dengan Pi Zero, dudukan cetak 3D, panel belakang potong laser, dan dongle WiFi

Bingkai diffusion real-time yang tergantung di dinding

  • PabloNet adalah perangkat yang menerima input webcam, melakukan transformasi gambar real-time, lalu menampilkan hasilnya pada LCD berbentuk bingkai
  • Eksperimen awal yang menjalankan StreamDiffusion di laptop memang menyenangkan, tetapi form factor laptop merusak ilusi dan terasa sementara serta "geeky"
  • Dengan mengubahnya menjadi bingkai LCD gantung, layar tidak lagi sekadar display, melainkan bertindak seperti objek yang punya kehadiran tetap
    • Bisa ditemui lagi pada waktu, suasana hati, pencahayaan, objek, dan teman yang berbeda
    • Disertakan video contoh interaksi dengan wajah, pencahayaan inframerah di tempat gelap, objek, dan teman
  • Saat ini kendala terbesar adalah FPS yang rendah
    • TensorRT digunakan dan gambar input/output dikompresi untuk meningkatkan frame rate
    • Meski begitu, masih banyak ruang untuk perbaikan

Susunan hardware dan cara membentuk gaya visual

  • Kode klien dan server dipublikasikan di pablonet agar orang bisa membuat sendiri atau berkontribusi
  • Susunan hardware awal:
  • Lubang kamera dibuat pada karton bingkai menggunakan pelubang yang bisa memotong lebih rapi daripada bor
  • Hasil visual tidak dibuat hanya dengan prompt; filter prapemrosesan juga sama pentingnya
    • Saat memakai img2img tanpa prapemrosesan, hasilnya sering terlihat terlalu realistis
    • Gaya Picasso biru dibuat dengan kombinasi Canny edge detection, pewarnaan biru, dan blur

Versi kedua yang siap dikirim setelah respons HN

  • Setelah thread di Hacker News, proyek ini mendapat perhatian dan pesanan yang tak terduga, sehingga dibuat versi yang lebih rapi dan siap dikirim
  • Versi kedua berubah ke arah yang mengurangi kerepotan perangkat asli
    • Pada perangkat lama, komponen elektronik harus ditahan agar tidak jatuh sebelum dipasang ke dinding
    • Untuk sekadar memanggil API dan menampilkan gambar, Pi biasa terasa berlebihan dan mahal
    • Kondisi kabelnya juga kurang baik
  • Komponen yang dibeli dimodelkan sebagai CAD di Fusion 360, lalu setelah empat iterasi komponen kustom, desainnya mengerucut menjadi 2 dudukan cetak 3D dan panel belakang potong laser
  • Peran dudukan:
    • Menahan layar agar pas dengan kaca bingkai dan karton
    • Menahan Pi Zero dan kamera
    • Berfungsi sebagai keyhole slot untuk pemasangan di dinding
    • Memungkinkan rakitan dipasang ke bingkai dengan sekrup dan mur
    • Memungkinkan panel belakang dipasang dengan threaded insert yang dimasukkan ke hasil cetak 3D menggunakan soldering iron, serta sekrup

Cara pengaturan agar pengguna bisa menanganinya sendiri

  • Untuk meningkatkan kemungkinan pengiriman, affordance pengguna perlu diselesaikan
    • Versi pertama memakai mouse dan keyboard Bluetooth yang telah dikonfigurasi sebelumnya melalui port USB Pi
    • Dinilai tidak baik bila pengguna harus membuka panel belakang lalu menyiapkan sendiri USB hub, mouse dan keyboard berkabel, serta pairing Bluetooth
    • Untuk menghindari itu, ditambahkan dongle WiFi agar Pi bisa berfungsi sebagai access point untuk koneksi SSH sambil tetap terhubung ke internet lewat antarmuka jaringan yang sudah ada
  • Detail pembuatan sendiri bisa dilihat di repositori pablonet, dan permintaan pembuatan bisa diajukan lewat email

1 komentar

 
GN⁺ 2024-10-24
Komentar Hacker News
  • Keren. Setelah melihat sekilas kodenya, ada beberapa kiat yang tampak bisa meningkatkan frame rate yang rendah
    Mengenkode byte JPEG ke Base64 membuat payload membesar hingga sekitar 30% dan memakai CPU di sisi klien maupun server. WebSocket bisa mengirim payload biner, jadi tidak perlu menjadikannya teks
    Menghapus kompresi JPEG lossy juga patut dipertimbangkan, cukup kirim byte RGB mentah lewat jaringan. Di sisi server cukup panggil Image.frombuffer(…)
    StreamDiffusion bisa mencapai frame rate tinggi karena melakukan batch processing secara luas di pipeline, tetapi di sini klien hanya mengirim satu frame sekali waktu lalu menunggu respons, sehingga manfaat itu tidak didapat. Untuk cara memasukkan frame input ke antrean dan mengonsumsinya dalam batch, lihat contoh ini https://github.com/cumulo-autumn/StreamDiffusion/blob/main/e...
    Atau, model SDXL Turbo dan Lightning juga layak dilihat. Untuk img2img keduanya sangat cepat, tetapi masing-masing punya batas resolusi 512² atau 1024² piksel. Kelihatannya sedikit di bawah target, tetapi bisa berjalan real-time secara lokal di GPU konsumen kelas atas. Kode referensi ada di sini https://github.com/GradientSurfer/Draw2Img/tree/main

    • Tapi saya jadi bertanya-tanya apakah ini memang harus real-time seperti ini. Bukankah lebih alami jika ada semacam tombol, orang berpose lalu mengambil foto, foto itu diproses menjadi gambar, dan gambar tersebut tetap tampil sampai foto berikutnya diambil? Rasanya ilusi artistiknya akan lebih kuat. Tentu saja, itu tidak lagi menjadi “cermin”
    • Setelah semua itu dilakukan, bagus juga melihat interpolasi 2D untuk frame-frame di tengah yang tidak membutuhkan AI. Ada matematika kernel cepat yang melakukan interpolasi linear supercepat dari satu gumpalan ke gumpalan lain
  • Terkait pernyataan “membuat seni itu sulit. Namun seni sebagian besar adalah soal mengungkap dunia batin, dan teknik hanya salah satu bagiannya. Sayang jika seni menyaring terlalu kuat berdasarkan teknik”, saya tidak ingin terdengar seperti Luddite, tetapi saya meragukan gagasan bahwa kesenjangan teknis hanyalah ketidaknyamanan sederhana
    Menurut saya, proses belajar menggambar atau membuat musik mengubah sesuatu di dalam diri, dan mengajarkan pelajaran hidup yang lebih dalam
    Saya pernah mendengar ungkapan bahwa “karya seni hebat bukan dibuat oleh seorang jenius, melainkan kejeniusan datang tak terduga seperti embusan angin kencang”. Hal terbaik yang bisa dilakukan seniman adalah memupuk peluang semacam itu, dan menghapus kesenjangan teknis tampak seperti menghapus proses pemupukan itu, yakni inti dari mengubah diri sendiri
    Sepertinya ada beberapa prinsip kerja mendalam yang terus kembali kepada kita meski kita tidak tahu identitasnya dan tidak tahu bagaimana mengatakannya. Proyek ini menarik dan tampak berguna bagi banyak orang, tetapi sesekali membuat saya berpikir seperti ini

    • Menurut saya arah “mengungkap dunia batin” itu benar, jadi justru ini terasa lebih dekat ke wallpaper daripada seni. Ini bukan pekerjaan menyelami psikologi diri secara mendalam lalu mengangkat mutiara dari sana, dan gambar-gambar ini tidak memiliki sifat seperti itu
      Apakah keseluruhan proyek memiliki sifat itu lebih ambigu, tetapi secara pribadi saya rasa tidak. Ini tampak sebagai pekerjaan yang digerakkan secara teknis, bukan psikologis. Tentu saja cermin punya simbolisme yang kuat, jadi orang bisa menulis catatan seniman yang mengklaimnya sebagai kerja psikologis
      Meski begitu saya menyukainya, dan jika saya yang membuatnya, saya akan bangga. Hanya saja ini lebih dekat ke kecakapan teknis daripada seni
      Kalau saya, alih-alih menaikkan frame rate, saya mungkin akan menurunkannya. Pendekatannya adalah memanfaatkan keterbatasan teknis, bukan melawannya. Saya akan membuat sistem hanya menampilkan gambar yang “bagus”, dan tidak memperbarui layar sampai gambar “bagus” berikutnya dihasilkan. Kode yang menilai apakah sebuah gambar “bagus” akan menjadi bagian paling menarik dari sistem, dan bisa dikatakan memuat niat sang seniman, sehingga lebih mendekati Art dengan A besar menurut standar pribadi saya
      Saya juga akan bereksperimen dengan buffering stream gambar, seperti Light of Other Days karya Bob Shaw
      Dan karena Halloween sudah dekat, godaan untuk sesekali melakukan inpainting sosok yang berdiri di belakang pengunjung pasti sangat besar
      Untuk mendapatkan stabilitas gambar, mungkinkah alih-alih menghasilkan gambar acak, kita meminta LLM membuat kode filter video acak? Misalnya “tuliskan filter video yang membuat video input tampak seperti kubisme”, “seperti lukisan minyak”, “dengan estetika Flash”. Jika filternya berhasil dibuat dan benar-benar tidak crash, sistem beralih ke filter itu. Saya tidak tahu apakah itu mungkin
    • Ungkapan seperti “mengungkap sesuatu dari dalam diri” mungkin bisa membuat publik terkesan sesaat, tetapi seni yang baik membutuhkan lebih dari itu. Semua seni memiliki bahasa dan standar, hal-hal yang dipelajari seniman dalam proses tumbuh sambil mempelajari keterampilan yang dibutuhkan
      Mona Lisa bukan sekadar lukisan orang yang digambar dengan baik. Ia penuh detail dan makna yang hanya bisa dipahami oleh orang yang mempelajari seni lukis. AI bisa menghasilkan gambar yang lumayan atau menarik, tetapi tidak bisa berbicara dalam bahasa seni lukis. Untuk itu diperlukan usaha nyata untuk belajar dan mengapresiasi. Menyuntikkan keterampilan sapuan kuas ke otak manusia atau alat AI tidak lantas menjadikannya seniman
    • Saya sangat mendukung gagasan bahwa “proses belajar menggambar atau musik mengubah sesuatu di dalam diri dan mengajarkan pelajaran hidup yang lebih dalam”. Contoh yang lebih sederhana daripada menggambar adalah menulis. Semua orang punya cerita untuk disampaikan dan bisa menulis, tetapi untuk membuat tulisan yang layak menyita waktu orang lain, seseorang harus mengasah keterampilannya bukan selama beberapa hari, melainkan bertahun-tahun, dan dalam proses itu mau tidak mau ia belajar tentang dirinya sendiri dan mengkristalkan pandangan dunianya
    • Ini berlawanan arah dengan pepatah “para ahli bilang itu mustahil, tetapi para amatir melakukannya setiap hari”
      Kadang ada baiknya seseorang dengan mata baru, yang belum dibentuk oleh sejarah yang sudah ada selama puluhan tahun, memandang sesuatu
    • Jadi seni terbesar hanya bisa dibuat oleh orang-orang yang menanam tanaman untuk membuat catnya sendiri sejak awal, begitu ya
  • Sebagai catatan, tautan frame yang dipakai untuk memasang display memblokir akses
    https://www.leroymerlin.fr/produits/decoration-eclairage/dec...
    Buat yang penasaran, itu adalah frame hitam MILO 21 x 29,7 cm. Tautan di bawah ini bisa dibuka dari tempat saya
    https://www.leroymerlin.pt/produtos/decoracao-e-tapetes/mold...
    Selain itu, layar yang dipakai, HMTECH Raspberry Pi Screen 10.1, cukup sulit ditemukan. Ada rekomendasi layar dengan kualitas dan spesifikasi serupa?
    Saya juga penasaran kenapa memakai lampu inframerah dan kamera inframerah

    • Kemungkinan tujuan memakai lampu inframerah dan kamera inframerah adalah agar tetap bisa bekerja di tempat gelap
    • Bukankah layarnya bisa dibeli di Amazon? Hanya saja karena itu touchscreen, rasanya berlebihan; sebenarnya layar apa pun sepertinya bisa dipakai. Frame di sekelilingnya bisa dibuat sendiri
  • Terkait “seni sebagian besar adalah mengungkapkan dunia batin, dan teknologi hanya sebagian kecil”, saya selalu berpikir seni adalah sesuatu yang melestarikan dan menciptakan emosi. Jadi pisang yang ditempel di dinding pun seni, dan musik pop juga tetap seni
    Mungkin karena pengaruh sekolah, tapi saya juga sering bertanya “kenapa?”
    Penemuan ini sendiri jelas merupakan karya seni, tetapi output-nya, di mata saya, bukan. Itu seperti awan. Ia bisa membentuk berbagai rupa, sebagian lucu, sebagian bisa mengingatkan kita pada orang dekat, tetapi tetap saja itu keacakan yang dirata-ratakan
    Namun, gagasan memantulkan realitas ke dalam keacakan digital ini tanpa ragu saya anggap seni. Dan meski tidak visual atau auditori, software, hardware, kode, dan desain juga merupakan seni. Karena sulit dibuat, ini juga menjadi contoh tandingan terhadap argumen di paragraf pertama

    • Kalau mengatakan “seni adalah sesuatu yang melestarikan dan menciptakan emosi”, peran niat menjadi kabur. Kalau saya marah dan merasa berhak, lalu memarkir BMW secara dobel melintang di dua slot parkir difabel, apakah itu seni? Jelas itu membangkitkan emosi, dan juga merupakan hasil yang dibuat oleh emosi
    • Seni harus memikat orang, dan punya cara yang unik dalam menyajikan tema. Selain itu, teknik harus terlibat. Kalau tidak, begitu terasa murahan atau dangkal, semuanya runtuh
      Pisang yang ditempel di dinding bukan seni. Itu hanya benda sehari-hari yang ditempatkan dalam susunan sehari-hari
      Anda bisa merasa itu seni, tetapi kalau begitu mungkin Anda belum cukup bersentuhan dengan seni sungguhan sehingga tidak punya kumpulan pengalaman, atau sejauh ini hanya melihat contoh-contoh yang dangkal
    • Bukankah itu maksud dari “mengungkapkan dunia batin”?
  • Akan lebih keren kalau kameranya berada di tempat yang berbeda dari frame. Menatap ke cermin artistik terlihat agak membosankan
    Bagaimana kalau membuat yang kedua, menaruhnya di rumah seseorang, lalu mengirim feed kamera dari satu sisi ke sisi lainnya. Kita melihat “pantulan” orang lain, dan muncul momen-momen kecil ketika keduanya menatap gambar itu pada saat yang sama. Bisa juga membuat beberapa unit agar tidak pernah tahu siapa yang sedang dilihat. Jadinya semacam Omegle versi bingkai foto

    • Ide bagus, tetapi itu benda yang sama sekali berbeda dari yang ingin dibuat penulis asli
      Seingat saya, hal seperti ini sudah pernah dibuat sebagai instalasi seni di ruang publik. Caranya memungkinkan orang melihat dan berinteraksi dengan orang lain di berbagai tempat di dunia
      Contohnya ini https://www.inavateonthenet.net/news/article/vc-art-installa...
  • Kalau membeli beberapa bracket low-voltage old-work dan brush wall plate (https://www.homedepot.com/p/Carlon-1-Gang-Non-Metallic-Low-V..., https://www.homedepot.com/p/Commercial-Electric-1-Gang-Brush...) lalu menyalurkan kabel daya lewat dalam dinding, tampilannya akan jauh lebih rapi

  • Ide yang benar-benar keren, dan saya ingin punya satu di rak buku saya
    Katanya “masalah utama konfigurasi saat ini adalah frame rate yang rendah”, tetapi saya ingin menyebut ini fitur, bukan keterbatasan. Tidak buruk kalau kita punya waktu sejenak untuk memproses dan menerima gambar
    Justru saya ingin memperpanjang interval pembaruan menjadi 5–15 menit, lalu setiap kali ada sesuatu yang berubah atau gerakan terdeteksi, sistem menangkap gambar baru dan membuatnya

  • Pernah mempertimbangkan memasukkan efek morphing dengan frame rate tinggi di antara gambar? Sepertinya bisa meningkatkan frame rate yang terasa dan terlihat cukup keren

    • Itu teknik yang saya pakai pada karya yang melakukan inpainting seluruh gambar dengan kecepatan sekitar 1 gambar per 8 detik. Saya memprosesnya dengan cara “meleburkan” hasil sampai patch berikutnya siap
      https://hardwork.party/aws-epoch-optimizer/
    • Kalau perubahan gaya di antara frame tidak berkurang, frame rate tinggi justru tampaknya akan terlihat lebih buruk. Kalau tiap frame berubah banyak seperti frame-frame di video saat ini, hasilnya akan mengganggu dan popping-nya bakal besar sekali. Mungkin saja penulis asli memang menginginkan nuansa kacau
    • Crossfade sederhana saja sudah cukup bagus
  • Saya sangat menyukai arah pemikiran, “Seni terlalu kuat menyaring teknologi. Bisakah keduanya dibuat tidak berkorelasi?”
    Saya memahami alasan menentang pendekatan AI generatif, tetapi dalam praktiknya, kadang ada ide keren yang muncul, sementara saya tidak punya keterampilan untuk membuatnya sendiri. Tidak mungkin juga menginvestasikan berbulan-bulan atau bertahun-tahun untuk setiap ide seperti itu, dan ide-ide itu juga tidak sepenting sampai harus membayar ratusan dolar kepada seniman terampil
    Sekarang orang punya cara untuk menghasilkan apa yang mereka inginkan dan menikmatinya, dan itu hal yang baik. Setidaknya untuk penggunaan pribadi; kalau untuk tujuan komersial, masalahnya jadi agak rumit

    • Ini mengasumsikan bahwa ide yang belum diwujudkan memiliki nilai. Sebenarnya, menurut saya nilai yang kita berikan pada sebuah ide berasal dari bagaimana ide itu menyebar ke orang lain. Ide yang cukup radikal sering kali sulit dipahami orang lain, jadi orang yang mencetuskan ide itu harus membuat contohnya sendiri
      Karena itu, ketika seseorang berkata “itu ide yang bagus”, makna sebenarnya lebih dekat ke “itu karya yang bagus”
      Waktu yang akan menjawab apakah orang akan menganggap ide yang didukung karya AI sebagai sesuatu yang bernilai. Bisakah kita membedakannya? Tidak ada yang tahu
    • Namun sayangnya, keduanya belum berhasil dipisahkan
      Tidak sembarang orang bisa membuat apa yang ditampilkan di sini, dan ini justru secara tidak sengaja memverifikasi bahwa dibutuhkan teknologi untuk membuat mesin yang mendistorsi realitas. Foto-foto yang dihasilkan itu bukan seni
  • Jika masalah utama dari konfigurasi saat ini adalah frame rate yang rendah, mungkin justru lebih baik menurunkannya lagi ke sekitar 0,3~1 fps!