Inteligência artificial

Paint3D: Uma Introdução à Geração de Imagens usando Modelos de Difusão sem Iluminação

mm

A chegada de modelos de inteligência artificial (IA) gerativos profundos acelerou significativamente o desenvolvimento da IA com capacidades notáveis em geração de linguagem natural, geração de 3D, geração de imagens e síntese de fala. Os modelos gerativos de 3D transformaram diversas indústrias e aplicações, revolucionando o atual cenário de produção de 3D. No entanto, muitos modelos de IA gerativos atuais enfrentam um obstáculo comum: a complexidade da fiação e as malhas geradas com texturas de iluminação são frequentemente incompatíveis com pipelines de renderização tradicionais, como a Renderização Baseada em Física (PBR). Os modelos baseados em difusão, que geram ativos de 3D sem texturas de iluminação, possuem capacidades notáveis para a geração de ativos de 3D diversificados, aumentando os quadros de 3D existentes em indústrias como a cinematográfica, os jogos e a realidade aumentada/virtual.

Neste artigo, discutiremos o Paint3D, um quadro de trabalho coarse-to-fine capaz de produzir mapas de textura de 2K UV de alta resolução e diversificados para malhas de 3D sem textura, condicionados em entradas visuais ou textuais. O desafio principal que o Paint3D aborda é a geração de texturas de alta qualidade sem incorporar informações de iluminação, permitindo que os usuários editem ou re-iluminem dentro de pipelines de gráficos modernos. Para resolver esse problema, o quadro de trabalho do Paint3D emprega um modelo de difusão de 2D pré-treinado para realizar a fusão de texturas multi-vista e gerar imagens condicionais, inicialmente produzindo um mapa de textura coarse. No entanto, como os modelos de 2D não podem desabilitar completamente os efeitos de iluminação ou representar completamente as formas de 3D, o mapa de textura pode exibir artefatos de iluminação e áreas incompletas.

Neste artigo, exploraremos o quadro de trabalho do Paint3D em profundidade, examinando seu funcionamento e arquitetura, e comparando-o com quadros de trabalho gerativos de IA de ponta. Vamos começar.

Paint3D: Uma Introdução

Os modelos de IA gerativos demonstraram capacidades notáveis em geração de linguagem natural, geração de 3D e síntese de imagens, e foram implementados em aplicações reais, revolucionando a indústria de geração de 3D. No entanto, apesar de suas capacidades notáveis, os quadros de trabalho de IA gerativos modernos frequentemente produzem malhas com fiação complexa e texturas de iluminação caóticas que são incompatíveis com pipelines de renderização convencionais, incluindo a PBR. Da mesma forma, a síntese de texturas avançou rapidamente, especialmente com o uso de modelos de difusão de 2D. Esses modelos utilizam eficazmente modelos de difusão de profundidade para imagem pré-treinados e condições de texto para gerar texturas de alta qualidade. No entanto, um desafio significativo permanece: as texturas pré-iluminadas podem afetar adversamente as renderizações finais do ambiente de 3D, introduzindo erros de iluminação quando as luzes são ajustadas dentro de fluxos de trabalho comuns, como demonstrado na imagem a seguir.

Como observado, as mapas de textura sem pré-iluminação funcionam perfeitamente com pipelines de renderização tradicionais, fornecendo resultados precisos. Em contraste, as mapas de textura com pré-iluminação incluem sombras inadequadas quando a re-iluminação é aplicada. Os quadros de trabalho de geração de texturas treinados em dados de 3D oferecem uma abordagem alternativa, gerando texturas ao entender a geometria completa de um objeto de 3D específico. Embora esses quadros de trabalho possam fornecer resultados melhores, eles carecem de capacidades de generalização necessárias para aplicar o modelo a objetos de 3D fora de seus conjuntos de treinamento.

Os modelos de geração de texturas atuais enfrentam dois desafios críticos: alcançar uma generalização ampla em diferentes objetos usando orientação de imagem ou prompts diversificados, e eliminar a iluminação acoplada dos resultados de pré-treinamento. As texturas pré-iluminadas podem interferir nos resultados finais dos objetos texturizados dentro dos motores de renderização. Além disso, como os modelos de difusão de 2D pré-treinados fornecem apenas resultados de 2D no domínio da vista, eles carecem de uma compreensão abrangente das formas, levando a inconsistências na manutenção da consistência da vista para objetos de 3D.

Para resolver esses desafios, o quadro de trabalho do Paint3D desenvolve um modelo de difusão de duas etapas para objetos de 3D que generaliza em diferentes modelos gerativos pré-treinados e preserva a consistência da vista ao gerar texturas sem iluminação.

O Paint3D é um modelo de geração de textura de duas etapas, coarse-to-fine, que aproveita a orientação de prompt forte e as capacidades de geração de imagem dos modelos de IA gerativos pré-treinados para texturar objetos de 3D. Na primeira etapa, o Paint3D amostra imagens multi-vista de um modelo de difusão de imagem de 2D pré-treinado progressivamente, permitindo a generalização de resultados de textura de alta qualidade e ricos a partir de prompts diversificados. O modelo então gera um mapa de textura inicial projetando essas imagens na superfície da malha de 3D. Na segunda etapa, o modelo se concentra em gerar texturas sem iluminação, implementando abordagens empregadas por modelos de difusão especializados em remover influências de iluminação e refinar regiões incompletas conscientes da forma. Ao longo do processo, o quadro de trabalho do Paint3D gera consistentemente mapas de textura de alta qualidade de 2K semanticamente, eliminando efeitos de iluminação intrínsecos.

Em resumo, o Paint3D é um modelo de IA gerativo coarse-to-fine projetado para produzir mapas de textura de 2K UV de alta resolução e diversificados para malhas de 3D sem textura. Ele visa alcançar um desempenho de ponta na texturização de objetos de 3D com diferentes entradas condicionais, incluindo texto e imagens, oferecendo vantagens significativas para tarefas de síntese e edição gráfica.

Metodologia e Arquitetura

O quadro de trabalho do Paint3D gera e refina mapas de textura progressivamente para produzir texturas diversificadas e de alta qualidade para modelos de 3D usando entradas condicionais, como imagens e prompts, como demonstrado na imagem a seguir.

Etapa 1: Geração de Textura Coarse Progressiva

Na etapa inicial de geração de textura coarse, o Paint3D emprega modelos de difusão de imagem de 2D pré-treinados para amostrar imagens multi-vista, que são então projetadas na superfície da malha para criar os mapas de textura iniciais. Essa etapa começa com a geração de um mapa de profundidade a partir de várias vistas de câmera. O modelo usa condições de profundidade para amostrar imagens do modelo de difusão, que são então projetadas na superfície da malha de 3D. Essa abordagem de renderização alternada, amostragem e projeção aprimora a consistência das malhas de textura e ajuda a gerar progressivamente o mapa de textura.

O processo começa com as regiões visíveis da malha de 3D, focando em gerar textura a partir da primeira vista de câmera, renderizando a malha de 3D para um mapa de profundidade. Uma imagem de textura é então amostrada com base em condições de aparência e profundidade e projetada na malha. Esse método é repetido para vistas subsequentes, incorporando texturas anteriores para renderizar não apenas uma imagem de profundidade, mas também uma imagem RGB parcialmente colorida com máscaras não coloridas. O modelo usa um codificador de inpainting de imagem consciente de profundidade para preencher áreas não coloridas, gerando um mapa de textura coarse completo projetando imagens inpintadas na malha de 3D.

Para cenas ou objetos mais complexos, o modelo usa múltiplas vistas. Inicialmente, ele captura dois mapas de profundidade de vistas simétricas e os combina em uma grade de profundidade, que substitui uma imagem de profundidade única para amostragem de textura consciente de profundidade multi-vista.

Etapa 2: Refinamento de Textura no Espaço UV

Apesar de gerar mapas de textura coarse lógicos, desafios como buracos de textura de processos de renderização e sombras de iluminação de modelos de difusão de 2D surgem. Para resolver esses desafios, o Paint3D realiza um processo de difusão no espaço UV com base no mapa de textura coarse, aprimorando o apelo visual e resolvendo problemas.

No entanto, refinar o mapa de textura no espaço UV pode introduzir descontinuidades devido à fragmentação de texturas contínuas em fragmentos individuais. Para mitigar isso, o Paint3D refina o mapa de textura usando informações de adjacência de fragmentos de textura. No espaço UV, o mapa de posição representa as informações de adjacência de 3D dos fragmentos de textura, tratando cada elemento não de fundo como uma coordenada de ponto de 3D. O modelo usa um codificador de mapa de posição adicional, semelhante ao ControlNet, para integrar essas informações de adjacência durante o processo de difusão.

O modelo usa simultaneamente a posição do codificador condicional e outros codificadores para realizar tarefas de refinamento no espaço UV, oferecendo duas capacidades: UVHD (UV Alta Definição) e inpainting UV. A UVHD melhora o apelo visual e a estética, usando um codificador de melhoria de imagem e um codificador de posição com o modelo de difusão. O inpainting UV preenche buracos de textura, evitando problemas de auto-ocultação de renderização. A etapa de refinamento começa com o inpainting UV, seguido pela UVHD para produzir um mapa de textura refinado final.

Ao integrar esses métodos de refinamento, o quadro de trabalho do Paint3D gera mapas de textura de 2K UV completos, diversificados, de alta resolução e sem iluminação, tornando-se uma solução robusta para a texturização de objetos de 3D.

Paint3D: Experimentos e Resultados

O modelo do Paint3D utiliza o modelo de texto para imagem de Stable Diffusion para auxiliar nas tarefas de geração de textura, enquanto o componente do codificador de imagem gerencia as condições de imagem. Para aprimorar seu controle sobre tarefas condicionais, como inpainting de imagem, tratamento de profundidade e imagens de alta definição, o quadro de trabalho do Paint3D emprega codificadores de domínio do ControlNet. O modelo é implementado no framework PyTorch, com renderização e projeções de textura executadas no Kaolin.

Comparação de Texto para Texturas

Para avaliar o desempenho do Paint3D, começamos analisando sua geração de textura quando condicionada com prompts textuais, comparando-a com quadros de trabalho de ponta, como Text2Tex, TEXTure e LatentPaint. Como mostrado na imagem a seguir, o quadro de trabalho do Paint3D não apenas se destaca na geração de detalhes de textura de alta qualidade, mas também sintetiza eficazmente um mapa de textura sem iluminação.

Ao aproveitar as capacidades robustas do Stable Diffusion e dos codificadores do ControlNet, o Paint3D fornece uma qualidade de textura superior e versatilidade. A comparação destaca a capacidade do Paint3D de produzir texturas detalhadas e de alta resolução sem iluminação incorporada, tornando-se uma solução líder para tarefas de texturização de 3D.

Em comparação, o quadro de trabalho Latent-Paint é propenso a gerar texturas borradas que resultam em efeitos visuais subótimos. Por outro lado, embora o quadro de trabalho TEXTure gere texturas claras, ele carece de suavidade e exibe splicing e costuras notáveis. Finalmente, o quadro de trabalho Text2Tex gera texturas suaves de forma notável, mas falha em replicar o desempenho para a geração de texturas finas com detalhes intricados. A imagem a seguir compara o quadro de trabalho do Paint3D com quadros de trabalho de ponta de forma quantitativa.

Como pode ser observado, o quadro de trabalho do Paint3D supera todos os modelos existentes, e por uma margem significativa, com uma melhoria de quase 30% na linha de base FID e aproximadamente 40% na linha de base KID. A melhoria nos escores de FID e KID demonstra a capacidade do Paint3D de gerar texturas de alta qualidade em diferentes objetos e categorias.

Comparação de Imagem para Textura

Para gerar as capacidades gerativas do Paint3D usando prompts visuais, usamos o modelo TEXTure como a base. Como mencionado anteriormente, o modelo do Paint3D emprega um codificador de imagem proveniente do modelo de texto para imagem do Stable Diffusion. Como pode ser visto na imagem a seguir, o quadro de trabalho do Paint3D sintetiza texturas exquisitas de forma notável, e ainda consegue manter uma fidelidade alta em relação à condição de imagem.

Por outro lado, o quadro de trabalho TEXTure consegue gerar uma textura semelhante à do Paint3D, mas falha em representar os detalhes da textura na condição de imagem com precisão. Além disso, como demonstrado na imagem a seguir, o quadro de trabalho do Paint3D entrega melhores escores de FID e KID em comparação com o quadro de trabalho TEXTure, com o primeiro diminuindo de 40,83 para 26,86, enquanto o último mostrando uma queda de 9,76 para 4,94.

Pensamentos Finais

Neste artigo, discutimos o Paint3D, um quadro de trabalho coarse-to-fine capaz de produzir mapas de textura de 2K UV de alta resolução e diversificados para malhas de 3D sem textura, condicionados em entradas visuais ou textuais. O destaque principal do quadro de trabalho do Paint3D é que ele é capaz de gerar texturas de alta resolução sem iluminação que são consistentes semanticamente sem serem condicionados em entradas de imagem ou texto. Devido à sua abordagem coarse-to-fine, o quadro de trabalho do Paint3D produz mapas de textura sem iluminação, diversificados e de alta resolução, e entrega um desempenho melhor do que os quadros de trabalho de ponta atuais.

Um engenheiro por profissão, um escritor por coração. Kunal é um escritor técnico com um amor e compreensão profundos de AI e ML, dedicado a simplificar conceitos complexos nestes campos por meio de sua documentação envolvente e informativa.