2 điểm bởi GN⁺ 2025-01-09 | 1 bình luận | Chia sẻ qua WhatsApp
  • NeuralSVG là một nghiên cứu ICCV 2025 tạo SVG bằng cách chuyển prompt văn bản thành các hình dạng có thứ tự và có thể chỉnh sửa
  • Các phương pháp tạo văn bản-thành-vector hiện có có thể khó dùng như đồ họa vector thực sự có thể chỉnh sửa, vì đầu ra bị tham số hóa quá mức hoặc cấu trúc layer chỉ được xem như yếu tố phụ
  • Mã hóa toàn bộ cảnh SVG vào trọng số của một mạng MLP nhỏ, rồi tối ưu hóa theo điều kiện văn bản bằng Score Distillation Sampling(SDS)
  • Cơ chế chuẩn hóa dropout lồng nhau khuyến khích mỗi hình dạng có vai trò độc lập và có ý nghĩa, giúp vẫn giữ được cấu trúc khái quát của cảnh ngay cả khi chỉ còn lại ít hình dạng
  • Với một biểu diễn đã học duy nhất, có thể điều chỉnh tại thời điểm suy luận các yếu tố như bảng màu theo màu nền, tỷ lệ khung hình và số nét vẽ phác thảo

Cách tiếp cận nhắm tới tạo SVG có thể chỉnh sửa

  • Đồ họa vector là một phương tiện quan trọng trong thiết kế, vì có thể tạo nội dung thị giác độc lập với độ phân giải và có thể chỉnh sửa
  • Sự phát triển của các mô hình thị giác-ngôn ngữ và mô hình khuếch tán đã làm gia tăng sự quan tâm đến tạo đồ họa vector từ văn bản
  • Các cách tiếp cận hiện có có thể có hai hạn chế
    • Đầu ra bị tham số hóa quá mức
    • Xem cấu trúc layer, một chức năng cốt lõi của đồ họa vector, như mục tiêu thứ yếu
  • Dựa trên tầm quan trọng của biểu diễn SVG có layer, NeuralSVG đề xuất một biểu diễn thần kinh ngầm định để tạo đồ họa vector từ prompt văn bản

Cách mã hóa cảnh vào một MLP nhỏ

  • Lấy cảm hứng từ NeRF, NeuralSVG mã hóa toàn bộ cảnh vào trọng số của một mạng MLP nhỏ
  • Quá trình tối ưu hóa sử dụng Score Distillation Sampling(SDS)
  • Để tạo một biểu diễn có thứ tự, phương pháp này đưa vào kỹ thuật chuẩn hóa dựa trên dropout
    • Khuyến khích mỗi hình dạng đã học có vai trò có ý nghĩa và có thứ tự trong toàn cảnh
    • Ngay cả khi thay đổi số lượng hình dạng được giữ lại trong kết xuất cuối cùng, chỉ với một số ít hình dạng vẫn có thể nắm bắt cấu trúc khái quát của cảnh

Điều khiển động tại thời điểm suy luận

  • Việc sử dụng biểu diễn thần kinh cho phép điều chỉnh động SVG được tạo từ một biểu diễn đã học duy nhất theo đầu vào của người dùng
  • Các ví dụ điều khiển được hỗ trợ gồm
    • Thay đổi màu nền để render bảng màu khác nhau cho SVG kết quả
    • Trình bày kết quả với cả màu nền đã được quan sát và chưa được quan sát trong quá trình huấn luyện
    • So sánh kết quả tối ưu hóa NeuralSVG với tỷ lệ khung hình 1:1 và 4:1
    • Tạo bản phác thảo với số lượng nét vẽ khác nhau bằng một mạng duy nhất

Kết quả đánh giá và tài liệu

  • Trong đánh giá định tính và định lượng, NeuralSVG cho thấy kết quả tốt hơn các phương pháp hiện có về khả năng tạo SVG có cấu trúc và linh hoạt
  • Tài liệu dự án

1 bình luận

 
GN⁺ 2025-01-09
Ý kiến trên Hacker News
  • Tuyệt vời. Tôi cho rằng khả năng sinh vector hữu ích hơn nhiều so với sinh raster như DALL-E, Midjourney vốn đã thu hút nhiều chú ý đến nay
    Đầu ra raster khó xử lý vì để lặp lại và cải thiện thành kết quả thực sự dùng được, thường phải gọi AI sinh tiếp để upscale hoặc inpainting; còn vector được sinh ra về bản chất có thể mở rộng và dễ chỉnh sửa
    Đặc biệt, các kết quả này có độ phức tạp thấp, mỗi hình được cấu thành từ ít điểm nhất có thể, nên rất có lợi cho trải nghiệm con người can thiệp và chỉnh sửa ở giữa quy trình. Trong hình ảnh sinh tạo, tôi nghĩ việc tạo ra biểu đạt được đơn giản hóa khó hơn và có giá trị hơn so với những biểu đạt phức tạp, rối rắm

    • Không biết gần đây bạn đã xem https://www.recraft.ai/ chưa. Chất lượng hình ảnh của đầu ra vector có vẻ đã khá tốt
      Tất nhiên nó vẫn không phù hợp cho việc tạo các ảnh có texture dày đặc hoặc giống ảnh chụp, vốn là thế mạnh của Midjourney. Khoảng năm ngoái, ở https://gwern.net/dropcap phải dùng một luồng khá phức tạp là tạo bằng Midjourney rồi đưa qua Recraft, nhưng nếu giờ làm chữ cái đầu đoạn thì có lẽ chỉ riêng model Recraft mới nhất cũng đủ
    • Cũng có khả năng dùng những hình ảnh này làm hướng dẫn cho mô hình raster hóa. Tức là trước tiên tạo một hình dễ thao tác và ghép nối, rồi sau khi bố cục đã ưng ý thì thêm chi tiết
    • Cũng có một dự án nhỏ cho các biểu đạt phức tạp và rối rắm ;) https://github.com/KodeMunkie/shapesnap
      Đây là công việc đứng trên vai người khổng lồ, bản gốc không phải của tôi. Cũng dùng được trên npm
    • Tôi luôn tưởng tượng sẽ hữu ích đến mức nào nếu Sora.ai khi tạo animation trước hết sinh ra mô hình 3D để render
    • Hoàn toàn đồng ý. Cách tiếp cận mã hóa khối và kiểu raster hóa lan rộng trong các codec âm thanh nói chung, thậm chí cả các phương pháp “mạng nơ-ron” hiện đại, đều có cảm giác như ngõ cụt đối với khả năng kiểm soát tinh vi mà nhạc sĩ mong muốn
      Tất nhiên, nó ổn với giao diện text-to-music. Hiện tôi chủ yếu đang làm một codec âm thanh thưa tập trung vào âm thanh tự nhiên, và dùng các giả định dựa trên vật lý, dù rất thô, để khuyến khích biểu diễn thưa
      https://blog.cochlea.xyz/sparse-interpretable-audio-codec-pa...
  • Tôi rất thích cách sinh tiệm tiến như thế này. Ngôn ngữ không đủ chính xác để mô tả chuẩn xác sản phẩm cuối cùng, nên cách tạo ra các bước trung gian rất mạnh mẽ
    Tôi cũng muốn thấy cách tiếp cận này trong sinh nhạc. Các công cụ như Suno rất hay, nhưng cá nhân tôi thích việc tạo ra MIDI và thiết lập nhạc cụ hơn nhiều so với chính âm thanh
    Đây cũng có thể là một bài học tốt cho các công cụ sinh tạo. Có thể tạo ra một điểm khởi đầu khá ổn, nhưng thứ mọi người thực sự muốn nằm ở vùng đuôi dài. Vì vậy, việc có khả năng chỉnh sửa chính xác hay không tạo nên khác biệt giữa một demo được chuẩn bị sẵn và một công cụ mạnh
    Có ghi “Code coming soon”, các ví dụ thì khá tốt nhưng không rõ mức độ tái lập đến đâu

    • Nếu đang tìm công cụ tạo MIDI và thiết lập nhạc cụ thì những thứ như https://www.aiva.ai có thể đúng thứ bạn cần
    • Chỉ MIDI thôi là chưa đủ. Tôi muốn MIDI + bộ lọc, rồi cả track vocal riêng và track âm thanh tùy chỉnh nữa
    • Ý hay. Vài ngày trước tôi đã nghĩ đến việc thử khởi động lại dự án này bằng Glicol
      https://github.com/chaosprint/RaveForce
      RaveForce là một bộ công cụ kiểu OpenAI Gym cho các thí nghiệm sinh nhạc. Tôi thích Suno, nhưng cuối cùng để làm việc thì cần MIDI hoặc XML, hoặc sample lossless
    • Nếu có MIDI microtonal thì chắc sẽ rất tuyệt
  • Chỉ riêng việc áp dụng Sonnet vào animation SVG đã ấn tượng rồi, nhưng cái này trông có thể còn mạnh hơn nhiều
    Ví dụ thú vị: https://gist.github.com/scosman/701275e737331aaab6a2acf74a52...

  • Tôi luôn nghĩ rằng sinh biểu diễn trung gian là con đường nên đi. Thay vì sinh cú pháp cụ thể thì tạo AST; thay vì PNG thì tạo SVG; thay vì tạo chuỗi ảnh liên tiếp cho animation thì sinh wireframe hoặc rigging và script
    Khi có biểu diễn trung gian, chỉ cần sửa rồi render. Khi đã có kết quả render, cuối cùng có thể rắc thêm một lớp bụi tiên AI
    Một ngày nào đó các mô hình sinh tạo có thể đủ mạnh để điều khiển chi tiết chỉ bằng ngôn ngữ tự nhiên, nhưng cho đến lúc đó, phương pháp này có vẻ sẽ có ưu điểm về khả năng kiểm soát, khả năng tương tác với các công cụ hiện có như Intellisense hay trình chỉnh sửa ảnh, và các model nhỏ hơn, rẻ hơn vì không phải gánh không gian pixel nhiều chiều

  • Tôi mong xem model này sẽ cho kết quả gì với prompt kiểm thử sinh SVG bằng LLM của Simon Willison: “hãy tạo SVG một con bồ nông đang đi xe đạp”
    Tốc độ phát triển của AI khá đáng kinh ngạc và sẽ còn tiếp tục tốt lên, vì vậy cũng hơi đáng sợ

    • Tôi đã thử yêu cầu Claude và ChatGPT o3 “hãy tạo SVG phần đất liền của Hoa Kỳ với đường viền đen”
      Đã thử nhiều model nhưng sai thảm hại. Claude thì làm khá ổn với “hãy tạo SVG một con bồ nông đang đi xe đạp”
  • Rất hay. Tôi cần chuyển bitmask sang SVG và muốn bỏ qua các bước trung gian, nên khi tìm bài báo về mô hình phân đoạn xuất ra SVG thì thấy cái này
    https://arxiv.org/abs/2311.05276

  • Sinh phác thảo thật ấn tượng. Hơn nữa có vẻ gần như là thứ đi kèm miễn phí

  • Có vẻ sẽ mở ra nhiều cơ hội cho công cụ soạn thảo tài liệu. Thật sự rất ngầu, và tôi muốn thử ngay khi mã nguồn được công bố

    • Tôi tò mò không biết thứ này có thể bổ trợ soạn thảo tài liệu như thế nào. Bạn có thể gợi ý vài ý tưởng không?
  • Hay. Theo cách tương tự, tôi cũng mong chờ sinh văn bản cho sơ đồ. Kiểu Pic/Pikchr của thời LLM

    • Không phải PIC và hiện vẫn chưa thật sự phù hợp với sơ đồ phức tạp, nhưng bạn có thể tạo một số loại biểu đồ được Vizzlo Chart Vizzard hỗ trợ, ví dụ biểu đồ Gantt, rồi tiếp tục chỉnh trong trình chỉnh sửa biểu đồ: https://vizzlo.com/ai
    • Tôi đã có một số thành công với việc chuyển SQL thành sơ đồ Mermaid Markdown
  • Thật sự rất ngầu. Tôi đã dùng Claude để thêm animation vào SVG và kết quả khá tốt

    • Nếu có thể chia sẻ, tôi muốn xem ví dụ và quy trình làm việc