![an-astronaut-riding-a-horse-on-the-moon-realistic-dramatic (5)](https://blog.crieimagens.com/wp-content/uploads/2023/12/an-astronaut-riding-a-horse-on-the-moon-realistic-dramatic-5-1024x540.png)
Você já imaginou como seria criar imagens realistas a partir de simples descrições em linguagem natural? Com o Stable Diffusion, isso é possível. Neste post, vamos explicar o que é o Stable Diffusion, como usá-lo localmente, como funciona seu algoritmo e por que ele é um projeto de código aberto.
O que é o Stable Diffusion?
O Stable Diffusion é um modelo de aprendizagem profunda para transformação de texto para imagem, lançado em 2022 pela StabilityAI, uma empresa de inteligência artificial focada em gerar arte e criatividade. O modelo é capaz de gerar imagens detalhadas e coerentes a partir de qualquer texto de entrada, usando uma técnica chamada difusão latente. Além disso, o modelo também pode ser usado para outras tarefas, como inpainting (preencher partes faltantes de uma imagem), outpainting (estender uma imagem além de seus limites originais) e image-to-image (gerar uma nova imagem a partir de uma imagem existente).
Como funciona o algoritmo do Stable Diffusion?
O algoritmo do Stable Diffusion é baseado em uma técnica chamada difusão latente, que consiste em transformar uma imagem em uma representação de baixa dimensão chamada latente, e depois reconstruir a imagem a partir do latente usando um processo estocástico. O modelo usa uma arquitetura chamada UNet, que é composta por duas partes: um codificador, que mapeia a imagem em um latente, e um decodificador, que reconstrói a imagem a partir do latente. O modelo também usa uma rede de atenção cruzada, que permite incorporar informações textuais no latente, condicionando a geração da imagem.
O processo de geração de uma imagem a partir de um texto é o seguinte:
- O texto é codificado em um vetor de características usando um codificador de linguagem natural, como o BERT ou o GPT-3.
- O vetor de características é passado para a rede de atenção cruzada, que o combina com um latente inicial, que é uma amostra de uma distribuição normal padrão.
- O latente combinado é passado para o decodificador, que gera uma imagem inicial, que é uma versão borrada e ruidosa da imagem desejada.
- A imagem inicial é passada para o codificador, que a mapeia em um novo latente, que é uma versão refinada do latente anterior.
- O novo latente é passado novamente para a rede de atenção cruzada, que o combina com o vetor de características do texto, e depois para o decodificador, que gera uma nova imagem, que é uma versão mais nítida e limpa da imagem anterior.
- Esse processo é repetido várias vezes, até que a imagem gerada seja suficientemente realista e coerente com o texto.
Por que o Stable Diffusion é um projeto de código aberto?
O Stable Diffusion é um projeto de código aberto porque os seus criadores acreditam que a inteligência artificial deve ser acessível e democrática, e que a arte e a criatividade devem ser compartilhadas e inspiradas. Ao disponibilizar o modelo e o código fonte para o público, eles esperam estimular a inovação e a colaboração na comunidade de aprendizagem profunda, bem como permitir que qualquer pessoa possa criar e explorar imagens a partir de suas próprias ideias e visões. O projeto também visa contribuir para o avanço da pesquisa e do desenvolvimento de modelos de texto para imagem, que são considerados um dos grandes desafios da inteligência artificial.
Como usar o Stable Diffusion localmente?
Para usar o Stable Diffusion localmente, você precisa ter um computador com uma GPU NVidia ou AMD com pelo menos 8GB de memória. Você também precisa instalar o PyTorch, uma biblioteca de aprendizagem profunda, e o Hugging Face Transformers, uma biblioteca de modelos pré-treinados de linguagem natural e visão computacional. Você pode seguir os passos abaixo para instalar as dependências e baixar o modelo:
- Abra um terminal e crie um ambiente virtual com o comando
python -m venv stable_diffusion_env
- Ative o ambiente virtual com o comando
source stable_diffusion_env/bin/activate
- Instale o PyTorch com o comando
pip install torch torchvision torchaudio
- Instale o Hugging Face Transformers com o comando
pip install transformers
- Baixe o modelo Stable Diffusion XL com o comando
transformers-cli download stable-diffusion-xl
Depois de baixar o modelo, você pode usá-lo para gerar imagens a partir de texto com o seguinte código Python:
# Importar as bibliotecas necessárias
import torch
from transformers import StableDiffusionXLTokenizer, StableDiffusionXLModel
# Criar um tokenizador e um modelo
tokenizer = StableDiffusionXLTokenizer.from_pretrained("stable-diffusion-xl")
model = StableDiffusionXLModel.from_pretrained("stable-diffusion-xl")
# Definir um texto de entrada
text = "Um gato preto e branco sentado em uma poltrona vermelha"
# Codificar o texto em tokens
tokens = tokenizer(text, return_tensors="pt")
# Gerar uma imagem a partir dos tokens
image = model.generate(tokens)
# Salvar a imagem em um arquivo
torch.save(image, "image.pt")
Como usar o Stable Diffusion online?
Nesse caso, você pode usar alguma ferramenta online como o CrieImagens. A vantagem de usar o Stable Diffusion online é a facilidade de uso, não requer instalação, basta digitar o que você deseja e começar a gerar incríveis imagens. O CrieImagens é ainda mais recomendado para o idioma português brasileiro, pois ele é otimizado para o nosso idioma.
Conclusão
Neste post, apresentamos o Stable Diffusion, um modelo de texto para imagem de código aberto que pode gerar imagens realistas a partir de qualquer descrição textual. Explicamos o que é o modelo, como usá-lo localmente e online, como funciona seu algoritmo e por que ele é um projeto de código aberto. Esperamos que você tenha gostado deste post e que tenha se inspirado a experimentar o Stable Diffusion e criar suas próprias imagens. Se você quiser saber mais sobre o modelo, você pode visitar o site oficial, o repositório no GitHub ou a página na Wikipédia. Obrigado pela leitura e até a próxima!
RELATED POSTS
View all