Como treinar a IA de difusão estável com seu rosto para criar arte usando o DreamBooth

Publicados: 2022-10-10

Post de convidado por Tarunabh Dutta.

Se 2021 foi o ano dos modelos de linguagem de IA baseados em palavras, 2022 deu um salto para os modelos de IA de texto para imagem. Existem muitos modelos de IA de texto para imagem disponíveis hoje que podem produzir imagens de alta qualidade. A difusão estável é uma das opções mais populares e conhecidas. É um modelo rápido e estável que produz resultados consistentes.

how to train stable diffusion

O processo de geração de imagens ainda é um tanto misterioso, mas é claro que Stable Diffusion produz excelentes resultados. Pode ser usado para gerar imagens a partir de texto ou para alterar imagens existentes. As opções e parâmetros disponíveis permitem muita personalização e controle sobre a imagem final.

Embora seja relativamente mais fácil trabalhar em imagens de celebridades e figuras populares, puramente por causa do conjunto de imagens já disponível, não é tão fácil fazer a IA funcionar em seu próprio rosto. A lógica diz para alimentar o modelo de IA com suas imagens e depois deixá-lo fazer sua mágica, mas como exatamente alguém pode fazer isso?

Neste artigo, tentaremos demonstrar como treinar um modelo de difusão estável usando a inversão textual do DreamBooth em uma referência de imagem para construir representações de IA de seu próprio rosto ou de qualquer outro objeto e gerar fotos de resultados com resultados, precisão e consistência incríveis. Se soar muito técnico, aguarde e tentaremos torná-lo o mais amigável possível para iniciantes.

Índice

O que é difusão estável?

Vamos tirar o básico. O modelo de difusão estável é um modelo de aprendizado de máquina de texto para imagem de última geração treinado em um grande conjunto de imagens. É caro treinar, custando cerca de US $ 660.000. No entanto, o modelo de difusão estável pode ser usado para gerar arte usando linguagem natural.

Os modelos de IA de texto para imagem de aprendizado profundo estão se tornando cada vez mais populares devido à sua capacidade de traduzir texto com precisão em imagens. Este modelo é gratuito e pode ser encontrado em Hugging Face Spaces e DreamStudio. Os pesos do modelo também podem ser baixados e usados ​​localmente.

A difusão estável usa um processo chamado “difusão” para gerar imagens semelhantes ao prompt de texto.

Resumindo, o algoritmo Stable Diffusion pega uma descrição textual e gera uma imagem com base nessa descrição. A imagem gerada será semelhante ao texto, mas não será uma réplica exata. As alternativas ao Stable Diffusion incluem os modelos Dall-E da OpenAI e Imagen do Google.

Guia para treinar a IA de difusão estável com seu rosto para criar imagem usando o DreamBooth

Hoje, vou demonstrar como treinar um modelo Stable Diffusion usando meu rosto como referência inicial para gerar imagens com um estilo altamente consistente e preciso, original e fresco.

Então, para isso, usaremos um Google Colab chamado DreamBooth para treinar a difusão estável.

Antes de lançar este Google Colab, devemos preparar determinados recursos de conteúdo.

Etapa 1: Google Drive com espaço livre suficiente

Para isso, você precisa de uma conta do Google Drive com pelo menos 9 GB de espaço livre.

Uma conta gratuita do Google Drive vem com 15 GB de espaço de armazenamento gratuito, o que é suficiente para essa tarefa. Assim, você pode criar uma nova conta do Gmail (descartável) apenas para essa finalidade.

google drive

Etapa 2: imagens de referência para treinar a IA

Em segundo lugar, você deve ter pelo menos uma dúzia de retratos de seu rosto ou qualquer objeto alvo pronto para uso como referência.

  • Certifique-se de que as características faciais estejam visíveis e adequadamente iluminadas nas imagens capturadas. Evite usar sombras fortes, principalmente no rosto.
  • Além disso, o assunto deve estar de frente para a câmera ou ter um perfil lateral no qual ambos os olhos e todas as características faciais sejam claramente visíveis.
  • A câmera deve ser capaz de capturar características faciais de alta qualidade. A melhor opção é uma câmera DSLR ou mirrorless de nível profissional. Uma câmera de smartphone de excelente qualidade também pode ser suficiente.
  • A composição deve ser posicionada no centro do quadro com um pouco de headspace.
  • Como imagens de entrada, um mínimo de doze fotos em close-up do rosto, cinco fotos médias cobrindo da cabeça até a cintura e aproximadamente três fotos de figuras inteiras devem ser adequadas.
  • Um mínimo de vinte fotografias de referência deve ser suficiente para este fim.

birme faces

No meu caso, fotografei e reuni uma coleção de aproximadamente 50 autorretratos, que cortei para 512 x 512 pixels usando a ferramenta online – Birme. Você também pode usar qualquer editor de imagem alternativo para esse fim.

Lembre-se de que a imagem de saída final deve ser otimizada para a Web e reduzida em tamanho de arquivo com perda mínima de qualidade.

Etapa 3: Google Colab

O tempo de execução do Google Colab agora pode ser executado.

Existem versões gratuitas e pagas da plataforma Google Colab. O Dreambooth pode ser executado na versão gratuita, mas o desempenho é significativamente mais rápido e consistente na versão Colab Pro (paga), que prioriza o uso de uma GPU de alta velocidade e atribui pelo menos 15 GB de VRAM à tarefa em questão.

Se você não se importar em gastar alguns dólares, uma assinatura de US$ 10 do Colab Pro que inclui 100 unidades de computação por mês é mais do que adequada para esta sessão.

google colab signup

Você também terá acesso a memória RAM e GPUs extras que são relativamente mais poderosas e rápidas.

Deixe-me reiterar: você NÃO precisa ser um especialista técnico para executar este Colab. Você também não precisa de nenhuma experiência anterior em codificação.

Depois de se inscrever no Google Colab (versão gratuita ou paga), faça login com suas credenciais e acesse este link para abrir o DreamBooth Stable Diffusion .

Um Google Colab tem seções ou células de “tempo de execução” com botões de reprodução clicáveis ​​no lado esquerdo, organizados sequencialmente. Para reproduzir o tempo de execução começando do topo, basta clicar nos botões de reprodução um por um. Cada segmento consiste em um tempo de execução que deve ser executado. Quando você clica em um botão de reprodução, a seção correspondente é executada como um tempo de execução. Após algum tempo, uma marca de seleção verde aparecerá à esquerda do botão de reprodução para indicar que o tempo de execução foi executado com sucesso.

Certifique-se de executar manualmente apenas um tempo de execução por vez e vá para a próxima seção “tempo de execução” somente quando o tempo de execução atual terminar.

Na parte de tempo de execução da barra de menu superior, você tem a opção de executar todos os tempos de execução simultaneamente. Contudo, isto não é recomendado.

change runtime type dreambooth

Abaixo disso, há uma opção chamada “Alterar tipo de tempo de execução”. Se você estiver inscrito em uma assinatura pro, poderá escolher e salvar uma GPU “premium” e alta RAM para sua execução.

choose high ram

Agora você está pronto para iniciar o DreamBooth Colab.

run dream booth

10 etapas para concluir com sucesso um modelo de IA treinado no DreamBooth

PASSO 1: Decidir sobre a GPU e VRAM

O passo inicial é determinar o tipo de GPU e VRAM disponível. Os usuários Pro terão acesso a GPU rápida e VRAM aprimorada que é mais estável.

determine GPU VRAM

Depois de clicar no botão play, ele exibirá um aviso porque o GitHub, o site de origem do desenvolvedor, está sendo acessado. Você só precisa clicar em “ Executar assim mesmo ” para continuar.

choose vram

PASSO 2: Execute o DreamBooth

Na próxima etapa, você precisa instalar determinados requisitos e dependências. Você só precisa clicar no botão play e deixá-lo rodar.

dreambooth play

PASSO 3: Faça login no Hugging Face

Depois de clicar no botão play, o próximo passo exigirá que você faça login na sua conta Hugging Face. Você pode criar uma conta gratuita se ainda não tiver uma. Uma vez logado, navegue até a página Configurações no canto superior direito.

hugging face settings

Em seguida, clique na seção ' Tokens de acesso ' e no botão ' Criar novo ' para gerar um novo “token de acesso” e renomeá-lo conforme desejado.

access tokens

Copie o token de acesso, retorne à aba Colab e insira-o no campo fornecido, depois clique em “ Login ”.

login to huggingface

PASSO 4: Instale xformers

Nesta etapa, você pode clicar no tempo de execução para instalar o xformers simplesmente pressionando o botão play.

install xformers

ETAPA 5: Conecte o Google Drive

Depois de clicar no botão play , você será solicitado em uma nova janela pop-up para permissão para acessar sua conta do Google Drive. Clique em “Permitir” quando solicitado por permissões.

access google drive folder

Após conceder as permissões, você deve confirmar que “ salvar no Google Drive ” está selecionado. Você também deve definir um novo nome para a variável ' CLASS NAME '. Se você deseja enviar imagens de referência de uma pessoa, basta colocar 'pessoa', 'homem' ou 'mulher'. Se suas imagens de referência forem de um cachorro, digite 'cachorro' e assim por diante. Você pode manter os campos restantes inalterados. Alternativamente, você pode renomear o diretório de entrada—'INSTANCE DIR' ou o diretório de saída—'OUTPUT DIR.'

dreambooth settings

PASSO 6: Carregar fotos de referência

Depois de clicar no botão play na etapa anterior, você verá a opção de fazer upload e adicionar todas as suas fotos de referência.

upload images

Eu recomendaria um mínimo de 6 e um máximo de 20 fotografias. Consulte a “ETAPA 2” acima para obter uma explicação concisa de como selecionar a melhor imagem de referência com base em como o assunto é capturado.

select images

Depois que todas as suas imagens forem carregadas, você poderá visualizá-las na coluna da esquerda. Há um ícone de pasta. Depois de clicar nele, você poderá visualizar as pastas e subpastas nas quais seus dados estão sendo armazenados no momento.

No diretório de dados, você pode visualizar seu diretório de entrada, onde todas as fotos enviadas são armazenadas. No meu caso, é conhecido como “sks” (nome padrão).

Além disso, observe que esse conteúdo é armazenado apenas temporariamente em seu armazenamento do Google Colab e não no Google Drive.

input directory

start training

PASSO 7: Treine o modelo de IA com o DreamBooth

Esta é a etapa mais crucial, pois você estará treinando um novo modelo de IA com base em todas as suas fotos de referência enviadas usando o DreamBooth.

train images dreambooth

Você deve focar apenas em dois campos de entrada. O primeiro parâmetro é “—prompt de instância”. Aqui, você deve inserir um nome muito exclusivo. No meu caso, usarei meu primeiro nome seguido de minhas iniciais. A ideia é manter o nome completo único e preciso.

O segundo campo de entrada crucial é o parâmetro '—prompt de classe'. Você deve renomeá-lo para corresponder ao que você usou no 'PASSO 4'. No meu caso, usei o termo “homem”. Então, vou redigitá-lo neste campo e substituir qualquer entrada anterior.

dreambooth parameters

Os demais campos podem ser deixados intocados. Tenho observado usuários experimentando alterando campos como '—num class images' para 12 e '-max train steps' para 1000, 2000 ou até mais. No entanto, lembre-se de que a modificação desses campos pode fazer com que o Colab fique sem memória e falhe, exigindo que você reinicie desde o início. Portanto, é aconselhável não editá-los na tentativa inicial. Você pode experimentar com eles no futuro depois de ganhar experiência suficiente.

Depois de executar este runtime clicando no botão play, o Colab começará a baixar os arquivos executáveis ​​necessários e poderá treinar usando suas imagens de referência.

O treinamento do modelo levará de 15 minutos a mais de uma hora. Você deve ser paciente e acompanhar o progresso até que o tempo de execução seja concluído. Se o Google Colab ficar inativo por muito tempo, ele poderá ser redefinido. Portanto, continue verificando o progresso e clicando na guia ocasionalmente.

colab executing

execution complete

PASSO 8: Converter o modelo AI para o formato ckpt

Após a conclusão do treinamento, você terá a opção de converter o modelo treinado em um arquivo no formato ckpt, que é diretamente compatível com Stable Diffusion.

A conversão pode ser realizada em duas fases de tempo de execução. O primeiro é “ Baixar script ” e o segundo é “ Executar conversão ”, onde você tem a opção de reduzir o tamanho do download do modelo treinado. No entanto, isso degradará significativamente a qualidade da imagem resultante.

Portanto, para manter o tamanho original, a opção ' fp16 ' deve permanecer desmarcada.

run conversion

No final deste tempo de execução específico, um arquivo chamado “ model.ckpt ” será salvo em seu Google Drive conectado.

model ckpt

Podemos salvar este arquivo para uso futuro porque seus tempos de execução são excluídos imediatamente quando você fecha a guia do navegador DreamBooth Colab. Ao reabrir a versão Colab do DreamBooth mais tarde, você terá que começar do zero.

Suponha que você salve o arquivo de modelo treinado em seu Google Drive. Nesse caso, você pode recuperá-lo mais tarde para usar com sua GUI Stable Diffusion, DreamBooth ou qualquer notebook Stable Diffusion Colab instalado localmente que requeira que o arquivo “model.ckpt” seja carregado para que o tempo de execução funcione efetivamente. Você também pode salvá-lo em seus discos rígidos locais para uso posterior.

ETAPA 9: Prepare-se para o prompt textual

Os próximos dois processos de tempo de execução na categoria “Inferência” preparam o modelo recém-treinado para o prompt textual usado para geração de imagem. Basta pressionar o botão play para cada tempo de execução e ele terminará em questão de minutos.

inference

ETAPA 10: Gere imagens de IA

Esta é a etapa final, onde você pode digitar os prompts textuais e as imagens do AI serão geradas.

Você deve usar o nome exato de 'instance_prompt' e '–class_prompt' juntos do STEP 6 no início do prompt de texto. Por exemplo, no meu caso, usei “um retrato do homem tarunabhtd, pintura digital” para gerar novas imagens de IA parecidas comigo.

image prompt

image generation

Abaixo você pode ver alguns resultados de imagens geradas com o modelo treinado do DreamBooth.

sample generated images

Brinque com prompts para obter os melhores resultados

Se você seguir cuidadosamente as etapas descritas acima, poderá gerar imagens de IA que se assemelham aos recursos faciais em suas imagens de referência. Esse método exige apenas que a plataforma on-line do Google Colab execute uma versão atualizada da tecnologia de IA para inversão textual.

Para melhores ideias para prompts de texto, você pode conferir sites como –

  • OpenArt AI
  • Krea AI
  • Arte Lexica

Você também precisa aprender a arte de criar prompts de texto melhores e mais eficazes usando uma variedade de estilos artísticos e várias combinações. Um bom ponto de partida seria o Stable Diffusion SubReddit.

O Reddit tem uma enorme comunidade dedicada à difusão estável. Há também vários grupos do Facebook e comunidades do Discord discutindo, compartilhando e explorando ativamente novos caminhos de difusão estável.

Abaixo também estou compartilhando links para alguns vídeos tutoriais do DreamBooth que você pode assistir no Youtube –

Espero que você ache este guia útil. Se você tiver alguma dúvida, sinta-se à vontade para comentar abaixo, e tentaremos ajudá-lo.

Autor:
Tarunabh Dutta é um cineasta premiado que completou mais de 45 projetos nos últimos 16 anos, incluindo longas-metragens, curtas-metragens, videoclipes, documentários e anúncios comerciais, sob sua bandeira independente 'TD Film Studio'.