O advento de modelos de IA generativos profundos acelerou significativamente o desenvolvimento de IA com capacidades notáveis em geração de linguagem pure, geração 3D, geração de imagens e síntese de fala. Os modelos generativos 3D transformaram inúmeras indústrias e aplicações, revolucionando o cenário atual de produção 3D. No entanto, muitos modelos generativos profundos atuais encontram um obstáculo comum: fiação complexa e malhas geradas com texturas de iluminação são frequentemente incompatíveis com pipelines de renderização tradicionais como PBR (Bodily Primarily based Rendering). Modelos baseados em difusão, que geram ativos 3D sem texturas de iluminação, possuem capacidades notáveis para geração diversificada de ativos 3D, aumentando assim as estruturas 3D existentes em indústrias como produção cinematográfica, jogos e realidade aumentada/digital.
Neste artigo, discutiremos o Paint3D, uma nova estrutura de grosseiro a fino capaz de produzir diversos mapas de textura UV 2K de alta resolução para malhas 3D não texturizadas, condicionadas a entradas visuais ou textuais. O principal desafio que o Paint3D aborda é gerar texturas de alta qualidade sem incorporar informações de iluminação, permitindo que os usuários reeditem ou re-iluminem dentro de pipelines gráficos modernos. Para lidar com esse problema, a estrutura Paint3D emprega um modelo de difusão 2D pré-treinado para executar fusão de textura multivisualização e gerar imagens condicionais de visualização, produzindo inicialmente um mapa de textura grosseiro. No entanto, como os modelos 2D não podem desabilitar totalmente os efeitos de iluminação ou representar completamente as formas 3D, o mapa de textura pode exibir artefatos de iluminação e áreas incompletas.
Neste artigo, exploraremos o framework Paint3D em profundidade, examinando seu funcionamento e arquitetura, e comparando-o com frameworks generativos profundos de última geração. Então, vamos começar.
Modelos de IA generativa profunda demonstraram capacidades excepcionais em geração de linguagem pure, geração 3D e síntese de imagens, e foram implementados em aplicações da vida actual, revolucionando a indústria de geração 3D. No entanto, apesar de suas capacidades notáveis, as estruturas modernas de IA generativa profunda 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 renderização baseada em física (PBR). Da mesma forma, a síntese de textura avançou rapidamente, especialmente com o uso de modelos de difusão 2D. Esses modelos utilizam efetivamente 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: texturas pré-iluminadas podem afetar adversamente as renderizações finais do ambiente 3D, introduzindo erros de iluminação quando as luzes são ajustadas dentro de fluxos de trabalho comuns, conforme demonstrado na imagem a seguir.
Conforme observado, mapas de textura sem pré-iluminação funcionam perfeitamente com pipelines de renderização tradicionais, fornecendo resultados precisos. Em contraste, mapas de textura com pré-iluminação incluem sombras inapropriadas quando a reiluminação é aplicada. Estruturas de geração de textura treinadas em dados 3D oferecem uma abordagem alternativa, gerando texturas ao entender a geometria inteira de um objeto 3D específico. Embora essas estruturas possam fornecer melhores resultados, elas não têm os recursos de generalização necessários para aplicar o modelo a objetos 3D fora de seus dados de treinamento.
Os modelos atuais de geração de textura enfrentam dois desafios críticos: alcançar ampla generalização em diferentes objetos usando orientação de imagem ou prompts diversos e eliminar a iluminação acoplada dos resultados de pré-treinamento. Texturas pré-iluminadas podem interferir nos resultados finais de objetos texturizados dentro de mecanismos de renderização. Além disso, como os modelos de difusão 2D pré-treinados fornecem apenas resultados 2D no domínio da visualização, eles não têm uma compreensão abrangente das formas, levando a inconsistências na manutenção da consistência da visualização para objetos 3D.
Para enfrentar esses desafios, a estrutura Paint3D desenvolve um modelo de difusão de textura de dois estágios para objetos 3D que se generaliza em diferentes modelos generativos pré-treinados e preserva a consistência da visualização ao gerar texturas sem iluminação.
O Paint3D é um modelo de geração de textura de estágio duplo, de grosseira a fina, que aproveita a forte orientação de immediate e os recursos de geração de imagem de modelos de IA generativos pré-treinados para texturizar objetos 3D. No primeiro estágio, o Paint3D amostra imagens multivisualizadas de um modelo de difusão de imagem 2D pré-treinado com reconhecimento de profundidade progressivamente, permitindo a generalização de resultados de textura ricos e de alta qualidade a partir de diversos prompts. O modelo então gera um mapa de textura inicial projetando essas imagens de volta na superfície da malha 3D. No segundo estágio, o modelo se concentra na geração de texturas sem iluminação implementando abordagens empregadas por modelos de difusão especializados na remoção de influências de iluminação e no refinamento de regiões incompletas com reconhecimento de forma. Ao longo do processo, a estrutura do Paint3D gera consistentemente texturas 2K de alta qualidade semanticamente, eliminando efeitos de iluminação intrínsecos.
Em resumo, Paint3D é um novo modelo de IA generativo, de grosseiro a fino, projetado para produzir mapas de textura UV 2K de alta resolução, diversos e sem iluminação para malhas 3D não texturizadas. Ele visa atingir desempenho de ponta na texturização de objetos 3D com diferentes entradas condicionais, incluindo texto e imagens, oferecendo vantagens significativas para tarefas de síntese e edição de gráficos.
Metodologia e Arquitetura
A estrutura Paint3D gera e refina mapas de textura progressivamente para produzir texturas diversas e de alta qualidade para modelos 3D usando entradas condicionais, como imagens e prompts, conforme demonstrado na imagem a seguir.
Estágio 1: Geração de textura grossa progressiva
No estágio inicial de geração de textura grosseira, o Paint3D emprega modelos de difusão de imagem 2D pré-treinados para amostrar imagens multivisualizadas, que são então retroprojetadas na superfície da malha para criar os mapas de textura iniciais. Este estágio começa com a geração de um mapa de profundidade a partir de várias visualizações de câmera. O modelo usa condições de profundidade para amostrar imagens do modelo de difusão, que são então retroprojetadas na superfície da malha 3D. Esta abordagem alternativa de renderização, amostragem e retroprojeção melhora a consistência das malhas de textura e auxilia na geração progressiva do mapa de textura.
O processo começa com as regiões visíveis da malha 3D, focando na geração de textura da primeira visualização da câmera, renderizando a malha 3D em um mapa de profundidade. Uma imagem de textura é então amostrada com base nas condições de aparência e profundidade e retroprojetada na malha. Este método é repetido para pontos de vista subsequentes, incorporando texturas anteriores para renderizar não apenas uma imagem de profundidade, mas também uma imagem RGB parcialmente colorida com máscaras sem cor. O modelo usa um codificador de inpainting de imagem com reconhecimento de profundidade para preencher áreas sem cor, gerando um mapa de textura grosseira completo ao retroprojetar imagens com inpainting na malha 3D.
Para cenas ou objetos mais complexos, o modelo usa múltiplas visualizações. Inicialmente, ele captura dois mapas de profundidade de pontos de vista simétricos e os combina em uma grade de profundidade, que substitui uma única imagem de profundidade para amostragem de textura com reconhecimento de profundidade de múltiplas visualizações.
Etapa 2: Refinamento de textura no espaço UV
Apesar de gerar mapas de textura grosseira lógicos, surgem desafios como buracos de textura de processos de renderização e sombras de iluminação de modelos de difusão de imagem 2D. Para lidar com isso, o Paint3D realiza um processo de difusão no espaço UV com base no mapa de textura grosseira, aprimorando o apelo visible 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 as 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 3D de fragmentos de textura, tratando cada elemento que não seja de fundo como uma coordenada de ponto 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 executar tarefas de refinamento no espaço UV, oferecendo dois recursos: UVHD (UV Excessive Definition) e UV inpainting. O UVHD aprimora o apelo visible e a estética, usando um codificador de aprimoramento de imagem e um codificador de posição com o modelo de difusão. O UV inpainting preenche buracos de textura, evitando problemas de auto-oclusão na renderização. O estágio de refinamento começa com o UV inpainting, seguido pelo UVHD para produzir um mapa de textura refinado closing.
Ao integrar esses métodos de refinamento, a estrutura Paint3D gera mapas de textura UV completos, diversos, de alta resolução e sem iluminação, tornando-se uma solução robusta para texturizar objetos 3D.
Paint3D: Experimentos e Resultados
O modelo Paint3D utiliza o modelo text2image Steady Diffusion para auxiliar nas tarefas de geração de textura, enquanto o componente codificador de imagem gerencia as condições da imagem. Para aprimorar seu controle sobre tarefas condicionais como pintura de imagem, manipulação de profundidade e imagens de alta definição, a estrutura Paint3D emprega codificadores de domínio ControlNet. O modelo é implementado na estrutura PyTorch, com renderização e projeções de textura executadas no Kaolin.
Comparação de texto com texturas
Para avaliar o desempenho do Paint3D, começamos analisando sua geração de textura quando condicionada com prompts textuais, comparando-a com frameworks de última geração, como Text2Tex, TEXTure e LatentPaint. Conforme mostrado na imagem a seguir, o framework Paint3D não apenas se destaca na geração de detalhes de textura de alta qualidade, mas também sintetiza efetivamente um mapa de textura sem iluminação.
Ao alavancar os recursos robustos dos codificadores Steady Diffusion e ControlNet, o Paint3D fornece 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-o uma solução líder para tarefas de texturização 3D.
Em comparação, a estrutura Latent-Paint é propensa a gerar texturas borradas que resultam em efeitos visuais abaixo do ideally suited. Por outro lado, embora a estrutura TEXTure gere texturas claras, ela não tem suavidade e exibe emendas e costuras perceptíveis. Finalmente, a estrutura Text2Tex gera texturas suaves notavelmente bem, mas falha em replicar o desempenho para gerar texturas finas com detalhes intrincados. A imagem a seguir compara quantitativamente a estrutura do Paint3D com estruturas de última geração.
Como pode ser observado, o framework Paint3D supera todos os modelos existentes, e por uma margem significativa com quase 30% de melhoria na linha de base FID e aproximadamente 40% de melhoria na linha de base KID. A melhoria nas pontuações de linha de base FID e KID demonstra a capacidade do Paint3D de gerar texturas de alta qualidade em diversos objetos e categorias.
Comparação de imagem com textura
Para gerar as capacidades generativas do Paint3D usando prompts visuais, usamos o modelo TEXTure como linha de base. Como mencionado anteriormente, o modelo Paint3D emprega um codificador de imagem originado do modelo text2image da Steady Diffusion. Como pode ser visto na imagem a seguir, a estrutura Paint3D sintetiza texturas requintadas notavelmente bem, e ainda é capaz de manter alta fidelidade com relação à condição da imagem.
Por outro lado, o framework TEXTure é capaz de gerar uma textura comparable ao Paint3D, mas não consegue representar os detalhes da textura na condição da imagem com precisão. Além disso, como demonstrado na imagem a seguir, o framework Paint3D fornece melhores pontuações de linha de base FID e KID quando comparado ao framework TEXTure, com o primeiro diminuindo de 40,83 para 26,86, enquanto o último mostra uma queda de 9,76 para 4,94.
Pensamentos finais
Neste artigo, falamos sobre o Paint3D, uma nova estrutura de grosseiro para fino capaz de produzir mapas de textura UV 2K de alta resolução, diversos e sem iluminação para malhas 3D não texturizadas condicionadas a entradas visuais ou textuais. O principal destaque da estrutura Paint3D é que ela é capaz de gerar texturas UV 2K de alta resolução e sem iluminação que são semanticamente consistentes sem serem condicionadas a entradas de imagem ou texto. Devido à sua abordagem de grosseiro para fino, a estrutura Paint3D produz mapas de textura de alta resolução, diversos e sem iluminação, e oferece melhor desempenho do que as estruturas de última geração atuais.