Biên tập viên: Trong vài năm qua, cuộc cạnh tranh của AI thị giác hầu như xoay quanh một câu hỏi: Ai tạo ra hình ảnh chân thực hơn, ai tạo ra video mượt mà hơn. Các mô hình khuếch tán biến gợi ý văn bản thành hình ảnh, video và các cảnh chân thực, cũng khiến mọi người quen với việc đánh giá khả năng mô hình bằng tiêu chí "giống không", "đẹp không".
Nhưng bài viết này từ a16z chỉ ra rằng, giai đoạn tiếp theo của AI thị giác có thể không chỉ là tạo ra những pixel đẹp hơn, mà là tạo ra các sản phẩm mã code đằng sau những pixel đó (tệp cấu trúc có thể tiếp tục chỉnh sửa, kiểm thử và giao hàng).
Sự khác biệt này có vẻ kỹ thuật, nhưng thực tế quyết định liệu AI có thể thực sự đi vào quy trình sản xuất hay không. Nhà thiết kế cần không chỉ một ảnh chụp màn hình giao diện, mà là các thành phần HTML/CSS, React, các lớp và tệp có thể giao hàng; Nhà làm hoạt hình cần không chỉ một đoạn video, mà là các khung hình chính, đường cong thời gian và các tham số chuyển động có thể sửa đổi; Nghệ sĩ 3D cần không chỉ một hình ảnh render, mà là cấu trúc hình học, vật liệu, ánh sáng, camera và phân cấp cảnh.
Do đó, bài viết chia việc tạo thị giác thành hai con đường: Tạo sinh bản địa pixel (trực tiếp tạo ảnh hoặc video) phù hợp với cảm giác chân thực, không khí và khám phá; Tạo sinh bản địa mã code (tạo SVG, Lottie, kịch bản Blender, cảnh USD...) thì phù hợp hơn với việc chỉnh sửa, lặp lại và sản xuất. Điểm quan trọng thực sự của cách tiếp cận thứ hai là nó có thể hình thành vòng lặp khép kín "mã → render → kiểm tra → sửa đổi". Mô hình không chỉ lấy mẫu lại nhiều lần, mà đang gỡ lỗi một chương trình thị giác có thể kiểm chứng.
Đây cũng là lý do tác giả đặc biệt lạc quan về 3D. Bởi vì một hình ảnh render của một cái ghế không phải là cái ghế, nó chỉ là bức ảnh của cái ghế. Tài sản thực sự có thể sử dụng trong game, trình mô phỏng hoặc công cụ 3D phải có cấu trúc hình học ổn định, phân cấp bộ phận, vật liệu và ràng buộc chức năng: cửa phải có thể mở, ngăn kéo phải có thể trượt, bánh xe phải có thể xoay. Nói cách khác, giá trị tương lai của AI thị giác không nằm ở "trông có giống không", mà ở "có thể được tiếp tục sử dụng không".
Bài viết này cung cấp một khuôn khổ đánh giá rất tốt: Làn sóng AI thị giác đầu tiên giải quyết vấn đề tạo sinh, làn sóng tiếp theo sẽ giải quyết vấn đề sản xuất. Khi AI thị giác chuyển từ đầu ra cuối cùng sang mã nguồn, thứ thực sự bị thay đổi sẽ không chỉ là công cụ thiết kế, mà là toàn bộ chuỗi sản xuất nội dung thị giác.
Phần dưới đây là nguyên bản:
Trong vài năm qua, AI thị giác phần lớn được đánh giá theo "pixel". Hình ảnh hoặc video được tạo ra cuối cùng càng trông đẹp, mô hình dường như càng mạnh.
Điều này không có gì lạ. Các mô hình khuếch tán đầu tiên biến gợi ý văn bản thành hình ảnh đẹp, sau đó mở rộng sang video, rồi đến những thế giới ngày càng chân thực. Mọi người tự nhiên sẽ so sánh nó với Photoshop hoặc máy ảnh.
Nhưng đối với nhiều nhiệm vụ liên quan đến thị giác, như thiết kế đồ họa, thiết kế UI hay mô hình 3D, biểu diễn cuối cùng mà người dùng thực sự cần, không chỉ đơn thuần là pixel được hiển thị cuối cùng. Họ cần một sản phẩm có thể liên tục lặp lại dựa trên phản hồi và ý tưởng mới. Nhà thiết kế không chỉ cần một mockup (bản thiết kế), mà còn cần các lớp, thành phần và tệp giao hàng; Nhà làm hoạt hình không chỉ cần một đoạn video, mà còn cần đường cong thời gian, khung hình chính và đường chuyển động có thể chỉnh sửa; Nghệ sĩ 3D không chỉ cần một hình ảnh render, mà còn cần cấu trúc hình học, vật liệu, ánh sáng, camera và cấu trúc cảnh.
Ngày nay, những công cụ AI thị giác thú vị nhất không còn cố gắng tạo trực tiếp đầu ra cuối cùng. Chúng bắt đầu tạo ra mã nguồn đằng sau đầu ra cuối cùng đó. Sự thay đổi này đang giải phóng khả năng chỉnh sửa, lặp lại và vòng lặp phản hồi mà các mô hình bản địa pixel khó có thể sánh được.
Hai ngăn xếp kỹ thuật của tạo sinh thị giác
Chúng ta có thể hiểu việc tạo sinh thị giác theo hai cách chính.
Loại đầu tiên là tạo sinh bản địa pixel. Các hệ thống này thường trực tiếp tạo ra hình ảnh hoặc video, thường được thực hiện trong không gian tiềm ẩn. Chúng giỏi về kết cấu, không khí, ánh sáng và cảm giác chân thực. Nếu mục tiêu là tạo ra một cảnh quay mang tính điện ảnh, một bộ moodboard (bảng tâm trạng) đẹp, hoặc một hình ảnh chân thực như ảnh chụp, các mô hình khuếch tán vẫn là phương pháp chủ đạo.
Loại thứ hai là tạo sinh bản địa mã code. Các hệ thống này tạo ra một dạng biểu diễn, sau đó được một động cơ khác thực thi hoặc render. Mô hình không trực tiếp tạo ra pixel cuối cùng, mà tạo ra một chương trình có thể tạo ra pixel.
Chương trình này có thể là một tệp SVG, một bố cục HTML/CSS, một thành phần React, một tệp JSON Lottie, một kịch bản Blender, một biểu đồ cảnh USD, một shader (trình tô bóng), hoặc một cảnh trong game engine. Đầu ra thị giác cuối cùng vẫn là pixel, nhưng "nguồn gốc sự thật" thực sự là một biểu diễn có cấu trúc.
Sự khác biệt này rất quan trọng, vì quy trình sản xuất rất quan tâm đến "điều gì xảy ra sau khi tạo sinh". Một bức ảnh được tạo ra có thể được sử dụng làm đầu ra, nhưng một chương trình thị giác được tạo ra có thể được sử dụng như một sản phẩm: nó có thể được chỉnh sửa, tái sử dụng, cải thiện, quản lý phiên bản; nó có thể được tích hợp vào ngăn xếp công nghệ phần mềm và được xác thực dựa trên các ràng buộc; nó có thể được render lặp lại trong các điều kiện khác nhau, cũng có thể được bàn giao giữa nhà thiết kế, kỹ sư và Agent.
Tôi cho rằng, một sự chuyển đổi quan trọng đã xảy ra: Đối với một phần vấn đề thị giác, chúng ta sẽ học cách định nghĩa lại nhiệm vụ tạo sinh thị giác thành nhiệm vụ mã hóa, và bằng cách giải quyết một vấn đề mã hóa có ranh giới rõ ràng, có thể kiểm chứng, để thu được sự cải thiện hiệu quả cao.
Mã code là phương tiện tốt để giải quyết vấn đề thị giác
Cách đơn giản nhất để hiểu giá trị của tạo sinh mã code thị giác là xem điều gì xảy ra sau bản nháp đầu tiên.
Giả sử một mô hình tạo ra một logo. Nếu đầu ra là một hình ảnh raster, và một đường cong trong đó không đúng, người dùng phải che mặt nạ, vẽ lại cục bộ, tạo lại hoặc vẽ lại thủ công. Nhưng nếu đầu ra là SVG, người dùng có thể trực tiếp chỉnh sửa đường dẫn, hình cơ bản, gradient, đường viền hoặc phần tử văn bản. Đây đã là cách các nhà thiết kế thiết kế logo trên Quiver.
Trong lĩnh vực thiết kế UI, nếu đầu ra là một ảnh chụp màn hình, nó chỉ giống như tham khảo cảm hứng hơn. Nhưng nếu đầu ra là HTML/CSS hoặc React, nhà thiết kế có thể kiểm tra DOM, thay thế các thành phần thực, kiểm tra trạng thái đáp ứng, kiểm tra khả năng tiếp cận và kết nối nó với ứng dụng.
Đây cũng là lý do tại sao tạo sinh mã code thị giác đặc biệt phù hợp với test-time compute (tính toán tại thời điểm kiểm thử). Trong tạo sinh bản địa pixel, việc tăng tính toán suy luận thường có nghĩa là lấy mẫu nhiều đầu ra hơn: tạo 20 hình ảnh, chọn ra hình tốt nhất, có thể thử lại lần nữa. Điều này chắc chắn hữu ích, nhưng mỗi lần thử về bản chất giống như gieo xúc xắc lại. Mô hình có thể phản hồi, nhưng phản hồi này thường mang tính tổng thể và không đủ chính xác.
Về mặt kỹ thuật, các mô hình khuếch tán cũng có thể hưởng lợi từ test-time compute. Ví dụ, "Inference-time Scaling of Diffusion Models through Classical Search" chỉ ra rằng, việc tìm kiếm ở giai đoạn suy luận có thể cải thiện hiệu suất của mô hình khuếch tán trong lập kế hoạch, học tăng cường và tạo ảnh. Nhưng cơ chế vòng lặp ở đây khác nhau. Trong các mô hình khuếch tán, hệ thống thường tìm kiếm giữa các quỹ đạo tiềm ẩn hoặc mẫu cuối cùng. Tín hiệu khen thưởng có thể cho mô hình biết đầu ra này tốt hơn đầu ra kia, nhưng nó không thể ánh xạ rõ ràng phản hồi đó đến một sửa đổi cụ thể ở cấp độ mã nguồn.
Tạo sinh bản địa mã code tạo ra một vòng lặp chính xác hơn: mã → render → kiểm tra → sửa đổi.
Mô hình tạo ra sản phẩm, render nó ra, quan sát xem có vấn đề gì, rồi sửa chữa tệp nguồn. Nếu khoảng cách không đúng, hãy sửa CSS; nếu đường cong logo bị lệch, hãy chỉnh sửa đường dẫn SVG; nếu nhịp điệu hoạt hình quá chậm, hãy điều chỉnh tham số thời gian. Điểm mấu chốt là, mỗi lần lặp lại cải thiện sản phẩm cơ sở, không chỉ là đầu ra được render. Đây cũng là lý do tại sao tạo sinh mã code thị giác có thể tự nhiên hưởng lợi từ việc tạo ra nhiều token hơn và test-time compute. Mô hình đang gỡ lỗi một chương trình thị giác trong một môi trường khép kín, có thể kiểm chứng, chứ không chỉ lấy mẫu thêm nhiều ảnh.
Ngăn xếp kỹ thuật tạo sinh thị giác lấy mã làm trung tâm
Đằng sau các ví dụ trên là một ngăn xếp kỹ thuật như vậy: mô hình mã hóa + biểu diễn ký hiệu + trình render hoặc engine.
Mô hình mã hóa là tác giả và người biên tập của sản phẩm. Nó chịu trách nhiệm viết HTML, SVG, JSON Lottie, kịch bản Blender, cảnh USD, hoặc chương trình tài sản 3D tùy chỉnh.
Biểu diễn ký hiệu là nguồn gốc sự thật. Đây chính là lý do sản phẩm có thể chỉnh sửa được. Một UI có các nút DOM, quy tắc bố cục và thành phần; một hoạt hình Lottie có các lớp, hình dạng vector, đường cong thời gian, khung hình chính và tham số chuyển động; một tài sản 3D có cấu trúc hình học, vật liệu, khớp, ràng buộc và mối quan hệ phân cấp.
Trình render hoặc engine sau đó chuyển đổi các cấu trúc này thành pixel. Trình duyệt render HTML/CSS, trình render SVG render đồ họa vector, trình phát Lottie render hoạt hình, Blender hoặc game engine render cảnh 3D, trình mô phỏng thì xác thực một tài sản có khớp có thực sự có thể chuyển động hoặc tương tác hay không.
OmniLottie là một ví dụ tốt cho thấy tại sao biểu diễn ký hiệu lại quan trọng. Lottie là một định dạng hoạt hình nhẹ, dựa trên JSON, nó không biểu diễn hoạt hình dưới dạng một đoạn video phẳng, mà sử dụng hình dạng vector có thể chỉnh sửa, các lớp, khung hình chính và tham số thời gian để biểu diễn chuyển động. OmniLottie đề xuất chuyển đổi JSON Lottie gốc thành chuỗi lệnh phù hợp hơn với sự hiểu biết của mô hình, cho phép mô hình tạo và chỉnh sửa hoạt hình Lottie đáng tin cậy hơn. Điểm nhấn của bài báo này không phải là xây dựng một vòng lặp Agent hoàn chỉnh, mà là làm cho Lottie phù hợp hơn với việc tạo sinh của mô hình: nó chuyển đổi JSON Lottie gốc thành một chuỗi các lệnh và tham số gọn nhẹ. Hành động này rất quan trọng, vì bản thân Lottie đã là một định dạng hoạt hình có thể chỉnh sửa. Một khi chuyển động được biểu diễn dưới dạng hình dạng, lớp, thời gian và tham số hoạt hình, phản hồi có thể được ánh xạ đến sửa đổi ở cấp độ tệp nguồn. Nếu đối tượng di chuyển quá chậm, hãy điều chỉnh thời gian; nếu đường dẫn không đúng, hãy sửa đổi vector; nếu biến dạng bị lệch, hãy cập nhật chuỗi hình dạng.
Ngăn xếp kỹ thuật này tương ứng chính xác với vòng lặp test-time compute mà Agent mã hóa có thể sử dụng để nâng cao chất lượng đầu ra: trong mỗi vòng lặp "mã → render → kiểm tra → sửa đổi", mô hình không phải tạo ra một mẫu mới, mà đang sử dụng phản hồi từ trình render để cải thiện sản phẩm cơ sở. Nó có thể sửa quy tắc CSS, điều chỉnh đường dẫn SVG, sửa thời gian hoạt hình hoặc cập nhật ràng buộc 3D, sau đó render lại và tiếp tục cải thiện.
Điều này tạo ra khả năng hội tụ cho vòng lặp. Trong tạo sinh bản địa pixel, mỗi lần thử lại thường tạo ra một đầu ra mới. Còn trong tạo sinh bản địa mã code, mỗi lần thử lại có thể cải thiện chính sản phẩm nguồn. Mô hình không chỉ lấy mẫu thêm nhiều ảnh hoặc video, mà đang gỡ lỗi một chương trình thị giác trong một môi trường khép kín, có thể render được.
Bản đồ thị trường: Hình thành điểm vào xung quanh runtime
Thị trường tạo sinh mã code thị giác đang được tổ chức xung quanh "runtime", tức là nơi sản phẩm được render hoặc thực thi. Trong tạo sinh thị giác bản địa mã code, mô hình tạo ra một sản phẩm ký hiệu, và sản phẩm này sẽ được thực thi trong một môi trường nào đó: trình duyệt, trình render SVG, trình phát Lottie, Blender, game engine hoặc trình mô phỏng.
Mỗi loại runtime sẽ hình thành các điểm vào khác nhau, vì mỗi loại runtime có biểu diễn nguồn, vòng lặp phản hồi và quy trình làm việc sản xuất riêng.
Ứng dụng rõ ràng nhất ngày nay là trong lĩnh vực thiết kế 2D, đặc biệt là thiết kế UI và thiết kế đồ họa. Nhưng tạo sinh mã code thị giác không chỉ giới hạn ở các công cụ thiết kế. Miễn là đằng sau một sản phẩm thị giác tồn tại một biểu diễn cơ sở có thể được tạo, render, kiểm tra và tối ưu hóa, nó đều có thể xuất hiện.
Tại sao 3D là tiền tuyến quan trọng tiếp theo
Mặc dù thiết kế sản phẩm và thiết kế 2D là các trường hợp sử dụng trực quan nhất ngày nay, nhưng sản phẩm 3D có thể được hưởng lợi nhiều nhất từ cách tiếp cận "định nghĩa lại vấn đề nhất quán thành vấn đề mã hóa".
Một thiết kế 2D đôi khi chỉ cần trông đúng là đã hữu ích. Nhưng tài sản 3D thì không thể. Một hình ảnh render của một cái ghế không phải là cái ghế, nó chỉ là bức ảnh của cái ghế. Để tài sản này thực sự có thể sử dụng được trong game, trình mô phỏng hoặc công cụ chỉnh sửa 3D, nó phải có biểu diễn 3D cơ sở nhất quán, bao gồm cấu trúc hình học chính xác, vật liệu, phân cấp bộ phận và ngữ cảnh cảnh.
Đây là lý do tại sao 3D tự nhiên phù hợp với tạo sinh mã code thị giác. Giá trị của nó không chỉ là tạo ra một thứ gì đó trông giống 3D từ một góc độ nào đó, mà là tạo ra một cấu trúc 3D nhất quán có thể tồn tại trong các góc nhìn, chỉnh sửa và tương tác khác nhau. Điều này cần một vòng lặp lặp lại: đề xuất đối tượng, render nó, kiểm tra cấu trúc hình học và bộ phận có hợp lý không, sau đó sửa đổi biểu diễn cơ sở. Nhưng vòng lặp này chỉ hiệu quả khi Agent có công cụ và ngữ cảnh phù hợp. Chỉ liên tục chạy Blender cho đến khi cái gì đó trông tốt hơn là chưa đủ. Agent cần có khả năng chuyển đổi góc nhìn camera, truy vấn trạng thái cảnh, cô lập đối tượng, so sánh với mục tiêu, ghi nhớ những lần thử trước và chuyển đổi sự khác biệt thị giác thành sửa đổi ở cấp độ tệp nguồn. Chính những khả năng này mở ra cơ hội cho test-time compute hướng tới sự hội tụ.
Đối với nhiều tài sản, tính nhất quán thị giác chỉ là đường cơ sở. Đối tượng còn cần ngữ nghĩa bộ phận chính xác và ràng buộc chức năng: cửa phải có thể mở, bản lề phải có thể xoay, ngăn kéo phải có thể trượt, bánh xe phải có thể lăn. Nói cách khác, đầu ra không thể chỉ là một hình dạng hợp lý về mặt thị giác, nó còn phải hoạt động như thứ mà nó đại diện.
Đây chính xác là điều khiến các dự án như VIGA và Articraft3D trở nên hấp dẫn. Chúng tôi dự đoán năm nay sẽ thấy nhiều công việc liên quan hơn xuất hiện, bao gồm cả các dự án thương mại và mã nguồn mở. VIGA sử dụng Blender làm môi trường render và phản hồi, chuyển đổi việc tái tạo thị giác thành vòng lặp "mã-render-kiểm tra"; nhưng VIGA không chỉ đơn giản là phơi bày Blender gốc cho vòng lặp Agent. Nó cung cấp cho Agent các công cụ ngữ nghĩa để quan sát và sửa đổi, đồng thời lưu giữ ký ức về những lần thử trước đó, cho phép nó kiểm tra đối tượng từ góc nhìn tốt hơn, chẩn đoán vấn đề và thực hiện các sửa đổi có mục tiêu. Articraft3D xử lý trực tiếp hơn cấu trúc tài sản: nó định nghĩa việc tạo 3D có khớp như việc viết chương trình, các chương trình này chịu trách nhiệm định nghĩa bộ phận, cấu trúc hình học, khớp và kiểm tra.
Tác động tương lai và các vấn đề chưa được giải quyết
Nếu tạo sinh mã code thị giác thực sự thành công, các sản phẩm cuối cùng chiến thắng sẽ không chỉ tạo ra đầu ra đẹp hơn. Chúng sẽ làm chủ toàn bộ vòng lặp: tạo sản phẩm, render sản phẩm, kiểm tra xem có vấn đề gì và sửa tệp nguồn.
Điều này sẽ mang lại một số tác động.
Đầu tiên, trình render sẽ trở thành môi trường phản hồi. Trình duyệt, trình render SVG, trình phát Lottie, Blender, game engine và trình mô phỏng sẽ trở thành môi trường để Agent kiểm tra và cải thiện tác phẩm, giống như các Agent mã hóa ngày nay đang sử dụng sandbox và máy ảo vậy.
Thứ hai, chất lượng của ngữ cảnh lặp lại sẽ trở nên quan trọng hơn bao giờ hết. Để đưa Agent vào phiên bản "vòng lặp Ralph" của mã code thị giác, biểu diễn trung gian phải đủ chính xác để hướng dẫn thao tác tiếp theo. Mô hình cần biết không chỉ "có cái gì đó trông không đúng", mà còn cần biết nên sửa phần nào trong tệp nguồn và tại sao lại sửa như vậy. Những lỗi nhỏ trong cấu trúc, render hoặc phản hồi có thể nhanh chóng tích lũy qua nhiều vòng lặp.
Thứ ba, tương lai rất có thể là sự kết hợp. Các mô hình bản địa pixel vẫn giỏi nhất về cảm giác chân thực, kết cấu và khám phá; các hệ thống bản địa mã code thì phù hợp hơn với cấu trúc, lặp lại và sản xuất. Quy trình làm việc hữu ích nhất sẽ kết hợp cả hai.
Tất nhiên, vẫn còn nhiều câu hỏi mở. Mỗi lĩnh vực cuối cùng sẽ áp dụng biểu diễn nào? Chúng ta có cần xây dựng lại engine và trình render, thay vì tiếp tục sử dụng các công cụ thế hệ trước không? Gu thị giác có thể bị ràng buộc, kiểm tra và nắm bắt bởi vòng lặp phản hồi ở mức độ nào?
Nhưng hướng đi đã rõ ràng: AI thị giác đang chuyển từ đầu ra sang sản phẩm mã code. Làn sóng đầu tiên giúp việc tạo hình ảnh trở nên dễ dàng hơn; làn sóng tiếp theo sẽ giúp việc tạo ra các sản phẩm thị giác có thể chỉnh sửa, kiểm thử, giao hàng và cải thiện trở nên dễ dàng hơn.






