Guia completo de difusão estável - de iniciante a especialista
Fiquei interessado em usar SD para gerar imagens para aplicações militares. A maior parte dos recursos é retirada dos fóruns NSFW do 4chan, já que os Anons usam SD para fazer hentai. Curiosamente, o SD WebUI canônico tem funcionalidade integrada com painéis de imagens de anime/hentai... Um dos primeiros casos de uso de SD logo após DALL-E estava gerando garotas de anime, então o salto para hentai não é surpreendente.
De qualquer forma, as técnicas desses esquisitos são aplicáveis a uma variedade de aplicações, mais especificamente LoRAs, que são como modelos de sintonizadores finos. A ideia é trabalhar com LoRAs específicos (por exemplo, veículos militares, aeronaves, armas, etc.) para gerar dados de imagens sintéticas para treinamento de modelos de visão. Também é interessante treinar LoRAs novos e úteis. Coisas posteriores podem incluir pintura interna para perturbação.
Isenção de responsabilidade e fontes
Every link here may contain NSFW content, as most of the cutting-edge work on SD and LoRAs is with porn or hentai. So, please be wary when you are working with these resources. ALSO, Rentry.org pages are the main resources linked to in this guide. If any of the rentry pages do not work, change the .org to .co and the link should work. Otherwise, use the Wayback machine.
-TP
Brinque com isso!
O que você realmente pode fazer com SD? Huggingface e alguns outros têm alguns aplicativos no navegador para você. Brinque com eles para ver o poder! O que faremos neste guia é obter a WebUI completa e extensível para nos permitir fazer tudo o que quisermos.
- Huggingface texto para imagem SD Playground
- Aplicativo Dreamstudio de texto para imagem SD
- Aplicativo Dezgo de texto para imagem SD
- Huggingface imagem para imagem SD Playground
- Parque de pintura Huggingface
Índice
- Noções básicas de WebUI
- Configurar o uso da GPU local
- Configuração do Linux
- Indo mais fundo
- Solicitando
- Modelo NovelAI
- LoRA
- Brincando com modelos
- VAEs
- Junte tudo
- O Processo Geral de DS
- Salvando prompts
- Configurações do txt2img
- Regenerando uma imagem gerada anteriormente
- Solução de erros
- Ficando confortável
- Teste
- WebUI Avançado
- Edição imediata
- Xformers
- Img2Img
- Pintura
- Extras
- Redes de controle
- Fazendo coisas novas (WIP)
- Fusão de ponto de verificação
- Treinamento de LoRAs
- Treinando Novos Modelos
- Configuração do Google Colab (WIP)
- Meio da jornada
- Parâmetros MJ
- Solicitações avançadas de MJ
- DreamStudio (WIP)
- Horda Estável (WIP)
- Dream Booth (WIP)
- Difusão de Vídeo (WIP)
Noções básicas de WebUI
É um pouco assustador entrar nisso... mas o 4channers fez um bom trabalho tornando isso acessível. Abaixo estão as etapas que executei, nos termos mais simples. Sua intenção é fazer com que o Stable Diffusion WebUI (construído com Gradio) seja executado localmente para que você possa começar a solicitar e criar imagens.
Configurar o uso da GPU local
Faremos a configuração do Google Colab Pro mais tarde, para que possamos executar o SD em qualquer dispositivo em qualquer lugar que desejarmos; mas para começar, vamos configurar a WebUI em um PC. Você precisa de 16 GB de RAM, uma GPU com 2 GB de VRAM, Windows 7+ e 20+ GB de espaço em disco.
- Conclua o guia de configuração inicial
- Eu segui isso até a etapa 7, depois disso vai para o material hentai
- A etapa 3 leva de 15 a 45 minutos na velocidade média da Internet, já que os modelos têm mais de 5 GB cada
- A etapa 7 pode levar mais de meia hora e pode parecer "travada" na CLI
- Na etapa 3 baixei o SD1.5, não as versões 2.x, pois 1.5 produz resultados muito melhores
- CivitAI possui todos os modelos SD; é como HuggingFace, mas especificamente para SD
- Verifique se o WebUI funciona
- Copie a URL que a CLI gera quando terminar, por exemplo,
127.0.0.1:7860
( NÃO use Ctrl + C porque este comando pode fechar a CLI) - Cole no navegador e pronto; tente um prompt e você estará pronto para as corridas
- As imagens serão salvas automaticamente quando geradas em
stable-diffusion-webuioutputstxt2img-images
- Lembre-se, para atualizar, basta abrir uma CLI na pasta stable-diffusion-webui e digitar o comando
git pull
Configuração do Linux
Ignore isso completamente se você tiver o Windows. Consegui fazê-lo rodar no Linux também, embora seja um pouco mais complicado. Comecei seguindo este guia, mas ele está mal escrito, então abaixo estão as etapas que executei para executá-lo no Linux. Eu estava usando o Linux Mint 20, que é uma distribuição do Ubuntu 20.
- Comece clonando o repositório webui:
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
- Obtenha um modelo SD (por exemplo, SD 1.5, como na seção anterior)
- Coloque o arquivo ckpt do modelo
stable-diffusion-webui/models/Stable-diffusion
- Baixe Python (se ainda não o tiver):
sudo apt install python3 python3-pip python3-virtualenv wget git
- E a WebUI é muito particular, então precisamos instalar o Conda, um gerenciador de ambiente virtual, para funcionar dentro de:
wget https://repo.anaconda.com/miniconda/Minconda3-latest-Linux-x86_64.sh
chmod +x Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
- Agora crie o ambiente:
conda create --name sdwebui python=3.10.6
- Ative o ambiente:
conda activate sdwebui
- Navegue até a pasta WebUI e digite
./webui.sh
- Ele deve ser executado por um tempo até você receber um erro sobre não conseguir acessar CUDA/sua GPU... tudo bem, porque é o nosso próximo passo
- Comece limpando todos os drivers Nvidia existentes:
sudo apt update
sudo apt purge *nvidia*
- Agora, seguindo alguns trechos deste guia, descubra qual GPU sua máquina Linux possui (a maneira mais fácil de fazer isso é abrir o aplicativo Driver Manager e sua GPU será listada; mas há uma dúzia de maneiras, basta pesquisar no Google)
- Vá para esta página e clique em "Latest New Feature Branch" no Linux x86_64 (para mim, era 530.xx.xx)
- Clique na aba “Produtos Suportados” e Ctrl + F para encontrar sua GPU; se estiver listado, prossiga; caso contrário, volte e tente "Versão mais recente da filial de produção"; anote o número, por exemplo, 530
- Em um terminal, digite:
sudo add-apt-repository ppa:graphics-drivers/ppa
- Atualizar com
sudo apt-get update
- Inicie o aplicativo Driver Manager e você verá uma lista deles; NÃO selecione o recomendado (por exemplo, nvidia-driver-530-open), selecione exatamente o anterior (por exemplo, nvidia-driver-530) e Aplicar alterações; OU instale-o no terminal com
sudo apt-get install nvidia-driver-530
- NESTE PONTO, você deverá receber um pop-up em sua CLI sobre inicialização segura, solicitando uma senha de 8 dígitos: defina-a e anote-a
- Reinicie o seu PC e antes da criptografia/login do usuário, você deverá ver uma tela semelhante à do BIOS (estou escrevendo isso da memória) com a opção de inserir uma chave MOK; clique nele e digite sua senha, depois envie e inicialize; algumas informações aqui
- Faça login normalmente e digite o comando
nvidia-smi
; se for bem-sucedido, deverá imprimir uma tabela; caso contrário, dirá algo como "Não foi possível conectar à GPU; certifique-se de que o driver mais atualizado esteja instalado" - Agora, para instalar o CUDA (o último comando aqui deve imprimir algumas informações sobre sua nova instalação do CUDA); deste guia:
sudo apt update
sudo apt install apt-transport-https ca-certificates gnupg
sudo apt install nvidia-cuda-toolkit
nvcc-version
- Agora volte e execute as etapas 7 a 9; se você receber este "ERRO: Não é possível ativar python venv, abortando...", vá para a próxima etapa (caso contrário, você estará pronto para as corridas e copiará o endereço IP da CLI normalmente e poderá começar a jogar com SD)
- Este problema do Github tem algumas soluções para esse problema de venv... para mim, o que funcionou foi rodar
python3 -c 'import venv'
python3 -m venv venv/
E então indo para a pasta /stable-diffusion-webui
e executando:
rm -rf venv/
python3 -m venv venv/
Depois disso, funcionou para mim.
Indo mais fundo
- Leia sobre técnicas de solicitação, porque há muitas coisas para saber (por exemplo, solicitação positiva versus solicitação negativa, etapas de amostragem, método de amostragem, etc.)
- Guia do livro de instruções OpenArt
- Guia definitivo de solicitação de SD
- Um guia sucinto de sugestões
- Dicas de solicitação do 4chan (NSFW)
- Coleção de prompts e imagens
- Guia passo a passo para estimular garotas de anime
- Leia sobre o conhecimento de SD em geral:
- Publicação seminal de difusão estável
- CompVis / Stability AI Github (casa dos modelos SD originais)
- Compêndio de difusão estável (bom recurso externo)
- Hub de links de difusão estável (recurso incrível do 4chan)
- Mina de ouro de difusão estável
- Mina de ouro SD simplificada
- Aleatório/Diversos. Ligações SD
- Perguntas frequentes (NSFW)
- Outra pergunta frequente
- Junte-se ao Discord de difusão estável
- Mantenha-se atualizado com as notícias da Difusão Estável
- Você sabia que a partir de março de 2023, um modelo de difusão de texto para vídeo com parâmetro de 1,7B está disponível?
- Mexa na WebUI, brinque com diferentes modelos, configurações, etc.
Solicitando
A ordem das palavras em um prompt tem um efeito: as palavras anteriores têm precedência. A estrutura geral de um bom prompt, daqui:
E outro bom guia diz que o prompt deve seguir esta estrutura: