- O PabloNet é um dispositivo que converte vídeo de webcam em diffusion em tempo real e exibe isso em um LCD emoldurado, fazendo a imagem gerada ser vivida não como uma demo em notebook, mas como um objeto físico pendurado na parede
- A implementação combina um servidor baseado em StreamDiffusion, um cliente com Raspberry Pi 5, tela de 10,1 polegadas, câmera Pi NoIR, iluminação infravermelha e uma moldura comum
- A maior limitação é a baixa taxa de quadros; houve melhora com TensorRT e compressão das imagens de entrada e saída, mas ainda há espaço para ganhar mais responsividade
- Como é difícil obter o estilo visual desejado só com prompts, também foram testados filtros de pré-processamento; o estilo azul à la Picasso foi obtido com a combinação de Canny edge detection, coloração azul e blur
- Na atualização de janeiro de 2025, depois da reação no HN surgirem pedidos, o projeto evoluiu para uma versão mais limpa e pronta para envio, com Pi Zero, suportes impressos em 3D, painel traseiro cortado a laser e dongle Wi‑Fi
Um quadro de diffusion em tempo real pendurado na parede
- O PabloNet é um dispositivo que recebe entrada de webcam, faz transformação de imagem em tempo real e mostra o resultado em um LCD no formato de quadro
- Os primeiros experimentos rodando StreamDiffusion em um notebook eram divertidos, mas o formato de notebook quebrava a ilusão e passava uma sensação temporária e “geeky”
- Ao transformar isso em um quadro LCD de parede, a tela passa a funcionar não como um simples display, mas como um objeto com permanência
- Ele pode ser reencontrado em diferentes horários, humores, iluminações, com objetos e com amigos
- Há vídeos de exemplo com rostos, iluminação infravermelha no escuro, objetos e interações com amigos
- Hoje a maior limitação é o baixo FPS
- A taxa de quadros foi aumentada com TensorRT e compressão das imagens de entrada e saída
- Ainda assim, ainda há bastante espaço para melhoria
Configuração de hardware e criação do estilo visual
- Para que qualquer pessoa possa montar ou contribuir, o código do cliente e do servidor está disponível em pablonet
- Configuração inicial de hardware:
- Hospedagem do servidor: RunPod
- Cliente: Raspberry Pi 5
- Tela: 10.1" Pi screen
- Iluminação: infrared light
- Moldura: generic frame
- Câmera: infrared Pi camera
- O furo da câmera foi feito no papelão da moldura com um furador, que permitiu um corte mais limpo do que uma furadeira
- O resultado visual não foi obtido só com prompts; os filtros de pré-processamento foram quase tão importantes quanto
- Ao usar img2img sem pré-processamento, o resultado muitas vezes ficava realista demais
- O estilo azul à la Picasso foi criado com a combinação de Canny edge detection, coloração azul e blur
Segunda versão pronta para envio após a reação no HN
- Depois da thread no Hacker News, o projeto ganhou atenção e chegaram pedidos inesperados, levando à criação de uma versão mais limpa e pronta para envio
- A segunda versão mudou para reduzir os incômodos do dispositivo original
- No dispositivo anterior, era preciso segurar os componentes eletrônicos para que não caíssem antes de fixá-lo na parede
- Para a função de apenas chamar uma API e mostrar imagens, um Pi comum parecia exagerado e caro
- O estado dos cabos também não era bom
- As peças compradas foram modeladas em CAD no Fusion 360, e após quatro iterações nas peças customizadas, o projeto convergiu para 2 suportes impressos em 3D e um painel traseiro cortado a laser
- Funções dos suportes:
- Fixar a tela alinhada ao vidro e ao papelão da moldura
- Fixar o Pi Zero e a câmera
- Servir como keyhole slot para pendurar na parede
- Permitir prender o conjunto à moldura com parafusos e porcas
- Permitir fixar o painel traseiro com threaded inserts inseridos na peça impressa em 3D com ferro de solda e parafusos
Um método de configuração para que o usuário possa operar sozinho
- Para aumentar a viabilidade de envio, foi preciso resolver as affordances para o usuário
- A primeira versão usava mouse e teclado Bluetooth pré-configurados nas portas USB do Pi
- Considerou-se ruim exigir que o usuário abrisse o painel traseiro e configurasse por conta própria hub USB, mouse e teclado com fio e pareamento Bluetooth
- Para evitar isso, foi adicionado um dongle Wi‑Fi para que o Pi funcione como um ponto de acesso para conexão via SSH e, ao mesmo tempo, continue conectado à internet pela interface de rede existente
- Mais detalhes de construção podem ser vistos no repositório do pablonet, e encomendas personalizadas podem ser feitas por e-mail
1 comentários
Opiniões no Hacker News
Legal. Dei uma olhada no código e vejo algumas dicas para melhorar a baixa taxa de quadros
Codificar bytes JPEG em Base64 aumenta o payload em até cerca de 30% e usa CPU tanto no cliente quanto no servidor. WebSocket pode enviar payloads binários, então não há necessidade de transformar em texto
Também vale considerar remover a compactação JPEG com perdas e simplesmente enviar bytes RGB brutos pela rede. No lado do servidor, basta chamar
Image.frombuffer(…)O StreamDiffusion consegue atingir altas taxas de quadros porque faz processamento em lote extensivo no pipeline, mas aqui o cliente envia só um frame por vez e espera a resposta, então não se aproveita desse benefício. Para enfileirar os frames de entrada e consumi-los em lotes, dá para consultar este exemplo https://github.com/cumulo-autumn/StreamDiffusion/blob/main/e...
Ou também vale olhar os modelos SDXL Turbo e Lightning. Em img2img eles são muito rápidos, mas têm limitação de resolução a 512² ou 1024² pixels, respectivamente. Parece um pouco abaixo do objetivo, mas é possível rodar localmente em tempo real em uma GPU de consumidor high-end. O código de referência está aqui https://github.com/GradientSurfer/Draw2Img/tree/main
Sobre a frase “fazer arte é difícil. Mas arte é, em grande parte, revelar o mundo interior, e a técnica é apenas uma parte. É uma pena que a arte filtre tão fortemente pela técnica”: não quero soar como ludita, mas questiono a ideia de que a lacuna técnica seja apenas um inconveniente
Acho que o processo de aprender a desenhar ou fazer música muda algo dentro de você e ensina lições de vida mais profundas
Já ouvi dizer que “grandes obras de arte não são feitas por gênios; a genialidade chega inesperadamente, como uma rajada de vento”. O melhor que um artista pode fazer é cultivar essas oportunidades, e remover a lacuna técnica parece remover esse processo de cultivo, a essência de transformar a si mesmo
Parece haver alguns princípios profundos em ação aos quais continuamos voltando, sem saber bem o que são nem como falar deles. O projeto é divertido e parece útil para muita gente, mas às vezes me pego pensando nisso
Se o projeto como um todo tem essa qualidade é mais ambíguo, mas pessoalmente acho que não. Parece um trabalho movido mais pela técnica do que pela psicologia. É claro que um espelho tem grande simbolismo, então seria possível escrever uma nota de artista defendendo que é um trabalho psicológico
Ainda assim, gosto dele, e se eu tivesse feito ficaria orgulhoso. Mas está mais próximo de habilidade técnica do que de arte
No meu caso, eu reduziria a taxa de quadros em vez de aumentá-la. Seria uma forma de usar a limitação em vez de lutar contra ela. Faria o sistema exibir apenas imagens “boas” e não atualizar a tela até que outra imagem “boa” fosse gerada. O código que decide se uma imagem é “boa” se tornaria a parte mais interessante do sistema e poderia ser apresentado como portador da intenção do artista, aproximando-o mais da Arte com A maiúsculo segundo meu critério pessoal
Também experimentaria bufferizar o fluxo de imagens, como em Light of Other Days, de Bob Shaw
E, como o Halloween está chegando, a tentação de às vezes fazer inpainting de uma figura em pé atrás do espectador deve ser enorme
Para obter estabilidade na imagem, será que daria para fazer um LLM gerar código de filtro de vídeo aleatório em vez de gerar imagens aleatórias? Algo como “escreva um filtro de vídeo que faça a entrada parecer cubista”, “como pintura a óleo”, “com estética Flash”. Se o filtro fosse gerado e não travasse de fato, o sistema passaria a usá-lo. Não sei se é possível
A Mona Lisa não é simplesmente uma pintura bem-feita de uma pessoa. Ela está cheia de detalhes e significados que só quem estudou pintura consegue entender. IA pode gerar imagens aceitáveis ou interessantes, mas não consegue falar a linguagem da pintura. Isso exige esforço real para aprender e apreciar. Injetar técnica de pincelada no cérebro de uma pessoa ou em uma ferramenta de IA não transforma alguém em artista
Às vezes é bom que alguém com olhos novos, não moldados por décadas de história existente, olhe para algo
Como referência, o link do frame usado para fixar o display bloqueia o acesso
https://www.leroymerlin.fr/produits/decoration-eclairage/dec...
Para quem estiver curioso, é a moldura preta MILO 21 x 29,7 cm. O link abaixo abre para mim
https://www.leroymerlin.pt/produtos/decoracao-e-tapetes/mold...
Além disso, a tela usada, a HMTECH Raspberry Pi Screen 10.1, é bem difícil de encontrar. Alguém teria uma recomendação de tela com qualidade e especificações parecidas?
Também fiquei curioso sobre por que usar iluminação infravermelha e câmera infravermelha
Sobre “arte é, em grande parte, revelar o mundo interior; a técnica é só uma parte”, sempre pensei que arte é preservar e criar emoções. Por isso, uma banana presa na parede também é arte, e música pop ainda é arte
Talvez seja influência da escola, mas eu também costumo perguntar “por quê?”
Esta invenção em si é claramente uma obra de arte, mas o resultado que ela gera, aos meus olhos, não é. É como nuvens. Elas formam várias figuras, algumas são engraçadas, outras podem lembrar alguém próximo, mas ainda assim é uma aleatoriedade média
Dito isso, a ideia de refletir a realidade nessa aleatoriedade digital é, sem dúvida, arte. E software, hardware, código e design também são arte, mesmo que não sejam visuais ou sonoros. O fato de serem difíceis de criar também serve como contraexemplo ao argumento do primeiro parágrafo
Uma banana presa na parede não é arte. É apenas um objeto cotidiano colocado em uma disposição cotidiana
Você pode sentir que isso é arte, mas, nesse caso, talvez não tenha tido contato suficiente com arte de verdade para ter um repertório de experiências, ou talvez só tenha visto exemplos superficiais até agora
Acho que seria mais interessante se a câmera ficasse em outro lugar, não no mesmo frame. Olhar para dentro de um espelho artístico parece um pouco entediante
Que tal fazer um segundo e colocá-lo na casa de alguém, enviando a imagem da câmera de um lado para o outro? Você veria o “reflexo” de outra pessoa, e surgiriam pequenos momentos em que os dois olham para a imagem ao mesmo tempo. Também daria para fazer vários e nunca saber quem você está vendo. Seria uma espécie de Omegle em formato de quadro
Lembro que algo assim já foi feito como instalação artística em espaços públicos, permitindo ver e interagir com pessoas em diferentes lugares do mundo
Por exemplo, isto aqui https://www.inavateonthenet.net/news/article/vc-art-installa...
Acho que ficaria muito mais bonito se comprasse alguns suportes antigos de baixa tensão para instalação em parede e placas de parede com escova (https://www.homedepot.com/p/Carlon-1-Gang-Non-Metallic-Low-V..., https://www.homedepot.com/p/Commercial-Electric-1-Gang-Brush...) e passasse o cabo de energia por dentro da parede
Ideia muito legal, eu adoraria ter um desses na minha estante
Você disse que “o principal problema da configuração atual é a baixa taxa de quadros”, mas eu chamaria isso mais de recurso do que de limitação. Não é ruim ter um tempinho para processar e absorver a imagem
Eu, na verdade, aumentaria o intervalo de atualização para 5 a 15 minutos e faria capturar e gerar uma nova imagem sempre que algo mudasse ou movimento fosse detectado
Você já considerou colocar um efeito de morphing em alta taxa de quadros entre as imagens? Acho que aumentaria a taxa de quadros percebida e ficaria bem legal
https://hardwork.party/aws-epoch-optimizer/
Gosto muito da direção de “a arte filtra a tecnologia com força demais. Será que dá para descorrelacionar as duas?”
Entendo os motivos para se opor à abordagem de IA generativa, mas, na prática, às vezes surgem ideias legais e não temos a habilidade técnica para criá-las. Não dá para investir meses ou anos em cada uma dessas ideias, e elas também não são importantes a ponto de pagar centenas de dólares a um artista experiente
Agora surgiu um caminho para as pessoas gerarem o que querem e se divertirem com isso, e isso é bom. Pelo menos para uso pessoal; para fins comerciais, fica um pouco mais complicado
Por isso, quando alguém diz “é uma boa ideia”, o que isso realmente quer dizer é algo mais próximo de “é um bom trabalho”
O tempo dirá se as pessoas verão como valiosas ideias sustentadas por trabalhos feitos com IA. Será que dá sequer para distinguir? Ninguém sabe
O que foi apresentado aqui não é algo que qualquer pessoa consiga fazer, e acaba validando sem querer que é preciso técnica para criar uma máquina que distorce a realidade. As fotos geradas não são arte
Se o principal problema da configuração atual é a baixa taxa de quadros, talvez fosse melhor reduzi-la ainda mais, para algo em torno de 0,3~1 fps!