2 pontos por GN⁺ 2025-01-09 | 1 comentários | Compartilhar no WhatsApp
  • NeuralSVG é uma pesquisa da ICCV 2025 que gera SVG a partir de prompts de texto, convertendo-os em formas ordenadas e editáveis
  • Métodos anteriores de geração texto-vetor podem ser difíceis de usar como gráficos vetoriais realmente editáveis, porque a saída é excessivamente parametrizada ou porque a estrutura em camadas é tratada como algo secundário
  • A cena SVG inteira é codificada nos pesos de uma pequena rede MLP e otimizada para corresponder à condição textual com Score Distillation Sampling (SDS)
  • A regularização por dropout aninhado induz cada forma a ter um papel significativo de forma independente, preservando a estrutura aproximada da cena mesmo quando apenas um pequeno número de formas é mantido
  • Com uma única representação treinada, é possível ajustar no momento da inferência a paleta de cores de acordo com a cor de fundo, a proporção da imagem e o número de traços do esboço

Uma abordagem voltada à geração de SVG editável

  • Gráficos vetoriais são um meio importante no design por permitirem criar conteúdo visual independente de resolução e editável
  • Com os avanços dos modelos visão-linguagem e dos modelos de difusão, cresceu o interesse em geração de gráficos vetoriais a partir de texto
  • Abordagens existentes podem ter duas limitações
    • A saída é excessivamente parametrizada
    • A estrutura em camadas, que é uma função central dos gráficos vetoriais, é tratada como um objetivo secundário
  • Com base na importância de uma representação SVG com camadas, o NeuralSVG propõe uma representação neural implícita para gerar gráficos vetoriais a partir de prompts de texto

Como a cena é codificada em uma pequena MLP

  • O NeuralSVG, inspirado no NeRF, codifica a cena inteira nos pesos de uma pequena rede MLP
  • A otimização usa Score Distillation Sampling (SDS)
  • Para criar uma representação ordenada, introduz uma técnica de regularização baseada em dropout
    • Isso incentiva cada forma aprendida a ter um papel significativo e ordenado dentro da cena completa
    • Mesmo alterando o número de formas mantidas na renderização final, é possível capturar a estrutura aproximada da cena com poucas formas

Controle dinâmico no momento da inferência

  • Ao usar uma representação neural, o SVG gerado a partir de uma única representação treinada pode ser ajustado dinamicamente de acordo com a entrada do usuário
  • Exemplos de controles compatíveis incluem
    • Alterar a cor de fundo para renderizar diferentes paletas de cores no SVG resultante
    • Apresentar resultados tanto para cores de fundo observadas durante o treinamento quanto para cores de fundo não observadas
    • Comparar os resultados da otimização do NeuralSVG com proporções de imagem 1:1 e 4:1
    • Gerar esboços com diferentes números de traços usando uma única rede

Resultados de avaliação e materiais

  • Em avaliações qualitativas e quantitativas, o NeuralSVG apresentou resultados melhores que métodos anteriores em geração de SVG estruturada e flexível
  • Materiais do projeto
    • arXiv: artigo
    • Code: repositório de código

1 comentários

 
GN⁺ 2025-01-09
Opiniões no Hacker News
  • Excelente. Acho que a utilidade da geração vetorial é muito maior do que a da geração raster, como DALL-E e Midjourney, que até agora receberam muita atenção
    Saídas raster são difíceis de lidar porque, para iterar até um resultado realmente utilizável, é preciso fazer upscale ou inpainting com chamadas posteriores a IA generativa, enquanto vetores gerados são, por natureza, escaláveis e fáceis de editar
    Em especial, esses resultados têm baixa complexidade, com cada forma composta pelo menor número possível de pontos, o que traz uma grande vantagem para a experiência de edição com intervenção humana. Em visuais generativos, acho que criar representações simplificadas é mais difícil e mais valioso do que criar representações complexas e bagunçadas

    • Fico curioso se você viu recentemente https://www.recraft.ai/. A qualidade de imagem da saída vetorial parece ter melhorado bastante
      Claro, ainda não é adequada para criar imagens fotográficas ou com texturas densas, que o Midjourney faz bem. Mais ou menos no ano passado, em https://gwern.net/dropcap, era preciso usar um fluxo meio complicado, criando no Midjourney e passando pelo Recraft, mas, se eu fosse criar uma capitular hoje, acho que o modelo mais recente do Recraft por si só bastaria
    • Também existe a possibilidade de usar esse tipo de imagem como guia para um modelo de rasterização. Primeiro se cria uma imagem fácil de manipular e compor e, depois que a composição estiver satisfatória, adicionam-se os detalhes
    • Também tenho um pequeno projeto para representações complexas e bagunçadas ;) https://github.com/KodeMunkie/shapesnap
      É um trabalho sobre os ombros de gigantes, e o original não é meu. Também dá para usar via npm
    • Sempre fico imaginando como seria útil se a Sora.ai gerasse primeiro modelos 3D para renderização ao criar animações
    • Concordo totalmente. A codificação em blocos e as abordagens rasterizadas amplamente difundidas em codecs de áudio em geral, e até mesmo os métodos modernos de “redes neurais”, parecem um beco sem saída para o controle fino que músicos querem
      Claro, funcionam bem para interfaces texto-para-música. No momento estou criando um codec de áudio esparso, focado principalmente em sons naturais, e uso pressupostos baseados em física, ainda que de forma bem grosseira, para induzir uma representação esparsa
      https://blog.cochlea.xyz/sparse-interpretable-audio-codec-pa...
  • Gosto muito desse modo de geração incremental. A linguagem não é precisa o suficiente para descrever exatamente o produto final, então gerar etapas intermediárias é uma abordagem muito poderosa
    Gostaria de ver essa abordagem também na geração de música. Ferramentas como o Suno são legais, mas, pessoalmente, eu preferiria muito mais que elas gerassem MIDI e configurações de instrumentos em vez do áudio em si
    Talvez seja uma boa lição para ferramentas generativas. É possível gerar um bom ponto de partida, mas o que as pessoas realmente querem está na cauda longa. Por isso, incluir capacidade de ajustes precisos é o que diferencia uma demo pronta de uma ferramenta poderosa
    Está escrito “Code coming soon”, e os exemplos são muito bons, mas não sei qual é o grau de reprodutibilidade

    • Se você está procurando uma ferramenta que gere MIDI e configurações de instrumentos, algo como https://www.aiva.ai talvez seja o que procura
    • Só MIDI não basta. Quero MIDI + filtros, além de uma faixa vocal separada e trilhas sonoras personalizadas
    • Bom ponto. Alguns dias atrás pensei em retomar este projeto com Glicol
      https://github.com/chaosprint/RaveForce
      RaveForce é um conjunto de ferramentas no estilo OpenAI Gym para experimentos de geração musical. Gosto do Suno, mas, no fim, para trabalhar preciso de MIDI, XML ou amostras sem perda
    • Seria muito legal ter MIDI microtonal
  • Só aplicar o Sonnet a animações SVG já era impressionante, mas isto parece poder ser muito mais poderoso
    Exemplo divertido: https://gist.github.com/scosman/701275e737331aaab6a2acf74a52...

  • Sempre achei que gerar representações intermediárias era o caminho a seguir. Criar ASTs em vez de gerar sintaxe concreta, SVGs em vez de PNGs, wireframes ou rigging e scripts em vez de uma sequência de imagens para animação
    Com uma representação intermediária, basta modificar e renderizar. Se você já tem o resultado renderizado, no fim é só polvilhar uma camada de pozinho mágico de IA
    Talvez um dia os modelos generativos sejam fortes o suficiente para permitir controle fino apenas com linguagem natural, mas, até lá, este método parece ter vantagens em controlabilidade, interoperabilidade com ferramentas existentes como Intellisense ou editores de imagem, e modelos menores e mais baratos que não precisam lidar com espaços de pixels de alta dimensão

  • Estou curioso para ver que resultado este modelo produziria para o prompt de teste de geração de SVG por LLM do Simon Willison: “gere um SVG de um pelicano andando de bicicleta”
    A velocidade de evolução da IA é bastante impressionante, e ela vai continuar melhorando, o que também dá um pouco de medo

    • Pedi ao Claude e ao ChatGPT o3 para “gerar um SVG dos Estados Unidos continentais com contorno preto”
      Tentei vários modelos, mas eles erraram de forma desastrosa. O Claude se sai razoavelmente bem em “gere um SVG de um pelicano andando de bicicleta”
  • Muito bom. Eu precisava converter uma máscara de bits em SVG e queria pular uma etapa intermediária, então encontrei isto enquanto procurava artigos em que um modelo de segmentação produz SVG
    https://arxiv.org/abs/2311.05276

  • A geração de esboços é incrível. E, além disso, parece vir quase de graça

  • Parece que vai abrir muitas oportunidades para ferramentas de documentação. Muito legal, e quero testar assim que o código for publicado

    • Fico curioso para saber como isso poderia melhorar a documentação. Pode dar algumas ideias?
  • Gostei. De modo semelhante, também espero ver geração de texto para diagramas. Algo como Pic/Pikchr na era dos LLMs

    • Não é PIC, e ainda não é muito adequado para diagramas complexos, mas dá para criar alguns dos tipos de gráfico compatíveis com o Chart Vizzard da Vizzlo, por exemplo gráficos de Gantt, e continuar editando no editor de gráficos: https://vizzlo.com/ai
    • Tive algum sucesso convertendo SQL em diagramas Mermaid Markdown
  • Muito legal. Tenho usado o Claude para colocar animações em SVG e tem funcionado bastante bem

    • Se puder compartilhar, gostaria de ver exemplos e o fluxo de trabalho