Criando QR Codes com Stable Diffusion e ControlNet

Não faz muito tempo, as pessoas não tinham a menor ideia do que era um QR Code. Hoje a história é diferente. Depois das patinetes, das muitas lives durante a pandemia, e de vários programas de TV explicando o que era aquele embaralhado de blocos pretos e brancos no canto da tela — sem falar da menção desonrosa dos menus de restaurante por QR Code (mas já falando) — agora o QR Code é pop. O curioso é que a invenção data de 1994.

QR Codes são tão versáteis: servem de links, gatilhos de realidade aumentada, facilitadores de conexão wi-fi, atalhos para compartilhar contatos, como forma de autenticação (TOTP) e até se tornaram objetos de arte. Vá lá no Google Images e busque por "qr code art", vale a pena.

E agora, no meio da avalanche de assuntos sobre Generative AI, descobrimos que dá para combinar QR Codes reais com artes geradas por AI e mantê-los funcionando, o que é o mais surpreendente. O processo não é muito complexo, testando alguns parâmetros e models no Stable Diffusion é possível obter resultados bem interessantes.

A coleção de exemplos a seguir foi apenas um primeiro teste. Um workflow mega resumido seria o seguinte: use um gerador online e genérico de QR Codes*, anexe o QR Code gerado ao ControlNet duas vezes, use models brightness e tile no ControlNet, e rode seus prompts de Stable Diffusion local.


* Um detalhe importante: existe um parâmetro para a geração de QR Codes que é o ECL, e para este tipo de experimento o ECL deve ser H (high). ECL vem de error correction level ou error correction feature, e serve para indicar a capacidade do QR Code de "resistir" a defeitos (manchas, sujeiras, riscados) e ainda assim ser lido e preservar suas informações.

A leitura dos QR Codes deste post foi testada na câmera nativa do iPhone, deve funcionar na maioria dos Androids também. Alguns QR Codes são mais difíceis de ler, geralmente o reconhecimento é melhor a certa distância.

por
João Frescurato
Sócio, UX + Tech