WEB3DEV

Cover image for Stable Diffusion utilizando apenas referência (attn e AdaIN) ControlNet com Z by HP e Google Colab
Adriano P. Araujo
Adriano P. Araujo

Posted on

Stable Diffusion utilizando apenas referência (attn e AdaIN) ControlNet com Z by HP e Google Colab

Os modelos de difusão são um tipo de modelo generativo que pode ser usado para criar imagens realistas a partir de descrições de texto. Eles funcionam adicionando gradualmente ruído a uma imagem até que ela corresponda à descrição.

Neste post do blog, discutirei um novo método para orientar a geração de imagens de forma mais estável. Esse método, chamado de “apenas referência” (reference-only), usa uma imagem de referência para guiar o pré-processamento do ControlNet. Isso ajuda a direcionar o modelo a produzir imagens relacionadas à imagem de referência.

Também discutirei como usar o método de “apenas referência” com o modelo ControlNet entre o melhor equipamento Z by HP e o método online do Google Colab.

ControlNet:

ControlNet é uma estrutura de rede neural para controlar modelos de difusão adicionando condições extras. Ele copia os pesos dos blocos da rede neural em uma cópia "travada" e uma cópia "treinável". A cópia "treinável" aprende sua condição. A cópia "travada" preserva seu modelo. Graças a isso, o treinamento com um pequeno conjunto de dados de pares de imagens não destruirá os modelos de difusão prontos para produção. A "convolução zero" é uma convolução 1x1 com peso e viés inicializados como zero. Antes do treinamento, todas as convoluções zero produzem zeros, e o ControlNet não causará nenhuma distorção. Nenhuma camada é treinada do zero. Você ainda está refinando as coisas. Seu modelo original está seguro. Isso permite o treinamento em dispositivos de pequena escala ou até mesmo pessoais. Também é favorável para fusão/substituição/deslocamento de modelos/pesos/blocos/camadas.

Antes e depois de usar o ControlNet

referência: https://github.com/lllyasviel/ControlNet

Utilizando a Difusão Reference-only (apenas com Referência) usando o ControlNet

O pré-processador reference-only não requer nenhum modelo de controle. Ele pode guiar a difusão diretamente usando imagens como referências. Esse ControlNet reference-only pode vincular diretamente as camadas de atenção do seu SD (Stable Diffusion) a quaisquer imagens independentes, para que seu SD possa ler imagens arbitrárias como referência. Você precisa ter pelo menos a versão 1.1.153 do ControlNet para usá-lo.

ControlNet usando apenas-referência na webUI

referência: https://github.com/Mikubill/sd-webui-controlnet/discussions/1236

ref:https://www.reddit.com/r/StableDiffusion/comments/13h3jn7/controlnet_reference_only_test/

Gerando imagens usando apenas referência com o Google Colab

Conforme mencionado acima, você precisará da versão mais recente do ControlNet. Para isso, o webUI também deve estar preparado com a versão mais recente. Fizemos experimentos com base no código webUI de AUTOMATIC1111 e, se você já configurou o código, precisará atualizar a versão por meio do comando git pull.

ref: https://github.com/AUTOMATIC1111/stable-diffusion-webui

*Atualmente, há um problema no uso do webUI no Google Colab. Você não terá problemas ao usá-lo, a menos que tenha uma assinatura paga.

*Observe que isso pode levar muito tempo para configurar.

Quando você executar o webUI, a seguinte tela aparecerá. Na tela em que txt2img é selecionado, escolha ControlNet abaixo. Se não estiver instalado, vá para a guia de extensões e instale o ControlNet. Se a versão for inferior à especificada acima, realize uma atualização por meio da opção “Verificar atualizações”.

Diferença entre o ambiente do Google Colab e o Z4 (Z by HP)

Se as configurações forem idênticas, parece não haver nada a comparar além do tempo necessário para criar uma imagem. O teste foi realizado com base no webUI. A principal diferença entre este experimento e outros experimentos gerais parece ser a presença ou ausência da aplicação de apenas referência do Controlnet.

Comparação de desempenho ao criar imagens sem aplicar o ControlNet

Image description

Comparação de velocidade de geração de imagens quando o ControlNet é aplicado

Image description

Imagens criadas através de experimentação.

imagem gerada com “anel  com diamante ”

imagem gerada com  com prompt “anel com de diamante ” sem ControlNet reference-only

uma imagem de referenciada ( entrada ) para o ControlNet

imagem gerada com prompt de “anel com diamante ” com ControlNet  reference-only

A qualidade de criação é um pouco inferior em relação ao anterior, mas cria a sensação de estar em uma área vulcânica, assim como a imagem de referência.

Detalhes de configuração:

  • Tamanho da imagem: 512x512

  • Método de amostragem: Euler a

  • Passos de amostragem: 20

Em ambos os casos, há uma grande diferença na taxa de produção. É um fato óbvio, mas pode-se observar que o Z4 com A6000 é muito mais poderoso do que o Google Colab. Mesmo com o Google Colab, ao contrário do que ocorria antes, existe um limite para a quantidade de créditos que podem ser utilizados, mesmo que você seja assinante. Se você exceder uma determinada quantidade, será necessário adquirir créditos adicionais.

Opinião:

No futuro, teremos uma sociedade em que modelos generativos se tornarão cada vez mais importantes. Será difícil substituir os seres humanos pela IA, mas pelo menos podemos afirmar que "as pessoas que utilizam IA substituirão aquelas que não a utilizam".

No entanto, para aproveitar bem esse modelo de geração, é necessário conhecer bem várias ferramentas e ambientes, mas o mais importante é criar rapidamente o seu próprio ambiente. Em outras palavras, a produtividade do modelo generativo está relacionada à minha produtividade.

A fim de aumentar a produtividade do seu trabalho, esperamos utilizar o modelo generativo, e isso se tornará mais valioso quando combinado com equipamentos poderosos. Chegará um momento em que todos precisarão de um modelo generativo individual, e acredito ser altamente provável que esse seja o caminho.

Conclusão:

Neste post, discuti um novo método para orientar a geração de imagens utilizando modelos de difusão de forma mais estável. Esse método, chamado de “apenas referência”, utiliza uma imagem de referência para guiar o processo do ControlNet.

Também discuti como usar o equipamento local/edge Z4 da Z by HP e o Google Colab. Espero que este post  tenha sido informativo e que você encontre o método de “apenas referência” útil para seus próprios projetos e para a seleção de critérios de ambiente de desenvolvimento e pesquisa.


Este artigo foi escrito por  Chanran Kim e traduzido por Adriano P. de Araujo. O original em inglês pode ser encontrado aqui.

Latest comments (0)