- NeuralSVG एक ICCV 2025 शोध है जो टेक्स्ट प्रॉम्प्ट को क्रमबद्ध और संपादन-योग्य आकृतियों में बदलकर SVG जनरेट करता है
- मौजूदा टेक्स्ट-से-वेक्टर जनरेशन तरीके या तो आउटपुट को बहुत अधिक parameterized बना देते हैं, या layer structure को गौण रूप से संभालते हैं, इसलिए उन्हें वास्तव में संपादन-योग्य वेक्टर ग्राफिक्स के रूप में इस्तेमाल करना मुश्किल हो सकता है
- यह पूरे SVG दृश्य को एक छोटे MLP network के weights में encode करता है और Score Distillation Sampling(SDS) के जरिए टेक्स्ट condition के अनुसार optimize करता है
- Nested dropout regularization हर आकृति को स्वतंत्र रूप से अर्थपूर्ण भूमिका देने के लिए प्रेरित करता है, ताकि कम आकृतियाँ बचाने पर भी दृश्य की मोटी संरचना बनी रहे
- एक ही प्रशिक्षित representation के साथ inference समय पर background color के अनुसार color palette, aspect ratio, और sketch stroke count को समायोजित किया जा सकता है
संपादन-योग्य SVG जनरेशन को लक्ष्य करने वाला दृष्टिकोण
- वेक्टर ग्राफिक्स resolution-independent और editable visual content बना सकते हैं, इसलिए वे design में एक महत्वपूर्ण माध्यम हैं
- vision-language models और diffusion models की प्रगति के साथ text-to-vector graphic generation में रुचि बढ़ी है
- मौजूदा approaches में दो सीमाएँ हो सकती हैं
- आउटपुट बहुत अधिक parameterized हो जाता है
- वेक्टर ग्राफिक्स की मुख्य विशेषता layer structure को द्वितीयक लक्ष्य की तरह माना जाता है
- NeuralSVG layered SVG representation के महत्व के आधार पर, टेक्स्ट प्रॉम्प्ट से वेक्टर ग्राफिक्स जनरेट करने के लिए एक implicit neural representation प्रस्तावित करता है
छोटे MLP में दृश्य को encode करने का तरीका
- NeuralSVG, NeRF से प्रेरित होकर, पूरे दृश्य को एक छोटे MLP network के weights में encode करता है
- optimization के लिए Score Distillation Sampling(SDS) का उपयोग किया जाता है
- ordered representation बनाने के लिए dropout-आधारित regularization तकनीक अपनाई गई है
- यह हर सीखी गई आकृति को पूरे दृश्य के भीतर अर्थपूर्ण और क्रमबद्ध भूमिका देने के लिए प्रेरित करती है
- final rendering में रखी जाने वाली आकृतियों की संख्या बदलने पर भी, कम आकृतियों के साथ दृश्य की मोटी संरचना पकड़ी जा सकती है
inference समय पर dynamic control
- neural representation का उपयोग करने पर, एक ही प्रशिक्षित representation से जनरेट किया गया SVG user input के अनुसार dynamic रूप से समायोजित किया जा सकता है
- समर्थित control के उदाहरण इस प्रकार हैं
- background color बदलकर परिणाम SVG की color palette को अलग तरह से render करना
- training के दौरान देखे गए और न देखे गए, दोनों प्रकार के background colors के लिए परिणाम दिखाना
- 1:1 और 4:1 aspect ratio पर NeuralSVG को optimize करने के परिणामों की तुलना करना
- एक ही network से अलग-अलग stroke counts वाले sketches जनरेट करना
1 टिप्पणियां
Hacker News की राय
शानदार। मुझे लगता है कि अब तक बहुत ध्यान पाने वाली DALL-E, Midjourney जैसी raster generation की तुलना में vector generation की उपयोगिता कहीं ज़्यादा है
raster output को सचमुच काम लायक परिणाम तक iterative तरीके से सुधारना मुश्किल होता है, क्योंकि उसके लिए बाद में generative AI calls से upscale या inpainting करना पड़ता है। लेकिन generated vectors स्वभाव से scalable होते हैं और edit करना भी आसान होता है
खासकर ये results कम complexity वाले हैं, जहां हर shape संभवतः कम से कम points से बनी है, इसलिए बीच में इंसानी intervention करके edit करने के experience में बड़ा फायदा है। generative visuals में जटिल और messy expressions की तुलना में simplified expressions बनाना ज़्यादा कठिन और ज़्यादा मूल्यवान लगता है
बेशक, Midjourney जिन dense textures या photo-like images में अच्छा है, उनके लिए यह अभी भी सही नहीं है। पिछले साल के आसपास https://gwern.net/dropcap में Midjourney से बनाकर Recraft से गुजारने वाला थोड़ा जटिल flow इस्तेमाल करना पड़ा था, लेकिन अगर आज dropcap बनाता, तो लगता है कि latest Recraft model ही काफी होता
यह giants के shoulders पर खड़ा काम है और original मेरा नहीं है। npm पर भी इस्तेमाल किया जा सकता है
बेशक text-to-music interface के लिए ठीक है। अभी मैं मुख्य रूप से natural sounds पर केंद्रित sparse audio codec बना रहा हूं, और sparse representation को induce करने के लिए बहुत rough तौर पर physics-based assumptions का इस्तेमाल करता हूं
https://blog.cochlea.xyz/sparse-interpretable-audio-codec-pa...
मुझे ऐसी progressive generation approach बहुत पसंद है। भाषा final output को सटीक रूप से describe करने के लिए पर्याप्त precise नहीं होती, इसलिए intermediate steps generate करना बहुत powerful है
music generation में भी ऐसी approach देखना चाहूंगा। Suno जैसे tools शानदार हैं, लेकिन निजी तौर पर मुझे audio खुद generate करने से कहीं बेहतर MIDI और instrument settings generate करवाना लगेगा
यह generation tools के लिए अच्छा lesson भी हो सकता है। ठीक-ठाक starting point generate करना संभव है, लेकिन लोग असल में जो चाहते हैं वह long tail में होता है। इसलिए precise modification capability शामिल है या नहीं, यही polished demo और powerful tool के बीच का फर्क बनाता है
“Code coming soon” लिखा है, और examples काफी अच्छे हैं, लेकिन reproducibility कितनी है पता नहीं
https://github.com/chaosprint/RaveForce
RaveForce music generation experiments के लिए OpenAI Gym-style toolkit है। Suno पसंद है, लेकिन अंत में काम करने के लिए MIDI या XML, या lossless samples चाहिए होते हैं
Sonnet को SVG animation पर apply करना ही impressive था, लेकिन यह उससे कहीं ज़्यादा powerful हो सकता है
मजेदार example: https://gist.github.com/scosman/701275e737331aaab6a2acf74a52...
मैं हमेशा से सोचता आया हूं कि intermediate representation generation ही आगे का रास्ता है। concrete syntax generate करने के बजाय AST बनाना, PNG के बजाय SVG बनाना, animation के लिए लगातार images बनाने के बजाय wireframe या rigging और scripts generate करना
intermediate representation हो तो बस modify करके render करें। rendered result हो तो आखिर में AI fairy dust की एक layer छिड़क दें
शायद किसी दिन generation models इतने powerful हो जाएं कि natural language से ही fine-grained control संभव हो जाए, लेकिन तब तक इस तरीके के फायदे होंगे: controllability, Intellisense या image editors जैसे existing tools के साथ interoperability, और ऐसे छोटे व सस्ते models जिन्हें high-dimensional pixel space संभालना नहीं पड़ता
Simon Willison के LLM SVG generation test prompt “साइकिल चलाते pelican का SVG generate करो” पर यह model क्या output देगा, यह देखने की उत्सुकता है
AI की progress की speed काफी आश्चर्यजनक है और यह बेहतर होती रहेगी, इसलिए थोड़ी डरावनी भी है
कई models try किए, लेकिन बुरी तरह गलत रहे। Claude “साइकिल चलाते pelican का SVG generate करो” में फिर भी ठीक-ठाक करता है
बहुत अच्छा। मुझे bitmask को SVG में convert करना था और intermediate step छोड़ना चाहता था, इसलिए segmentation model SVG output करता है ऐसे papers ढूंढते हुए यह मिला
https://arxiv.org/abs/2311.05276
sketch generation जबरदस्त है। ऊपर से लगता है जैसे यह लगभग free में साथ आ रहा है
लगता है document authoring tools के लिए बहुत से मौके खोल देगा। सच में शानदार है, और code open होते ही जल्दी try करना चाहूंगा
अच्छा है। इसी तरह diagrams का text generation भी उम्मीद है। LLM युग का Pic/Pikchr जैसा कुछ
सच में शानदार। मैं Claude से SVG में animation डालता रहा हूं और यह काफी अच्छा रहा है