Connect with us

Inteligência artificial

UniTune: Técnica Alternativa de Edição de Imagens Neurais do Google

mm

A pesquisa do Google, ao que parece, 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 da busca 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 desembaraço 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 resto 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 resto da imagem de origem (direita). Fonte: https://arxiv.org/pdf/2210.09477.pdf

Como os fãs do Stable Diffusion já aprenderam, aplicar edições em seções parciais de uma imagem sem alterar adversamente o resto da imagem pode ser uma operação difícil, à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 que seja 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 é aproveitar o módulo de pré-treinamento de linguagem e imagem contrastivo da OpenAI (CLIP), que está no coração dos modelos de difusão latente, como DALL-E 2 e Stable Diffusion, para atuar como um filtro no ponto em que um modelo de texto-para-imagem está pronto para enviar um render interpretado de volta ao usuário. Nesse contexto, o CLIP deve atuar como um sentinela e módulo de controle de qualidade, rejeitando renders malformados ou inadequados. Isso está prestes a ser instituído (link do Discord) no portal API-driven da Stability.ai.

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, em vez disso, “ajusta” um modelo de difusão existente – neste caso, o próprio Imagen do Google, embora os pesquisadores afirmem que o método é compatível com outras arquiteturas de difusão latente – para que um token único seja injetado nele, que pode ser invocado incluindo-o em um prompt de texto.

À primeira vista, isso soa como o DreamBooth do Google, atualmente uma obsessão entre os fãs e desenvolvedores do Stable Diffusion, que pode injetar novos personagens ou objetos em um checkpoint existente, muitas vezes em menos de uma hora, com base em apenas um punhado de 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 vastos recursos do modelo, modificando seu classificador de texto, resultando em um arquivo pequeno (em comparação com os checkpoints mínimos de 2 GB do DreamBooth).

Na verdade, os pesquisadores afirmam que o UniTune rejeitou essas duas abordagens. Eles descobriram que a Inversão Textual omitiu 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” semântico encapsulado do DreamBooth, com alterações treinadas invocadas por palavras únicas escolhidas pelo treinador, que não entrarão em conflito com nenhum termo que atualmente exista em um modelo de lançamento público laboriosamente treinado.

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

O Processo

O método UniTune basicamente envia a imagem original por 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 efeito, você pode fazer isso agora com a funcionalidade img2img do Stable Diffusion – mas não sem deformar ou alterar de alguma forma as partes da imagem que você preferiria manter.

Durante o processo UniTune, o sistema é ajustado, 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 ajuste irá afetar os valores gerais de perda do modelo em favor de injetar ou refinar algum outro aspecto que é desejado ser criado ou aprimorado.

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 os fãs do DreamBooth, cujos próprios modelos, mesmo quando podados, não são menos de 2 GB por assunto.

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

Para a camada de 64px mais baixa, o modelo é tendencioso em relação à imagem de base durante o treinamento, com múltiplos pares de imagem/texto alimentados no sistema por 128 iterações em um lote de tamanho 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 ajuste, 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 ajustado, incluindo Orientação de Classificador Livre (CFG), uma peça fundamental 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 origem e fazer alterações menos drásticas ou dramáticas.

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 de “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 cenário “prompt para prompt”, descobri 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 orienta 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 inovadora encontrada durante o desenvolvimento do UniTune foi interpolação, onde as áreas da imagem são suficientemente distintas para que as imagens originais e alteradas sejam muito semelhantes em composição, permitindo uma interpolação mais “ingênua” ser usada.

A interpolação pode tornar os processos mais trabalhosos do UniTune redundantes em casos em que as áreas a serem transformadas são discretas e bem marginadas.

A interpolação pode tornar os processos mais trabalhosos do UniTune redundantes em casos em que as áreas a serem transformadas são discretas e bem marginadas.

Os autores sugerem que a interpolação poderia potencialmente funcionar tão bem que, para um grande número de imagens de origem, ela poderia ser usada como uma 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 as edições, com uma combinação incomum de poder interpretativo e essencialização robusta dos dados de entrada:

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 no meio de alterações extraordinárias no conteúdo de pixel 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 no meio de alterações extraordinárias no conteúdo de pixel 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 é normalmente ambos) eventualmente acelerem e otimizem uma rotina de recursos pesados, 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 consumidor de recursos poderia ser reduzido para uso doméstico, em vez de acesso via API (embora o último possa ser mais desejável para o Google).

No momento, 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 (como em qualquer rotina de inferência). Os autores concordam que isso é uma latência alta e não 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 o processo, o que reduz o tempo por edição.

 

Publicado pela primeira vez em 21 de outubro de 2022.

Escritor sobre aprendizado de máquina, especialista em síntese de imagem humana. Ex-chefe de conteúdo de pesquisa da Metaphysic.ai.