Os entusiastas que desejam executar um modelo de linguagem grande (LLM) moderno em seu PC doméstico enfrentam um problema fundamental: suas máquinas são extremamente carentes de memória de vídeo. O fato é que uma densa rede neural multicamada, à qual o LLM finalmente se resume, produz um certo resultado durante a soma ponderada de um grande número – dezenas e centenas de bilhões – de operandos. Para realizar esses cálculos relativamente simples, mas extremamente massivos em um tempo razoável, é necessário minimizar os atrasos na transmissão de sinais entre os nós de computação e a memória com a qual eles operam.
Claro, esse argumento é puramente quantitativo. As leis da natureza não proíbem o uso de apenas um processador central com seus 4, 8 ou 16 núcleos e DRAM RAM para emular uma rede neural. Mas como os cálculos não são implementados diretamente na memória dentro da estrutura da arquitetura x86 clássica, a perda de tempo ao transferir pequenos pacotes de dados (processados por algumas unidades, no máximo a primeira dúzia de núcleos) entre a CPU e a RAM acaba sendo simplesmente absurdo. E este é um problema de tais cálculos: por exemplo, Stable Diffusion, um modelo de rede neural de código aberto para criar imagens a partir de descrições de texto, quando lançado em um PC sem um adaptador gráfico discreto, gera as imagens mais simples em muitas dezenas de minutos, enquanto estiver em um computador, mesmo sem a placa de vídeo mais moderna – por alguns minutos no máximo,
Os LLMs são ainda mais exigentes tanto em termos do número disponível de computadores físicos capazes de realizar somatórios ponderados de forma independente e paralela (para os quais os núcleos CUDA são quase ideais) quanto da quantidade de memória diretamente associada a eles; ao usar um adaptador gráfico discreto – memória de vídeo. Para lançar e operar modelos de linguagem grande, placas de vídeo especializadas são usadas ativamente – com quantidades gigantescas de VRAM de dezenas de GB cada, unidas por pontes de alta velocidade (NVLink, se estivermos falando de produtos NVIDIA) em clusters de 4 ou 8 unidades.
“Par de A100s conectados por pontes NVLink (fonte: NVIDIA)”
O número de parâmetros operacionais para o LLM GPT-3.5, que formou a base do primeiro ChatGPT disponível publicamente, é de 175 bilhões. Se cada um desses parâmetros for codificado com um número de 16 bits (“representação de ponto flutuante de meia precisão”; 2 bytes por número), então apenas para a colocação simultânea de todos eles na memória – na memória de vídeo, enfatizamos! – que vai precisar de mais de 320 GB. Essa, de fato, é a principal razão pela qual é impossível, em princípio, executar o ChatGPT em um PC doméstico. Sim, há uma série de projetos LLM menos exigentes de hardware sendo desenvolvidos por entusiastas, o mais promissor dos quais pode ser considerado Alpaca – em variantes de modelo com 7, 13 e 30 bilhões de parâmetros de entrada. No entanto, a qualidade do texto que ele gera vai incomodar francamente os frequentadores de chats com ChatGPT (e ainda mais com GPT-4):
Parece que se é tão difícil produzir um texto que seja percebido adequadamente por uma pessoa para um grande modelo de linguagem – mais precisamente, requer recursos de hardware tão significativos – então o que podemos dizer sobre a criação de imagens! No entanto, não foi esse o caso: o Stable Diffusion, mencionado logo acima, em suas versões mais relevantes precisa de uma GPU NVIDIA com pelo menos 4 GB de memória de vídeo, ou AMD com 8 GB ou mais. Portanto, mesmo um PC para jogos longe de ser o mais moderno é capaz de se tornar um receptáculo para um bot de artista, pronto para criar quase qualquer imagem que você solicitar – você só precisa fazer um pouco de esforço. Na verdade, o que e como exatamente fazer para instalar, executar e (o mais básico) ajustar o Stable Diffusion é o assunto desta ciberprática.
⇡#Observações preliminares
Sem dúvida, as mais recentes NVIDIA RTX 4080 e 4090 são melhores do que outras placas de vídeo relativamente amplamente disponíveis para conversão de texto em imagem de máquina; principalmente devido à quantidade impressionante de VRAM – 16 e 24 GB, respectivamente. A quantidade de RAM do computador e o desempenho de sua CPU não são de fundamental importância, mas ainda é melhor focar em pelo menos 8 GB de DRAM e pelo menos um processador quad-core – esse hardware permitirá que você execute rapidamente cálculos de serviço necessários para se preparar para a geração real de imagens.
No entanto, “o melhor” não significa “o único possível”. Todos os procedimentos descritos abaixo foram feitos e todas as imagens foram geradas no máximo, para dizer o mínimo, PC gamer novo que já viu vários tipos: com CPU Intel Core i7-2600K (não é erro de digitação: é 2600 , não 12600), com 16 GB de RAM e adaptador discreto baseado na GPU NVIDIA GeForce GTX 1070 (8 GB VRAM). A versão atual do Windows 10 foi implantada no SSD do sistema; para seu sucessor ideológico do Windows 11, todas as recomendações e diretrizes quase certamente serão usadas sem alterações.
Compilações funcionais do Python para Windows 7 estão disponíveis, por exemplo, no GitHub (fonte: captura de tela do github.com)
Com o Windows 7, a situação é mais complicada (já que a versão necessária da linguagem Python não é oficialmente suportada), e para usuários de SO com kernel Linux, o caminho para a configuração final do modelo generativo para conversão de texto em imagens será ainda mais curto – porque na maioria das distribuições populares, uma parte significativa do software necessário já está originalmente pré-instalada. No entanto, no âmbito desta ciberprática, as questões de instalação do Stable Diffusion em outros sistemas operacionais não serão abordadas: sapienti sat. Você precisará de pelo menos 20 GB de espaço livre na unidade do sistema, mas como as imagens são salvas no diretório de instalação por padrão, quanto mais espaço em disco melhor.
E quanto às placas gráficas AMD – elas são boas o suficiente para rodar o Stable Diffusion? A prática mostra que sim, mas você terá que executar várias etapas adicionais durante a instalação e configuração do sistema e, em geral, o desempenho ao traduzir texto em imagens será inferior ao de adaptadores gráficos NVIDIA comparáveis. O principal motivo é que o próprio sistema para converter dicas de texto em uma imagem ao escrever foi baseado em vários recursos proprietários implementados em núcleos CUDA: tanto no nível do hardware quanto em bibliotecas de software orientadas a IA criadas para ele.
“Dado que a NVIDIA domina o mercado global de gráficos discretos com uma participação de 88% (dados da JPR para o terceiro trimestre de 2022), os desenvolvedores dificilmente podem ser culpados por uma seletividade irracional aqui. No entanto, de acordo com rumores, a própria Microsoft (agora possuindo metade da OpenAI, os criadores ChatGPT) está atualmente trabalhando ativamente com a AMD na otimização dos produtos gráficos deste último especificamente para resolver tarefas relacionadas à IA. o caminho, mas esta já é uma história completamente diferente).
É assim que o modelo Kandinsky 2.1 disponível on-line imagina o robô (fonte: captura de tela de fusionbrain.ai)
É possível gerar imagens com difusão estável na ausência de um PC adequado disponível? Sim claro! Várias instalações existentes estão disponíveis on-line de forma totalmente gratuita (e às vezes, pelo menos de forma limitada e anonimamente, ou seja, sem a exigência de registro prévio obrigatório): Stable Diffusion Playground, mage.space, Stable Diffusion Online, Dezgo e muitos mais, descubra qual através de qualquer mecanismo de busca não é difícil (quase o único desenvolvimento doméstico entre eles é o modelo Kandinsky 2.1). É claro que esses sites impõem muitas restrições ao usuário, principalmente àqueles que não podem pagar pela visualização de suas descrições de texto: é a escassez de escolha dos parâmetros de geração e a incapacidade de melhorar a imagem base resultante, e em alguns lugares até mesmo a imposição forçada de uma tag do site (marca d’água) na imagem finalizada. Além disso, as filas para geração gratuita em sites populares podem ser bastante longas. Mas se você realmente precisa obter pelo menos algum tipo de imagem visual com base em uma combinação de palavras que surgiu em sua cabeça, os modelos disponíveis online são um bom começo.
Outra opção, também online, é usar o Google Colab, uma plataforma gratuita que permite a todos os titulares de contas do Google implantar os chamados notebooks Python na nuvem corporativa para executar código escrito em Python. Como a instalação local do Stable Diffusion também se resume, de fato, à instalação do ambiente Python e de vários scripts especializados nessa linguagem em um PC, quase tudo o que pode ser feito com esse modelo em seu computador está disponível após a implantação em Colab. Há muitas instruções na web, mas esteja ciente de que apenas usuários pagantes do Colab (US$ 10/mês ou mais – e pagamento com cartão, sim) podem executar o bloco de notas na GPU do servidor físico NVIDIA A100 com seu excelente desempenho de IA.
⇡#…Mas Git deve ser instalado
No entendimento de um usuário comum, instalar software em um computador se resume a baixar e executar um arquivo de instalação – após o qual um programa desejado ou uma plataforma inteira é implantado no sistema; via de regra, já na forma de um arquivo binário executável (geralmente com vários arquivos adicionais – bibliotecas de serviço, arquivos de configuração, etc.). Os programadores, especialmente os orientados para código aberto, têm uma abordagem diferente: se existe um programa escrito em uma determinada linguagem e um ambiente disponível gratuitamente para executar código nessa linguagem, por que se preocupar com binários? É mais fácil executar programas no mesmo ambiente e não conhecer o luto. Apenas esse princípio como um todo segue a lógica da instalação do Stable Diffusion.
E essa imagem de um robô é o limite para visitantes gratuitos e anônimos do mage.space (fonte: captura de tela do mage.space)
Primeiro, você precisa implantar o cliente Git em seu PC local. Git é um sistema de controle de versão distribuído (VCS); a plataforma não é absolutamente necessária, mas extremamente útil para muitos programadores independentes que se voluntariam conjunta e exclusivamente em vários projetos de software de código aberto. A principal vantagem do VCS é que nenhuma informação dele desaparece sem deixar vestígios (se nenhum esforço especial for feito), ou seja, qualquer correção feita no código não substitui o estado anterior do fragmento correspondente da listagem do programa. Além disso, o Git não rastreia essas alterações e não mantém um registro cuidadoso delas individualmente (ao contrário de outros VCS populares, como Subversion, Bazaar, CVS, etc.),
No entanto, apenas os programadores apreciarão plenamente a beleza e a praticidade desta solução: para um usuário comum que simplesmente deseja executar o Stable Diffusion em seu PC, é importante entender que um projeto carregado via Git permanecerá obviamente viável exatamente na versão em qual foi instalado pela primeira vez. E que quaisquer alterações e adições subseqüentes – até que sejam “puxadas” pelo mesmo Git para o PC local – não afetarão de forma alguma o funcionamento do sistema já instalado. Na era das atualizações automáticas latentes em segundo plano, geralmente resultando em mudanças drásticas repentinas nas interfaces e na funcionalidade de aplicativos familiares, isso vale muito.
(Fonte: captura de tela de git-scm.com)
Então, para baixar o Git para Windows, você deve utilizar o repositório no site da própria plataforma.
Após a conclusão do download do instalador, você precisa executá-lo – e seguir o procedimento de instalação padrão, pressionando o botão Avançar repetidamente. Em quase todos os lugares, basta confirmar os parâmetros oferecidos pelo instalador padrão. Você pode querer alterar o diretório de instalação de destino primeiro (a primeira janela)
Na janela “Selecionar componentes”, você precisará certificar-se de que a opção de integração com o “Windows Explorer” esteja ativa, bem como duas opções em nenhum nível – “Git Bash Here” e “Git GUI Here”. O penúltimo será extremamente útil apenas para carregamento rápido e conveniente de um projeto do Git, que permite iniciar uma interface gráfica para interagir com o Stable Diffusion.
Os programadores Oldfag apreciarão o humor sofisticado dos desenvolvedores da plataforma: na janela “Escolhendo o editor padrão usado pelo Git”, o Vim é selecionado por padrão – um editor de texto conhecido e merecido, mas extremamente controverso; do mundo nem mesmo o Linux, mas o antigo UNIX (mais precisamente, BSD). Sem nos envolvermos em uma discussão sobre os prós e contras de vários editores da era dos terminais de computador exclusivamente de texto, notamos que faz sentido para um usuário distante desses assuntos (especialmente um usuário do Windows) escolher algo menos cheio de ação em nesta janela, pelo menos um bloco de notas banal.
Outro ponto: na janela “Configurando o emulador de terminal para usar com o Git Bash”, é melhor escolher MiniTTY entre as opções oferecidas. Este não é um problema fundamental, e a janela padrão do console do Windows caberá aqui muito bem – mas por razões de melhor compatibilidade (com fontes Unicode, em primeiro lugar), o MiniTTY ainda é preferível.
Após a conclusão da instalação no Windows Explorer, abra a pasta em que o Git foi instalado, e mantendo o cursor do mouse dentro desta janela (não importa qual arquivo), clique com o botão direito. Será aberto um menu no qual – devido ao fato de as opções “Git Bash Here” e “Git GUI Here” terem sido marcadas durante a instalação – duas novas linhas correspondentes aparecerão. Você precisa passar o mouse sobre “Git Bash Here” e pressionar o botão esquerdo do mouse para iniciar o mesmo terminal Mini-TTY que acabamos de discutir.
É a partir deste terminal que o usuário emite comandos do Git – em especial, para baixar projetos de seu interesse. “Download” em termos desta plataforma é “clonagem”, ou seja, criar uma cópia local do código localizado online, portanto, o comando necessário é o seguinte:
Git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
AUTOMATIC1111 é o nome do projeto de interface web que nos interessa para trabalhar com Stable Diffusion. A interface web é exatamente essa: ela é acessada por meio de um navegador; por padrão, apenas no PC local, mas se desejar, você pode abri-lo para usuários externos – no entanto, provavelmente terá que mexer nas configurações de firewall do seu roteador. Esta é provavelmente a interface mais popular para trabalhar com Stable Diffusion hoje: embora existam outros projetos semelhantes, a amplitude de controle sobre o processo de geração e os muitos plug-ins disponíveis tornam o AUTOMATIC1111 uma ótima ferramenta para experimentação.
⇡#Atenção modelo!
A interface está instalada, o usuário está na frente do computador – é hora de baixar o próprio Stable Diffusion, ou seja, um modelo baseado em aprendizado de máquina para converter texto em imagem gráfica (modelo text-to-image), escrito em Python . Ele recebeu acesso gratuito pela primeira vez em 22 de agosto de 2022 por seu próprio desenvolvedor, Stability.ai, uma empresa especializada no desenvolvimento de IA generativa de código aberto.
A Difusão Estável é baseada na difusão latente: inicialmente, como base para cada nova imagem, uma miscelânea de pontos multicoloridos é gerada com base em um número inteiro suficientemente grande – “semente” (semente) ou simplesmente semente, com base na qual o algoritmo pseudo-aleatório de tal geração funciona e que no futuro, junto com o texto da dica de ferramenta e outros parâmetros, determina a aparência final da imagem finalizada.
Uma série de sobreposições sucessivas de ruído pseudo-aleatório na imagem original transforma-a assintoticamente em um retângulo preenchido com ruído gaussiano puro (fonte: University of California, Berkeley)
Sem entrar em detalhes, vamos explicar como esses modelos são treinados: uma determinada imagem e sua descrição de texto bastante completa são alimentadas na entrada da rede neural. Em seguida, o sistema torna a imagem original ruidosa, adicionando sequencialmente pontos multicoloridos a ela de forma pseudo-aleatória, mas gerada por uma ordem de algoritmo completamente determinística (ruído gaussiano) baseada em um conjunto de tokens associados aos termos que descrevem a imagem, e novamente passa o resultado pela rede neural. Várias dezenas de iterações depois, a imagem se transforma – no olho humano – em uma miscelânea completamente sem estrutura de pixels multicoloridos. No entanto, para o próprio sistema, nesse caos, a imagem original é codificada – simplesmente escondida sob as camadas de muitas camadas de ruído sobrepostas de uma forma conhecida por ele. Pode-se até dizer
A transformação inversa do ruído gaussiano usando tokens que descrevem a imagem desejada permite que você obtenha a imagem novamente em várias iterações (fonte: University of California, Berkeley)
Depois de realizar muitas dessas operações de treinamento – de preferência dezenas e até centenas de milhares para cada termo de texto – uma rede neural com retropropagação de erros forma tais pesos nas entradas de seus perceptrons que permitem “desarquivar” imagens do ruído por palavras-chave, indo todo o caminho na ordem inversa. Ou seja, pegando um retângulo preenchido com “ruído branco” e um termo de texto conhecido pelo sistema, remova pixels aleatórios da imagem em uma determinada ordem camada por camada – e obtenha a imagem solicitada. Quase como um escultor remove desnecessários, em sua opinião, fragmentos de mármore de um bloco, acabando por revelar a escultura que ali espreita. Esta analogia é bastante adequada: ambas as estátuas completamente diferentes podem ser esculpidas a partir de dois blocos de pedra idênticos e duas imagens de sementes com “ruído branco” geradas com base na mesma semente,
(Fonte: screenshot huggingface.co)
O próprio modelo Stable Diffusion, versão 1.5 (hoje já existem projetos posteriores do próprio Stability.ai e análogos de autoria de outros desenvolvedores, mas no momento é este o mais popular entre os entusiastas da atividade text2image) está disponível – novamente para grátis, sem SMS e registros – no repositório da comunidade online de codificadores AI Hugging Face.
(Fonte: screenshot huggingface.co)
Para baixar este modelo, você deve ir até a guia Arquivos na interface web de sua página no repositório, rolar um pouco para baixo – e clicar na seta pouco perceptível com um sublinhado à direita das letras “LFS” no linha que começa com “v-1 -5-pruned-emaonly.safetensor”. Assim que você passa o mouse sobre a seta, uma janela aparece com uma pequena inscrição “Baixar arquivo”, você pode clicar e ter paciência: o arquivo ocupa vários GB.
Por que é melhor escolher esta entre outras variantes da apresentação Stable Diffusion? A primeira consideração é o tamanho: a versão sem “emaonly” chega a 7,7 GB, enquanto a que escolhemos tem menos de 4,3 GB. Para treinamento adicional do modelo (treinamento em novas imagens; aquelas que não foram incluídas no pool de treinamento original de 2,3 bilhões de imagens anotadas), uma opção mais completa e pesada é melhor, mas durante a geração usando prompts de texto, a diferença entre “pruned” e “pruned-emaonly” é insignificante. Mas talvez um arquivo de modelo maior permita que você obtenha imagens de melhor qualidade com base na mesma dica de texto? Certamente não dessa forma; mas para fundamentar esta tese, teremos que nos aprofundar um pouco mais nos detalhes técnicos.
Para começar, o próprio termo podado indica alguma perda de informação nesta versão do modelo em comparação com a versão completa obtida no Stability.ai após o processamento dessas mesmas 2,3 bilhões de imagens. De fato, o resultado do treinamento de uma rede neural é um determinado conjunto de pesos nas entradas de cada perceptron de cada uma de suas camadas. Alguns desses pesos podem ser exatamente zero e, como a rede neural calcula somas ponderadas (o produto do valor atual do argumento e o peso em uma determinada entrada de um determinado perceptron), multiplicar por quase zero também resultará em quase zero. Em outras palavras, na versão podada, todos os “quase zeros” abaixo de um determinado valor limite são substituídos pelos zeros mais comuns, de modo que, ao formar uma imagem com base no modelo finalizado, a diferença entre as versões “truncada” e completa é quase imperceptível.
Demonstração visual da diferença entre uma média móvel ponderada exponencialmente (EMA) e uma média móvel simples ou aritmética (SMA) usando o exemplo da dinâmica das cotações de ações ao longo do tempo (fonte: BabyPips)
“Você pode ir ainda mais longe aplicando a operação de cálculo de uma média móvel ponderada exponencialmente (média móvel exponencial, EMA) a um conjunto reduzido de pesos. Bem conhecida dos traders on-line, essa operação é essencialmente uma convolução: identificar a tendência principal no dinâmica de um determinado parâmetro ao longo do tempo. Existem muitas maneiras conhecidas de calcular a média móvel, o método de ponderação exponencial é atraente porque as observações recentes recebem mais peso aqui em comparação com as anteriores. Em outras palavras, o EMA permite calcular a média de longas séries de observações (para os modelos em consideração, nas entradas dos perceptrons) com ênfase nas mais recentes, mais próximas do estágio de formação do resultado final.”
Aqui, um exemplo tão bom é adequado: um aluno recebe várias notas durante o curso (para exames e testes da sessão, para atividades em colóquios, trabalhos de laboratório, etc.) e, no final, passa nos exames estaduais. Assim, os resultados dos exames estaduais podem ser considerados como os pesos finais do modelo de IA na fase final de seu treinamento. No entanto, essas notas podem ser influenciadas por um grande número de fatores: mal-estar súbito, excitação excessiva, etc. Portanto, a EMA de todas as suas notas anteriores até o estado próximo a elas no tempo. Porque a primeira sessão, por exemplo, foi há muito tempo, e as disciplinas para as quais foram dadas notas, muito provavelmente, não terão grande importância para o trabalho prático de um graduado universitário.
Os interessados em detalhes matemáticos devem consultar o artigo original da equipe da OpenAI, que propôs a otimização EMA de um conjunto de pesos para modelos de aprendizado profundo. Também é importante aqui que, para aplicativos práticos de usuário, os arquivos de modelo podados-emaonly sejam ideais em termos de proporção de espaço em disco ocupado (bem como o tempo necessário para download, a propósito) e a qualidade do resultado. Além disso, eles são, segundo os entusiastas, mais criativos do que os originais, com conjuntos de peso desdobrados – o motivo ficará mais claro quando chegarmos ao parâmetro Clip skip nas configurações do AUTOMATIC1111. Se assumirmos o treinamento adicional de Stable Diffusion (para criar inversões de texto, LoRA e outros xamanismos de alto nível, que não consideraremos nesta ciberprática),
Se você usar os mesmos modelos para gerar imagens em sites diferentes (Stable Diffusion 1.5, neste caso), os resultados serão semelhantes (fonte: captura de tela do dezgo.com)
Outro ponto importante: é sempre recomendável – principalmente se você se deparar com um modelo interessante em sites, digamos, não muito confiáveis - dar preferência à versão com a extensão .safetensors. O fato é que o formato padrão no qual os pesos do modelo treinado são armazenados, pickle (extensões .ckpt, .pkl, etc.), não é seguro, pois permite a execução de códigos de terceiros – potencialmente maliciosos. É essencialmente um arquivo binário legível por máquina; um conjunto de instruções indicando com qual perceptron em qual camada da rede neural quais pesos usar ao processar o sinal de entrada – e não uma tabela com esses próprios pesos e as conexões correspondentes: seria excessivamente complicado).
De acordo com a documentação oficial, “o módulo pickle implementa protocolos binários para serializar e desserializar a estrutura do objeto Python”, ou seja, estabelece relacionamentos entre diferentes objetos. Em particular, permite, sob certas condições, executar código de terceiros escrito em Python, incluindo aqueles que contêm instruções de execução direta – como eval ou exec. É por isso que entre os entusiastas do aprendizado de máquina, aplicado a modelos de código aberto, o formato de serialização mais simples .safetensors está se tornando mais comum – seguro, fornecendo carregamento mais rápido de pesos de modelo na memória e resultados mais rápidos em sistemas com várias GPUs.
⇡#Rastejando para o trabalho
O arquivo de modelo baixado v-1-5-pruned-emaonly.safetensors deve ser colocado em uma pasta dedicada para modelos dentro do diretório de instalação do Stable Diffusion: /models/Stable-diffusion. Inicialmente, está vazio, exceto por um arquivo de texto de comprimento zero com o nome revelador “Coloque pontos de verificação de difusão estável aqui” – “pontos de verificação” são apenas arquivos com pesos treinados em um determinado conjunto de imagens para uma determinada rede neural.
Para o correto funcionamento do sistema, por padrão, é necessário que o checkpoint base – aquele que será imediatamente carregado na memória quando você iniciar o Stable Diffusion – seja chamado de “modelo”, mas além dele, esta pasta pode conter quantos pontos de verificação quiser. Portanto, você deve renomear “v-1-5-pruned-emaonly.safetensors” para “model.safetensors” ou salvar uma cópia dele aqui com esse nome.
(Fonte: captura de tela do python.org)
Há um ponto de verificação no formato de arquivo de serialização para a estrutura do objeto Python, mas e quanto à própria linguagem de programação Python? No Windows 10, é claro, não está disponível inicialmente, mas está disponível gratuitamente para download no site oficial. O principal é prestar muita atenção na versão que você escolher, ou seja, 3.10.6: você deve baixar o arquivo do instalador para sistemas de 64 bits – python-3.10.6-amd64.exe (a maneira mais fácil de encontrar “3.10.6 ” na página é via Ctrl + F ). O fato é que o desenvolvimento do Stable Diffusion 1.5 (e, em menor escala, do AUTOMATIC1111) foi feito justamente nesta versão da linguagem com suporte para PyTorch, um framework especialmente criado para agilizar cálculos para tarefas de aprendizado de máquina em gráficos modernos adaptadores. E, em geral, deve-se lembrar que os programas Python não funcionam bem em nenhuma outra versão (incluindo as mais recentes) do que aquelas
Durante a instalação do Python 3.10.6, logo na primeira tela de instalação, você precisará marcar a caixa ao lado da linha “Adicionar Python 3.10 ao PATH” – para que o Windows não tenha problemas para encontrar os arquivos executáveis correspondentes. Outras opções nas janelas subsequentes podem ser deixadas intocadas.
Ah, e a propósito: por precaução, seria bom instalar os drivers disponíveis mais recentes para o adaptador gráfico usado e, ao mesmo tempo, o CUDA Toolkit do site da NVIDIA. Não será supérfluo, uma vez que o suporte à instrução xFormers fornecido por este pacote permite que a difusão estável e modelos text2image semelhantes usem a memória de vídeo com mais eficiência. Para saber se o CUDA Toolkit já está no sistema e qual é a versão atual dos drivers, execute o comando na linha de comando do Windows
Nvidia-smi
E se a posição “Versão CUDA” estiver faltando nos resultados da pesquisa, ou o número desta versão for menor que 11,7, faz sentido baixar e instalar uma nova.
E agora, de fato, o momento emocionante: o primeiro lançamento do Stable Diffusion 1.5 com um checkpoint básico no seu PC local! Para fazer isso, agora que todo o software necessário foi baixado e preparado, no “Explorer”, onde o diretório stable-duffusion-webui está aberto, você precisa clicar duas vezes com o botão esquerdo do mouse no webui-user.bat arquivo. Uma janela de terminal será aberta, na qual serão exibidas mensagens de serviço sobre as operações realizadas pelo sistema. Primeiro, ela precisará fazer uma série de ajustes no ambiente de software, então o primeiro lançamento pode demorar de 5 a 10 minutos – mas no futuro tudo acontecerá muito mais rápido.
Observe que, durante a instalação, o sistema relata a descoberta de uma nova versão do pip – e imediatamente oferece um link direto para instalá-lo. Em princípio, este não é um momento obrigatório, mas o pip é um pacote de serviços para gerenciar dependências entre pacotes (gerenciador de pacotes Python) e não será supérfluo atualizá-lo, ao contrário da versão recomendada do próprio Python.
Depois de copiar o comando apropriado diretamente da janela do terminal (claro, o caminho exato para o arquivo executável dependerá de qual diretório o Stable Diffusion está instalado neste PC), basta colá-lo no campo de pesquisa do sistema, localizado à esquerda lado do painel de controle do Windows 10/11 e pressione “Enter”.
Assim, o modelo Stable Diffusion está instalado e funcionando. Posso começar a desenhar agora? Quase: resta apenas ajustar o desempenho para otimizar o sistema no futuro. Vamos interromper o pacote por enquanto pressionando no terminal ativo (aberto, lembramos, após iniciar o arquivo webui-user.bat do Explorer) as teclas “Ctrl” e “C” simultaneamente e, após o prompt, inserir ” y” com uma confirmação “Enter”. A janela do terminal fechará automaticamente.
Vamos voltar ao “Explorer” e abrir o arquivo já familiar com os parâmetros de inicialização webui-user.bat para edição: para isso, mova o cursor até ele, pressione o botão direito do mouse e selecione a opção “Editar” em o menu que aparece.
É assim que o webui-user.bat deve ficar após a edição. Argumentos de linha de comando adicionados aqui
–Xformers –lowvram –no-half-vae ,
E também defina o valor da variável
SAFETENSORS_FAST_GPU=1 .
Explique resumidamente o que é o que aqui. Xformers – mais precisamente, xFormers – é um kit de ferramentas para acelerar cálculos de IA realizados com a participação de transformadores, que são usados u200bu200bem quase todos os modelos de difusão modernos – conversores de prompts de texto em imagens, incluindo difusão estável. Imediatamente, na GTX 1070, especificar o argumento –xformers na inicialização do sistema acelera o resultado, todas as outras coisas sendo iguais, quase duas vezes. É verdade que existem razões para afirmar que os xFormers adicionam bastante estocástica ao processo generativo, de modo que não será mais possível reproduzir uma imagem uma vez obtida com os mesmos parâmetros iniciais (seed, checkpoint, CFG, tips, etc.) com 100% precisão. Em qualquer caso, os proprietários de adaptadores gráficos com menos de 12 GB de memória de vídeo provavelmente terão que usar xFormers,
O significado de –lowvram é muito mais óbvio: é uma indicação ao sistema de que não há muita memória de vídeo à sua disposição. A lista de otimizações disponíveis para AUTOMATIC1111 também inclui este parâmetro, e aquele que não afeta tanto o desempenho (mas também exige mais memória) –medvram. Com relação ao –lowvram, o veredicto dos desenvolvedores é lacônico: “Devastador para o desempenho”. Ao usar –medvram, o modelo não é carregado em toda a memória de vídeo, mas é dividido em três blocos, cada um dos quais é puxado para a VRAM sequencialmente, conforme necessário, mas em sua totalidade; –lowvram, por outro lado, divide o mais volumoso desses módulos em fragmentos ainda menores, permitindo assim (teoricamente; não testado pessoalmente) transformar dicas de texto em imagens, mesmo em uma GPU com 2 GB de memória de vídeo, mas no custo de um aumento perceptível no tempo de operação.
O que há de bom na geração de imagens AI em sites especializados é que você não precisa se preocupar em instalar e configurar o sistema (fonte: screenshot clipdrop.co)
Em outras palavras, com –lowvram, o sistema funcionará em quase qualquer PC que mais ou menos mereça ser chamado de “jogo”, quase garantido. Mas assim que as primeiras imagens forem recebidas, faz sentido alterar este parâmetro no arquivo de configuração para –medvram e, reiniciando o Stable Diffusion, gerá-lo novamente: e se tudo der certo, deixe tudo neste formulário. Por exemplo, para o sistema GTX 1070 usado nesta ciberprática, a geração base com o parâmetro –lowvram ocupa 28-35% dos 8 GB disponíveis de memória de vídeo, enquanto com –medvram já ocupa 68-75% e o ganho de tempo, que leva a criação de uma imagem não exceda 25-30%. Felizes proprietários de placas de vídeo com VRAM de 12 GB ou mais não precisarão de nenhum desses parâmetros de otimização.
A opção –no-half-vae é outra otimização que instrui o sistema a não usar o formato de meia precisão (16 bits para computadores de 32 bits) da representação de dados de ponto flutuante para VAE (autoencoder variacional; seu objetivo é reduzir a dimensão do espaço de parâmetros dados pelo modelo quase sem perda de informação sobre eles). Estritamente falando, apenas as mais novas gerações de GPUs NVIDIA — Pascal, Volta, Ampere — suportam totalmente esse formato, então faria sentido para os usuários de placas de vídeo anteriores aplicar duas otimizações de uma só vez: o –no-half-vae que especificamos , e um mais global –no-half (refere-se não apenas ao VAE, mas ao ponto de verificação de base como um todo). No entanto, como mostra a prática, na ausência de –no-half, mesmo em GPUs relativamente antigas, a Stable Diffusion funciona com bastante confiança, enquanto que sem –no-half-vae, geralmente produzirá retângulos pretos em vez de imagens geradas. Ressaltamos mais uma vez que estamos falando especificamente da série GeForce GTX 2000 e anteriores: para as atuais famílias RTX 3000 e 4000, não faz sentido especificar parâmetros de otimização nos argumentos da linha de comando dentro do arquivo .bat, exceto talvez — xformers.
Outra linha adicionada por nós a este arquivo
SAFETENSORS_FAST_GPU=1
Também visando agilizar o sistema. Aqui, é utilizada a característica do formato .safetensors, de modo que os pesos do modelo nele apresentado possam ser carregados diretamente na memória de vídeo, contornando a etapa de carregamento inicial na RAM principal.
Na verdade, é isso: depois de salvar as alterações no webui-user.bat e fechá-lo, lançamos esse arquivo novamente com um clique duplo – e observamos como o sistema (já com parâmetros otimizados) entra em funcionamento. Depois que a inscrição “Executando no URL local” aparecer, é hora de abrir uma nova guia no navegador e digitar nela o endereço onde a interface da web AUTOMATIC1111 está disponível – http://127.0.0.1:7860 .
É assim que parece inicialmente. Finalmente, é hora de ser criativo! Mais precisamente, para induzir a IA à ação visual, emitindo prompts de texto para ela.
⇡#Como um artista para um artista
Não há nada mais simples: no campo de entrada principal (Prompt), inseriremos uma única palavra “robô” para começar.
Vamos deixar o campo Negative prompt vazio, não vamos mexer em outros parâmetros, basta mover o controle deslizante Batch size (tamanho do pacote) para a direita até parar – para receber oito imagens com sementes diferentes de uma só vez: será mais fácil escolher um peça digna de processamento adicional. Em seguida, você deve clicar no enorme botão laranja Gerar – e, se tudo foi feito corretamente, depois de um tempo a difusão estável renderizará a dica recebida.
O andamento do processo pode ser observado na janela do terminal onde o próprio sistema está rodando – aparecerão informações detalhadas sobre o tempo gasto no carregamento dos parâmetros operacionais, e será fornecida uma estimativa da duração do trabalho.
A mesma avaliação pode ser vista no fundo da barra de progresso azul rastejando para a direita e na interface gráfica da web. No mesmo local – para referência – o sistema demonstra alguns resultados intermediários do processo de difusão: como a imagem esperada aparece gradativamente a partir do “ruído branco” inicial.
M-sim. Os resultados não são exatamente decepcionantes, mas pouco impressionantes. Os robôs nessas figuras são bastante adivinháveis, mas são de alguma forma … inexpressivos ou algo assim. Existe alguma maneira de melhorar a qualidade da saída?
É possível e até necessário: todo o encanto da conversão de texto em imagem da IA não está no fato de o robô desenhar certas imagens em um determinado prompt, mas em quão diversos e às vezes inesperados os frutos de seu trabalho podem ser – dependendo nos esforços mentais aplicados pelo operador. Para começar, usaremos o campo Prompt negativo, inserindo ali o que não queremos ver na imagem final, ou seja, baixa qualidade. Em seguida, clique no triângulo verde de setas, que lembra o símbolo da reciclagem: isso nos permitirá fixar a semente selecionada aleatoriamente (semente; neste caso, 3423357652) para as gerações subsequentes, que farão a avaliação do impacto do parâmetros que inserimos na imagem final mais visual.
A propósito, no diretório inicial do Stable Diffusion, agora existe uma pasta de saída que armazena os resultados: as próprias imagens (txt2img-images) e montagens gerais de gerações em lote (txt2img-grids). Dentro dessas pastas, as imagens são colocadas em subdiretórios rotulados com a data atual.
Como você pode ver, mesmo a sugestão negativa mais simples tornou as imagens mais expressivas. Preste atenção em como o sistema os nomeia por padrão: primeiro, há um número de geração contínua para a data atual, depois, por meio de um hífen, é a semente usada para criar essa imagem. Ou seja, aqui a primeira imagem do primeiro lote (00000-3423357652) corresponde à primeira do segundo (00008-3423357652), etc.
Vamos adicionar certeza ao que exatamente queremos ver os robôs representados. Em prompts positivos, em vez de apenas “robô”, escreveremos “robô lutador, aço brilhante” e, nos negativos, um dos conjuntos indesejados padrão de termos contextuais (prompt de conteúdo indesejado): “lowres, anatomia ruim, mãos ruins , texto, erro, falta de dedos, dígito extra, menos dígitos, cortado, pior qualidade, baixa qualidade, qualidade normal, artefatos jpeg, assinatura, marca d’água, nome de usuário, desfocado, nome do artista”. Muito mais interessante, não é?
A regra geral na arte de compilar prompts (promptsmithing, por analogia com ourivesaria) é a seguinte: tudo o que definitivamente deveria estar presente na imagem é escrito em prompts positivos; tudo o que não deveria aparecer ali em hipótese alguma – no negativo; o resto está à mercê do artista de IA. Ao mesmo tempo, deve-se lembrar que quanto mais próxima esta ou aquela palavra estiver do início da dica, mais significativa ela afetará a imagem final. Em geral, a amplitude de possibilidades na compilação de dicas abre um enorme espaço para experimentação. A comunidade de entusiastas de text2image já desenvolveu alguns esquemas (que de qualquer forma devem ser submetidos a dúvidas construtivas) para estruturá-los – por exemplo, este:
Assunto, Médio, Estilo, Artista, Site, Resolução, Detalhes adicionais, Cor, Iluminação
(Ou seja, objeto, mídia, estilo, artista, site, resolução, detalhes adicionais, paleta de cores, iluminação)
Vamos tentar adicionar algumas nuances à nossa dica de ferramenta original organizando as palavras nela da seguinte maneira (a nova linha na interface AUTOMATIC1111 é simplesmente ignorada pelo processador de texto, o que nos permite usá-la para maior clareza):
Robô lutador,
Pintura digital,
Hiperrealista,
Por Viktor Vasnetsov,
Tendência no ArtStation,
Detalhes extremamente altos, foco nítido, profundidade de campo,
Futurista, belíssimo, distópico,
Aço brilhante iridescente,
Iluminação cinematográfica, iluminação dinâmica, faíscas e flashes
Deixe a dica negativa como está. Você não deve se surpreender com o aparecimento de uma referência a Vasnetsov: a difusão estável foi apresentada ao trabalho de muitos artistas durante o treinamento; portanto, seus nomes na dica de ferramenta afetam o estilo geral da imagem – mesmo que esse próprio artista real não tenha escrito lutando contra robôs em sua prática. A menção ao ArtStation, um conhecido entre mestres e fãs de artes digitais, também não é acidental: as obras populares nele (tendências) em geral têm um estilo muito específico e seu sistema de aprendizado de máquina também captura com bastante sucesso.
Mais um detalhe: Stable Diffusion 1.5 gera imagens quadradas melhor do que todas (no sentido de que esta geração gera um mínimo de artefatos como proporções distorcidas de corpos humanos ou distúrbios de perspectiva), já que foi treinado em imagens com resolução de 256×256 e 512×512 píxeis. No entanto, o AUTOMATIC1111 permite que você altere esses tamanhos por conta e risco do usuário, inclusive obtendo imagens na orientação paisagem ou retrato, e não apenas quadradas. O modelo básico do Stable Diffusion 1.5 não lida muito bem com retângulos (outros checkpoints fazem isso melhor, além disso, há uma série de truques, mas mais sobre isso depois), mas ainda assim em 512×768 pixels deve dar um resultado mais ou menos aceitável.
Vamos continuar a explorar os controles do AUTOMATIC1111 prestando atenção ao menu suspenso Sampling method, onde “Euler a” é selecionado por padrão. Como já mencionado, o trabalho do modelo generativo de difusão consiste na subtração gradual da imagem original (um quadrado ou retângulo preenchido com “ruído branco”) de outro ruído, já ordenado (ruído previsto), – gerado de maneira especial com base em um prompt de texto. O próprio processo de redução de ruído também é chamado de amostragem, pois a cada estágio de redução sucessiva do ruído da imagem, uma nova amostra é obtida – e, de fato, quantos passos serão dados nesse caminho é controlado pelo parâmetro Passos de amostragem. Para a maioria dos pontos de verificação, 20 a 30 etapas são suficientes.
Mas exatamente como o modelo decide quanto ruído e em quais áreas específicas deve ser deixado na imagem em cada estágio, e é determinado pelo método de amostragem; matematicamente falando, por um método ou outro de gradiente descendente. O mais simples e rápido (mas também dando resultados menos expressivos do ponto de vista artístico) é o Euler que já usamos (ver esquema de Euler). Outros samplers podem produzir resultados mais interessantes e/ou mais complexos com mais ou menos consideração de diferentes fragmentos de dica – não há uma receita única, nenhuma regra geral do que é mais preferível. No entanto, alterando o Euler para um amostrador DPM ++ SDE Karras mais “avançado”, embora mais demorado (Karras é o nome de um dos autores do artigo original, que descreve vários desses métodos),
Continuamos a complicar a dica positiva: os robôs resultantes são muito parecidos com transformadores, adicionando um elemento saudável de steampunk:
Robô lutador,
Em antigas ruínas alienígenas,
Pintura digital,
Hiperrealista,
Por Viktor Vasnetsov,
Tendência no ArtStation,
Detalhes extremamente altos, foco nítido, profundidade de campo,
Steampunk, belíssimo, retrofuturista,
Latão brilhante iridescente,
Iluminação cinematográfica, iluminação dinâmica, faíscas e flashes
Não é bom? Principalmente aqueles dois que estão brincando de pular (é aqui que se manifesta a autocriação de um artista digital: na dica dada por nós, nada foi dito sobre dois robôs, nem sobre sua posição relativa). É verdade que artefatos de composição vertical tornam-se aparentes; Em primeiro lugar, membros decepados. Para lidar com isso, existem diferentes maneiras.
Vamos primeiro tentar reorganizar os estilos (indicando o artista e o site) até o final e, ao mesmo tempo, remover “retrofuturismo” como termo das dicas – definido de maneira muito vaga, pode confundir o modelo – e adicionar mais detalhes que implica: lâmpadas incandescentes de âmbar, tubos de bronze, engrenagens de cobre, correntes cromadas, mostradores de marfim, válvulas de ébano:
Robô lutador,
Em antigas ruínas alienígenas,
Pintura digital,
Hiperrealista,
Detalhes extremamente altos, foco nítido, profundidade de campo,
Steampunk, incrivelmente lindo,
Metal brilhante iridescente, tubos de néon âmbar, tubos de latão, engrenagens de cobre, correntes cromadas, mostradores de marfim, válvulas de ébano
Iluminação cinematográfica, iluminação dinâmica, faíscas e flashes,
Por Viktor Vasnetsov,
Tendência no ArtStation
Que reviravolta! Há claramente mais detalhes.
E se você abandonar completamente as duas últimas linhas no campo das dicas positivas? Talvez essa falta de estilo emprestado seja em si o estilo do Stable Diffusion 1.5 original ao trabalhar com uma entrada de texto bastante detalhada: um tanto caótica, mas altamente detalhada.
⇡#Combinando o combinador
Mais de uma vez, chamamos o ponto de verificação “v-1-5-pruned-emaonly.safetensors” usado com o AUTOMATIC1111 (renomeado, lembre-se, para “model.safetensors”) como o ponto de verificação básico. Então, deve haver alguns derivados não básicos? Assim é: com base no modelo Stable Diffusion 1.5 original (apenas na versão podada, sem emaonly), os entusiastas fazem treinamento adicional percorrendo o sistema – da mesma forma que os bilhões originais de fotos viajaram – mais algumas centenas, ou milhares, ou quantos paciência e poder de computação. Essas fotos, selecionadas e anotadas adequadamente, expandem os horizontes de percepção, por assim dizer, do modelo: ele começa a produzir imagens no estilo steampunk com mais frequência sem prompts adicionais,
Por que se preocupar com os pontos de verificação, mostraremos o exemplo de uma das melhorias mais populares do Stable Diffusion 1.5 hoje chamado Deliberate v.2. É mais lógico baixar este arquivo no formato .safetensors da página deste projeto no já familiar repositório Hugging Face, após o qual precisamos colocar o modelo pré-treinado na mesma pasta onde o modelo base já está localizado – model.safetensors. Desta vez, não há necessidade de renomear nada.
“Você não precisa reiniciar todo o sistema (feche a janela do terminal e inicie o webui-user.bat novamente): basta clicar no botão azul com setas semicirculares brancas ao lado do menu suspenso do ponto de verificação Stable Diffusion e, em seguida, abra este menu, ative a opção Deliberate_v2.safetensors que aparece – e clique novamente em Gerar.”
Céu e terra! As figuras dos robôs tornaram-se muito mais estáticas, mas a elaboração e a consistência dos detalhes melhoraram definitivamente. Esta é a força dos checkpoints derivados (do modelo básico): eles permitem, com menos esforço – por parte do usuário final – obter imagens esteticamente mais agradáveis com as mesmas pontas e sementes do que o Stable Diffusion 1.5.
E agora vamos tentar devolver os artistas (ainda não vamos mencionar o site: o conceito de estilo para ele como um todo é mais vago do que para pintores individuais). Na última linha no campo de dicas positivas, indicamos:
(Por Viktor Vasnetsov:0,7), (por HR Giger:0,9)
A propósito, se você esquecer de fechar um dos colchetes, o sistema avisará sobre um possível erro: o número de parâmetros de geração (no canto superior direito da janela correspondente; neste exemplo, 86/150) será rodeado por uma moldura avermelhada alarmante.
Poucas pessoas conhecem o nome de Hans “Rudi” Giger, mas o estilo de suas obras no gênero do realismo fantástico é familiar a todos que já viram pelo menos alguns quadros do filme cult “Alien”, para o qual este artista desenvolveu tanto a imagem de um xenomorfo quanto o design geral. Quanto aos colchetes e números dentro, este é o método adotado no AUTOMATIC1111 para alterar o significado (peso relativo) de uma determinada dica.
Por padrão, qualquer um deles tem um peso condicional de 1; simplesmente colocar a dica de ferramenta entre parênteses equivale a dar a ela um peso de 1,1 (ou seja, torna-se mais significativo para a geração dessa imagem do que as vizinhas) e, se você quiser definir algum outro peso, é indicado explicitamente após os dois pontos . Pesos menores que 0,5 (devido à influência insignificante de tais dicas na imagem final) e mais de 1,5 (o resultado pode ser graficamente imprevisível) geralmente devem ser evitados, mas, em qualquer caso, esse é outro grau de liberdade da inteligência artificial. criatividade mediada – que os entusiastas gostam de bom grado. Ao definir os estilos de ambos os artistas para pesos baixos, evitaremos sua influência excessiva na imagem final (um Alien robótico em um vestido de verão certamente não aparecerá aqui),
(Fonte: screenshot de civitai.com)
Além dos pontos de verificação pré-treinados completos, existem outros métodos para ensinar ao modelo generativo text2image um determinado estilo ou desenhar novos objetos que não foram incluídos na base de treinamento principal. Um desses métodos é o LoRA (adaptação de baixo escalão de grandes modelos de linguagem, adaptação de baixo nível de LLM), que implica a introdução de camadas neurais treinadas adicionais em blocos de transformadores prontos (treinados durante a criação do modelo básico) . Como isso é implementado matematicamente não é de fundamental importância para nós neste caso; É importante entender como usá-los.
Por exemplo, Civitai.com, um repositório aberto de muitos recursos para entusiastas de text2image, tem um LoRA chamado SteampunkAI. Foi criado com base em um checkpoint, especialmente treinado para desenhar no estilo correspondente, e pode ser usado com qualquer outro checkpoint, proporcionando um estilo totalmente reconhecível e espetacular. Para baixar o arquivo .safetensors correspondente, basta clicar no longo botão azul no lado direito da página da web.
Para ativar o LoRA, é utilizado um comando especial entre colchetes, indicando seu nome exato e peso condicional (que, dependendo do desejo do operador, pode ser menor ou maior que um):
O prompt negativo ainda está inalterado
Em geral, o resultado é uma elaboração de detalhes muito boa, fantástica, mas de alguma forma esses robôs ficaram ao mesmo tempo … estáticos ou algo assim e nitidamente do mesmo tipo, porém, esse infortúnio e entusiastas aprenderam a lutar usando um xamanismo tão forte quanto Agora vamos explicar o que isso significa
Mas primeiro, vamos ajustar um pouco a interface Nas configurações – – webinterface, você precisa abrir uma janela separando-a – esta é uma enumeração de quais controles serão movidos para o topo da página principal da interface. Inicialmente, havia um único parâmetro – sua presença nominal disponibilizou o menu suspenso no qual substituímos a linha
Adicione-o ali separado por vírgula, começando com a versão adicionando isso é feito no menu suspenso, basta começar a digitar o nome do parâmetro desejado e a lista de opções sugeridas diminuirá automaticamente
Tendo registrado os parâmetros necessários, retornaremos rolando até o topo da página e pressionando o enorme botão laranja e depois o próximo
Depois de retornar à página principal da interface da web, a guia garante que sua parte superior agora contenha dois menus suspensos adicionais e um controle deslizante – na verdade, isso deve ser movido para a posição
Depois de iniciar a geração da imagem, a primeira coisa que entra em operação é o codificador construído sobre os transformadores, os autokens de texto, que serão usados futuramente pelo modelo de difusão atual para “remover ruídos desnecessários” da peça de trabalho do imagem futura. Para ler “casa em geral” como uma ideia conceitual do modelo, é necessário determinar se este é um desenho completo e fotorrealista de estilização de um livro infantil um esboço rápido com parâmetros gerais do número de andares , a forma do telhado, a ausência de um cano, a cor do número de janelas e portas visíveis e muitos outros parâmetros ainda deixarão muito espaço para imaginação – a IA moderna ainda não tem combinação pseudo-aleatóriaopções que surgiram com base no treinamento do modelo Mais uma vez, esta é uma descrição muito aproximada, uma vez que qualquer trabalho de rede neural densa multicamadas é fundamentalmente não interpretável no nível interno e é essencialmente uma “caixa preta”
Portanto, na etapa final, ele deve fornecer ao modelo de difusão instruções suficientemente detalhadas na forma de um conjunto de tokens, que tipo de imagem deve ser ocultada no próximo retângulo preenchido com “ruído branco”. cartas de robôs quase steampunk que acabamos de receber ilustram bem.
Muito provavelmente, este não é um ponto de verificação e estritamente temático, portanto, jogando com todo o significado de substituir “” dentro dos colchetes triangulares por “” para começar, seria possível suavizar o efeito negativo do penúltimo não final conjunto polido de instruções para desenho de IA e irá gerar uma imagem de aparência humana verdadeiramente atraente. Como um exercício independente, tente outras opções até o máximo possível – o resultado irá surpreendê-lo
Uma digressão prática após reiniciar a interface, todas as nossas dicas e configurações na guia desapareceram. Claro, você pode restaurá-los manualmente de acordo com as entradas anteriores – mas por que se você colocar todos os dados mais importantes gerados diretamente imagens no comentário de texto campos fornecidos pelas normas e
Preste atenção na aba da interface web ao acessá-la, aparece uma área para carregamento de imagens, coloque-a simplesmente arrastando com o mouse da janela “Explorer” na qual se abre a pasta da última imagem gerada em o formato – e à direita, todas as informações salvas nos metadados aparecerão. acabaram por estar em seus lugares Você só precisa retornar o valor – caso contrário, será gerado não uma seleção, como sempre até agora, apenas uma única imagem com a semente inicial na seleção já indicada por cada imagem subseqüente, o lembrete da semente difere do anterior por um
Assim, recomeçamos a geração com os mesmos parâmetros restaurados pelo nariz, bom, um contraste marcante;
E se traduzirmos a imagem do formato de livro para a paisagem? A composição vertical de uma entidade humanóide ainda implica um certo retrato da estática adjacente, enquanto a imagem lindamente esticada pode fornecer mais espaço para a dinâmica.
Muito bom, mas ainda pode melhorar
Vamos jogar novamente com a ordem das pistas
Acontece que vale muito a pena
O próximo passo é otimizar a dica negativa. O conjunto padrão de negações que usamos até agora é bom em sua relativa universalidade, mas ainda não cobre toda a gama possível de deficiências que podem surgir ao transformar texto e imagens – especialmente ao desenhar robôs. baixe o mesmo site familiar, baixe a inversão textual da maneira usual, coloque o arquivo na pasta Preste atenção onde estão localizados os diretórios dos próprios modelos
No campo da dica negativa em lugares de tudo o que foi colocado lá, chamamos agora de inversão de texto com o parâmetro de significância
E agora este é um assunto completamente diferente.
Mas ainda assim, tudo isso é apenas o começo e os primeiros estágios de mergulho nas profundezas sem fundo do mundo dos modelos difusos para transformar o texto de uma imagem já existente de forma contínua e quase ilimitada aumento de tamanho e a criação de muitas composições figuradas de acordo com o modelo e muito mais … E o que é mais importante para o desenvolvimento de todo esse esplendor é suficiente apenas um simples PC para jogos com habilidades mínimas na instalação de software e – este é um momento essencial – diligência titânica existe
Esperamos receber feedback de leitores que se deram ao trabalho de instalar e rodar em um PC local ou que já experimentaram sites para desenhar figuras usando dicas de texto Nos planos de aprofundar ainda mais o tema, em particular, dominando a extensão da imagem , redesenhando seus fragmentos individuais de escala, identificando prompts de texto de imagens prontas que não contêm metadados de desenho usando modelos e muito mais Seria interessante saber quais dificuldades e restrições no caminho iiiiii artes plásticas você já encontrou deixe seu comentários, vamos tentar descobrir isso juntos
Os usuários finais dos principais serviços de informação há muito tempo fornecem às empresas de…
Até agora, as discussões sobre o acordo para a cisão dos negócios americanos do TikTok…
Na Alemanha, durante uma transmissão ao vivo da pista de testes da Automotive Testing Papenburg,…
Um entusiasta instalou com sucesso uma placa de vídeo Radeon RX 9070 com o BIOS…
Rumores sobre um MacBook com tela sensível ao toque continuam circulando e, graças a mais…
Um ataque cibernético a um fornecedor de software aeroportuário causou interrupções generalizadas e cancelamentos de…