2 puntos por GN⁺ 2025-01-09 | 1 comentarios | Compartir por WhatsApp
  • NeuralSVG es una investigación de ICCV 2025 que convierte prompts de texto en formas ordenadas y editables para generar SVG
  • Los métodos existentes de generación de texto a vector pueden ser difíciles de usar como gráficos vectoriales realmente editables porque la salida está excesivamente parametrizada o porque tratan la estructura por capas como algo secundario
  • Codifica toda la escena SVG en los pesos de una pequeña red MLP y la optimiza para ajustarse a la condición de texto con Score Distillation Sampling (SDS)
  • La regularización de dropout anidado guía a que cada forma tenga un rol significativo e independiente, de modo que incluso si se dejan pocas formas se mantiene la estructura general de la escena
  • Con una sola representación entrenada, en tiempo de inferencia se pueden ajustar la paleta de colores según el color de fondo, la relación de aspecto y la cantidad de trazos del boceto

Un enfoque orientado a generar SVG editables

  • Los gráficos vectoriales son un medio importante en diseño porque permiten crear contenido visual editable e independiente de la resolución
  • Con los avances de los modelos visión-lenguaje y los modelos de difusión, ha crecido el interés por la generación de gráficos vectoriales a partir de texto
  • Los enfoques existentes pueden tener dos limitaciones
    • La salida está excesivamente parametrizada
    • Tratan la estructura por capas, una función central de los gráficos vectoriales, como un objetivo secundario
  • Basado en la importancia de una representación SVG con capas, NeuralSVG propone una representación neuronal implícita para generar gráficos vectoriales a partir de prompts de texto

Cómo codifica la escena en una MLP pequeña

  • Inspirado en NeRF, NeuralSVG codifica toda la escena en los pesos de una pequeña red MLP
  • Para la optimización utiliza Score Distillation Sampling (SDS)
  • Para crear una representación ordenada, introduce una técnica de regularización basada en dropout
    • Guía a que cada forma aprendida tenga un papel significativo y ordenado dentro de la escena completa
    • Incluso si se cambia la cantidad de formas que se conservan en el render final, se puede captar la estructura general de la escena con pocas formas

Control dinámico en tiempo de inferencia

  • Al usar una representación neuronal, el SVG generado a partir de una sola representación entrenada puede ajustarse dinámicamente según la entrada del usuario
  • Algunos ejemplos de control soportado son los siguientes
    • Cambiar el color de fondo para renderizar una paleta de colores distinta en el SVG resultante
    • Presentar resultados tanto para colores de fondo observados durante el entrenamiento como para colores no observados
    • Comparar resultados de NeuralSVG optimizado con relaciones de aspecto 1:1 y 4:1
    • Generar bocetos con distintas cantidades de trazos usando una sola red

Resultados de evaluación y materiales

  • En evaluaciones cualitativas y cuantitativas, NeuralSVG muestra mejores resultados que los métodos existentes en generación de SVG estructurada y flexible
  • Materiales del proyecto
    • arXiv: artículo
    • Code: repositorio de código

1 comentarios

 
GN⁺ 2025-01-09
Comentarios de Hacker News
  • Excelente. Creo que la utilidad de la generación vectorial es mucho mayor que la de la generación ráster, como DALL-E o Midjourney, que hasta ahora han recibido mucha atención.
    La salida ráster es difícil de manejar porque, para iterar hasta obtener resultados realmente útiles, hay que hacer upscale o inpainting con llamadas posteriores a IA generativa. En cambio, los vectores generados son, por naturaleza, escalables y fáciles de editar.
    En especial, estos resultados tienen baja complejidad, con cada figura compuesta por la menor cantidad posible de puntos, lo que ofrece una gran ventaja para la experiencia de edición con intervención humana. En visuales generativos, creo que producir representaciones simplificadas es más difícil y más valioso que generar expresiones complejas y desordenadas.

    • Me pregunto si viste recientemente https://www.recraft.ai/. Parece que la calidad de imagen de la salida vectorial mejoró bastante.
      Claro que todavía no es adecuado para crear imágenes fotográficas o texturas densas, que es donde Midjourney destaca. Hace más o menos un año, en https://gwern.net/dropcap había que usar un flujo algo complejo: generar con Midjourney y luego pasar por Recraft. Pero si hoy hiciera capitulares, creo que bastaría con el modelo más reciente de Recraft.
    • También existe la posibilidad de usar este tipo de imágenes como guía para un modelo de rasterización. Primero se crea una imagen fácil de manipular y combinar, y luego, cuando la composición ya satisface, se agregan los detalles.
    • También hay un pequeño proyecto para expresiones complejas y desordenadas ;) https://github.com/KodeMunkie/shapesnap
      Es un trabajo construido sobre hombros de gigantes y el original no es mío. También se puede usar desde npm.
    • Siempre imagino lo útil que sería si Sora.ai, al crear animaciones, generara primero modelos 3D para renderizar.
    • Totalmente de acuerdo. La codificación por bloques y los enfoques tipo rasterización, muy extendidos en los códecs de audio en general, e incluso los métodos modernos “neuronales”, se sienten como un callejón sin salida para el control fino que quieren los músicos.
      Claro, están bien para interfaces de texto a música. Ahora estoy creando un códec de audio disperso enfocado sobre todo en sonidos naturales, usando supuestos basados en física, aunque sea de forma muy aproximada, para inducir una representación dispersa.
      https://blog.cochlea.xyz/sparse-interpretable-audio-codec-pa...
  • Me gustan mucho estos métodos de generación incremental. El lenguaje no es lo suficientemente preciso para describir con exactitud el producto final, así que generar pasos intermedios es muy potente.
    Me gustaría ver este enfoque también en la generación musical. Herramientas como Suno son geniales, pero personalmente preferiría mucho más que generaran MIDI y configuraciones de instrumentos en lugar del audio en sí.
    También puede ser una buena lección para las herramientas generativas. Es posible generar un buen punto de partida, pero lo que la gente realmente quiere está en la larga cola. Por eso, incluir capacidad de ajuste preciso marca la diferencia entre una demo preparada y una herramienta potente.
    Dice “Code coming soon”, y los ejemplos son bastante buenos, pero no sé qué tan reproducibles serán.

    • Si buscas una herramienta que genere MIDI y configuraciones de instrumentos, algo como https://www.aiva.ai podría ser lo indicado.
    • MIDI por sí solo no alcanza. Quiero MIDI + filtros, además de una pista vocal separada y una pista de sonido personalizada.
    • Buen punto. Hace unos días pensé en retomar este proyecto con Glicol.
      https://github.com/chaosprint/RaveForce
      RaveForce es un conjunto de herramientas estilo OpenAI Gym para experimentos de generación musical. Me gusta Suno, pero al final, para trabajar, necesito MIDI, XML o muestras sin pérdida.
    • Sería realmente genial tener MIDI microtonal.
  • Solo aplicar Sonnet a animaciones SVG ya era impresionante, pero esto parece poder ser mucho más potente.
    Ejemplo divertido: https://gist.github.com/scosman/701275e737331aaab6a2acf74a52...

  • Siempre pensé que la generación de representaciones intermedias era el camino a seguir. Crear un AST en lugar de generar sintaxis concreta, crear SVG en lugar de PNG, generar wireframes o rigging y scripts en vez de imágenes consecutivas para animación.
    Si tienes una representación intermedia, la modificas y la renderizas. Si ya tienes el render, al final le espolvoreas una capa de polvo mágico de IA.
    Quizás algún día los modelos generativos sean lo bastante potentes como para permitir control fino solo con lenguaje natural, pero hasta entonces creo que este enfoque tendrá ventajas en controlabilidad, interoperabilidad con herramientas existentes como Intellisense o editores de imágenes, y modelos más pequeños y baratos que no tengan que lidiar con espacios de píxeles de alta dimensión.

  • Tengo curiosidad por ver qué resultado daría este modelo con el prompt de prueba de Simon Willison para generación SVG con LLM: “genera un SVG de un pelícano andando en bicicleta”.
    El ritmo de avance de la IA es bastante sorprendente y seguirá mejorando, lo que también da un poco de miedo.

    • Les pedí a Claude y ChatGPT o3: “genera un SVG de los Estados Unidos continentales con contorno negro”.
      Probé varios modelos, pero se equivocaron de forma desastrosa. Claude lo hace más o menos bien con “genera un SVG de un pelícano andando en bicicleta”.
  • Muy bueno. Tenía que convertir bitmasks a SVG y quería saltarme el paso intermedio, así que estaba buscando papers donde un modelo de segmentación produzca SVG, y encontré esto.
    https://arxiv.org/abs/2311.05276

  • La generación de bocetos es impresionante. Además, parece venir casi gratis.

  • Creo que abrirá muchas oportunidades para herramientas de creación de documentos. Es realmente genial, y quiero probarlo pronto cuando publiquen el código.

    • Me pregunto cómo podría reforzar la creación de documentos. ¿Puedes dar algunas ideas?
  • Bien. En una línea similar, también espero la generación de texto para diagramas. Algo como Pic/Pikchr en la era de los LLM.

    • No es PIC y todavía no es muy adecuado para diagramas complejos, pero con Chart Vizzard de Vizzlo se pueden crear algunos de los tipos de gráficos compatibles, por ejemplo diagramas de Gantt, y seguir editándolos en el editor de gráficos: https://vizzlo.com/ai
    • He tenido cierto éxito convirtiendo SQL en diagramas Mermaid Markdown.
  • Muy genial. He estado usando Claude para agregar animaciones a SVG y funcionó bastante bien.

    • Si puedes compartirlo, me gustaría ver ejemplos y el flujo de trabajo.