Entre em contato

Como a difusão estável pode se desenvolver como um produto de consumo comum

Inteligência artificial

Como a difusão estável pode se desenvolver como um produto de consumo comum

mm

Ironicamente, difusão estáveln, a nova estrutura de síntese de imagens de IA que conquistou o mundo, não é nem estável nem realmente "difusa" — pelo menos, não ainda.

A gama completa de recursos do sistema está espalhada por uma miscelânea variada de ofertas em constante mutação, de um punhado de desenvolvedores trocando freneticamente as últimas informações e teorias em diversas conversas no Discord — e a grande maioria dos procedimentos de instalação dos pacotes que eles estão criando ou modificando estão muito longe de ser 'plug and play'.

Em vez disso, eles tendem a exigir linha de comando ou movido a BAT instalação via GIT, Conda, Python, Miniconda e outras estruturas de desenvolvimento de ponta – pacotes de software tão raros entre os consumidores em geral que sua instalação é frequentemente sinalizado por fornecedores de antivírus e antimalware como evidência de um sistema host comprometido.

Apenas uma pequena seleção de estágios na manopla que a instalação de difusão estável padrão atualmente requer. Muitas das distribuições também exigem versões específicas do Python, que podem entrar em conflito com as versões existentes instaladas na máquina do usuário - embora isso possa ser evitado com instalações baseadas em Docker e, até certo ponto, por meio do uso de ambientes Conda.

Apenas uma pequena seleção de etapas no desafio que a instalação padrão do Stable Diffusion exige atualmente. Muitas das distribuições também exigem versões específicas do Python, o que pode entrar em conflito com as versões existentes instaladas na máquina do usuário – embora isso possa ser evitado com instalações baseadas em Docker e, até certo ponto, com o uso de ambientes Conda.

Tópicos de mensagens nas comunidades Stable Diffusion SFW e NSFW são inundados com dicas e truques relacionados a hacking de scripts Python e instalações padrão, a fim de permitir funcionalidade aprimorada ou resolver erros de dependência frequentes e uma série de outros problemas.

Isso deixa o consumidor médio, interessado em criando imagens incríveis a partir de prompts de texto, praticamente à mercê do número crescente de interfaces da Web de API monetizadas, a maioria das quais oferece um número mínimo de gerações de imagens gratuitas antes de exigir a compra de tokens.

Além disso, quase todas essas ofertas baseadas na web se recusam a exibir conteúdo NSFW (muito do qual pode estar relacionado a assuntos não pornográficos de interesse geral, como "guerra"), o que distingue o Stable Diffusion dos serviços expurgados do DALL-E 2 da OpenAI.

'Photoshop para difusão estável'

Tantalizado pelas imagens fabulosas, picantes ou sobrenaturais que povoam diariamente a hashtag #stablediffusion do Twitter, o que o mundo em geral provavelmente está esperando é 'Photoshop para difusão estável' – um aplicativo instalável multiplataforma que reúne as melhores e mais poderosas funcionalidades da arquitetura do Stability.ai, bem como as diversas inovações engenhosas da comunidade emergente de desenvolvimento de SD, sem janelas CLI flutuantes, rotinas de instalação e atualização obscuras e em constante mudança, ou recursos ausentes.

O que temos atualmente, na maioria das instalações mais capazes, é uma página da Web variadamente elegante montada por uma janela de linha de comando sem corpo e cuja URL é uma porta localhost:

Semelhante aos aplicativos de síntese baseados em CLI, como o FaceSwap, e o DeepFaceLab centrado no BAT, a instalação 'prepack' do Stable Diffusion mostra suas raízes de linha de comando, com a interface acessada por meio de uma porta localhost (veja a parte superior da imagem acima) que se comunica com a funcionalidade Stable Diffusion baseada em CLI.

Semelhante aos aplicativos de síntese controlados por CLI, como o FaceSwap e o DeepFaceLab centrado em BAT, a instalação 'pré-embalada' do Stable Diffusion mostra suas raízes de linha de comando, com a interface acessada por meio de uma porta localhost (veja o topo da imagem acima) que se comunica com a funcionalidade do Stable Diffusion baseada em CLI.

Sem dúvida, um aplicativo mais simplificado está chegando. Já existem vários aplicativos integrais baseados no Patreon que podem ser baixados, como G Risco e NMKD (ver imagem abaixo) – mas nenhum que, por enquanto, integre toda a gama de recursos que algumas das implementações mais avançadas e menos acessíveis do Stable Diffusion podem oferecer.

Os primeiros pacotes de Stable Diffusion baseados no Patreon, levemente 'aplicativos'. O NMKD é o primeiro a integrar a saída CLI diretamente na GUI.

Os primeiros pacotes do Stable Diffusion baseados no Patreon, levemente "appizados". O NMKD é o primeiro a integrar a saída da CLI diretamente na interface gráfica do usuário (GUI).

Vamos dar uma olhada em como uma implementação mais refinada e integral dessa maravilha de código aberto pode se tornar — e quais desafios ela pode enfrentar.

Considerações legais para um aplicativo de difusão estável comercial totalmente financiado

O Fator NSFW

O código-fonte do Stable Diffusion foi lançado sob um licença extremamente permissiva que não proíbe reimplementações comerciais e trabalhos derivados construídos extensivamente a partir do código-fonte.

Além do já mencionado e crescente número de compilações Stable Diffusion baseadas no Patreon, bem como o extenso número de plugins de aplicativos sendo desenvolvidos para Figma, Krita, Photoshop, GIMP e liqüidificador (entre outros), não há prático razão pela qual uma casa de desenvolvimento de software bem financiada não poderia desenvolver um aplicativo Stable Diffusion muito mais sofisticado e capaz. Do ponto de vista do mercado, há todos os motivos para acreditar que várias dessas iniciativas já estão bem encaminhadas.

Aqui, tais esforços enfrentam imediatamente o dilema de saber se, como a maioria das APIs da web para Stable Diffusion, o aplicativo permitirá ou não o filtro NSFW nativo do Stable Diffusion (um fragmento de código), para ser desligado.

'Enterrando' o interruptor NSFW

Embora a licença de código aberto da Stability.ai para Stable Diffusion inclua uma lista amplamente interpretável de aplicações para as quais pode não ser usado (indiscutivelmente incluindo conteúdo pornográfico e deepfakes), a única maneira de um fornecedor proibir efetivamente esse uso seria compilar o filtro NSFW em um executável opaco em vez de um parâmetro em um arquivo Python ou aplicar uma comparação de soma de verificação no arquivo Python ou DLL que contém a diretiva NSFW, para que as renderizações não ocorram se os usuários alterarem essa configuração.

Isso deixaria a suposta aplicação "neutra" da mesma forma que DALL-E 2 atualmente é, diminuindo seu apelo comercial. Além disso, inevitavelmente, versões descompiladas e "manipuladas" desses componentes (elementos originais do tempo de execução do Python ou arquivos DLL compilados, como os usados ​​atualmente na linha Topaz de ferramentas de aprimoramento de imagens de IA) provavelmente surgiriam na comunidade de torrents/hackers para desbloquear tais restrições, simplesmente substituindo os elementos obstrutivos e anulando quaisquer requisitos de soma de verificação.

No final, o fornecedor pode optar por simplesmente repetir o aviso da Stability.ai contra o uso indevido que caracteriza a primeira execução de muitas distribuições atuais do Stable Diffusion.

No entanto, os pequenos desenvolvedores de código aberto que atualmente usam isenções de responsabilidade casuais dessa maneira têm pouco a perder em comparação com uma empresa de software que investiu uma quantidade significativa de tempo e dinheiro para tornar o Stable Diffusion completo e acessível - o que convida a uma consideração mais profunda.

Responsabilidade Deepfake

Como temos observou recentemente, o banco de dados de estética LAION, parte dos 4.2 bilhões de imagens nas quais os modelos contínuos da Stable Diffusion foram treinados, contém um grande número de imagens de celebridades, permitindo que os usuários criem efetivamente deepfakes, incluindo pornografia deepfake de celebridades.

Do nosso artigo recente, quatro estágios de Jennifer Connelly ao longo de quatro décadas de sua carreira, inferidos da difusão estável.

Do nosso artigo recente, quatro estágios de Jennifer Connelly ao longo de quatro décadas de sua carreira, inferidos da difusão estável.

Esta é uma questão separada e mais controversa do que a geração de pornografia "abstrata" (geralmente) legal, que não retrata pessoas "reais" (embora tais imagens sejam inferidas de várias fotos reais no material de treinamento).

Como um número crescente de estados e países dos EUA estão desenvolvendo ou instituíram leis contra pornografia deepfake, a capacidade do Stable Diffusion de criar pornografia de celebridades pode significar que um aplicativo comercial que não seja totalmente censurado (ou seja, que possa criar material pornográfico) ainda precise de alguma capacidade de filtrar rostos de celebridades.

Um método seria fornecer uma "lista negra" integrada de termos que não serão aceitos em um prompt de usuário, relacionados a nomes de celebridades e personagens fictícios aos quais possam estar associados. Presumivelmente, tais configurações precisariam ser implementadas em mais idiomas além do inglês, visto que os dados de origem incluem outros idiomas. Outra abordagem poderia ser incorporar sistemas de reconhecimento de celebridades, como os desenvolvidos pela Clarifai.

Pode ser necessário que os produtores de software incorporem esses métodos, talvez inicialmente desativados, pois podem ajudar a impedir que um aplicativo Stable Diffusion autônomo completo gere rostos de celebridades, aguardando nova legislação que possa tornar essa funcionalidade ilegal.

Mais uma vez, entretanto, tal funcionalidade poderia inevitavelmente ser descompilada e revertida pelas partes interessadas; no entanto, o produtor de software poderia, nessa eventualidade, alegar que isso é efetivamente vandalismo não sancionado - desde que esse tipo de engenharia reversa não seja excessivamente fácil.

Recursos que podem ser incluídos

A funcionalidade principal em qualquer distribuição do Stable Diffusion seria esperada de qualquer aplicativo comercial bem financiado. Isso inclui a capacidade de usar prompts de texto para gerar imagens apropriadas (texto para imagem); a capacidade de usar esboços ou outras imagens como diretrizes para novas imagens geradas (imagem a imagem); os meios para ajustar o quão "imaginativo" o sistema é instruído a ser; uma maneira de compensar o tempo de renderização pela qualidade; e outros "princípios básicos", como arquivamento automático opcional de imagem/prompt e upscaling opcional de rotina via Real ESRGAN, e pelo menos uma 'consertação de rosto' básica com GFPGAN or CodeFormer.

Essa é uma instalação bem "vanilla". Vamos dar uma olhada em alguns dos recursos mais avançados que estão sendo desenvolvidos ou expandidos e que poderiam ser incorporados a um aplicativo Stable Diffusion "tradicional" completo.

Congelamento Estocástico

Mesmo se você reutilizar uma semente de uma renderização anterior bem-sucedida, é terrivelmente difícil fazer com que a Stable Diffusion repita com precisão uma transformação se qualquer parte do prompt ou a imagem de origem (ou ambos) é alterado para uma renderização subsequente.

Isso é um problema se você quiser usar EbSynthGenericName para impor as transformações da Difusão Estável em vídeos reais de uma forma temporalmente coerente – embora a técnica possa ser muito eficaz para tomadas simples de cabeça e ombros:

O movimento limitado pode tornar o EbSynth um meio eficaz para transformar transformações de difusão estável em vídeo realista. Fonte: https://streamable.com/u0pgzd

O movimento limitado pode tornar o EbSynth um meio eficaz para transformar transformações de difusão estável em vídeo realista. Fonte: https://streamable.com/u0pgzd

O EbSynth funciona extrapolando uma pequena seleção de quadros-chave "alterados" para um vídeo que foi renderizado em uma série de arquivos de imagem (e que depois pode ser remontado novamente em um vídeo).

Neste exemplo do site EbSynth, um pequeno punhado de quadros de um vídeo foi pintado de maneira artística. EbSynth usa esses quadros como guias de estilo para alterar de maneira semelhante todo o vídeo para que corresponda ao estilo pintado. Fonte: https://www.youtube.com/embed/eghGQtQhY38

Neste exemplo do site EbSynth, um pequeno punhado de quadros de um vídeo foi pintado de maneira artística. EbSynth usa esses quadros como guias de estilo para alterar de maneira semelhante todo o vídeo para que corresponda ao estilo pintado. Fonte: https://www.youtube.com/embed/eghGQtQhY38

No exemplo abaixo, que não apresenta quase nenhum movimento da instrutora de ioga loira (real) à esquerda, o Stable Diffusion ainda tem dificuldade em manter um rosto consistente, porque as três imagens sendo transformadas como "quadros-chave" não são completamente idênticas, embora todas compartilhem a mesma semente numérica.

Aqui, mesmo com o mesmo prompt e semente em todas as três transformações, e muito poucas mudanças entre os quadros de origem, os músculos do corpo variam em tamanho e forma, mas o mais importante é que o rosto é inconsistente, dificultando a consistência temporal em uma possível renderização EbSynth.

Aqui, mesmo com o mesmo prompt e semente em todas as três transformações, e muito poucas mudanças entre os quadros de origem, os músculos do corpo variam em tamanho e forma, mas o mais importante é que o rosto é inconsistente, dificultando a consistência temporal em uma possível renderização EbSynth.

Embora o vídeo SD/EbSynth abaixo seja muito criativo, onde os dedos do usuário foram transformados em (respectivamente) um par de pernas com calças e um pato, a inconsistência das calças exemplifica o problema que a Difusão Estável tem em manter a consistência entre diferentes quadros-chave, mesmo quando os quadros de origem são semelhantes entre si e a semente é consistente.

Os dedos de um homem se tornam um homem andando e um pato, via Stable Diffusion e EbSynth. Fonte: https://old.reddit.com/r/StableDiffusion/comments/x92itm/proof_of_concept_using_img2img_ebsynth_to_animate/

Os dedos de um homem se tornam um homem ambulante e um pato, via Stable Diffusion e EbSynth. Fonte: https://old.reddit.com/r/StableDiffusion/comments/x92itm/proof_of_concept_using_img2img_ebsynth_to_animate/

O usuário que criou este vídeo comentou que a transformação do pato, indiscutivelmente a mais eficaz das duas, embora menos impressionante e original, exigia apenas um único quadro-chave transformado, enquanto era necessário renderizar 50 imagens de difusão estável para criar as calças de caminhada, que exibem mais temporal inconsistência. O usuário também observou que foram necessárias cinco tentativas para obter consistência para cada um dos 50 quadros-chave.

Portanto, seria um grande benefício para um aplicativo Stable Diffusion verdadeiramente abrangente fornecer funcionalidade que preserva características ao máximo em quadros-chave.

Uma possibilidade é que o aplicativo permita que o usuário "congele" a codificação estocástica da transformação em cada quadro, o que atualmente só pode ser alcançado modificando o código-fonte manualmente. Como mostra o exemplo abaixo, isso ajuda na consistência temporal, embora certamente não resolva o problema:

Um usuário do Reddit transformou a filmagem de sua webcam em diferentes pessoas famosas, não apenas persistindo a semente (o que qualquer implementação do Stable Diffusion pode fazer), mas garantindo que o parâmetro stochastic_encode() fosse idêntico em cada transformação. Isso foi feito modificando o código, mas poderia facilmente se tornar um switch acessível ao usuário. Claramente, porém, não resolve todas as questões temporais. Fonte: https://old.reddit.com/r/StableDiffusion/comments/wyeoqq/turning_img2img_into_vid2vid/

Um usuário do Reddit transformou a filmagem de sua webcam em diferentes pessoas famosas, não apenas persistindo a semente (o que qualquer implementação do Stable Diffusion pode fazer), mas garantindo que o parâmetro stochastic_encode() fosse idêntico em cada transformação. Isso foi feito modificando o código, mas poderia facilmente se tornar um switch acessível ao usuário. Claramente, no entanto, não resolve todas as questões temporais. Fonte: https://old.reddit.com/r/StableDiffusion/comments/wyeoqq/turning_img2img_into_vid2vid/

Inversão textual baseada em nuvem

Uma solução melhor para obter personagens e objetos temporalmente consistentes é 'incorporá-los' em um Inversão Textual – um arquivo de 5 KB que pode ser treinado em algumas horas com base em apenas cinco imagens anotadas, que podem ser obtidas por um especial '*' prompt, permitindo, por exemplo, um aparecimento persistente de novos personagens para inclusão em uma narrativa.

Imagens associadas a tags opostas podem ser convertidas em entidades discretas por meio de inversão textual e invocadas sem ambigüidade e no contexto e estilo corretos por meio de palavras simbólicas especiais. Fonte: https://huggingface.co/docs/diffusers/training/text_inversion

As imagens associadas a tags opostas podem ser convertidas em entidades discretas por meio da inversão textual e invocadas sem ambigüidade e no contexto e estilo corretos por meio de palavras simbólicas especiais. Fonte: https://huggingface.co/docs/diffusers/training/text_inversion

As inversões textuais são arquivos complementares ao modelo muito grande e totalmente treinado que a difusão estável usa e são efetivamente "incorporadas" ao processo de elicitação/solicitação, para que possam participar em cenas derivadas do modelo e se beneficiar do enorme banco de dados de conhecimento do modelo sobre objetos, estilos, ambientes e interações.

No entanto, embora uma inversão textual não demore muito para ser treinada, ela requer uma grande quantidade de VRAM; de acordo com várias orientações atuais, algo entre 12, 20 e até 40 GB.

Como é improvável que a maioria dos usuários casuais tenha esse tipo de GPU à sua disposição, já estão surgindo serviços em nuvem que cuidarão da operação, incluindo uma versão Hugging Face. Embora existam Implementações do Google Colab que podem criar inversões textuais para difusão estável, o VRAM necessário e os requisitos de tempo podem torná-los desafiadores para usuários Colab de nível gratuito.

Para um possível aplicativo Stable Diffusion (instalado) completo e bem investido, passar essa tarefa pesada para os servidores em nuvem da empresa parece uma estratégia de monetização óbvia (assumindo que um aplicativo Stable Diffusion de baixo ou nenhum custo esteja permeado com essa funcionalidade não gratuita, o que parece provável em muitos aplicativos possíveis que surgirão dessa tecnologia nos próximos 6 a 9 meses).

Além disso, o processo bastante complexo de anotar e formatar as imagens e textos enviados poderia se beneficiar da automação em um ambiente integrado. O potencial "fator viciante" de criar elementos únicos que possam explorar e interagir com os vastos mundos do Stable Diffusion pareceria potencialmente compulsivo, tanto para entusiastas em geral quanto para usuários mais jovens.

Ponderação de prompt versátil

Existem muitas implementações atuais que permitem ao usuário atribuir maior ênfase a uma seção de um prompt de texto longo, mas a instrumentalidade varia bastante entre elas e é frequentemente desajeitada ou pouco intuitiva.

O popular garfo Stable Diffusion por AUTOMATIC1111, por exemplo, pode diminuir ou aumentar o valor de uma palavra de prompt colocando-a entre colchetes simples ou múltiplos (para desenfatizar) ou colchetes para ênfase extra.

Colchetes e/ou parênteses podem transformar seu café da manhã nesta versão de pesos de prompt de difusão estável, mas é um pesadelo de colesterol de qualquer maneira.

Colchetes e/ou parênteses podem transformar seu café da manhã nesta versão de pesos rápidos do Stable Diffusion, mas de qualquer forma é um pesadelo para o colesterol.

Outras iterações do Stable Diffusion usam pontos de exclamação para dar ênfase, enquanto as mais versáteis permitem que os usuários atribuam pesos a cada palavra no prompt por meio da GUI.

O sistema também deve permitir pesos de prompt negativos – não apenas para fãs de terror, mas porque pode haver mistérios menos alarmantes e mais edificantes no espaço latente da Difusão Estável do que nosso uso limitado da linguagem pode evocar.

Pintura externa

Logo após o sensacional open-source do Stable Diffusion, a OpenAI tentou – em vão – recapturar parte de seu trovão DALL-E 2 anunciando 'outpainting', que permite ao usuário estender uma imagem além de seus limites com lógica semântica e coerência visual.

Naturalmente, isso já foi implementado em várias formas para difusão estável, bem como no Krita, e certamente deve ser incluído em uma versão abrangente no estilo Photoshop do Stable Diffusion.

O aumento baseado em blocos pode estender uma renderização padrão de 512 x 512 quase infinitamente, desde que os prompts, a imagem existente e a lógica semântica o permitam. Fonte: https://github.com/lkwq007/stablediffusion-infinity

O aumento baseado em blocos pode estender uma renderização padrão de 512 × 512 quase infinitamente, desde que os prompts, a imagem existente e a lógica semântica o permitam. Fonte: https://github.com/lkwq007/stablediffusion-infinity

Como o Stable Diffusion é treinado em imagens de 512x512px (e por vários outros motivos), ele frequentemente corta as cabeças (ou outras partes essenciais do corpo) de pessoas, mesmo quando o prompt indica claramente "ênfase na cabeça", etc.

Exemplos típicos de 'decapitação' de Difusão Estável; mas a pintura poderia colocar George de volta na foto.

Exemplos típicos de "decapitação" por difusão estável; mas uma nova pintura poderia colocar George de volta na cena.

Qualquer implementação de pintura externa do tipo ilustrado na imagem animada acima (que é baseada exclusivamente em bibliotecas Unix, mas deve ser capaz de ser replicada no Windows) também deve ser utilizada como uma solução de um clique/prompt para isso.

Atualmente, vários usuários estendem a tela de representações 'decapitadas' para cima, preenchem aproximadamente a área da cabeça e usam img2img para completar a renderização malfeita.

Mascaramento eficaz que entende o contexto

Mascaramento pode ser uma questão de acertos e erros terríveis na Difusão Estável, dependendo do fork ou versão em questão. Frequentemente, quando é possível desenhar uma máscara coesa, a área especificada acaba sendo pintada com conteúdo que não leva em conta todo o contexto da imagem.

Em uma ocasião, mascarei as córneas de uma imagem facial e forneci o prompt 'olhos azuis' como uma máscara pintada – apenas para descobrir que eu parecia estar olhando através de dois olhos humanos recortados para uma imagem distante de um lobo de aparência sobrenatural. Acho que tive sorte de não ser Frank Sinatra.

A edição semântica também é possível por identificando o barulho que construiu a imagem em primeiro lugar, o que permite ao usuário abordar elementos estruturais específicos em uma renderização sem interferir no restante da imagem:

Alterar um elemento de uma imagem sem mascaramento tradicional e sem alterar o conteúdo adjacente, identificando o ruído que originou a imagem e abordando as partes dela que contribuíram para a área de destino. Fonte: https://old.reddit.com/r/StableDiffusion/comments/xboy90/a_better_way_of_doing_img2img_by_finding_the/

Alterar um elemento de uma imagem sem mascaramento tradicional e sem alterar o conteúdo adjacente, identificando o ruído que originou a imagem e abordando as partes dela que contribuíram para a área de destino. Fonte: https://old.reddit.com/r/StableDiffusion/comments/xboy90/a_better_way_of_doing_img2img_by_finding_the/

Este método é baseado na Amostrador de difusão K.

Filtros Semânticos para Tolices Fisiológicas

Como mencionamos antes, a Difusão Estável pode frequentemente adicionar ou subtrair membros, em grande parte devido a problemas de dados e deficiências nas anotações que acompanham as imagens que a treinaram.

Assim como aquele garoto errante que mostrou a língua na foto do grupo escolar, as atrocidades biológicas do Stable Diffusion nem sempre são imediatamente óbvias, e você pode ter postado no Instagram sua última obra-prima de IA antes de notar as mãos extras ou membros derretidos.

Assim como aquele garoto errante que mostrou a língua na foto do grupo da escola, as atrocidades biológicas da Stable Diffusion nem sempre são imediatamente óbvias, e você pode ter postado no Instagram sua mais recente obra-prima de IA antes de notar as mãos extras ou os membros derretidos.

É tão difícil corrigir esses tipos de erros que seria útil se um aplicativo Stable Diffusion em tamanho real contivesse algum tipo de sistema de reconhecimento anatômico que empregasse segmentação semântica para calcular se a imagem recebida apresenta deficiências anatômicas graves (como na imagem acima ) e o descarta em favor de uma nova renderização antes de apresentá-lo ao usuário.

Claro, você pode querer renderizar a deusa Kali, ou o Doutor Octopus, ou até mesmo resgatar uma parte não afetada de uma imagem afetada por um membro, então esse recurso deve ser uma alternância opcional.

Se os usuários pudessem tolerar o aspecto da telemetria, tais falhas poderiam até ser transmitidas anonimamente em um esforço coletivo de aprendizado federativo que pode ajudar modelos futuros a melhorar sua compreensão da lógica anatômica.

Aprimoramento facial automático baseado em LAION

Como observei em meu aparência anterior em três coisas que o Stable Diffusion poderia abordar no futuro, não deveria ser deixado somente a cargo de qualquer versão do GFPGAN a tarefa de tentar "melhorar" faces renderizadas em renderizações de primeira instância.

As "melhorias" do GFPGAN são terrivelmente genéricas, frequentemente comprometem a identidade do indivíduo retratado e operam somente em um rosto que geralmente foi mal renderizado, pois não recebeu mais tempo de processamento ou atenção do que qualquer outra parte da imagem.

Portanto, um programa profissional para Difusão Estável deve ser capaz de reconhecer um rosto (com uma biblioteca padrão e relativamente leve, como YOLO), aplicar todo o poder da GPU disponível para renderizá-lo novamente e mesclar o rosto melhorado à renderização original de contexto completo ou salvá-lo separadamente para recomposição manual. Atualmente, essa é uma operação bastante prática.

Nos casos em que o Stable Diffusion foi treinado em um número adequado de imagens de uma celebridade, é possível concentrar toda a capacidade da GPU em uma renderização subsequente apenas da face da imagem renderizada, o que geralmente é uma melhoria notável - e, ao contrário do GFPGAN , baseia-se em informações de dados treinados por LAION, em vez de simplesmente ajustar os pixels renderizados.

Nos casos em que a Difusão Estável foi treinada em um número adequado de imagens de uma celebridade, é possível concentrar toda a capacidade da GPU em uma renderização subsequente apenas do rosto da imagem renderizada, o que geralmente é uma melhoria notável - e, diferentemente do GFPGAN, utiliza informações de dados treinados pelo LAION, em vez de simplesmente ajustar os pixels renderizados.

Pesquisas LAION no aplicativo

Desde que os usuários começaram a perceber que pesquisar conceitos, pessoas e temas no banco de dados do LAION poderia ajudar a usar melhor a Difusão Estável, vários exploradores on-line do LAION foram criados, incluindo o haveibeentrained.com.

A função de pesquisa em haveibeentrained.com permite que os usuários explorem as imagens que alimentam o Stable Diffusion e descubram se os objetos, pessoas ou ideias que eles gostariam de obter do sistema provavelmente foram treinados nele. Esses sistemas também são úteis para descobrir entidades adjacentes, como a maneira como as celebridades são agrupadas ou a 'próxima ideia' que leva à atual. Fonte: https://haveibeentrained.com/?search_text=bowl%20of%20fruit

A função de busca em haveibeentrained.com permite que os usuários explorem as imagens que alimentam a Difusão Estável e descubram se objetos, pessoas ou ideias que gostariam de extrair do sistema provavelmente foram treinados para isso. Esses sistemas também são úteis para descobrir entidades adjacentes, como a forma como as celebridades estão agrupadas ou a "próxima ideia" que deriva da atual. Fonte: https://haveibeentrained.com/?search_text=bowl%20of%20fruit

Embora esses bancos de dados baseados na web muitas vezes revelem algumas das tags que acompanham as imagens, o processo de generalização que ocorre durante o treinamento do modelo significa que é improvável que qualquer imagem específica possa ser convocada usando sua tag como um prompt.

Além disso, a remoção de 'palavras de parada' e a prática de lematização e lematização no Processamento de Linguagem Natural significa que muitas das frases exibidas foram divididas ou omitidas antes de serem treinadas em Difusão Estável.

No entanto, a maneira como os agrupamentos estéticos se unem nessas interfaces pode ensinar muito ao usuário final sobre a lógica (ou, possivelmente, a "personalidade") da Difusão Estável e ajudar a melhorar a produção de imagens.

Conclusão

Há muitos outros recursos que eu gostaria de ver em uma implementação nativa completa do Stable Diffusion para desktop, como análise de imagem nativa baseada em CLIP, que inverte o processo padrão do Stable Diffusion e permite ao usuário extrair frases e palavras que o sistema naturalmente associaria à imagem de origem ou à renderização.

Além disso, o verdadeiro dimensionamento baseado em blocos seria uma adição bem-vinda, já que o ESRGAN é um instrumento quase tão contundente quanto o GFPGAN. Felizmente, planeja integrar o txt2imghd A implementação do GOBIG está rapidamente tornando isso uma realidade em todas as distribuições e parece uma escolha óbvia para uma iteração de desktop.

Alguns outros pedidos populares das comunidades do Discord me interessam menos, como dicionários de prompt integrados e listas aplicáveis ​​de artistas e estilos, embora um caderno no aplicativo ou um léxico personalizável de frases pareça uma adição lógica.

Da mesma forma, as limitações atuais da animação centrada no ser humano em Stable Diffusion, embora iniciadas por CogVideo e vários outros projetos, permanecem incrivelmente incipientes e à mercê da pesquisa upstream em antecedentes temporais relacionados ao movimento humano autêntico.

Por enquanto, o vídeo Stable Diffusion é estritamente psicodélico, embora possa ter um futuro muito mais brilhante próximo em fantoches deepfake, via EbSynth e outras iniciativas relativamente incipientes de texto para vídeo (e vale a pena notar a falta de pessoas sintetizadas ou 'alteradas' no Runway's último vídeo promocional).

Outra funcionalidade valiosa seria a passagem transparente do Photoshop, há muito tempo estabelecida no editor de texturas do Cinema4D, entre outras implementações semelhantes. Com isso, é possível transferir imagens entre aplicativos facilmente e usar cada aplicativo para realizar as transformações em que se destaca.

Finalmente, e talvez o mais importante, um programa Stable Diffusion completo para desktop deve ser capaz não apenas de trocar facilmente entre pontos de verificação (ou seja, versões do modelo subjacente que alimenta o sistema), mas também deve ser capaz de atualizar inversões textuais personalizadas que funcionaram com lançamentos de modelos oficiais anteriores, mas pode ser quebrado por versões posteriores do modelo (como os desenvolvedores do Discord oficial indicaram que poderia ser o caso).

Ironicamente, a organização em melhor posição para criar uma matriz tão poderosa e integrada de ferramentas para Stable Diffusion, a Adobe, aliou-se tão fortemente ao Iniciativa de Autenticidade de Conteúdo que isso poderia parecer um passo em falso retrógrado em termos de relações públicas para a empresa — a menos que prejudicasse os poderes generativos da Stable Diffusion tão completamente quanto a OpenAI fez com o DALL-E 2, e a posicionasse como uma evolução natural de suas participações consideráveis ​​em fotografia de banco de imagens.

 

Publicado pela primeira vez em 15 de setembro de 2022.

Escritor sobre machine learning, especialista em domínio em síntese de imagem humana. Ex-chefe de conteúdo de pesquisa na Metaphysic.ai.
Site pessoal: martinanderson.ai
Contato: [email protected]
Twitter: @manders_ai