Como rodar Stable Diffusion no seu PC para gerar imagens usando IA no Windows (com interface gráfica)

Oi, olá!

Recentemente foi lançado o Stable Diffusion, uma IA de código aberto, criada em colaboração com Stability AI e Runway. Ela promete democratizar a geração de imagens usando linguagem natural. Diferente de concorrentes como o Dall-E 2 ou MidJourney, ela pode ser executada em GPUs convencionais com pelo menos 10 GB de vram. Nesse artigo vamos ver como isso será possível.

Eu ainda não encontrei nenhum artigo de instalação do Stable Diffusion em português, por isso resolvi criar esse, mesmo não sendo muito bom e experiente em escrever tutoriais ou artigos úteis, mas, eu vou tentar explicar da melhor e mais detalhada maneira possível. Me perdoe por qualquer erro, você pode reportar isso nos comentários caso queira fazer alguma crítica ou correção. Estarei atualizando esse artigo se possível.

Para esse tutorial, estarei usando uma máquina com 22 GB de vram que criei na Azure, mas com 10 GB de vram já é possível gerar imagens com uma resolução de 512x512 pixels.

Pretendo fazer um tutorial também ensinando a executar o Stable Diffusion no Google Colab, mas esse artigo é especificamente para a execução local em um ambiente Windows.

  • GPU com pelo menos 10 GB de vram (memória de vídeo).
  • 10 GB de armazenamento disponível.
  • Uma conta no huggingface.co.

Nesse tópico, vamos ver como instalar o Stable Diffusion em ambiente local.

Como o Stable Diffusion é feito em Python, teremos que instalar o Python, já que por padrão, ele não vem instalado no Windows, como no Linux.

  1. Primeiramente, você deverá baixar o Python, nesse caso, estarei usando a versão 3.10 do Python, que você pode baixar para Windows clicando aqui. Depois, execute o instalador.

  2. Na tela inicial do instalador, você deverá clicar em "Add Python <versão> to PATH", daí, é só clicar em "Install Now" e o instalador fará o resto. Depois de instalado, é só fechar o instalador.

Para executar o Stable Diffusion, também é necessário que você instale o Anaconda.

  1. Para instalar o Anaconda para Windows, você pode clicar aqui. Depois, execute o instalador.

  2. Na tela inicial do instalador, basta apenas clicar em: Next > Concordar com os Termos e clicar em I Agree > Next > Next > Install. Depois disso, o instalador fará o resto. Vale lembrar que a instalação pode demorar um pouco mais de tempo para instalar. Depois de instalado, é só fechar o instalador.

Agora vamos baixar o Stable Diffusion a partir do repositório do Github, nesse caso, vamos usar o fork criado pelo hlky, que vai "casar" com o Stable Diffusion Web UI, mantido pelo mesmo.

  1. Primeiramente, eu recomendo criar uma pasta separada, somente para organizar os arquivos do Stable Diffusion e afins, a qual nomearemos: "stable-diffusion".

  2. Baixe o Stable Diffusion que vamos usar apartir do repositório do Github. Você pode fazer isso simplesmente clicando aqui.

  3. Depois disso, basta extrair o arquivo .zip do Stable Diffusion baixado. Nesse caso, vamos extrair ele para a pasta que criamos, o "stable-diffusion".

Agora, vamos baixar o Baixando o Stable Difussion Web UI que vamos usar como uma interface gráfica web para o Stable Difussion.

  1. Baixe o Stable Diffusion Web UI no repositório do Github. Você pode fazer isso simplesmente clicando aqui.

  2. Depois disso, basta extrair o arquivo .zip do Stable Diffusion Web IU baixado. Nesse caso, vamos extrair ele para a pasta que criamos, o "stable-diffusion".

Agora, vamos baixar todos os modelos que vamos usar no Stable Diffusion.

  1. Primeiro, vamos baixar o modelo principal que vai ser usado para a geração das imagens, o sd-v1-4.ckpt. Nesse caso, iremos precisar de uma conta na huggingface.co, que você pode criar clicando aqui.

    Depois disso, basta acessar o repositório, aceitar os termos, clicar em "Access repository" e baixar o arquivo sd-v1-4.ckpt na área de downloads.

    Por fim, vamos mover o modelo a nossa pasta e renomear o arquivo para "model.ckpt".

  2. Para melhorar os rostos gerados, vamos usar o modelo do GFPGAN, por enquanto vamos apenas baixar ele. Para isso, clique aqui, depois, é só mover o arquivo para a nossa pasta principal.

  3. Para tratamento das imagens geradas, vamos usar os modelos RealESRGAN, para isso, você pode clicar nos respectivos links a seguir para baixar o RealESRGAN_x4plus.pth" e o "RealESRGAN_x4plus_anime_6B.pth". Depois disso, basta mover os nossos modelos para a nossa pasta principal.

Agora, vamos unificar as 2 pastas do Stable Diffusion. Essa parte pode ser um pouco complicada, mas vou tentar explicar da melhor maneira possível.

  1. Primeiramente, você deverá mover alguns arquivos na pasta: stable-diffusion\stable-diffusion-webui-master, que são: relauncher.py, webui.py e webui_playground.py. Depois de selecionados, recorte os arquivos apertando ctrl + X e cole ou mova eles para a pasta de scripts do Stable Diffusion, na pasta: stable-diffusion\stable-diffusion-main\scripts e confirme a substituição dos arquivos.

  2. Depois, você precisará mover ou recortar o arquivo de configuração do Web UI, o webui.yaml na pasta stable-diffusion\stable-diffusion-webui-master para a pasta do Stable Diffusion, em: stable-diffusion\stable-diffusion-main\configs\webui, depois disso, basta apenas confirmar a substituição do arquivo.

  3. Por último, basta apenas selecionar todos os arquivos restantes na raíz da pasta stable-diffusion\stable-diffusion-webui-master e colar na raíz da pasta stable-diffusion\stable-diffusion-main, e confirmar a substituição dos arquivos. Após isso, você já pode apagar a pasta stable-diffusion-webui-master, caso queira.

Agora, vamos criar o ambiente do Stable Diffusion e instalar suas dependências para que possamos finalizar a configuração dos modelos.

  1. No seu sistema, pesquise por "Anaconda prompt" e abra-o.

  2. Acesse a sua pasta pelo prompt, copie o caminho da pasta e cole usando o comando:

     cd <caminho da pasta>
    

  3. Agora vamos criar o nosso ambiente onde o Stable Diffuse será usado, você pode fazer isso usando o comando:

     conda env create -f environment.yaml
    

  4. Por ultimo, vamos ativar o nosso ambiente, para isso, vamos usar o comando:

     conda activate ldm
    

Para finalizar a configuração, vamos mover os nossos modelos para os seus respectivos lugares.

  1. Selecione e mova o modelo principal que renomeamos para model.ckpt para a pasta: stable-diffusion\stable-diffusion-main\models\ldm\stable-diffusion-v1.

  2. Agora, selecione e mova o modelo: GFPGANv1.3.pth para a pasta: stable-diffusion\stable-diffusion-main\src\gfpgan\experiments\pretrained_models.

  3. Por ultimos vamos selecionar e mover os modelos: RealESRGAN_x4plus.pth e RealESRGAN_x4plus_anime_6B.pth para a pasta: stable-diffusion\stable-diffusion-main\src\realesrgan\experiments\pretrained_models.

Por último, vamos executar o Stable Diffusion e testá-lo.

  1. Para execução, copie o caminho do arquivo webuildm.cmd na raíz da pasta stable-diffusion-main e cole no prompt. Outra maneira de fazer isso é movendo o arquivo para o terminal e executando.

  2. No meio desse processo, o Windows Defender Firewall irá pedir permissão para o Python poder acessar alguns recursos do Windows, clique em "Permitir acesso".

  3. Por fim, o Stable Diffusion já deverá estar rodando em sua máquina, para acessar, basta abrir a URL fornecida pelo terminal, que por padrão é: http://localhost:7860/.

    E é isso, agora você poderá gerar o que você quiser, apenas se atente aos limites da sua máquina caso escolha uma configuração superior de resolução e outros detalhes que vão exigir mais memória de vídeo.

Se você quiser uma boa alternativa gratuita aos atuais sistemas de geração de imagem, o Stable Diffusion é uma boa alternativa. Assim como qualquer software, ele não é perfeito, mas está em constante aprimoramento, e talvez, no futuro teremos algo ainda mais impressionante do que já temos.

Caso queira ver ou compartilhar imagens geradas com a IA, você pode dar uma olhada no subreddit: "/r/StableDiffusion", lá tem muitas dicas, ideias de prompts e muito mais.

Qualquer crítica, dúvida, adição ou correção, você pode estar comentando abaixo caso tenha uma conta no TabNews. E é isso.

obrigado por ter lido até aqui! 🥳

Que tutorial bem feito! Muito obrigado por todo o cuidado e ainda mais por disseminar conteúdos em Python também, pois vejo que nossa comunidade precisa também ser representada aqui e com conteúdos qualitosos como este, com certeza a comunidade do Python está sendo bem representada... Parabéns mister! 🤩

Parabéns pelo tutotial, muito bem feito!

Lengo, vim avisar aqui que nos últimos dias, essa sua publicação está entre as páginas mais visitadas no TabNews 🤝

ótima contribuição, tutorial bem feito!

Muito legal seu tutorial! Estou há alguns meses usando e e já instalei até no Mac com chip Silicon mas uso mais em uma máquina com Debian na Google Cloud. Seria legal ter um tutorial para linux também, quam sabe eu animo 🤣

muito massa, quanto custa essa brincadeira ?