BlenderAlchemy: Transformando Design Gráfico com Modelos de Linguagem-Visuais
Um novo sistema simplifica as tarefas de design 3D no Blender usando modelos de IA avançados.
― 18 min ler
Índice
- Visão Geral do BlenderAlchemy
- Estrutura do Sistema
- Contribuições do Trabalho
- Trabalhos Relacionados
- Representação do Estado Visual do Blender
- Refinamento Iterativo dos Programas Visuais Individuais
- Edição de Materiais Procedurais
- Experimentos de Ablação em Edição de Materiais
- Materiais do BlenderAlchemy em Cenas
- Conclusão e Trabalhos Futuros
- Fonte original
- Ligações de referência
O design gráfico é super importante em várias áreas, como filmes e jogos. Pra criar cenas maneiras, os designers geralmente passam um tempão em softwares como o Blender. Eles podem ter que repetir ações, tipo conectar nós de materiais, várias vezes. Diferentes objetivos de design podem precisar de etapas bem diferentes, o que torna difícil automatizar o processo. Esse trabalho apresenta um sistema que usa Modelos de Linguagem Visual (VLMs), como o GPT-4V, pra ajudar a encontrar as ações de design certas pra atender a intenção do usuário. A gente construiu um gerador de edições baseado em visão e um avaliador de estado que trabalham juntos pra encontrar os passos certos pra chegar no resultado desejado.
Nosso sistema usa imagens de referência "imaginadas" de modelos de geração de imagem pra ajudar no processo. Isso dá uma referência visual pra descrições de linguagem vagas. A gente prova que nosso sistema consegue criar tarefas de edição simples mas repetitivas no Blender, como ajustar materiais a partir de instruções de texto ou imagens de referência, e mudar configurações de iluminação pra visuais de produtos em cenas complexas.
Visão Geral do BlenderAlchemy
O BlenderAlchemy começa com um projeto existente no Blender e uma intenção do usuário expressa em texto ou imagens. Ele modifica o estado do Blender pra cumprir essa intenção, refinando um programa em Python do Blender de forma iterativa, que é rodado pra produzir o resultado final. Nosso sistema também usa geração de texto pra imagem pra criar um alvo visual a partir de uma descrição em texto, ajudando a refinar o programa.
Pra produzir gráficos de alta qualidade que a gente vê em filmes ou jogos, artistas 3D precisam trabalhar por muitas horas em softwares como o Blender pra escolher os materiais certos, colocar objetos e configurar a iluminação. Os artistas precisam visualizar mentalmente o objetivo final, testar diferentes configurações e ver se as mudanças que fizeram os levam mais perto do resultado desejado.
Automatizar esses processos, convertendo descrições em linguagem ou visuais em edições, pode ajudar milhões de designers 3D e beneficiar muitas indústrias que dependem de design 3D. Design gráfico é complicado porque até tarefas pequenas envolvem muitas ações diferentes. Por exemplo, criar um ambiente de jogo envolve passar por modelagem, design de materiais, pintura de texturas, iluminação e composição de cena.
Muitos esforços passados focaram em tarefas específicas, como criar materiais. Esses métodos muitas vezes tiveram bons resultados, mas tinham dificuldade em agir sobre um objetivo de design mais amplo. Uma abordagem diferente é usar Modelos de Linguagem Grande (LLMs) pra entender a intenção do usuário e sugerir ações, seja conectando ferramentas específicas de tarefas existentes ou prevendo edições passo a passo.
Enquanto os LLMs são bons em entender intenções e sugerir sequências pra satisfazê-las, aplicar isso no design gráfico traz desafios. Isso acontece principalmente porque a linguagem sozinha não captura os resultados visuais das ações tomadas em softwares como o Blender. Uma alternativa promissora é usar modelos de linguagem-visual (VLMs), como LLaVA, GPT-4V, Gemini e DallE-3, que se destacam em entender detalhes visuais e gerar imagens.
Acreditamos que esses VLMs conseguem lidar com várias tarefas de design no ambiente do Blender, como editar materiais e criar configurações de iluminação. Este trabalho apresenta um sistema de prova de conceito que usa o modelo de fundação visual GPT-4V pra gerar e editar programas que mudam o espaço de trabalho do Blender com base na intenção do usuário.
Estrutura do Sistema
Inicialmente, a gente configura um espaço de trabalho no Blender com um estado inicial. Esse estado é representado como um programa curto em Python e um arquivo base do Blender. Os usuários então fornecem descrições em texto ou imagens de referência pra transmitir o resultado desejado. A tarefa do sistema é modificar o programa de forma que, quando executado, o resultado final atenda às expectativas do usuário.
O processo de edição iterativa envolve o gerador de edições e o avaliador de estado em cada ciclo, explorando e selecionando diferentes edições de programa. O gerador cria várias variantes de programa, e o avaliador compara essas pra escolher qual atende melhor à intenção do usuário. Cada rodada de refinamento foca no programa mais promissor da iteração anterior.
Usar VLMs diretamente nessa situação de edição pode levar a falhas porque eles podem não entender totalmente os efeitos visuais das edições no Blender. Pra resolver isso, propomos um método que combina um gerador de edições ciente da visão com um avaliador de estado visual. Essa abordagem permite um processo guiado de tentativa e erro, limitado por um orçamento computacional.
Durante cada iteração, o gerador de programas visuais sugere várias edições. Essas edições são aplicadas e executadas no Blender, produzindo imagens renderizadas. O avaliador analisa essas imagens e seleciona as melhores através de comparação par a par, com base em quão bem elas atendem à intenção do usuário a partir do texto e da imagem de referência.
Se uma iteração não resultar em um bom candidato, a gente volta pro melhor candidato da etapa anterior. Isso evita que a busca se desvie quando enfrentamos opções ruins. Pra ajudar o gerador e o avaliador a compreender melhor a intenção do usuário, usamos uma etapa de "imaginação visual" utilizando modelos de texto pra imagem pra criar imagens de referência que guiam o processo.
A gente demonstra que nosso método pode realizar tarefas de design no Blender, dirigidas pela intenção do usuário expressa através de texto e imagens. A gente valida especificamente nosso sistema em tarefas de design de materiais e iluminação, duas áreas onde os artistas dedicam tempo considerável, variando de 20 horas a vários dias de trabalho por modelo.
Contribuições do Trabalho
Resumindo, o trabalho apresenta o BlenderAlchemy, um sistema capaz de editar programas visuais com base no input do usuário em formas de texto ou imagem. Os componentes chave que permitem que o sistema funcione incluem:
- Um avaliador de estado visual.
- Um gerador de edições visuais.
- Um algoritmo de busca com um mecanismo de reversão de edições.
- Um módulo de imaginação visual pra ajudar na busca.
A gente fornece evidências mostrando que o BlenderAlchemy supera trabalhos anteriores em edição de materiais procedurais dirigidos por texto e demonstra aplicabilidade em outras tarefas de design, incluindo configurações de iluminação.
Trabalhos Relacionados
Ferramentas Específicas para Design de Materiais
Muita pesquisa foi dedicada a usar métodos baseados em aprendizado pra gerar materiais. Trabalhos anteriores usaram modelos de difusão 2D pra criar mapas de textura, seja sem treinamento ou através de ajuste fino. Embora esses métodos mostrem potencial em gerar e alterar texturas usando linguagem natural pra modelos 3D, eles muitas vezes não abordam as características físicas dos materiais de um jeito que permita reiluminação.
Alguns métodos preveem as propriedades das superfícies dos materiais usando técnicas de aprendizado, mas as representações baseadas em imagem podem tornar as saídas difíceis de editar dentro dos fluxos de trabalho de design 3D existentes. Pesquisadores exploraram a combinação de abordagens baseadas em aprendizado com representações simbólicas de materiais. Esses esforços envolvem a criação de representações de gráficos de materiais procedurais usados no design 3D, permitindo a retropropagação de mudanças pra produzir imagens que correspondem aos alvos.
No entanto, nenhum trabalho anterior mostrou a capacidade de editar gráficos de materiais procedurais usando a intenção do usuário comunicada através da linguagem, que é o nosso foco. Enquanto os métodos mencionados se destacam no design de materiais, eles carecem de generalização em outras tarefas de design 3D. O BlenderAlchemy visa criar um sistema que lide com várias tarefas de design com base nas intenções do usuário, exigindo a integração de diferentes abordagens.
LLMs como Solucionadores Gerais de Problemas
Modelos de linguagem grande (LLMs) como GPT-4, Llama e Mistral mostraram capacidades notáveis em vários cenários de problemas, incluindo robótica e síntese de programas. Outros estudos indicam que melhorar tais modelos com um processo externo pode resolver novos problemas que precisam de Refinamento Iterativo.
No entanto, aplicar LLMs a problemas visuais ainda é limitado devido à falta de compreensão visual deles. Uma possível solução é resumir o estado visual usando texto ou representações simbólicas, mas isso muitas vezes falha em design gráfico 3D. Por exemplo, mudar um gráfico de material no Blender pra um material desejado precisa de muitas tentativas e deve compreender com precisão como as ações de design podem impactar a saída visual.
Trabalhos recentes envolvendo LLMs, particularmente dentro do Blender (como o BlenderGPT), não incorporaram informações visuais pra guiar suas saídas, resultando em resultados insatisfatórios. O BlenderAlchemy pega conceitos de pesquisas existentes em LLM e aborda isso integrando percepção visual ao sistema.
Modelos de Linguagem Visual
Modelos modernos de linguagem-visual, como LLaVA, GPT-4V e Gemini, mostraram habilidades impressionantes em entender informações visuais e como elas se relacionam com a linguagem. Essa capacidade permitiu que várias tarefas de visão computacional, como entendimento de cenas e detecção de objetos, fossem executadas com facilidade.
Trabalhos sugerem que esses modelos também podem substituir avaliadores humanos em muitas tarefas, agindo como ferramentas pra planejar e direcionar processos. O BlenderAlchemy está entre os primeiros a aplicar VLMs pra enfrentar tarefas de design gráfico 3D-uma aplicação única e desafiadora que ainda não foi explorada em profundidade.
Representação do Estado Visual do Blender
No nosso ambiente de design inicial do Blender, o estado pode ser dividido em um estado base do Blender e um conjunto de programas que atuam sobre ele. Essa configuração ajuda a criar o ambiente inicial usando uma função pra transitar de um estado pra outro com base em ações específicas do programa.
Nesse contexto, o executor de código Python dentro do Blender roda programas em sequência. Cada programa diz respeito a uma única parte do fluxo de trabalho de design 3D, como lidar com o material de uma malha ou gerenciar a configuração de iluminação de toda a cena. A gente pode decompor o estado do Blender através de técnicas como o "transpilador de nós", que converte entidades do Blender em linhas de código Python que recriam um gráfico de nós.
Embora seja viável encapsular todas as edições em um único programa, isso costuma ser limitante porque a saída do VLM pode não ter o comprimento suficiente pro código necessário ou a taxa de sucesso do VLM pode ser baixa devido ao vasto espaço de busca do programa. Futuros VLMs podem reduzir essa preocupação, mas dividir os programas de acordo com as tarefas ainda pode ser benéfico, permitindo consultas paralelas de VLMs especializados.
Refinamento Iterativo dos Programas Visuais Individuais
Ao focar em tarefas como edição de materiais pra um único objeto, o objetivo é encontrar uma versão editada de um programa que produza um resultado visual mais alinhado com a intenção do usuário. Nosso sistema assume que a intenção do usuário é comunicada através de linguagem ou referências de imagem, aproveitando a compreensão visual dos últimos VLMs.
Pra encontrar uma boa modificação pro programa, propomos um processo de refinamento iterativo que usa um avaliador de estado visual pra selecionar entre hipóteses de um gerador de edições. Um "agente" pra uma tarefa específica, como design de materiais procedurais, pode ser totalmente caracterizado por essa abordagem.
Seguindo pesquisas anteriores, apresentamos um avaliador de estado visual que determina qual dos dois estados visuais melhor atende à intenção do usuário. Esse avaliador escolhe recursivamente o candidato de estado visual mais adequado, fazendo várias consultas durante o processo.
Em vez de uma abordagem simples onde um único VLM edita o código, um método de múltiplas hipóteses e múltiplos passos funciona melhor. Estendendo ideias existentes pro domínio visual, nosso sistema gera diferentes variações do programa com base no estado atual e na intenção do usuário, enquanto restringe as saídas pra garantir que elas sigam certas famílias de programas.
Nas próximas seções, delineamos decisões de design do sistema que melhoram a estabilidade do procedimento e aprimoram a compreensão visual dos VLMs.
Reversão de Hipóteses
Pra garantir a estabilidade do processo de edição, a gente incorpora o estado visual do programa que tá sendo modificado em cada passo como um candidato no processo de seleção. Isso permite que o sistema reverta pra um programa anterior se a iteração atual falhar, ajudando a manter o alinhamento com a intenção do usuário.
Edições de Ajuste e Salto
Certos programas visuais mostram que pequenas mudanças nos valores podem impactar bastante o resultado, assim como mudanças estruturais. Em contraste com tarefas baseadas em especificações de entrada e saída, a edição visual exige tentativa e erro pra encontrar os melhores resultados.
Dado um programa visual, a saída pode diferir muito através de pequenos ajustes em parâmetros, que chamamos de edições de "ajuste". Essas podem levar a diferenças visuais substanciais e transformar um programa insatisfatório em um que se alinha melhor com a intenção do usuário.
Mudanças mais significativas, ou "edições de salto", podem ser necessárias pra tarefas específicas. Por exemplo, trocar um material liso por um áspero pode exigir a adição de nós relevantes ao programa. Nossas descobertas empíricas sugerem que as edições ótimas frequentemente combinam tanto edições de ajuste quanto de salto. Assim, o processo iterativo alterna entre explorar a vizinhança do programa e considerar todo o espaço do programa.
Imaginação Visual
Quando um usuário comunica sua intenção apenas por texto, pode ser difícil pra o VLM fazer edições de sucesso. Observações mostraram que descrições de linguagem vagas pra cenas 3D podem ser desafiadoras de traduzir em edições acionáveis.
Como solução, propomos complementar a compreensão do VLM com imagens geradas por modelos que convertem texto em imagens. Essas referências visuais guiam o processo de edição e ajudam a esclarecer a intenção do usuário através de representações mais concretas.
Edição de Materiais Procedurais
Editar materiais procedurais é desafiador por razões semelhantes a muitas outras tarefas visuais. Pequenas edições de programa podem levar a mudanças visuais significativas, tornando o processo de edição instável. Além disso, instruções em linguagem sobre edições costumam carecer de detalhes específicos que ajudariam a fazer mudanças precisas.
A gente examinou dois tipos diferentes de tarefas de edição: (1) converter um material inicial (como madeira sintética) em diferentes materiais com base em descrições textuais e (2) modificar vários materiais iniciais pra se parecer com um material alvo baseado em uma imagem.
Edição de Materiais Baseada em Texto
Uma aplicação promissora do nosso sistema é modificar materiais procedurais existentes usando descrições em linguagem natural. Essa capacidade não foi demonstrada antes com métodos neursosimbólicos. A gente testou nosso sistema pedindo pra ele alterar um material de madeira usando diversas instruções textuais que descrevem materiais alvo que não são madeira.
Nossa abordagem consiste em um gerador de edições que produz várias hipóteses pra cada iteração, alternando entre edições de ajuste e salto. Por exemplo, a figura ilustra a transformação de um material de madeira em "granito marmorizado". Cada coluna mostra as hipóteses geradas, com escolhas feitas pelo avaliador destacadas.
A gente comparou nosso sistema com o BlenderGPT, o último agente de IA de código aberto pra Blender que também usa o GPT-4. Fornecemos o mesmo prompt de material alvo e um código inicial como referência.
Qualitativamente, o BlenderGPT produziu edições muito mais simples, resultando em saídas de qualidade inferior que não se alinharam bem com a intenção do usuário. Por exemplo, quando pedimos pra criar uma "camuflagem digital", nosso sistema conseguiu ângulos mais nítidos como pedido, enquanto o BlenderGPT produziu cores sem a nitidez desejada.
A tabela compara as pontuações médias de semelhança entre nossas saídas e as descrições alvo. Mesmo uma versão do nosso sistema sem componentes visuais teve um desempenho melhor que o BlenderGPT. Ao incorporar informações visuais no avaliador, e não apenas no gerador, vemos mais melhorias.
Edição de Materiais Baseada em Imagem
Em tarefas onde uma imagem de um material desejado é fornecida, o objetivo é adaptar o código do material inicial pra incluir características visuais encontradas na imagem alvo. Isso é semelhante à transferência de estilo em materiais procedurais.
Nesse método, o gerador de edições primeiro lista as diferenças visuais notáveis entre o material atual e a imagem alvo, então identifica quais partes do código podem afetar essas diferenças. Ao traduzir observações visuais de baixo nível em descrições textuais, o sistema guia o processo de edição pra criar variações que se pareçam com o material alvo.
Experimentos de Ablação em Edição de Materiais
A gente realizou estudos de ablação pra explorar o valor dos geradores de edições visuais e avaliadores de estado. Nossas descobertas mostram que remover percepção visual de qualquer um dos componentes resulta em quedas notáveis de desempenho.
A gente também variou as dimensões do sistema pra avaliar o equilíbrio entre exploração e exploração no processo de edição. Um espaço de busca muito amplo levou a edições insignificantes, enquanto uma busca muito estreita se concentrou em candidatos subótimos.
Nas análises do nosso trabalho principal, a gente observou que a capacidade de reverter hipóteses ajudou a garantir a estabilidade, especialmente quando as edições eram drásticas o suficiente pra afetar negativamente os resultados. Nossas investigações sobre edições de ajuste versus salto revelaram que cada uma tem seus méritos, mas a abordagem combinada produz os melhores resultados.
Materiais do BlenderAlchemy em Cenas
Nesta seção, a gente mostra os materiais gerados pelo BlenderAlchemy e sua aplicação em modelos 3D. Começamos com descrições de linguagem concisas e as enriquecemos em descrições detalhadas da aparência do material.
A gente aplica os materiais gerados em vários objetos, usando ativos baixados de fontes da internet. Por exemplo, o material de "Alumínio Escovado" é exibido em um corpo de carro, enquanto o material de "Pintura Espalhada" cria um acabamento vibrante em outro veículo. Os materiais "Superfície do Sol" e "Gelo" realçam visuais para tênis, enquanto os materiais de "Aço Damasco" e "Metal Enferrujado" apresentados em katanas adicionam um caráter distinto ao visual.
Conclusão e Trabalhos Futuros
Este trabalho introduz o BlenderAlchemy, um sistema que edita designs 3D no Blender usando modelos de linguagem-visual pra refinar iterativamente programas com base na intenção do usuário. Ao incorporar informações visuais no processo, nosso sistema pode explorar e podar melhor as possibilidades dentro do espaço de programa.
A gente mostrou resultados promissores em configurações de iluminação e edição de materiais, e trabalhos futuros devem focar em expandir o sistema pra outras áreas do design gráfico, como animação de personagens e modelagem 3D. Além disso, o sistema pode se beneficiar da integração de uma biblioteca robusta de ferramentas e técnicas voltadas pra fluxos de trabalho específicos.
Enquanto a implementação atual destaca o potencial do refinamento iterativo, a gente reconhece a necessidade de mais desenvolvimento pra melhorar as capacidades do BlenderAlchemy e ampliar suas aplicações na indústria criativa.
Título: BlenderAlchemy: Editing 3D Graphics with Vision-Language Models
Resumo: Graphics design is important for various applications, including movie production and game design. To create a high-quality scene, designers usually need to spend hours in software like Blender, in which they might need to interleave and repeat operations, such as connecting material nodes, hundreds of times. Moreover, slightly different design goals may require completely different sequences, making automation difficult. In this paper, we propose a system that leverages Vision-Language Models (VLMs), like GPT-4V, to intelligently search the design action space to arrive at an answer that can satisfy a user's intent. Specifically, we design a vision-based edit generator and state evaluator to work together to find the correct sequence of actions to achieve the goal. Inspired by the role of visual imagination in the human design process, we supplement the visual reasoning capabilities of VLMs with "imagined" reference images from image-generation models, providing visual grounding of abstract language descriptions. In this paper, we provide empirical evidence suggesting our system can produce simple but tedious Blender editing sequences for tasks such as editing procedural materials and geometry from text and/or reference images, as well as adjusting lighting configurations for product renderings in complex scenes.
Autores: Ian Huang, Guandao Yang, Leonidas Guibas
Última atualização: 2024-08-02 00:00:00
Idioma: English
Fonte URL: https://arxiv.org/abs/2404.17672
Fonte PDF: https://arxiv.org/pdf/2404.17672
Licença: https://creativecommons.org/licenses/by/4.0/
Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.
Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.