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.
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
Autodidata, me aprofundei em sistemas operacionais baseados em UNIX®, principalmente Linux. Também procuro trazer assuntos correlacionados direta ou indiretamente, como automação, robótica e embarcados.