Stable Diffusion

Aprenda o que é tecnologia stable diffusion que gera imagens de textos e como instalar no seu sistema Linux para gerar imagens sem limitações


| Se você apoia nosso site, desative o AdBlock quando visitá-lo, inclusive em Mobile!
Os anúncios são poucos e não invasivos. Se quiser contribuir com nosso trabalho, clique em qualquer banner de sua preferência, exceto dos Parceiros. 
Mais detalhes clicando aqui.


1. Introdução

A Inteligência Artificial é definida quando temos equipamentos eletrônicos que se comportam de forma similar a seres inteligentes, normalmente os seres humanos.

E esse ramo de estudo na informática deu saltos gigantescos nos últimos anos.

Já publicamos aqui na Linux Universe um tutorial de Machine Learning, que é uma forma de tornar uma máquina “inteligente” ensinando ela como “pensar”, nesta publicação. Também já abordamos o Mycroft que permite criar um assistente pessoal caseiro primo da Alexa! E também já falamos até dos papéis de parede do Ubuntu 22.04 que foram gerados por IA, mais especificamente pelo QMUL.

De forma superficial e resumida o treinamento que uma IA recebe para aprender padrões e desenvolver formas inéditas inspiradas em modelos computacionais delimitados por texto é semelhante ao treinamento de Machine Learning. Antes de saber, a máquina é treinada com centenas de milhares de imagens semelhantes de diversos padrões, posições, estilos, formatos, layouts dentre outras variáveis.

Por fim, após gerar um “ruído” indefinido, a máquina começa a filtrar pixel a pixel desenvolvendo padrões que se complementem. O algoritmo usado, quanto mais avançado, mais profunda e perfeita é essa junção de padrões.

Atualmente posso pedir pra máquina gerar “um dinossauro andando de bicicleta numa avenida”. O resultado será:

dinossaur riding a bike on avenue

E dentro do que há de interessante no mundo doméstico, o Stable Diffusion desenvolvida pela CompVis group LMU Munich de código aberto gratuita e livre permite gerar imagens em computadores domésticos!

2. Stable Diffusion

Stable Diffusion é na verdade o nome da técnica de deep learning (modelo de rede neural virtual utilizado em machine learning) que é o que gera imagens a partir de textos.

No aprendizado de máquina o Stable Diffusion é quando a rede neural trabalha baseada nos modelos de difusão, também conhecidos como modelos probabilísticos de difusão cujo objetivo é aprender a estrutura latente de um conjunto de dados, modelando a maneira como os pontos de dados se difundem pelo espaço latente. Na visão computacional, isso significa que uma rede neural é treinada para reduzir o ruído de imagens borradas com ruído gaussiano, aprendendo a reverter o processo de difusão.

De forma simples, a imagem original é destruída durante o processo de treinamento, e depois o computador reverte essa “destruição”, aprendendo os padrões e desenhando pixel a pixel cada trecho para compor o que se deseja.

This is how the AI ​​Stable Diffusion works, step by step, when creating images from text - Gearrice

Nesse exemplo de como a IA gera a imagem, ela inicia como uma série de fragmentos coloridos disformes, que vão sendo “polidos” e ganhando forma. O processo demora em torno de 1 minuto (dependendo da máquina são segundos) e são renderizadas de 25 a 50 camadas até que a imagem final seja criada.

3. Stable Difussion UI

A estrela da publicação de hoje é a Stable Difusion UI, uma interface de usuário que facilita o uso do Stable Difusion localmente instalando na sua máquina pessoal!

O site oficial com os links de download tanto para Linux setup.sh quanto para Windows .exe estão aqui.

Os requisitos dependem do que você quer ou precisa gerar. Nos meus testes a especificação foi a seguinte:

  • CPU Intel Core i7-4790 @ 4 Ghz
  • GPU GTX 1050 Ti 4 Gb
  • 16 Gb de RAM

E o consumo do sistema durante a renderização foi:

  • 3 Gb de VRAM
  • 6 Gb de RAM
  • 16 Gb de Disco

O armazenamento é o mais comprometido por carregar todos os modelos neurais de desenvolvimento de imagens. Ou seja, o programa funciona sem internet!

3.1 Instalação

A principal vantagem de ter a instalação local, é não depender de internet para gerar as imagens e você também não corre nenhum risco em alimentar IA’s hospedadas em servidores estrangeiros sob os quais você não sabe como serão tratados seus dados pessoais!

No site oficial baixe a versão desejada.

Siga o tutorial conforme o seu sistema operacional! De forma resumida é executar o script Setup.sh e aguardar.
A pasta aonde o script Setup.sh reside é aonde será o local da instalação, portanto assegure-se de ter pelo menos 20 Gb livres.

Em um sistema com SSD a instalação demorou certa de 20 minutos. O download dos dados e as compilações são pesadas, portanto pode considerar que isso pode demorar e muito!

Quando estiver tudo pronto, basta executar o novo script start.sh que surgiu na pasta stable-diffusion-ui, aguarde algumas dezenas de segundos e abra em seu navegador o seguinte link:

http://localhost:9000/

Você estará diante da tela do programa:

3.2 Observações

O programa é auto-configurado totalmente. Se você tem placa de vídeo NVIDIA, certifique-se de ter os drivers CUDA Tookit, que normalmente podem ser instalados com este comando:

sudo apt install nvidia-cuda-toolkit

O toolkit CUDA requer aproximadamente 5 gb de armazenamento para os drivers mais recentes.

Se for AMD, certifique-se de ter os drivers compatíveis com OpenCL e de preferencia os drivers proprietários da AMD, que podem ser baixados do site oficial e não dos repositórios!

Uma vez executado, o programa vai automaticamente detectar sua GPU e vai utiliza-la para renderizar as imagens. O uso da CPU é desencorajado, apesar de ser possível no menu de opções da interface web.

As opções padrão serão úteis para a maioria dos usuários.

Da mesma forma que as opções padrão para renderização de imagens serão suficientes:

Algumas opções aumentarão drasticamente o uso de VRAM o que podem ocasionar travamentos no sistema e/ou travamento do software por pouca memória de vídeo disponível.

4. Utilização!

Para brincar com o stable difusion você primeiro define uma descrição do que se deseja gerar. Lembre-se de sempre escrever em Inglês.

A arte de exemplo utilizei esta imagem para alimentar a base do programa:

E utilizei esta descrição:

website artwork to divulgate stable diffusion

O resultado:

De fato “ok”.

Ao contrário do “dinossauro andando de bicicleta numa avenida”, pedir pra IA gerar algo mais complexo como “uma artwork de um site” e utilizar nomes próprios como “linux universe” não costuma ter os melhores resultados.

Então lembre-se de que a IA ainda não é perfeita e funciona melhor com imagens mais objetivas com descrições mais diretas, por exemplo sujeito e verbo nas descrições. Mudando a descrição para algo como “tecnology artwork” o resultado:

Foi gerado algo mais “similar” à arte original que serviu de inspiração.

O software é plenamente capaz de gerar rostos e cenários, por exemplo “castle alley” gerou isto:

5. Análise Opinativa

Vou dar meus dois dedos de prosa a respeito dessa tecnologia e tantas semelhantes surgindo no mercado como o Dall-E da OpenAI.

Esta IA por exemplo gera fotos, desenhos, pinturas, basicamente quase todo estilo de arte existente, cubista, minimalista, dadaísta, etc.

Diante disso:

As IA’s poderão substituir os artistas? Fotógrafos, pintores, desenhistas, artistas em geral, poderão ter seus empregos sob risco com o advento das IA’s? Deixo essa no ar, dê sua opinião nos comentários!

6. Conclusão

Sem limitações na versão instalada localmente, inclusive a quem interessar qualquer tipo de conteúdo NSFW pode ser gerado pelo stable difusion, você pode fazer diversos ajustes, trocar os seeds, instalar novos samplers e/ou modelos para gerar as mais diversas artes.

E você, o que gostaria de gerar de um software desse tipo?

#UrbanCompassPony

Deixe um comentário