CrieImagens

Stable Diffusion: Um modelo de código aberto

dezembro 14, 2023 | by CrieImagens

an-astronaut-riding-a-horse-on-the-moon-realistic-dramatic (5)

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

view all