- underdrawing là phương pháp trước hết tạo ra một ảnh bản phác nền bằng công cụ quyết định, trong đó đã đặt sẵn vị trí của chữ và số, rồi để mô hình tạo ảnh phủ phong cách hình ảnh lên trên nhằm tăng độ chính xác
- Trong bài toán sắp xếp 50 phiến đá bước chân theo hình xoắn ốc và gắn số từ 1 đến 50, Gemini 3 Pro và ChatGPT Images 2 không thể ổn định giữ đúng số và thứ tự nếu không có underdrawing
- Với cùng bài toán đó, Gemini 3.0 Pro khi dùng kèm underdrawing đã tạo ra kết quả đúng về số thứ tự, số lượng nút, thứ tự và hình dạng xoắn ốc
- Có thể triển khai bằng cách dùng các công cụ như SVG/HTML để đặt số và chữ vào vị trí, hướng mong muốn rồi xuất thành ảnh, sau đó đưa ảnh đó cùng prompt văn bản vào mô hình ảnh đa phương thức
- Cách này không phải lúc nào cũng hoàn hảo, nhưng với việc tạo ảnh nơi bố cục chữ và số là quan trọng, nó cho phép tách riêng phần bố trí quyết định và khả năng thể hiện hình ảnh của mô hình sinh
Bối cảnh cốt lõi và cách triển khai
- Đây là một mẫu rút ra trong quá trình tạo hình ảnh bàn chơi phiêu lưu 100 bước, được tóm gọn là “cho sẵn đường nét rồi để nó tô lên trên”
-
Lớp quyết định
- SVG/HTML tuy khô khan về mặt thị giác nhưng rất mạnh ở bố trí toán học và độ chính xác
- Chỉ cần đặt số và chữ theo đúng vị trí, hướng mong muốn rồi xuất thành ảnh có chứa các pixel đó
- Có thể dùng bất kỳ công cụ nào như SVG, Python, Mermaid
-
Lớp sinh
- Mô hình tạo ảnh cho ra kết quả trực quan rất tốt nhưng độ tin cậy với toán học và văn bản lại thấp
- Với mô hình ảnh đa phương thức có thể nhận ảnh và văn bản rồi xuất ảnh như Gemini 3.0 Pro, ta đưa đồng thời ảnh underdrawing và prompt văn bản vào
- Prompt ví dụ ở bước 1 yêu cầu tạo SVG với 50 phiến đá bước chân xếp thành xoắn ốc vào trong theo chiều ngược kim đồng hồ, và đánh số liên tiếp từ 1 đến 50 trên từng phiến đá
- Prompt ví dụ ở bước 2 yêu cầu chuyển ảnh đó thành một diorama claymation phong cách ảnh chụp, góc thấp, hơi nghiêng, với sô-cô-la thủ công và kẹo được đặt thành đường xoắn ốc
-
Tự động hóa và giới hạn
- Có thể để Claude Code hoặc Codex thực hiện thay từng bước
- Kết quả tốt nhưng không phải lúc nào cũng hoàn hảo, và ngay cả ở thành phẩm cuối cùng thì “71” cũng không xuất hiện
1 bình luận
Ý kiến trên Hacker News
Thật đáng mừng khi ngày càng hiểu sâu hơn về những việc LLM vốn làm tốt và những việc làm không tốt; không có nghĩa là bất khả thi, nhưng do giới hạn nền tảng nên xác suất thành công thấp
Điều này khá giống với cách để con người quyết định kiến trúc phần mềm rồi giao phần hiện thực hàm cho LLM, hoặc thay vì bắt nó tự phân tích dữ liệu thì để nó viết truy vấn SQL
Sẽ rất tốt nếu có một hệ thống phân loại tác vụ và nghiên cứu rõ ràng hơn về việc loại công việc nào phù hợp với LLM và loại nào không; trực giác thì đang dần hình thành, nhưng tôi vẫn thấy nhiều người thường xuyên vấp ở chỗ này
Theo kiểu để nó tạo dàn ý trước, rồi hiện thực từng hàm riêng lẻ; trên HN cũng từng có vài bài blog minh họa cách tiếp cận này bằng thuật ngữ mượn từ công việc làm hoạt hình
Chỉ mới 2 năm trước, các tác vụ như đếm ký tự hay xử lý âm vị từng bị cho là không thể vì “giới hạn nền tảng”, nhưng giờ trong nhiều trường hợp chúng đã không còn là vấn đề lớn ngay cả khi không dùng công cụ
Mỗi lần đọc prompt tạo ảnh, tôi đều thấy những chi tiết rất cụ thể mà mô hình rõ ràng đã bỏ qua
Ở đây nữa, chocolate/kẹo trong hai ảnh cuối hoàn toàn không có cảm giác thủ công kiểu nghệ nhân, mà trông quá vô trùng như hàng sản xuất đại trà, góc nhìn cũng không chính xác
Nếu mô hình bỏ qua phần lớn nội dung thì tại sao lại phải viết prompt dài dòng như vậy?
Những từ như rustic, homemade, amateur có thể còn khớp với cách gắn thẻ hơn
Ban đầu tôi nghĩ là do kỹ năng viết prompt của mình kém, nhưng một khi để ý và bắt đầu nhìn những chỗ lệch này thì thấy chúng xuất hiện khá thường xuyên
Nếu muốn một hình như ảnh cuối, với các “nút” nhỏ xếp theo hình xoắn ốc, thì dù trông chẳng giống kẹo cho lắm, tôi nghĩ ngay cả người không giỏi Blender lắm cũng có thể làm xong trong một buổi chiều
Tôi đã tìm ra một kỹ thuật đơn giản để có được văn bản và con số ổn định trong ảnh do AI tạo
Tôi khá ngạc nhiên vì các mô hình ảnh chưa tự làm theo cách này, và thấy nó hữu ích nên muốn chia sẻ
Tôi đã dùng cùng kỹ thuật này một thời gian, chỉ khác là dùng SVG làm ảnh nền, và nó hoạt động tốt
Có vẻ các phòng nghiên cứu tạo ảnh sẽ sớm tiếp nhận nó
Thay vì để người dùng bắt mô hình tự giải theo kiểu 0-shot, cấu trúc này giúp mô hình giải theo kiểu 1-shot hoặc k-shot
Tôi đã thử các kỹ thuật tương tự với hiệu quả rất tốt; lĩnh vực này còn quá mới và thay đổi quá nhanh nên cảm giác vẫn thiếu một hệ thuật ngữ chung, vì vậy bài blog và các ví dụ này rất hữu ích
Dù vậy, cũng có khả năng hiện tượng này đã được quan sát và hiểu theo tên gọi khác trong các cộng đồng nhỏ hơn
Đây chỉ là img2img với ảnh đầu tiên có cấu trúc đúng được tạo bằng code
Nếu đã dùng mô hình sinh từ thời kỳ đầu của Stable Diffusion thì đây là một kỹ thuật khá phổ biến và hữu ích: dùng phác thảo (SVG, vẽ tay, v.v.) như một ControlNet tạm thời để dẫn hướng đầu ra của mô hình sinh
Trước đây tôi cũng dùng cách tương tự khi bố trí phối cảnh kiến trúc
Nếu muốn đặt sofa, ghế hay đồ nội thất khác ở vị trí cụ thể, bạn có thể tạo một cảnh đơn giản với các “set piece” chính được đặt đại khái bằng công cụ như Poser, rồi từ đó sinh depth map và đưa vào mô hình sinh thời đó như SDXL để dẫn hướng bố cục vật thể
Mẹo này đúng là kiểu “à, sao mình không nghĩ ra nhỉ”
Tôi mừng vì giờ có thêm một thứ để thử lần sau khi ảnh tạo ra không đạt kỳ vọng
Chỉ là hiệu năng khi đó chưa tốt như bây giờ, nên tôi không rõ vì sao chuyện này lại được xem là mới
Phản biện tiêu chuẩn là thế này: nếu LLM thực sự thông minh, tại sao nó không tự nhận ra rằng quy trình 2 bước này cho kết quả tốt hơn?
Để lập chiến lược, xem lại kết quả rồi thử lại thì cần một quy trình kiểu agent ở phía trên
Có vẻ Nano Banana và gpt-image-2 đã có nhúng một ít thứ đó, nhưng điều này cũng giống khác biệt giữa việc để mô hình tự viết code một phát xong luôn và để một agent harness có công cụ xử lý
Ngay cả agent rất cơ bản cũng có thể tạo ra code tốt hơn ChatGPT đơn lẻ
Kiểu làm này đã có từ lâu rồi, khá giống việc dùng depth map hay line art để kiểm soát silhouette
Tôi thích cảm giác ở phần kết là “nó hoạt động, nhưng thật ra cũng không hẳn vậy”
Đúng kiểu cơn sốt LLM/AI tạo sinh: bỏ ra một đống công sức phức tạp chỉ để làm đúng một ví dụ cực hẹp, trông như gần được nhưng rốt cuộc vẫn không làm chuẩn hẳn, và toàn bộ bài viết đã cho thấy đúng điều đó
Con người rất dễ kiểm tra xem số có đúng không, và nếu sai thì chỉ cần tạo lại ảnh
Dù sao vẫn dễ hơn vài bậc độ lớn so với việc tự làm ảnh từ đầu mà không có mô hình
Với bài toán quen thuộc là “SVG một con bồ nông đi xe đạp”, tôi nghĩ có thể thử cách tiếp cận ngược lại
Nếu bắt mô hình xuất thẳng SVG thì đương nhiên chất lượng có khả năng kém
Nhưng tạo ảnh thì lại rất dễ ra hình ảnh chân thực đẹp mắt, nên có thể tạo ảnh trước rồi để mô hình truy theo nó thành SVG; đây có thể là một cách hay để có được SVG bồ nông-đi-xe-đạp tử tế
Suy cho cùng, ngay cả con người cũng hiếm khi chỉ nhập số vào Notepad để tạo tác phẩm SVG; cốt lõi vẫn là nhìn nó dưới dạng hình ảnh và suy nghĩ về nó
Cách này cũng có vẻ giống với cách con người làm để đạt độ chính xác
Nếu bảo một họa sĩ vẽ ngay trong một lần, không chỉnh sửa hay phác thảo, một mảng đá lớn xếp thành vòng tròn và còn phải đánh số theo thứ tự, thì việc xảy ra lỗi bố trí cũng chẳng có gì lạ