NeuralSVG: การแทนค่าแบบแฝงสำหรับการสร้างข้อความเป็นเวกเตอร์
(sagipolaczek.github.io)- NeuralSVG เป็นงานวิจัยจาก ICCV 2025 ที่สร้าง SVG โดยแปลงพรอมป์ต์ข้อความให้เป็นรูปทรงที่มีลำดับและแก้ไขได้
- วิธีสร้างข้อความเป็นเวกเตอร์แบบเดิมอาจให้ผลลัพธ์ที่ มีพารามิเตอร์มากเกินไป หรือมองโครงสร้างเลเยอร์เป็นเรื่องรอง ทำให้ใช้งานเป็นเวกเตอร์กราฟิกที่แก้ไขได้จริงได้ยาก
- ระบบเข้ารหัสทั้งฉาก SVG ไว้ในค่าน้ำหนักของเครือข่าย MLP ขนาดเล็ก และปรับให้เหมาะกับเงื่อนไขข้อความด้วย Score Distillation Sampling (SDS)
- การทำ regularization แบบ nested dropout ช่วยให้แต่ละรูปทรงมีบทบาทที่มีความหมายอย่างอิสระ จึงยังคงโครงสร้างคร่าว ๆ ของฉากไว้ได้แม้จะเหลือรูปทรงเพียงไม่กี่ชิ้น
- การแทนค่าที่ฝึกเพียงชุดเดียวสามารถปรับ ชุดสี, อัตราส่วนภาพ และจำนวนเส้นสเก็ตช์ได้ในช่วง inference ตามสีพื้นหลัง
แนวทางที่มุ่งสร้าง SVG ที่แก้ไขได้
- เวกเตอร์กราฟิกเป็นสื่อสำคัญในงานออกแบบ เพราะสามารถสร้างคอนเทนต์ภาพที่ไม่ขึ้นกับความละเอียดและแก้ไขได้
- ความก้าวหน้าของโมเดล vision-language และ diffusion ทำให้ความสนใจต่อการ สร้างเวกเตอร์กราฟิกจากข้อความ เพิ่มขึ้น
- แนวทางเดิมอาจมีข้อจำกัดหลัก 2 ประการ
- เอาต์พุต มีพารามิเตอร์มากเกินไป
- มอง โครงสร้างเลเยอร์ ซึ่งเป็นความสามารถสำคัญของเวกเตอร์กราฟิก เป็นเพียงเป้าหมายรอง
- NeuralSVG เสนอ การแทนค่าด้วยโครงข่ายประสาทแบบแฝง สำหรับสร้างเวกเตอร์กราฟิกจากพรอมป์ต์ข้อความ โดยตั้งอยู่บนความสำคัญของการแทนค่า SVG แบบมีเลเยอร์
วิธีเข้ารหัสฉากลงใน MLP ขนาดเล็ก
- NeuralSVG ได้แรงบันดาลใจจาก NeRF โดยเข้ารหัสทั้งฉากไว้ในค่าน้ำหนักของเครือข่าย MLP ขนาดเล็ก
- การปรับให้เหมาะสมใช้ Score Distillation Sampling (SDS)
- เพื่อสร้างการแทนค่าที่มีลำดับ จึงนำเทคนิค regularization แบบอิง dropout มาใช้
- ช่วยให้แต่ละรูปทรงที่เรียนรู้มีบทบาทที่มีความหมายและมีลำดับภายในฉากทั้งหมด
- แม้จะเปลี่ยนจำนวนรูปทรงที่คงไว้ในการเรนเดอร์สุดท้าย ก็ยังจับโครงสร้างคร่าว ๆ ของฉากได้ด้วยรูปทรงเพียงไม่กี่ชิ้น
การควบคุมแบบไดนามิกในช่วง inference
- การใช้การแทนค่าด้วยโครงข่ายประสาททำให้สามารถปรับ SVG ที่สร้างจากการแทนค่าที่ฝึกเพียงชุดเดียวได้แบบไดนามิกตาม อินพุตของผู้ใช้
- ตัวอย่างการควบคุมที่รองรับมีดังนี้
- เปลี่ยนสีพื้นหลังเพื่อเรนเดอร์ ชุดสี ของ SVG ผลลัพธ์ให้แตกต่างกัน
- แสดงผลทั้งสำหรับสีพื้นหลังที่พบระหว่างการฝึกและสีพื้นหลังที่ไม่เคยพบ
- เปรียบเทียบผลการปรับ NeuralSVG ให้เหมาะกับ อัตราส่วนภาพ 1:1 และ 4:1
- สร้าง สเก็ตช์ ที่มีจำนวนเส้นต่างกันด้วยเครือข่ายเดียว
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
ยอดเยี่ยมมาก ผมมองว่าประโยชน์ของการสร้างเวกเตอร์มีมากกว่าการ สร้างแบบแรสเตอร์ อย่าง DALL-E หรือ Midjourney ที่ได้รับความสนใจอย่างมากมาจนถึงตอนนี้มาก
เอาต์พุตแบบแรสเตอร์จัดการยาก เพราะถ้าจะปรับปรุงซ้ำ ๆ ให้ได้ผลลัพธ์ที่ใช้งานได้จริง มักต้องเรียก AI สร้างภาพต่อเพื่ออัปสเกลหรืออินเพนต์ แต่ เวกเตอร์ที่สร้างขึ้น นั้นโดยเนื้อแท้แล้วขยายขนาดได้และแก้ไขง่าย
โดยเฉพาะผลลัพธ์เหล่านี้มีความซับซ้อนต่ำ แต่ละรูปทรงประกอบด้วยจุดน้อยที่สุดเท่าที่เป็นไปได้ จึงมีข้อดีมากสำหรับประสบการณ์ที่มนุษย์เข้ามาแก้ไขกลางทางได้ ในงานภาพเชิงกำเนิด ผมมองว่าการสร้างการนำเสนอที่เรียบง่ายนั้นยากกว่าและมีคุณค่ามากกว่าการสร้างการนำเสนอที่ซับซ้อนและรก
แน่นอนว่ายังไม่เหมาะสำหรับการสร้างภาพที่มีเท็กซ์เจอร์แน่น ๆ หรือภาพเหมือนภาพถ่ายแบบที่ Midjourney ถนัด ช่วงปีที่แล้วใน https://gwern.net/dropcap ยังต้องใช้เวิร์กโฟลว์ค่อนข้างซับซ้อน คือสร้างด้วย Midjourney แล้วผ่าน Recraft แต่ถ้าจะสร้างตัวอักษรขึ้นต้นย่อหน้าตอนนี้ น่าจะใช้แค่โมเดล Recraft รุ่นล่าสุดก็พอแล้ว
เป็นงานที่ยืนอยู่บนไหล่ของยักษ์ และต้นฉบับไม่ใช่ของผม ใช้ผ่าน npm ได้ด้วย
แน่นอนว่าสำหรับอินเทอร์เฟซข้อความสู่ดนตรีก็ถือว่าโอเค ตอนนี้ผมกำลังทำโคเดกเสียงแบบ sparse ที่เน้นเสียงธรรมชาติเป็นหลัก และใช้สมมติฐานเชิงฟิสิกส์แบบหยาบมาก ๆ เพื่อกระตุ้นให้เกิดการแทนค่าแบบ sparse
https://blog.cochlea.xyz/sparse-interpretable-audio-codec-pa...
ผมชอบ วิธีสร้างแบบค่อยเป็นค่อยไป แบบนี้มาก ภาษาไม่แม่นยำพอที่จะอธิบายผลลัพธ์สุดท้ายได้อย่างถูกต้อง ดังนั้นการสร้างขั้นตอนกลางจึงทรงพลังมาก
อยากเห็นแนวทางแบบนี้ในการสร้างดนตรีด้วย เครื่องมืออย่าง Suno นั้นเจ๋ง แต่ส่วนตัวแล้วผมอยากได้เครื่องมือที่สร้าง MIDI และการตั้งค่าเครื่องดนตรี มากกว่าเสียงจริงเองมาก
นี่อาจเป็นบทเรียนที่ดีสำหรับเครื่องมือสร้างสรรค์ การสร้างจุดเริ่มต้นที่ใช้ได้พอสมควรนั้นเป็นไปได้ แต่สิ่งที่ผู้คนต้องการจริง ๆ อยู่ใน long tail ดังนั้นความสามารถในการปรับแก้อย่างแม่นยำจึงเป็นสิ่งที่สร้างความต่างระหว่างเดโมที่เตรียมไว้กับเครื่องมือที่ทรงพลัง
เห็นเขียนว่า “Code coming soon” ตัวอย่างค่อนข้างดี แต่ไม่รู้ว่าทำซ้ำได้มากแค่ไหน
https://github.com/chaosprint/RaveForce
RaveForce เป็นชุดเครื่องมือสไตล์ OpenAI Gym สำหรับทดลองสร้างดนตรี ผมชอบ Suno แต่ท้ายที่สุดถ้าจะทำงานต่อก็ต้องมี MIDI หรือ XML หรือไม่ก็ซンプ์เปิลแบบไม่สูญเสียข้อมูล
แค่เอา Sonnet ไปใช้กับแอนิเมชัน SVG ก็น่าประทับใจแล้ว แต่นี่ดูเหมือนจะทรงพลังกว่านั้นมาก
ตัวอย่างสนุก ๆ: https://gist.github.com/scosman/701275e737331aaab6a2acf74a52...
ผมคิดมาตลอดว่า การสร้างตัวแทนระดับกลาง คือหนทางข้างหน้า เช่น สร้าง AST แทนการสร้างไวยากรณ์รูปธรรม สร้าง SVG แทน PNG และสร้างไวร์เฟรมหรือ rigging กับสคริปต์แทนการสร้างภาพต่อเนื่องสำหรับแอนิเมชัน
ถ้ามีตัวแทนระดับกลาง ก็แค่แก้ไขแล้วเรนเดอร์ เมื่อมีผลเรนเดอร์แล้ว ค่อยโรยผงวิเศษ AI ทับอีกชั้นในตอนท้าย
สักวันหนึ่งโมเดลเชิงกำเนิดอาจทรงพลังพอจนควบคุมรายละเอียดได้ด้วยภาษาธรรมชาติล้วน ๆ แต่ก่อนจะถึงตอนนั้น วิธีนี้น่าจะมีข้อดีคือควบคุมได้ ทำงานร่วมกับเครื่องมือเดิมอย่าง Intellisense หรือโปรแกรมแก้ไขภาพได้ และใช้โมเดลที่เล็กกว่าและถูกกว่าเพราะไม่ต้องรับมือกับพื้นที่พิกเซลมิติสูง
อยากเห็นว่าโมเดลนี้จะให้ผลอย่างไรกับพรอมป์ทดสอบการสร้าง SVG ด้วย LLM ของ Simon Willison ที่ว่า “สร้าง SVG ของนกกระทุงขี่จักรยาน”
ความเร็วในการพัฒนาของ AI น่าทึ่งมากและคงจะดีขึ้นเรื่อย ๆ ซึ่งก็ทำให้น่ากลัวอยู่เล็กน้อย
ลองหลายโมเดลแล้ว แต่ผิดแบบเละเทะ Claude ทำ “สร้าง SVG ของนกกระทุงขี่จักรยาน” ได้พอใช้
ดีมาก ผมต้องแปลงบิตแมสก์เป็น SVG และอยากข้ามขั้นตอนกลาง เลยไปหางานวิจัยที่ ให้โมเดล segmentation ส่งออก SVG แล้วเจออันนี้
https://arxiv.org/abs/2311.05276
การสร้างสเก็ตช์ สุดยอดมาก แถมดูเหมือนแทบจะได้มาแบบฟรี ๆ
น่าจะเปิดโอกาสมากมายให้เครื่องมือเขียนเอกสาร เจ๋งมากจริง ๆ และถ้าโค้ดเปิดเมื่อไรอยากรีบลองใช้
ดี อยากเห็น การสร้างข้อความสำหรับไดอะแกรม ในแนวทางคล้าย ๆ กันด้วย เหมือน Pic/Pikchr ในยุค LLM
เจ๋งจริง ๆ ผมใช้ Claude ใส่แอนิเมชันลงใน SVG มาบ้างแล้ว และมันค่อนข้างดี