- PabloNet ist ein Gerät, das Webcam-Video per Echtzeit-Diffusion umwandelt und auf einem LCD im Bilderrahmen anzeigt. So erlebt man generierte Bilder nicht als Laptop-Demo, sondern wie ein physisches Objekt an der Wand
- Die Umsetzung kombiniert einen Server auf Basis von StreamDiffusion mit einem Raspberry-Pi-5-Client, einem 10,1-Zoll-Display, einer Pi-NoIR-Kamera, Infrarotbeleuchtung und einem gewöhnlichen Bilderrahmen
- Die größte Einschränkung ist die niedrige Bildrate. TensorRT und Komprimierung der Ein- und Ausgabebilder haben sie verbessert, aber bei der Reaktionsfähigkeit bleibt noch Luft nach oben
- Der gewünschte Malstil ließ sich nur mit Prompts schwer erreichen, daher wurden zusätzlich Vorverarbeitungsfilter ausprobiert. Der blaue Picasso-Stil entstand durch eine Kombination aus Canny Edge Detection, blauer Einfärbung und Blur
- Im Update vom Januar 2025 entwickelte sich das Projekt nach der Resonanz auf HN und ersten Bestellungen zu einer saubereren, versandfähigen Version mit Pi Zero, 3D-gedruckten Halterungen, lasergeschnittener Rückwand und WiFi-Dongle
Echtzeit-Diffusion im Rahmen an der Wand
- PabloNet ist ein Gerät, das Webcam-Eingaben verarbeitet, Echtzeit-Bildtransformation ausführt und das Ergebnis auf einem LCD in Form eines Bilderrahmens anzeigt
- Die frühen Experimente mit StreamDiffusion auf einem Laptop waren unterhaltsam, aber der Laptop-Formfaktor zerstörte die Illusion und wirkte provisorisch und „geeky“
- Als wandmontierter LCD-Rahmen verhält sich der Bildschirm nicht einfach wie ein Display, sondern wie ein Objekt mit Beständigkeit
- Man kann ihm zu anderen Tageszeiten, in anderer Stimmung, bei anderem Licht, mit anderen Objekten oder mit Freunden wieder begegnen
- Enthalten sind Beispielvideos zur Interaktion mit Gesichtern, Infrarotbeleuchtung im Dunkeln, Objekten und Freunden
- Die derzeit größte Einschränkung sind die niedrigen FPS
- Durch TensorRT und die Komprimierung der Ein- und Ausgabebilder wurde die Bildrate erhöht
- Trotzdem gibt es noch viel Raum für Verbesserungen
Hardwareaufbau und Erzeugen visueller Stile
- Damit man es selbst bauen oder beitragen kann, sind Client- und Server-Code unter pablonet veröffentlicht
- Ursprünglicher Hardwareaufbau:
- Server-Hosting: RunPod
- Client: Raspberry Pi 5
- Display: 10.1" Pi screen
- Beleuchtung: infrared light
- Rahmen: generic frame
- Kamera: infrared Pi camera
- Das Kameraloch wurde mit einem Locher in den Karton des Rahmens gemacht, weil sich damit sauberer schneiden ließ als mit einer Bohrmaschine
- Die visuellen Ergebnisse wurden nicht allein mit Prompts erzeugt; Vorverarbeitungsfilter waren ähnlich wichtig
- Ohne Vorverarbeitung wirkte das Ergebnis mit img2img oft zu realistisch
- Der blaue Picasso-Stil entstand aus einer Kombination von Canny Edge Detection, blauer Einfärbung und Blur
Versandfähige zweite Version nach der HN-Resonanz
- Nach dem Hacker-News-Thread bekam das Projekt Aufmerksamkeit und unerwartete Bestellungen, wodurch eine sauberere, versandfähige Version entstand
- Die zweite Version reduzierte die Unbequemlichkeiten des ursprünglichen Geräts
- Beim bisherigen Gerät musste man die Elektronik festhalten, damit sie nicht herunterfiel, bevor man es an der Wand befestigte
- Ein normaler Pi wirkte für den einfachen Zweck, eine API aufzurufen und Bilder anzuzeigen, überdimensioniert und teuer
- Auch die Kabelsituation war nicht gut
- Die gekauften Komponenten wurden in Fusion 360 per CAD modelliert; nach vier Iterationen der Custom-Teile konvergierte das Design auf zwei 3D-gedruckte Halterungen und eine lasergeschnittene Rückwand
- Aufgaben der Halterungen:
- Sie fixieren das Display passend zu Rahmenglas und Karton
- Sie halten den Pi Zero und die Kamera
- Sie dienen als keyhole slot für die Wandmontage
- Sie ermöglichen, die Baugruppe mit Schrauben und Muttern am Rahmen zu befestigen
- Sie ermöglichen, die Rückwand mit Schrauben und threaded inserts zu befestigen, die mit einem Lötkolben in den 3D-Druck eingesetzt wurden
Eine Konfiguration, die Nutzer selbst handhaben können
- Um die Versandfähigkeit zu verbessern, mussten User-Affordances gelöst werden
- Die erste Version nutzte eine per USB-Port des Pi vorkonfigurierte Bluetooth-Maus und -Tastatur
- Es erschien nicht gut, Nutzer die Rückwand öffnen und USB-Hub, kabelgebundene Maus und Tastatur sowie Bluetooth-Pairing selbst einrichten zu lassen
- Um das zu vermeiden, wurde ein WiFi-Dongle hinzugefügt, sodass der Pi als Access Point für SSH-Zugriff funktioniert und gleichzeitig über die bestehende Netzwerkschnittstelle mit dem Internet verbunden bleibt
- Details zum Eigenbau finden sich im pablonet-Repository; Auftragsfertigungen können per E-Mail angefragt werden
1 Kommentare
Hacker-News-Kommentare
Cool. Ich habe den Code kurz überflogen und sehe ein paar Tipps, um die niedrige Framerate zu verbessern
Wenn man JPEG-Bytes in Base64 kodiert, wird die Payload um bis zu etwa 30 % größer und verbraucht auf Client- und Serverseite CPU. WebSocket kann binäre Payloads senden, also muss man daraus keinen Text machen
Man könnte auch die verlustbehaftete JPEG-Komprimierung weglassen und stattdessen einfach rohe RGB-Bytes über das Netzwerk schicken. Auf der Serverseite muss dann nur
Image.frombuffer(…)aufgerufen werdenStreamDiffusion kann hohe Framerates erreichen, weil es in der Pipeline umfangreiche Batch-Verarbeitung nutzt. Hier schickt der Client aber immer nur ein einzelnes Frame und wartet auf die Antwort, wodurch dieser Vorteil verloren geht. Wie man Input-Frames in eine Queue legt und sie in Batches verarbeitet, zeigt dieses Beispiel https://github.com/cumulo-autumn/StreamDiffusion/blob/main/e...
Alternativ sind auch SDXL Turbo und Lightning-Modelle einen Blick wert. Bei img2img sind sie sehr schnell, haben aber jeweils eine Auflösungsgrenze von 512² bzw. 1024² Pixeln. Das ist zwar etwas unter dem Zielwert, lässt sich aber auf High-End-Consumer-GPUs lokal in Echtzeit ausführen. Beispielcode dazu gibt es hier https://github.com/GradientSurfer/Draw2Img/tree/main
Zu der Aussage „Kunst zu machen ist schwierig. Aber Kunst besteht größtenteils darin, die eigene innere Welt offenzulegen, und Technik ist nur ein Teil davon. Es ist schade, wenn Kunst zu stark nach Technik selektiert“: Ich will nicht wie ein Luddit klingen, aber ich bezweifle, dass die technische Hürde nur eine bloße Unannehmlichkeit ist
Ich glaube, dass der Prozess, Zeichnen zu lernen oder Musik zu machen, etwas im Menschen selbst verändert und tiefere Lektionen über das Leben vermittelt
Ich habe einmal gehört: „Große Kunstwerke werden nicht von Genies gemacht; Genialität kommt unerwartet wie ein Sturmwind.“ Das Beste, was ein Künstler tun kann, ist, die Bedingungen für solche Momente zu kultivieren. Wenn man die technische Hürde entfernt, entfernt man scheinbar auch genau diesen Kultivierungsprozess, also das Wesentliche daran, sich selbst zu verändern
Es scheint einige tiefe Wirkmechanismen zu geben, zu denen wir immer wieder zurückkehren, obwohl wir nicht wissen, was sie genau sind oder wie wir darüber sprechen sollen. Das Projekt ist unterhaltsam und wirkt für viele Menschen nützlich, aber manchmal denke ich an so etwas
Ob das Gesamtprojekt diese Eigenschaft hat, ist noch fraglicher, aber ich persönlich würde eher nein sagen. Es wirkt weniger psychologisch angetrieben als technisch angetrieben. Natürlich haben Spiegel starke symbolische Kraft, also könnte man ein Artist Statement schreiben, das es als psychologische Arbeit deutet
Trotzdem gefällt es mir, und wenn ich es gebaut hätte, wäre ich stolz darauf. Aber es ist eher Virtuosität als Kunst
Ich würde die Framerate eher senken als erhöhen. Das wäre ein Weg, die technische Grenze zu nutzen, statt gegen sie anzukämpfen. Ich würde das System nur „gute“ Bilder anzeigen lassen und den Bildschirm erst dann aktualisieren, wenn ein weiteres „gutes“ Bild erzeugt wurde. Der Code, der entscheidet, ob ein Bild „gut“ ist, wäre dann der interessanteste Teil des Systems, und man könnte sagen, dass dort die Intention des Künstlers steckt — was es nach meinem persönlichen Maßstab eher zu Art mit großem A machen könnte
Ich würde auch damit experimentieren, den Bildstream wie in Bob Shaws Light of Other Days zu puffern
Und weil Halloween näher rückt, wäre die Versuchung wahrscheinlich enorm, gelegentlich eine Figur hinter dem Betrachter per Inpainting hineinzusetzen
Um Bildstabilität zu bekommen: Könnte man statt zufälliger Bilder ein LLM zufälligen Video-Filter-Code erzeugen lassen? Etwa: „Schreib einen Videofilter, der das Eingangsvideo wie Kubismus aussehen lässt“, „wie ein Ölgemälde“, „in Flash-Ästhetik“. Wenn der Filter erzeugt wurde und tatsächlich nicht crasht, wird zu ihm gewechselt. Ich weiß nicht, ob das machbar ist
Die Mona Lisa ist nicht einfach nur ein gut gemaltes Porträt. Sie steckt voller Details und Bedeutungen, die nur jemand versteht, der sich mit Malerei beschäftigt hat. AI kann brauchbare oder interessante Bilder erzeugen, aber sie kann nicht die Sprache der Malerei sprechen. Das erfordert echte Anstrengung beim Lernen und Betrachten. Nur weil man Pinseltechnik in ein menschliches Gehirn oder ein AI-Tool injiziert, wird man noch kein Künstler
Manchmal ist es gut, wenn jemand mit neuen Augen auf etwas schaut, die noch nicht durch Jahrzehnte bestehender Geschichte geprägt sind
Der Link zum Rahmen, den ich zum Befestigen des Displays verwendet habe, ist übrigens gesperrt.
https://www.leroymerlin.fr/produits/decoration-eclairage/dec...
Für alle, die neugierig sind: Es ist der schwarze Rahmen MILO 21 x 29,7 cm. Der folgende Link lässt sich bei mir öffnen.
https://www.leroymerlin.pt/produtos/decoracao-e-tapetes/mold...
Außerdem ist der verwendete Bildschirm, der HMTECH Raspberry Pi Screen 10.1, ziemlich schwer zu finden. Kann jemand einen Bildschirm mit ähnlicher Qualität und ähnlichen Spezifikationen empfehlen?
Ich frage mich auch, warum Infrarotbeleuchtung und eine Infrarotkamera verwendet werden.
Zu „Kunst besteht größtenteils darin, die eigene Innenwelt offenzulegen, und Technik ist nur ein Teil davon“: Ich habe Kunst immer als etwas verstanden, das Gefühle bewahrt und hervorbringt. Deshalb ist auch eine an die Wand geklebte Banane Kunst, und Popmusik ist für mich ebenfalls weiterhin Kunst.
Vielleicht ist das ein Einfluss der Schule, aber ich frage mich auch oft: „Warum?“
Diese Erfindung selbst ist eindeutig ein Kunstwerk, aber ihre Ausgaben sind es in meinen Augen nicht. Es ist wie mit Wolken. Sie bilden viele Formen; manche sind lustig, manche erinnern einen an nahestehende Menschen, und trotzdem ist es gemittelte Zufälligkeit.
Die Idee, die Realität in diese digitale Zufälligkeit zu spiegeln, ist für mich jedoch ohne jeden Zweifel Kunst. Und auch Software, Hardware, Code und Design sind Kunst, selbst wenn sie weder visuell noch akustisch sind. Dass sie schwer herzustellen sind, ist zugleich ein Gegenbeispiel zur These im ersten Absatz.
Eine an die Wand geklebte Banane ist keine Kunst. Das ist nur ein alltäglicher Gegenstand in einer alltäglichen Anordnung.
Man kann das zwar als Kunst empfinden, aber dann fehlt einem vielleicht entweder die Erfahrung mit echter Kunst oder man hat bisher nur oberflächliche Beispiele gesehen.
Ich fände es noch cooler, wenn die Kamera nicht im Rahmen selbst wäre, sondern woanders. In einen künstlerischen Spiegel zu schauen wirkt ein bisschen langweilig.
Was wäre, wenn man ein zweites Exemplar baut und es bei jemand anderem zu Hause aufstellt, und dann das Kamerabild der einen Seite an die andere schickt? Dann gäbe es diese kleinen Momente, in denen man das „Spiegelbild“ einer anderen Person sieht und beide gleichzeitig dieses Bild betrachten. Man könnte mehrere davon bauen und nie wissen, wen man gerade sieht. Das wäre dann so etwas wie Omegle im Bilderrahmen.
Soweit ich mich erinnere, wurde so etwas bereits als Kunstinstallation im öffentlichen Raum umgesetzt. Dabei konnte man Menschen an anderen Orten auf der Welt sehen und mit ihnen interagieren.
Zum Beispiel das hier: https://www.inavateonthenet.net/news/article/vc-art-installa...
Wenn man ein paar Old-Work-Niederspannungshalterungen und Brush-Wall-Plates kauft (https://www.homedepot.com/p/Carlon-1-Gang-Non-Metallic-Low-V..., https://www.homedepot.com/p/Commercial-Electric-1-Gang-Brush...) und das Stromkabel in der Wand verlegt, würde es viel besser aussehen.
Wirklich eine tolle Idee, und ich hätte auch gern so eins in meinem Bücherregal.
Es hieß zwar, „das Hauptproblem der aktuellen Konfiguration ist die niedrige Framerate“, aber ich würde das eher Feature als Einschränkung nennen. Es ist gar nicht schlecht, dass man Zeit hat, das Bild kurz zu verarbeiten und auf sich wirken zu lassen.
Ich würde das Aktualisierungsintervall eher auf 5 bis 15 Minuten erhöhen und jedes Mal ein neues Bild erfassen und generieren lassen, wenn sich etwas verändert oder Bewegung erkannt wird.
Hast du darüber nachgedacht, zwischen den Bildern einen hochfrequenten Morphing-Effekt einzubauen? Das könnte die wahrgenommene Framerate erhöhen und ziemlich cool aussehen.
https://hardwork.party/aws-epoch-optimizer/
Die Richtung „Kunst selektiert Technik zu stark. Können wir beides entkoppeln?“ gefällt mir wirklich sehr.
Ich verstehe die Gründe für die Ablehnung generativer AI-Ansätze, aber in der Praxis hat man manchmal einfach eine großartige Idee, ohne die technischen Fähigkeiten zu haben, sie selbst umzusetzen. Für jede einzelne dieser Ideen kann man nicht Monate oder Jahre investieren, und sie ist meist auch nicht wichtig genug, um einem erfahrenen Künstler Hunderte Dollar zu bezahlen.
Jetzt gibt es einen Weg, Dinge zu erzeugen, die Menschen sich wünschen, und daran Freude zu haben, und das ist etwas Gutes. Zumindest für die persönliche Nutzung; bei kommerziellen Zwecken wird es etwas komplizierter.
Wenn also jemand sagt: „Das ist eine gute Idee“, meint er in Wirklichkeit eher: „Das ist gute Arbeit.“
Ob Menschen Ideen, die durch AI-Arbeit gestützt werden, als wertvoll ansehen werden, wird die Zeit zeigen. Kann man das überhaupt unterscheiden? Niemand weiß es.
Das hier kann nicht einfach irgendwer bauen, und es bestätigt damit unbeabsichtigt, dass es technisches Können braucht, um eine Maschine zu bauen, die die Realität verzerrt. Die erzeugten Bilder sind keine Kunst.
Wenn die Hauptschwierigkeit der aktuellen Konfiguration die niedrige Bildrate ist, wäre es vielleicht sogar besser, sie noch weiter auf 0.3~1 fps zu senken!