paint-brush
Crie retratos de animais de estimação de obras-primas com ComfyUIpor@hacker5029997
284 leituras

Crie retratos de animais de estimação de obras-primas com ComfyUI

por 5m2024/08/19
Read on Terminal Reader

Muito longo; Para ler

As ferramentas de manipulação de imagens de IA percorreram um longo caminho nos últimos anos. Hoje em dia é muito fácil criar retratos bonitos e estilísticos de pessoas e animais. Mas os modelos de IA são altamente imprevisíveis, então a maioria das ferramentas depende do usuário (ou de algum humano) para eliminar as gerações ruins e encontrar a melhor. Com alguns truques inteligentes e ajustes cuidadosos, você pode construir um pipeline que funcione de forma confiável para a grande maioria dos animais de estimação. É extremamente resiliente a variações de pose, iluminação etc.
featured image - Crie retratos de animais de estimação de obras-primas com ComfyUI
undefined HackerNoon profile picture
0-item

As ferramentas de manipulação de imagens de IA evoluíram muito nos últimos anos. Hoje em dia é bem fácil criar retratos lindos e estilizados de pessoas e animais. Mas os modelos de IA são altamente imprevisíveis. Então, a maioria das ferramentas depende do usuário (ou de algum humano) para eliminar as gerações ruins e encontrar a melhor.


Este é o clássico problema de “humano no loop” que frequentemente assola as ferramentas de IA. Acontece que, com alguns truques inteligentes e ajustes cuidadosos, você pode construir um pipeline que funciona de forma confiável para a grande maioria dos animais de estimação. Ele é extremamente resiliente a variações de pose, iluminação etc.


Neste post, vou me aprofundar mais em como isso funciona e em todos os pequenos truques legais que permitem isso. Aqui estão alguns exemplos de retratos que você pode gerar com esse pipeline.

Vamos começar!

Os ingredientes principais

Adaptador IP

O ponto crucial da técnica é o IPAdapter. É essencialmente uma maneira de solicitar um modelo usando uma imagem em vez de texto (literalmente significa Image Prompt Adapter). Então, em vez de pegar um embedding de texto, ele usa uma imagem para obter os embeddings. Isso é superpoderoso porque pode capturar com precisão o estilo e a estrutura em uma imagem diretamente, em vez de alguém ter que traduzir o que quer de uma imagem para texto. Em nosso nó ComfyUI IPAdapter, temos duas entradas, uma para estilo e outra para composição. Usamos uma imagem de pintura em aquarela para estilo e alimentamos a imagem original para composição (já que queremos manter a mesma composição, mas mudar o estilo).


A imagem acima é usada como prompt de imagem para o IPAdapter

Redes de controle

Agora que temos uma maneira de manter o estilo consistente, podemos voltar nossa atenção para representar fielmente o animal de estimação. Os adaptadores IPA são fortemente tendenciosos em relação à qualidade da imagem, e a semelhança da imagem sofre. Então, precisamos fazer algo para conseguir manter a saída parecendo o mesmo objeto que a entrada.


A resposta para isso é ControlNet. ControlNets são outra técnica legal para fornecer restrições adicionais ao processo de geração de imagens. Usando um ControlNet, você pode especificar restrições na forma de bordas, profundidade, pose humana etc. Um ótimo recurso dos ControlNets é que eles podem ser empilhados. Então você pode ter um edge controlnet que força a saída a ter bordas semelhantes à entrada, e também um depth controlnet que força a saída a ter um perfil de profundidade semelhante. E é exatamente isso que eu faço aqui.


Saída de um Canny Edge ControlNet (esquerda) e um Depth ControlNet (direita). Isso força a saída a parecer similar à entrada.


Acontece que as controlnets não são apenas empilháveis com outras controlnets, mas também podem trabalhar em conjunto com o IPAdapter mencionado acima. E então essas são as ferramentas que usaremos para isso - IPAdapter com uma imagem de origem para obter o estilo, ControlNet com detector de bordas canny para restringir com base nas bordas, e controlnet com profundidade para restringir com base no perfil de profundidade.


Isso é realmente tudo o que você precisa em termos de técnicas, mas o que aprendi experimentando com machine learning para produção é que muito do valor dessas coisas vem de reservar um tempo para ajustar todos os seus parâmetros perfeitamente. Então, quero falar um pouco sobre isso.

Afinação

Você já encontrou um modelo com saídas de exemplo incríveis, tentou em suas próprias imagens e percebeu que elas parecem terríveis? Muitas vezes, a única razão para isso é que o modelo não foi ajustado para suas imagens. Às vezes, pode parecer um bloqueador completo, porque por onde começamos a ajustar um modelo pré-treinado?! Aqui está o que aprendi sobre o tópico. Isso se estende além desse pipeline específico também, então é um bom conhecimento para se ter em geral.

Redes de controle

ControlNets são muito poderosos, então você tem que ter cuidado para controlar seu efeito na saída. Felizmente, os nós personalizados no ComfyUI nos permitem reduzir o efeito de controlnets e também interromper seus efeitos a qualquer momento. Então, definimos o detector de bordas para 75% de força e fazemos com que ele pare de influenciar a geração em 75% e o detector de profundidade para em 30%. A razão pela qual os interrompemos no final em vez de apenas reduzir sua força é que isso permite que a rede "limpe" quaisquer artefatos causados por eles nas últimas etapas sem ser restringida externamente. Isso apenas torna a imagem mais bonita. Então, ele está usando apenas seus dados de treinamento para fazer as coisas parecerem o mais agradáveis possível, ignorando as bordas e a profundidade.



A outra grande coisa para ajustar é o KSampler. Há muitas pequenas coisas acontecendo aqui, mas vou apenas abordar brevemente algumas delas:

KSampler - Passos

Primeiro, temos as etapas. Isso é literalmente o número de vezes que o modelo será executado repetidamente. Quanto mais ele for executado, mais estilizada sua saída ficará e mais distante ela ficará da imagem original. Os efeitos disso geralmente não são tão óbvios, então vale a pena brincar com isso.


KSampler - CFG

Depois, há o CFG. Sinceramente, não entendo isso completamente, mas pelo seu nome - Classifier Free Guidance - presumo que ele controla o quanto o modelo tem permissão para modificar a imagem sem restrições dos prompts para torná-la melhor. Isso também afeta significativamente a imagem de saída, então vale a pena brincar com isso.


Redução de ruído

Outro truque bacana que uso aqui é começar o processo de geração de imagem com a imagem de entrada em vez de uma imagem em branco, e manter o denoising baixo. Isso garante que a saída ficará parecida em termos de cores e texturas.


Prompt de texto

Uma coisa que você notará que eu nunca mencionei é o prompt de texto até agora! Surpreendente, já que esse é geralmente o único condicionamento que você normalmente fornece aos modelos de difusão. Mas, neste caso, temos tantas outras maneiras de condicionamento que os prompts de texto geralmente atrapalham. Então, neste caso, o prompt é literalmente apenas "um cachorro". Eu uso o prompt de texto um pouco mais em alguns dos retratos mais estilizados, como o cachorro do chef ou o do banheiro.

Adicionando acessórios

Em essência, isso é mais ou menos apenas um “Filtro de IA” que converte imagens em retratos em aquarela. Mas é incrível o quão flexível isso pode ser. Por exemplo, para fazer o retrato do cachorro tomando banho, eu literalmente apenas juntei as imagens em uma ferramenta de edição de imagens e usei isso como entrada! O modelo cuida de unificar tudo e limpar a imagem.


Conclusão

Agora remova o fundo, adicione algum texto e Bum! Você tem um lindo retrato que captura todos os pequenos detalhes do seu animal de estimação, e sempre os pinta na melhor luz!


Um grande agradecimento a @cubiq por seu trabalho nos nós do ComfyUI e sua incrível série de explicações no YouTube! A maior parte desse pipeline foi construída e explicada por ele em seus vídeos.


Se você quer um retrato de animal de estimação sem passar por todo esse trabalho, considere comprar um aqui: pawprints.pinenlime.com!