Hướng dẫn chi tiết đầy đủ về Negative Prompt trong Stable Diffusion là bài viết giúp bạn hiểu rõ về cách sử dụng Prompt phủ định trong công cụ Stable Diffusion, từ đó tạo ra các bức ảnh A.I đẹp, sáng tạo và đúng với yêu cầu nhất.
Giới thiệu
Negative Prompt là một kỹ thuật trong lĩnh vực xử lý ngôn ngữ tự nhiên (NLP), trong đó câu hỏi được đặt theo cách phủ định để kích thích mô hình NLP phản hồi đúng và chính xác hơn. Kỹ thuật này được sử dụng rộng rãi trong nhiều công cụ trí tuệ nhân tạo, trong đó có Stable Diffusion. Trong bài này, AIChatGPT.vn sẽ giới thiệu về mô hình Stable Diffusion và cách sử dụng Negative Prompt để tăng cường khả năng tạo ảnh A.I của mô hình. Bên cạnh đó, nó cũng cung cấp cho bạn các bước chi tiết để triển khai kỹ thuật Negative Prompt trong mô hình Stable Diffusion, bao gồm cách thức hoạt động, các trường hợp sử dụng để đạt được hiệu quả tốt nhất.
Xem thêm: Hướng dẫn sử dụng ChatGPT để tạo Prompt hiệu quả trong Stable Diffusion
Negative Prompt là gì?
Negative Prompt (lời nhắc phủ định) là một yếu tố quan trọng trong lĩnh vực xử lý ngôn ngữ tự nhiên (NLP) để tăng cường khả năng phản hồi đúng và chính xác của mô hình NLP. Prompt phủ định thường được sử dụng trong các nhiệm vụ NLP như trả lời câu hỏi, dịch thuật, phân loại văn bản và nhiều ứng dụng khác.
Về cơ bản, Negative Prompt là cách đặt câu hỏi bằng cách sử dụng phủ định hoặc phủ định một phần của câu hỏi. Ví dụ, thay vì đặt câu hỏi “Bạn có thích đọc sách không?” (positive prompt), ta có thể đặt câu hỏi “Bạn không thích đọc sách phải không?” (negative prompt).
Ý tưởng đằng sau Negative Prompt là kích thích mô hình NLP đưa ra câu trả lời chính xác hơn bằng cách yêu cầu nó phân biệt rõ ràng giữa các khả năng trả lời, thay vì chỉ phân biệt giữa đúng và sai như trong câu hỏi positive prompt. Các mô hình NLP như GPT-3 và Transformer có khả năng xử lý tốt Negative Prompt và cho phép các nhà phát triển sử dụng kỹ thuật này để cải thiện hiệu suất của mô hình.
Tham gia Cộng đồng AI ChatGPT Việt Nam trên facebook để thảo luận nhiều hơn về ChatGPT.
Stable Diffusion là gì?
Stable Diffusion là một công cụ A.I mạnh mẽ trong việc xử lý ngôn ngữ tự nhiên và tạo ra các hình ảnh A.I sáng tạo. Nó được phát triển bởi Stability AI và được phát hành công khai lần đầu vào ngày 22 tháng 8 năm 2022.
Stable Diffusion được huấn luyện trên kho dữ liệu hình ảnh khổng lồ, và được sự đóng góp từ cộng đồng. Đây là công cụ mã nguồn mở hoàn toàn miễn phí. Bạn có thể tải về và cài đặt trên máy tính cá nhân, tuy có hơi phức tạp và yêu cầu cấu hình máy tính nhất định mới có thể sử dụng được. Ngoài ra. bạn cũng có thể sử dụng miễn phí phiên bản Stable Diffusion Colab trực tuyến. Xem thêm tại link bên dưới:
Hướng dẫn chi tiết cài đặt và sử dụng Stable Diffusion để vẽ tranh AI
Stable Diffusion tạo nên sức hút trong lĩnh vực tạo ảnh bằng công nghệ AI chính ở điểm mạnh khi cho ra các bức ảnh tùy biến cao và chân thực hơn so với các mô hình khác. Đồng thời nó cũng cung cấp nhiều cách thức để xử lý và giao tiếp với A.I như text-to-image, img-to-img, controlNet, inpaint,…
Cách thức hoạt động của Negative Prompt
Ví dụ về lời nhắc phủ định Negative Prompt
Ở ví dụ này bạn sẽ hiểu rõ hơn vì sao phải cần lời nhắc phủ định khi tạo ảnh A.I với SD.
Bây giờ bạn hãy mở giao diện GUI của Stable Diffusion và nhập vào lời nhắc đơn giản như:
Prompt: Portrait photo of a man. (Ảnh chân dung của một người đàn ông)
Kết quả sẽ trả về cho bạn những bức ảnh ngẫu nhiên về những người đàn ông, có thể có râu và không có râu.
Ok. Bây giờ bạn chỉ muốn SD tạo ra hình ảnh những người đàn ông không có râu. Và cách của bạn là thử nhập vào câu prompt kiểu như:
Prompt: Portrait photo of a man without mustache. (Ảnh chân dung người đàn ông với không có râu)
Kết quả trả về có lẽ sẽ làm bạn ngạc nhiên. Tất cả hình ảnh điều là những người đàn ông có râu. Tại sao lại như vậy?
Ở đây, Stable Diffusion không thể hiểu câu nhắc của bạn theo một cách thông thường, nó sẽ hiểu prompts theo cách phân tách là “đàn ông” và “râu mép” để xử lý dữ liệu. Nó không thể phân biệt được giữa “không có” và “có”. Điều này làm cho kết quả trả về không như ý muốn của bạn.
Tuy nhiên, để khắc phục điều này, Stable Diffusion đã tạo ra một ô để bạn có thể nhập dữ liệu Negative Prompt. Dữ liệu nhận được từ ô lời nhắc phủ định, SD sẽ xử lý và loại bỏ nó ra khỏi kết quả khi trả về. Bây giờ bạn có thể thử lại để có hình ảnh chính xác về những người đàn ông không có râu bằng cách nhập prompt như sau:
Prompt: Portrait photo of a man.
Kết hợp với lời nhắc phủ định ở ô bên dưới:
Negative Prompt: mustache
Kết quả sẽ được như ảnh bên dưới đây:
Negative Prompt hoạt động như thế nào?
Đầu tiên, bạn cần hiểu cơ chế chuyển văn bản thành hình ảnh trong Stable Diffusion, câu nhắc prompt sẽ được chuyển đổi thành vector embedding và lần lượt được đưa vào bộ dự báo nhiễu U-Net. Việc này được thực hiện trên cả prompt và negative prompt. Sau đó SD sẽ lấy mẫu dựa trên bộ khử nhiễu để cho ra kết quả cuối cùng. Dưới đây là hình ảnh minh họa 2 cách lấy mẫu với có và không có prompt phủ định
Lấy mẫu với không có Negative Prompt
Thuật toán của Stable Diffusion sẽ khử nhiễu hình ảnh một chút bằng cách lấy mẫu có điều kiện (conditional sampling), được hướng dẫn bởi lời nhắc văn bản. Bộ lấy mẫu sau đó khử nhiễu cùng một hình ảnh một chút bằng cách lấy mẫu vô điều kiện (unconditional sampling). Không có prompt phủ định, bước khuếch tán là một bước hướng tới lời nhắc prompt và bỏ qua các hình ảnh ngẫu nhiên. Quá trình này được lặp lại cho số bước lấy mẫu đã thiết lập.
Lấy mẫu với Negative Prompt
Negative Prompt thực hiện bằng cách chiếm quyền lấy mẫu vô điều kiện (unconditional sampling). Thay vì sử dụng câu nhắc trống để tạo hình ảnh ngẫu nhiên, câu nhắc phủ định được sử dụng. Khi sử dụng Negative Prompt, bước khuếch tán là một bước hướng tới lời nhắc prompt và bỏ qua lời nhắc phủ định.
Hình ảnh sau minh họa cho không gian lấy mẫu của SD ở ví dụ đầu tiên. Khi không dùng lời nhắc phủ định, không gian lấy mẫu là tất cả các hình ảnh của “người đàn ông”. Khi câu nhắc phủ định được thêm vào, khu vực “người đàn ông với râu mép” sẽ bị loại trừ khỏi không gian lấy mẫu.
Cách sử dụng Negative Prompt trong Stable Diffusion
Để sử dụng Negative Prompt trong Stable Diffusion rất đơn giản. Sau khi mở giao diện GUI SD, bên dưới khung nhập câu nhắc prompt sẽ có ô để bạn nhập Negative prompt. Hãy nhập những thứ mà bạn không muốn nó xuất hiện trong hình ảnh kết quả vào ô này và bấm Genarate như bình thường.
Ở một số phiên bản Stable Diffusion v1, hoặc các phiên bản online của nó có thể không thấy ô Negative prompt này. Bạn cần cài đặt thêm hoặc lựa chọn bản SD khác để sử dụng. Đối với SD phiên bản v2 trở lên, prompt phủ định là một phần bắt buộc để tạo ảnh.
Các trường hợp sử dụng Negative Prompt trong Stable Diffusion
Loại bỏ một thứ gì đó trong ảnh
Cách ứng dụng Negative Prompt rõ ràng nhất là loại bỏ bất cứ thứ gì bạn không muốn thấy trong ảnh.
Dưới đây là một ví dụ với Negative Prompt: “people”
Nếu kết quả vẫn chưa thể loại bỏ hết vật thể mà bạn không mong muốn. Bạn có thể yêu cầu Stable Diffusion cố gắng hơn nữa bằng cách nhấn mạnh vào lời nhắc phủ định (people:1.3). Điều đó nói với Stable Diffusion rằng từ khóa people bây giờ quan trọng hơn 30%.
Sửa đổi hình ảnh
Bạn có thể yêu cầu Stable Diffusion sửa đổi một chút trong hình ảnh với Negative Prompt tinh tế hơn. Trong ví dụ bên dưới, Negative Prompt: “windy” được sử dụng để loại bỏ bớt ảnh hưởng của gió, giúp tóc cô gái bồng bềnh hơn.
Bạn có thể sử dụng thêm negative prompt: “underage” để giúp hình ảnh cô gái trong “trưởng thành” hơn.
Chuyển đổi từ khóa
Ở ví dụ trên, nếu chúng ta muốn tóc che tai thì như thế nào? Hãy thêm Negative Prompt: “ear” với các yếu tố nhấn mạnh khác nhau. Dưới đây là ba mức độ nhấn mạnh tăng dần 1.3, 1.6 và 1.9.
Nhưng cũng có một cách khác là chuyển từ khóa, bạn có thể kết hợp 2 từ khóa prompt phủ định với nhau. Như ví dụ này, tôi sử dụng từ khóa vô nghĩa “the” trong lời nhắc phủ định bằng cách viết [the: (ear:1.9): 0.5]
Điều này có nghĩa là nếu trong 20 bước lấy mẫu, Stable Diffusion sẽ sử dụng “the” làm prompt phủ định từ bước 1 – 10 và (ear:1.9) ở các bước 11-20. Quá trình khuếch tán quan trọng nhất trong các bước đầu tiên và các bước sau chỉ là điều chỉnh các chi tiết tốt hơn, chẳng hạn như tóc che tai.
Vì sao sử dụng chuyển đổi từ khóa phủ định thay vì một từ khóa. Ở kết quả trên, bạn sẽ thấy điểm nhấn mạnh của (ear:1.9) nhiều hơn mà không thay đổi bố cục ảnh. Chúng ta nhận được một hình ảnh gần giống với ảnh ban đầu nhưng với tai bị tóc che đi.
Sửa đổi phong cách
Thay vì phải sử dụng nhiều từ ngữ để mô tả đúng hình ảnh trong câu prompt, có một việc đơn giản hơn là sử dụng một từ phủ định điều đó. Nó sẽ hiệu quả hơn trong một số trường hợp như:
Tạo ảnh sắc nét
Thay vì sử dụng các từ khóa “sharp”, “focused” trong lời nhắc prompt, bạn có thể sử dụng “blurry” trong lời nhắc phủ định. Hình ảnh sẽ trở nên sắc nét hơn.
Ảnh chân thực
Hãy sử dụng Negative Prompt: “painting, cartoon” để làm cho ảnh đầu ra của bạn trong chân thật hơn.
Nếu bạn muốn giữ bố cục ban đầu, bạn có thể thử nghiệm chuyển đổi từ khóa đã đề cập trước đó. Sử dụng [the: (painting cartoon:1.9): 0.3] sẽ nhận được kết quả:
Negative Prompt phổ biến thường dùng
Dưới đây là tổng hợp những từ ngữ Negative Prompt thường dùng, bạn có thể copy nó và đưa ngay vào phần prompt phủ định trong SD để sử dụng.
ugly, tiling, poorly drawn hands, poorly drawn feet, poorly drawn face, out of frame, extra limbs, disfigured, deformed, body out of frame, bad anatomy, watermark, signature, cut off, low contrast, underexposed, overexposed, bad art, beginner, amateur, distorted face
Kết luận
Với hướng dẫn chi tiết đầy đủ về Negative Prompt trong Stable Diffusion, chúng ta đã tìm hiểu về khái niệm Negative Prompt, cách sử dụng và ứng dụng của nó trong việc tạo ra các hình ảnh A.I chất lượng cao từ văn bản. Từ đó, chúng ta có thể thấy rằng Negative Prompt là tính năng hữu ích trong lĩnh vực xử lý ngôn ngữ tự nhiên và đóng vai trò quan trọng trong việc cải thiện chất lượng và độ chính xác của các mô hình txt2img. Vì vậy, việc áp dụng Negative Prompt sẽ giúp cho bạn đạt được kết quả tốt hơn trong các kết quả của mình.