2 points par GN⁺ 2025-01-09 | 1 commentaires | Partager sur WhatsApp
  • NeuralSVG est une recherche ICCV 2025 qui convertit des prompts textuels en SVG composés de formes ordonnées et éditables
  • Les méthodes existantes de génération texte-vers-vecteur produisent souvent des sorties surparamétrées ou traitent la structure en calques comme un objectif secondaire, ce qui peut les rendre difficiles à utiliser comme véritables graphismes vectoriels éditables
  • La scène SVG entière est encodée dans les poids d’un petit réseau MLP, puis optimisée pour correspondre à la condition textuelle avec le Score Distillation Sampling (SDS)
  • La régularisation par dropout imbriqué pousse chaque forme à jouer un rôle significatif de manière indépendante, de sorte que la structure générale de la scène reste préservée même lorsqu’on ne conserve qu’un petit nombre de formes
  • À partir d’une seule représentation entraînée, il est possible d’ajuster au moment de l’inférence la palette de couleurs selon la couleur de fond, le ratio d’aspect et le nombre de traits d’un croquis

Une approche orientée vers la génération de SVG éditables

  • Les graphismes vectoriels constituent un médium important dans le design, car ils permettent de créer des contenus visuels indépendants de la résolution et éditables
  • Les progrès des modèles vision-langage et des modèles de diffusion ont accru l’intérêt pour la génération de graphismes vectoriels à partir de texte
  • Les approches existantes peuvent présenter deux limites
    • une sortie surparamétrée
    • le traitement de la structure en calques, pourtant fonction clé des graphismes vectoriels, comme un objectif secondaire
  • En s’appuyant sur l’importance d’une représentation SVG avec calques, NeuralSVG propose une représentation neuronale implicite pour générer des graphismes vectoriels à partir de prompts textuels

Encoder la scène dans un petit MLP

  • NeuralSVG s’inspire de NeRF et encode la scène entière dans les poids d’un petit réseau MLP
  • L’optimisation utilise le Score Distillation Sampling (SDS)
  • Pour produire une représentation ordonnée, la méthode introduit une technique de régularisation fondée sur le dropout
    • elle encourage chaque forme apprise à avoir un rôle significatif et ordonné dans l’ensemble de la scène
    • même en modifiant le nombre de formes conservées dans le rendu final, un petit nombre de formes suffit à capturer la structure globale de la scène

Contrôle dynamique au moment de l’inférence

  • L’utilisation d’une représentation neuronale permet d’ajuster dynamiquement le SVG généré à partir d’une seule représentation entraînée selon les entrées utilisateur
  • Exemples de contrôles pris en charge
    • changer la couleur de fond pour rendre une palette de couleurs différente dans le SVG résultant
    • présenter des résultats à la fois pour des couleurs de fond observées pendant l’entraînement et non observées
    • comparer les résultats de NeuralSVG optimisé avec des ratios d’aspect 1:1 et 4:1
    • générer des croquis avec différents nombres de traits à partir d’un seul réseau

Résultats d’évaluation et ressources

  • Dans les évaluations qualitatives et quantitatives, NeuralSVG montre de meilleurs résultats que les méthodes existantes pour la génération de SVG structurés et flexibles
  • Ressources du projet

1 commentaires

 
GN⁺ 2025-01-09
Avis de Hacker News
  • Excellent. Je pense que la génération vectorielle est bien plus utile que la génération raster comme DALL-E ou Midjourney, qui ont suscité beaucoup d’attention jusqu’ici.
    Les sorties raster sont difficiles à exploiter, car pour les améliorer de manière itérative jusqu’à un résultat vraiment utilisable, il faut ensuite faire d’autres appels à de l’IA générative pour de l’upscaling ou de l’inpainting. En revanche, les vecteurs générés sont intrinsèquement redimensionnables et faciles à modifier.
    En particulier, ces résultats ont une faible complexité, chaque forme étant composée d’aussi peu de points que possible, ce qui est un gros avantage pour une expérience où un humain intervient pour les retoucher. Dans les visuels génératifs, produire une représentation simplifiée est, à mon avis, plus difficile et plus précieux que de produire une représentation complexe et brouillonne.

    • Je me demande si vous avez vu récemment https://www.recraft.ai/. La qualité d’image des sorties vectorielles semble s’être nettement améliorée.
      Bien sûr, cela reste peu adapté si l’objectif est de produire des textures denses ou des images photoréalistes, domaine où Midjourney excelle. L’an dernier, pour https://gwern.net/dropcap, il fallait utiliser un flux assez complexe en passant par Midjourney puis Recraft, mais si je devais créer des lettrines aujourd’hui, le dernier modèle de Recraft suffirait probablement.
    • Il y a aussi la possibilité d’utiliser ce type d’images comme guide pour un modèle de rasterisation. On crée d’abord une image facile à manipuler et à composer, puis, une fois la composition satisfaisante, on ajoute les détails.
    • Il existe aussi un petit projet pour les représentations complexes et brouillonnes ;) https://github.com/KodeMunkie/shapesnap
      C’est un travail qui s’appuie sur les épaules de géants, et l’original n’est pas de moi. Il est aussi utilisable via npm.
    • Je me prends toujours à imaginer à quel point ce serait utile si Sora.ai générait d’abord des modèles 3D pour le rendu lorsqu’il crée des animations.
    • Tout à fait d’accord. Le codage par blocs et les approches de type rasterisation, très répandus dans les codecs audio en général, et même les méthodes modernes « neuronales », ressemblent à une impasse pour le contrôle fin que recherchent les musiciens.
      Bien sûr, c’est très bien pour une interface texte-musique. Pour l’instant, je travaille surtout sur un codec audio parcimonieux axé sur les sons naturels, avec des hypothèses physiques très grossières pour encourager une représentation parcimonieuse.
      https://blog.cochlea.xyz/sparse-interpretable-audio-codec-pa...
  • J’aime beaucoup ce type de génération progressive. Le langage n’est pas assez précis pour décrire exactement le produit final, donc générer des étapes intermédiaires est une approche très puissante.
    J’aimerais voir ce type d’approche dans la génération musicale. Des outils comme Suno sont impressionnants, mais personnellement je préférerais de loin qu’ils génèrent du MIDI et des réglages d’instruments plutôt que l’audio lui-même.
    C’est peut-être une bonne leçon pour les outils génératifs. Il est possible de générer un bon point de départ, mais ce que les gens veulent vraiment se trouve dans la longue traîne. C’est donc la capacité à effectuer des modifications précises qui fait la différence entre une démo soignée et un outil puissant.
    Il est indiqué « Code coming soon » ; les exemples sont assez bons, mais je ne sais pas à quel point ils sont reproductibles.

    • Si vous cherchez un outil qui génère du MIDI et des réglages d’instruments, quelque chose comme https://www.aiva.ai pourrait convenir.
    • Le MIDI seul ne suffit pas. Je veux MIDI + filtres, ainsi que des pistes vocales séparées et des pistes sonores personnalisées.
    • Bon point. Il y a quelques jours, j’ai pensé à relancer ce projet avec Glicol.
      https://github.com/chaosprint/RaveForce
      RaveForce est une boîte à outils de style OpenAI Gym pour expérimenter la génération musicale. J’aime Suno, mais au final, pour travailler dessus, il me faut du MIDI, du XML ou des échantillons sans perte.
    • Du MIDI microtonal, ce serait vraiment génial.
  • Le simple fait d’appliquer Sonnet à des animations SVG était déjà impressionnant, mais ceci pourrait être beaucoup plus puissant.
    Exemple amusant : https://gist.github.com/scosman/701275e737331aaab6a2acf74a52...

  • J’ai toujours pensé que la génération de représentations intermédiaires était la voie à suivre. Créer un AST au lieu de générer une syntaxe concrète, produire du SVG au lieu du PNG, générer des wireframes ou du rigging et des scripts au lieu d’images successives pour une animation.
    Avec une représentation intermédiaire, il suffit de la modifier puis de la rendre. Une fois le rendu obtenu, on peut saupoudrer une dernière couche de poudre magique d’IA.
    Peut-être qu’un jour les modèles génératifs seront assez puissants pour permettre un contrôle fin uniquement en langage naturel, mais d’ici là cette méthode semble offrir de meilleurs atouts : la contrôlabilité, l’interopérabilité avec les outils existants comme Intellisense ou les éditeurs d’images, et des modèles plus petits et moins coûteux qui n’ont pas à gérer un espace de pixels de grande dimension.

  • J’ai hâte de voir ce que ce modèle donne sur le prompt de test de Simon Willison pour la génération SVG par LLM : « générer un SVG d’un pélican à vélo ».
    Le rythme des progrès de l’IA est assez stupéfiant, et cela va continuer à s’améliorer, ce qui est aussi un peu effrayant.

    • J’ai demandé à Claude et à ChatGPT o3 de « générer un SVG de la partie continentale des États-Unis avec un contour noir ».
      J’ai essayé plusieurs modèles, mais ils se sont lamentablement trompés. Claude s’en sort à peu près correctement avec « générer un SVG d’un pélican à vélo ».
  • Très bien. Je devais convertir un masque binaire en SVG et je voulais éviter l’étape intermédiaire ; en cherchant un article où un modèle de segmentation produit du SVG, je suis tombé sur celui-ci.
    https://arxiv.org/abs/2311.05276

  • La génération de croquis est incroyable. Et en plus, on dirait que cela vient presque gratuitement.

  • Cela devrait ouvrir beaucoup de possibilités pour les outils de rédaction de documents. C’est vraiment excellent, et j’ai hâte de l’essayer dès que le code sera publié.

    • Je me demande comment cela pourrait renforcer la rédaction de documents. Vous avez quelques idées ?
  • Bien. Dans le même esprit, j’attends aussi la génération textuelle de diagrammes. Quelque chose comme Pic/Pikchr à l’ère des LLM.

    • Ce n’est pas PIC et ce n’est pas encore très adapté aux diagrammes complexes, mais avec Chart Vizzard de Vizzlo, on peut créer certains types de graphiques pris en charge, par exemple des diagrammes de Gantt, puis continuer à les modifier dans l’éditeur de graphiques : https://vizzlo.com/ai
    • J’ai obtenu un certain succès en convertissant du SQL en diagrammes Mermaid Markdown.
  • Vraiment cool. J’ai ajouté des animations à des SVG avec Claude, et cela marchait plutôt bien.

    • Si vous pouvez les partager, j’aimerais voir des exemples et le processus de travail.