Ângulo de Anderson

UniTune: Técnica de Edição de Imagem Neural Alternativa do Google

mm
Adicione Unite.AI às suas fontes preferidas no Google

A Google Research, aparentemente, está atacando a edição de imagens baseada em texto de várias frentes e, presumivelmente, esperando para ver o que “funciona”. Logo após o lançamento, nesta semana, do seu artigo Imagic, o gigante das buscas propôs um método adicional baseado em difusão latente para realizar edições de imagem impossíveis com base em comandos de texto, desta vez chamado de UniTune.

Com base nos exemplos dados no novo artigo do projeto, UniTune alcançou um grau extraordinário de desentanglement de pose semântica e ideia do conteúdo de imagem real:

O comando de composição semântica do UniTune é impressionante. Note como, na linha superior de imagens, os rostos das duas pessoas não foram distorcidos pela transformação extraordinária no restante da imagem de origem (direita). Fonte: https://arxiv.org/pdf/2210.09477.pdf

O comando de composição semântica do UniTune é impressionante. Note como, na linha superior de imagens, os rostos das duas pessoas não foram distorcidos pela transformação extraordinária no restante da imagem de origem (direita). Fonte: https://arxiv.org/pdf/2210.09477.pdf

Como fãs do Stable Diffusion sabem, aplicar edições em seções parciais de uma imagem sem alterar negativamente o restante da imagem pode ser uma operação complicada, às vezes impossível. Embora distribuições populares, como AUTOMATIC1111, possam criar máscaras para edições locais e restritas, o processo é tortuoso e frequentemente imprevisível.

A resposta óbvia, pelo menos para um praticante de visão computacional, é interpor uma camada de segmentação semântica capaz de reconhecer e isolar objetos em uma imagem sem intervenção do usuário, e, de fato, houve várias novas iniciativas recentemente nessa linha de pensamento.

Outra possibilidade para bloquear operações de edição de imagem neural desordenadas e emaranhadas é aproveitar o módulo de pré-treinamento de linguagem-imagem contrastivo da OpenAI (CLIP), que está no coração dos modelos de difusão latente, como DALL-E 2 e Stable Diffusion, para agir como um filtro no ponto em que um modelo de texto-para-imagem está pronto para enviar uma renderização interpretada de volta ao usuário. Nesse contexto, o CLIP deve agir como um sentinela e módulo de controle de qualidade, rejeitando renderizações malformadas ou inadequadas. Isso está prestes a ser instituído (link do Discord) no portal API-driven da Stability.ai, DreamStudio.

No entanto, como o CLIP é, em parte, o culpado e a solução nesse cenário (porque ele essencialmente também informou a maneira como a imagem foi evoluída), e como os requisitos de hardware podem exceder o que é provável estar disponível localmente para um usuário final, essa abordagem pode não ser ideal.

Linguagem Comprimida

O UniTune proposto “fine tunes” um modelo de difusão existente – neste caso, o próprio Imagen da Google, embora os pesquisadores afirmem que o método é compatível com outras arquiteturas de difusão latente – de modo que um token único é injetado nele, que pode ser convocado incluindo-o em um prompt de texto.

À primeira vista, isso soa como o DreamBooth da Google, atualmente uma obsessão entre fãs e desenvolvedores do Stable Diffusion, que pode injetar personagens ou objetos novos em um checkpoint existente, muitas vezes em menos de uma hora, com base em apenas algumas imagens de origem; ou como a Inversão Textual, que cria arquivos “sidecar” para um checkpoint, que são tratados como se tivessem sido originalmente treinados no modelo, e podem aproveitar os recursos do modelo modificando seu classificador de texto, resultando em um arquivo pequeno (em comparação com os checkpoints mínimos de 2GB da DreamBooth).

Na verdade, os pesquisadores afirmam que o UniTune rejeitou essas abordagens. Eles descobriram que a Inversão Textual omitia muitos detalhes importantes, enquanto o DreamBooth ‘funcionou pior e levou mais tempo’ do que a solução que finalmente adotaram.

No entanto, o UniTune usa a mesma abordagem de “metaprompt” encapsulado como o DreamBooth, com mudanças treinadas convocadas por palavras únicas escolhidas pelo treinador, que não entrarão em conflito com nenhum termo que atualmente existe em um modelo público laboriosamente treinado.

‘Para realizar a operação de edição, amostramos os modelos fine-tuned com o prompt “[rare_tokens] edit_prompt” (por exemplo, “beikkpic dois cães em um restaurante” ou “beikkpic um minion”).’

O Processo

Embora seja intrigante por que dois artigos quase idênticos, em termos de funcionalidade final, deveriam chegar da Google na mesma semana, há, apesar de uma grande número de semelhanças entre as duas iniciativas, pelo menos uma diferença clara entre o UniTune e o Imagic – o último usa prompts de linguagem natural “não comprimidos” para guiar operações de edição de imagem, enquanto o UniTune treina tokens únicos no estilo do DreamBooth.

Portanto, se você estivesse editando com o Imagic e quisesse efetuar uma transformação desta natureza…

Do artigo do UniTune – O UniTune se posiciona contra o framework de edição neural rival da Google, SDEdit. Os resultados do UniTune estão à direita, enquanto a máscara estimada é vista na segunda imagem da esquerda.

Do artigo do UniTune – O UniTune se posiciona contra o framework de edição neural rival da Google, SDEdit. Os resultados do UniTune estão à direita, enquanto a máscara estimada é vista na segunda imagem da esquerda.

.. no Imagic, você inseriria ‘a terceira pessoa, sentada ao fundo, como um monstro peludo fofo’.

O comando equivalente do UniTune seria ‘Homem atrás como [x]’, onde x é qualquer palavra estranha e única vinculada ao conceito treinado associado ao personagem do monstro peludo.

Enquanto várias imagens são alimentadas no DreamBooth ou na Inversão Textual com a intenção de criar uma abstração de deepfake que possa ser comandada em muitas poses, tanto o UniTune quanto o Imagic alimentam uma única imagem no sistema – a imagem original, pristina.

Isso é semelhante à maneira como muitas das ferramentas de edição baseadas em GAN dos últimos anos operaram – convertendo uma imagem de entrada em códigos latentes no espaço latente do GAN e, em seguida, endereçando esses códigos e enviando-os para outras partes do espaço latente para modificação (por exemplo, inserindo uma imagem de uma pessoa jovem de cabelos escuros e projetando-a por meio de códigos latentes associados a ‘velho’ ou ‘loiro’, etc.).

No entanto, os resultados, em um modelo de difusão, e por esse método, são surpreendentemente precisos em comparação, e muito menos ambíguos:

O Processo de Fine-Tuning

O método UniTune envia essencialmente a imagem original por meio de um modelo de difusão com um conjunto de instruções sobre como ela deve ser modificada, usando os vastos repositórios de dados disponíveis treinados no modelo. Em essência, você pode fazer isso agora com a funcionalidade img2img do Stable Diffusion – mas não sem distorcer ou alterar de alguma forma as partes da imagem que você gostaria de manter.

Durante o processo do UniTune, o sistema é fine-tuned, o que significa que o UniTune força o modelo a retomar o treinamento, com a maioria de suas camadas descongeladas (veja abaixo). Na maioria dos casos, o fine-tuning diminuirá os valores gerais de perda de um modelo de alto desempenho treinado com dificuldade em favor de injetar ou refinar algum outro aspecto que é desejado criar ou aprimorar.

No entanto, com o UniTune, parece que a cópia do modelo que é atuada, embora possa pesar vários gigabytes ou mais, será tratada como uma casca “descartável” e descartada no final do processo, tendo servido a um único objetivo. Esse tipo de tonelagem de dados casual está se tornando uma crise de armazenamento diária para fãs do DreamBooth, cujos próprios modelos, mesmo quando podados, não são menos de 2GB por assunto.

Como no Imagic, o ajuste principal no UniTune ocorre nas duas camadas mais baixas das três camadas no Imagen (base 64px, 64px>256px e 256px>1024px). Diferentemente do Imagic, os pesquisadores veem algum potencial valor em otimizar o ajuste também para a última e maior camada de super-resolução (embora eles ainda não tenham tentado).

Para a camada de 64px mais baixa, o modelo é tendencioso em relação à imagem base durante o treinamento, com múltiplas pares de imagem/texto alimentadas no sistema por 128 iterações em um tamanho de lote de 4, e com Adafactor como a função de perda, operando em uma taxa de aprendizado de 0,0001. Embora o codificador T5 esteja congelado durante esse fine-tuning, ele também está congelado durante o treinamento principal do Imagen.

A operação acima é então repetida para a camada 64>256px, usando o mesmo procedimento de aumento de ruído empregado no treinamento original do Imagen.

Amostragem

Há muitos métodos de amostragem possíveis pelos quais as alterações feitas podem ser extraídas do modelo fine-tuned, incluindo Orientação de Classificador Livre (CFG), uma característica também do Stable Diffusion. A CFG define basicamente a extensão com que o modelo é livre para “seguir sua imaginação” e explorar as possibilidades de renderização – ou, em configurações mais baixas, a extensão com que ele deve aderir aos dados de entrada de origem e fazer menos alterações drásticas ou amplos.

Como a Inversão Textual (um pouco menos com o DreamBooth), o UniTune é capaz de aplicar estilos gráficos distintos a imagens originais, bem como edições mais fotorealistas.

Como a Inversão Textual (um pouco menos com o DreamBooth), o UniTune é capaz de aplicar estilos gráficos distintos a imagens originais, bem como edições mais fotorealistas.

Os pesquisadores também experimentaram a técnica “início tardio” do SDEdit, onde o sistema é encorajado a preservar detalhes originais sendo apenas parcialmente “ruído” desde o início, mas mantendo suas características essenciais. Embora os pesquisadores tenham usado isso apenas na camada mais baixa (64px), eles acreditam que poderia ser uma técnica de amostragem útil no futuro.

Os pesquisadores também exploraram prompt-to-prompt como uma técnica de texto adicional para condicionar o modelo:

‘No setting “prompt to prompt”, encontramos que uma técnica que chamamos de Orientação de Prompt é particularmente útil para ajustar a fidelidade e a expressividade.

‘A Orientação de Prompt é semelhante à Orientação de Classificador Livre, exceto que a linha de base é um prompt diferente em vez do modelo não condicionado. Isso guia o modelo em direção à diferença entre os dois prompts.’

Prompt-to-prompt no UniTune, efetivamente isolando áreas para alterar.

Prompt-to-prompt no UniTune, efetivamente isolando áreas para alterar.

No entanto, a orientação de prompt, os autores afirmam, foi necessária apenas ocasionalmente em casos em que a CFG falhou em obter o resultado desejado.

Outra abordagem de amostragem novata encontrada durante o desenvolvimento do UniTune foi a interpolação, onde áreas da imagem são distintas o suficiente para que tanto a imagem original quanto a alterada sejam muito semelhantes em composição, permitindo uma interpolção mais “ingênua” ser usada.

A interpolação pode tornar os processos de maior esforço do UniTune redundantes em casos em que as áreas a serem transformadas são discretas e bem delimitadas.

A interpolação pode tornar os processos de maior esforço do UniTune redundantes em casos em que as áreas a serem transformadas são discretas e bem delimitadas.

Os autores sugerem que a interpolação poderia funcionar tão bem que, para um grande número de imagens de origem, ela poderia ser usada como configuração padrão e observam também que ela tem o poder de efetuar transformações extraordinárias em casos em que oclusões complexas não precisam ser negociadas por métodos mais intensivos.

O UniTune pode realizar edições locais com ou sem máscaras de edição, mas também pode decidir unilateralmente onde posicionar edições, com uma combinação incomum de poder interpretativo e essencialização robusta dos dados de entrada de origem:

Na imagem superior da segunda coluna, o UniTune, encarregado de inserir um 'trem vermelho ao fundo', o colocou em uma posição apropriada e autêntica. Note nos outros exemplos como a integridade semântica da imagem de origem é mantida, mesmo diante de mudanças extraordinárias no conteúdo de pixels e estilos centrais das imagens.

Na imagem superior da segunda coluna, o UniTune, encarregado de inserir um ‘trem vermelho ao fundo’, o colocou em uma posição apropriada e autêntica. Note nos outros exemplos como a integridade semântica da imagem de origem é mantida, mesmo diante de mudanças extraordinárias no conteúdo de pixels e estilos centrais das imagens.

Latência

Embora a primeira iteração de qualquer novo sistema seja lenta e embora seja possível que o envolvimento da comunidade ou o compromisso corporativo (não é usualmente ambos) eventualmente acelerem e otimizem uma rotina de aprendizado de máquina intensiva em recursos, tanto o UniTune quanto o Imagic estão realizando algumas manobras de aprendizado de máquina bastante significativas para criar essas edições incríveis, e é questionável até que ponto um processo tão intensivo em recursos poderia ser reduzido para uso doméstico, em vez de acesso por meio de API (embora o último possa ser mais desejável para a Google).

Atualmente, a viagem de ida e volta de entrada para resultado é de cerca de 3 minutos em um GPU T4, com cerca de 30 segundos extras para inferência (conforme qualquer rotina de inferência). Os autores concordam que isso é uma latência alta e mal se qualifica como ‘interativo’, mas também observam que o modelo permanece disponível para edições adicionais uma vez inicialmente ajustado, até que o usuário termine com o processo, o que reduz o tempo por edição.

 

Publicado pela primeira vez em 21 de outubro de 2022.

Escritor em aprendizado de máquina, especialista em síntese de imagem humana. Antigo chefe de conteúdo de pesquisa da Metaphysic.ai, até sua dissolução na Brahma.ai da DNEG.
Portfolio site: martinanderson.ai
Contato: martin@martinanderson.ai