O salto evolutivo mais importante na geração de imagens com inteligência artificial é a criação de modelos personalizados. Com isso, me refiro a pacotes secundários que reproduzem estilos ou objetos específicos, mas também podem ser usados para injetar o rosto de uma pessoa em cenários únicos. Isso é possível graças à plataforma Dreambooth, desenvolvida pela Google Research e pela Universidade de Boston. A aplicação mais popular do Dreambooth atualmente é o fine-tuning de modelos compatíveis com Stable Diffusion, e hoje vamos explicar como fazer isso.
Superando limites
Dos três modelos disponíveis para a geração de imagens com inteligência artificial, o Stable Diffusion provou ser o mais flexível. Por quê? Duas razões: por um lado, é gratuito e open source, e por outro, se dá muito bem com modelos alternativos. Mas de onde vêm esses modelos? Dos próprios usuários, que aproveitam seu hardware de alta qualidade ou as opções gratuitas online para treiná-los.
O problema do treinamento personalizado ou fine-tuning do Stable Diffusion é o consumo de VRAM. Treinar um modelo com pouca memória de vídeo é quase impossível; no entanto, graças à magia do Google Colab, Google Drive, HuggingFace e o canal DotCSV no YouTube, hoje podemos fazer isso sem muitos percalços e sem investir milhares de euros em hardware. Os requisitos técnicos serão explicados em cada etapa, então não pule nada!
Treine seu próprio modelo de geração de imagens com Dreambooth
- O primeiro passo é ir para a página do HuggingFace e criar uma conta. Tudo o que pede é um e-mail e um nome de usuário. Isso é importante porque precisamos de um dos tokens de acesso à plataforma. Depois de criar a conta, vá em Settings -> Access Tokens e clique em New token. Atribua um nome e especifique a função Write. Não vá muito longe, pois você precisará copiar o token daqui mais tarde.
- Depois, você deve definir que tipo de modelo deseja treinar por meio de uma seleção de imagens. A média recomendada é de 20... e devem ser variadas. O objetivo é demonstrar um estilo, um conceito, um formato, uma ideia. Por exemplo, suponha que você queira um modelo inspirado em fotos Polaroid. Se você focar apenas em Polaroids de retratos, o modelo nunca sairá desse molde, quando o ideal é reproduzir os detalhes, os erros, o “calor” e a essência “vintage” dessas fotos.
- O terceiro passo é simples: ajustar as imagens para um tamanho exato de 512 x 512 pixels. O portal Birme, sobre o qual falamos recentemente, permitirá que você faça isso em tempo recorde, ajustando o tamanho e cortando qualquer excesso. Guarde as imagens em uma pasta temporária; voltaremos a elas.
- Agora é quando entramos no ambiente do Google Colab configurado pelo DotCSV. Minha primeira recomendação? Não tenha medo. No começo, parece algo projetado por extraterrestres, mas na verdade é uma interface passo a passo mais espartana do que o normal. Antes de tudo, vá em “Ambiente de execução”, entre na seção “Alterar tipo de ambiente de execução” e certifique-se de que “GPU” seja a opção selecionada. Isso confirmará que o Google Colab deve atribuir uma placa gráfica adequada para a tarefa.
- O ambiente do Google Colab nos convida a seguir seus passos. Pressionamos o botão Play no passo 1 e aceitamos o aviso para associar nosso Google Drive ao ambiente. O Google Drive deve ter um mínimo de 4 GB livres para isso, e minha sugestão é usar uma conta alternativa.
- Depois, pressionamos o botão Play ao lado de Dependencies. Como o nome indica, isso instalará todas as dependências necessárias para a execução correta do Dreambooth. Felizmente, não demora muito.
- O passo 3 ativa o campo onde devemos inserir o token que geramos no HuggingFace. Um clique na seta abrirá o menu; copiamos o token e o colamos em “HuggingFace_Token”. Ignore as outras opções e pressione Play. Espere até terminar.
- O quarto passo solicita dados sobre o treinamento do Dreambooth, e isso muda dependendo dos seus desejos: o plano é treinar uma pessoa ou um objeto? Talvez um artista ou uma série de TV? Escolha a opção adequada da lista no campo “Training_Subject” e depois modifique a expressão em “Subject_Type” seguindo os exemplos que aparecem abaixo. No entanto, toda a sua atenção deve ir para “Instance_name”. Isso é o curinga, a palavra-chave que você usará nos prompts para “ativar” o conteúdo treinado. Recomenda-se uma palavra rara, que não seja confundida com outra coisa pelo Stable Diffusion.
- Ao pressionar Play no passo 4, o Google Colab habilitará um botão de upload para enviar as imagens que servirão como referência no treinamento. Lembre-se: elas devem ser de 512 x 512!
- O quinto passo é opcional e especialmente útil quando criamos modelos de pessoas. Em nosso teste não é necessário, mas ali você encontrará cinco valores diferentes. “person_ddim” é o modo default; não hesite em mudá-lo para experimentar.
E agora, é esperar
O botão Play do passo 6 inicia o processo de treinamento e, a partir daqui... paciencia. Quanto tempo leva? Para um pacote padrão de 20 imagens com 1.600 passos, a média é de uma hora, muito razoável considerando que estamos acessando gigabytes inteiros de VRAM gratuitamente. O nível de atividade no Google Colab e a placa gráfica configurada para o projeto também influenciam no desempenho final.
Com o modelo já treinado, restam apenas duas coisas: avaliá-lo online usando o passo 7 ou baixar o arquivo ckpt da nossa conta do Google Drive para execução offline com o Automatic1111. Não se esqueça de adicionar sua palavra-chave aos prompts, caso contrário, nunca verá resultados corretos entre as imagens geradas.
Em resumo, Dreambooth é uma ferramenta extremamente poderosa, mas requer algumas horas de prática. Em certas ocasiões, o treinamento não é totalmente satisfatório, e é possível que você precise tentar de novo com um conjunto diferente de imagens. Não desanime!
HuggingFace: Clique aqui
Dreambooth no Google Colab: Clique aqui