Bạn có biết rằng bạn có thể chỉ định các gợi ý cho các khu vực khác nhau của một hình ảnh không? Bạn có thể làm điều đó trên AUTOMATIC1111 với tiện ích mở rộng “Regional Prompter“.
Trong bài viết này, bạn sẽ trải qua một ví dụ cơ bản dễ hiểu về việc sử dụng kỹ thuật gợi ý khu vực. Sau đó, bạn sẽ tìm hiểu thêm về cách sử dụng gợi ý khu vực cùng với ControlNet trong các trường hợp phức tạp hơn.
Phần mềm
Chúng ta sẽ sử dụng giao diện người dùng Stable Diffusion GUI trên AUTOMATIC1111. Bạn có thể sử dụng giao diện người dùng này trên Windows, Mac hoặc Google Colab.
Cài đặt tiện ích mở rộng “Regional Prompter”
Colab Notebook
Cài đặt tiện ích mở rộng “Regional Prompter” trong Colab Notebook theo Hướng dẫn Bắt đầu Nhanh là dễ dàng. Bạn chỉ cần kiểm tra tiện ích mở rộng “Regional Prompter”.
Windows hoặc Mac
Làm theo các bước sau để cài đặt tiện ích mở rộng “Regional Prompter” trong AUTOMATIC1111.
1. Bắt đầu AUTOMATIC1111 Web-UI bình thường.
2. Chuyển đến trang Extension.
3. Nhấp vào tab Available.
4. Nhấp vào nút Load from:.
5. Tìm tiện ích mở rộng “Regional Prompter”.
6. Nhấp vào nút Install.
7. Khởi động lại giao diện người dùng web.
Ví dụ đơn giản
Hãy xem qua một ví dụ đơn giản. Tôi sẽ sử dụng một gợi ý rất đơn giản để minh họa hiệu quả.
Giả sử bạn muốn tạo ra một người đàn ông và một phụ nữ trong cùng một hình ảnh. Sử dụng gợi ý đơn giản sau:
một người đàn ông và một phụ nữ |
và gợi ý tiêu cực:
biến dạng, xấu xí |
Chúng ta nhận được hình ảnh một người đàn ông và một phụ nữ.
Đến đây thì tốt. Nhưng nếu bạn muốn cụ thể hơn? Ví dụ như tạo ra một người đàn ông có tóc đen và một phụ nữ có tóc vàng? Tất nhiên, bạn viết điều đó trong gợi ý.
một người đàn ông có tóc đen, một phụ nữ có tóc vàng |
Stable Diffusion đôi khi làm lẫn lộn các thuộc tính
Có thể bạn sẽ nhận được những gì bạn mô tả đôi khi, nhưng thường thì Stable Diffusion sẽ nhầm lẫn về việc màu tóc nên đi với ai. Tình huống sẽ còn phức tạp hơn nếu bạn muốn cụ thể thêm về màu sắc của quần áo, v.v.
Tại sao lại như vậy? Tại sao Stable Diffusion không thể làm được thậm chí một việc đơn giản như vậy? Cơ chế tự-chú ý của nó liên kết sai màu tóc và người.
Nhưng có một giải pháp cho vấn đề này: chỉ định gợi ý cho người đàn ông tóc đen chỉ ở phía trái của hình ảnh và phụ nữ tóc vàng ở phía phải của hình ảnh.
Tiện ích “Regional Prompter”
Để sử dụng tiện ích “Regional Prompter”:
1. Mở rộng phần “Regional Prompter” trên trang txt2img.
2. Kiểm tra Active để kích hoạt tiện ích “Regional Prompter”.
3. Hầu hết các thiết lập mặc định là phù hợp với ví dụ này. Cụ thể, chúng là:
- Chế độ chia: Ngang
- Chế độ tạo: Attention
- Tỷ lệ chia: 1, 1
4. Nhấp vào visualize và make template. Bạn sẽ thấy hình ảnh khu vực ở dưới đây chỉ ra hai khu vực: khu vực 0 bên trái và khu vực 1 bên phải được chia đều với tỷ lệ 1-1.
5.Nhập vào gợi ý
một người đàn ông và một phụ nữ, một người đàn ông có tóc đen BREAK một người đàn ông và một phụ nữ, một phụ nữ có tóc vàng |
Các gợi ý được tách rời bởi từ khóa BREAK. Chúng ta có hai gợi ý ở trên.
Gợi ý đầu tiên sẽ được áp dụng cho khu vực 0. Gợi ý thứ hai sẽ được áp dụng cho khu vực 1.
Gợi ý tiêu cực:
biến dạng, méo mó, xấu xí |
Vì không có BREAK trong gợi ý tiêu cực, toàn bộ gợi ý sẽ được áp dụng cho cả hai khu vực.
Sau đây là những gì chúng ta nhận được:
Stable Diffusion tạo ra một người đàn ông có tóc đen ở khu vực 0 (hình 1 và 3) và một phụ nữ có tóc vàng ở khu vực 1 (hình 2 và 4).
Lưu ý rằng điều này không hoạt động 100% trong mọi trường hợp. Theo kinh nghiệm của tôi, nó hoạt động khoảng 75% trong thời gian đó. Nhưng vẫn tốt hơn để dựa vào may rủi tuyệt đối.
Gợi ý chung
Bạn có thể nhận thấy rằng hai gợi ý chia sẻ một phần chung “một người đàn ông và một phụ nữ”.
một người đàn ông và một phụ nữ, một người đàn ông có tóc đen BREAK một người đàn ông và một phụ nữ, một phụ nữ có tóc vàng |
Nếu bạn không có gợi ý chung, Stable Diffusion chỉ sẽ tạo ra một người:
một người đàn ông có tóc đen BREAK một phụ nữ có tóc vàng |
Lý do là cả hai gợi ý cho khu vực trái và phải mô tả một người duy nhất. Do đó bạn chỉ nhận được một người! Bạn cần thông báo cho Stable Diffusion rằng đây là một bức ảnh của hai người: một người đàn ông và một phụ nữ.
Đó là lý do tại sao bạn cần một gợi ý chung “một người đàn ông và một phụ nữ”.
Khác với ví dụ đơn giản này, gợi ý chung thường khá dài nếu bạn tạo hình ảnh thực. Có một cách tiện lợi để làm việc với điều này.
1. Kiểm tra tùy chọn Use common prompt.
2. Bây giờ bạn có thể thêm gợi ý chung (một người đàn ông và một phụ nữ) vào đầu.
một người đàn ông và một phụ nữ BREAK một người đàn ông có tóc đen BREAK một phụ nữ có tóc vàng |
Chúng ta có ba gợi ý ở trên: (1) gợi ý chung, (2) gợi ý cho khu vực 0, và (2) gợi ý cho khu vực 1.
Gợi ý chung được thêm vào đầu của gợi ý cho mỗi khu vực.
Gợi ý chung chỉ là một cú pháp đơn giản: Nó tương đương với những gì đã có trong gợi ý gốc.
Các khu vực phức tạp hơn
Bí quyết khi sử dụng tiện ích “Regional Prompter” là xác định chính xác các khu vực. Trong phần này, tôi sẽ giải thích cách thiết lập tỷ lệ chia để phân chia hình ảnh theo cách bạn muốn. Có thể khó hiểu hoặc nhớ cách chỉ định các khu vực một cách chính xác. Bạn luôn có thể nhấp vào visualize and make template để tạo hình ảnh khu vực.
Trong phân chia một chiều, bạn có thể phân chia các khu vực theo chiều ngang hoặc chiều dọc.
Phân chia theo chiều ngang
Để phân chia khu vực theo chiều ngang, chọn horizontal trong divide mode. Mỗi khu vực được đại diện bằng một số cách nhau bằng dấu phẩy. Số đại diện cho kích thước của khu vực.
Ví dụ về tỷ lệ chia (Divide Raito):
1,1 |
1,1,1 |
1,2,1 |
Phân chia theo chiều dọc
Chế độ phân chia theo chiều dọc tương tự ngoại trừ việc các khu vực được phân chia theo chiều dọc. Dưới đây là một số ví dụ về tỷ lệ chia (Divide Raito).
1,1 |
1,1,1 |
1,2,1 |
Khu vực 2D
Bạn có thể chia khu vực cả theo chiều dọc và chiều ngang trong một hình ảnh. Chọn horizontal divide model. Những quy tắc là:
- Các hàng được phân tách bởi dấu chấm phẩy (;)
- Mỗi hàng là một chuỗi số được phân tách bằng dấu phẩy, ví dụ: 1,1,1
- Số đầu tiên trong mỗi hàng đại diện cho chiều cao của hàng. Những số tiếp theo đại diện cho width of the regions.
Hãy xem một số ví dụ.
1,1,1; 1,1,1 |
Định nghĩa hai hàng, mỗi hàng có chiều cao là 1. Cả hai hàng có hai khu vực với chiều rộng bằng nhau (1,1).
Tổng cộng có 4 khu vực.
1,1,1; 2,1,1 |
- Định nghĩa hai hàng.
- Chiều cao của hàng đầu tiên là 1. Chiều cao của hàng thứ hai là 2.
- Mỗi hàng có hai khu vực với chiều rộng bằng nhau (1,1).
- Tổng cộng có 4 khu vực.
Cuối cùng, hãy xem một ví dụ phức tạp hơn. Nếu bạn hiểu ví dụ này, bạn đã hiểu mọi thứ về phân chia khu vực!
1,1,1,1; 2,1,2 |
- Có hai hàng.
- Chiều cao của hàng đầu tiên là 1. Chiều cao của hàng thứ hai là 2.
- Hàng đầu tiên có 3 khu vực với chiều rộng là 1. (1,1,1)
- Hàng thứ hai có hai khu vực với chiều rộng là 1 và 2. (1,2)
- Tổng cộng có 5 khu vực.
Xem thêm: 3 phương pháp độc đáo tăng kích thước hình ảnh trong Stable Diffusion
Một ví dụ sử dụng “Regional Prompter” 2D
Hãy giả sử rằng tôi đang thử nghiệm các hình ảnh thực. Tôi đã đưa ra gợi ý sau đây.
Model: Lyriel v1.5
Gợi ý:
một phù thủy, khuôn mặt chi tiết cao, nửa người, ánh sáng studio, ánh sáng kịch tính, quần áo chi tiết cao, nhìn vào bạn, bí ẩn, ánh sáng kịch tính BREAK (trăng tròn đầy:1.3) BREAK BREAK BREAK (phép thuật lửa đẹp: 1.2) |
Gợi ý tiêu cực:
dưới 18 tuổi, chưa trưởng thành, biến dạng, méo mó |
Chúng ta nhận được một số hình ảnh như sau.
Không tồi, nhưng không có cách nào để kiểm soát vị trí của mặt trăng và lửa. Bạn chỉ có thể nhấn nút Tạo liên tục cho đến khi nhận được sự sắp đặt bạn muốn.
Đây là lúc tiện ích “Regional Prompter” có thể giúp ích.
Sử dụng các thiết lập sau:
- Chế độ chia: Ngang
- Sử dụng gợi ý chung: Có
- Tỷ lệ chia: 1,1,1;2,1,1
Gợi ý:
một phù thủy, khuôn mặt chi tiết cao, nửa người, ánh sáng studio, ánh sáng kịch tính, quần áo chi tiết cao, nhìn vào bạn, bí ẩn, ánh sáng kịch tính BREAK (trăng tròn đầy:1.3) BREAK BREAK BREAK (phép thuật lửa đẹp: 1.2) |
Điều này đặt mặt trăng trong khu vực 0 (trên cùng bên trái) và lửa trong khu vực 3 (dưới cùng bên phải).
Giờ đây chúng ta đã có thể kiểm soát vị trí!
Giờ hãy đặt mặt trăng ở góc trên bên phải (khu vực 1) và lửa ở góc dưới bên trái (khu vực 2).
một phù thủy, khuôn mặt chi tiết cao, nửa người, ánh sáng studio, ánh sáng kịch tính, quần áo chi tiết cao, nhìn vào bạn, bí ẩn, ánh sáng kịch tính BREAK BREAK (trăng tròn đầy:1.3) BREAK (phép thuật lửa đẹp: 1.2) BREAK |
Hãy xem mặt trăng ở góc trên bên phải và lửa ở góc dưới bên trái.
Một lần nữa, bạn nên nhớ rằng tiện ích “Regional Prompter” không hoạt động 100% trong mọi trường hợp. Vì vậy, hãy tạo ít nhất một số hình ảnh cùng một lúc.
Gợi ý khu vực với ControlNet
Tiện ích Regional Prompter có thể chỉ định các gợi ý cho mỗi khu vực nhưng không thể kiểm soát tổng thể cấu trúc của hình ảnh. Vậy, chúng ta có một công cụ có thể làm chính xác điều đó: ControlNet.
Chúng ta hãy xem qua hai ví dụ về việc sử dụng Regional Prompter và ControlNet cùng nhau để đạt được mức độ thao tác mà nếu không có chúng, chúng ta chỉ có thể mơ ước.
Ví dụ 1: Kiểm soát cấu trúc toàn cục và cục bộ
Giả sử bạn muốn tạo ra một bức ảnh về một pháp sư đang nghiên cứu một cuốn sách cổ trong một không gian khu vực nhỏ. Ngoài ra, bạn muốn có một con sói bên cạnh anh và một số hộp sọ trên sàn.
Đó là nhiều yếu tố phải quan tâm. Nếu bạn sử dụng chức năng văn bản-hình ảnh thông thường, bạn sẽ thấy một loạt các cấu trúc.
Văn bản-hình ảnh
Là một người dùng Stable Diffusion không biết gì cả, tôi đưa ra gợi ý này và hy vọng mọi thứ tốt đẹp.
một pháp sư bí ẩn, khuôn mặt chi tiết cao, trang phục chi tiết cao, hiệu ứng điện ảnh, bóng tối, kinh dị, tường đá cũ, biểu tượng cổ xưa, cuốn sách cổ bí ẩn bị rách, con sói, nhiều hộp sọ |
Gợi ý tiêu cực:
dưới 18 tuổi, chưa trưởng thành, biến dạng, méo mó |
Model: Lyriel v1.5
Đó là những bức ảnh khá, nhờ vào kỹ năng gợi ý của tôi. (!)
Nhưng đó không hoàn toàn là những gì tôi muốn tạo ra. Có lẽ tôi đã không nói rõ ràng rằng anh ta đang nghiên cứu một cuốn sách. Hãy sắp xếp lại gợi ý một chút.
một pháp sư bí ẩn đang nghiên cứu cuốn sách cổ bí ẩn, khuôn mặt chi tiết cao, trang phục chi tiết cao, hiệu ứng điện ảnh, bóng tối, kinh dị, tường đá cũ, biểu tượng cổ xưa, con sói, nhiều hộp sọ |
Bây giờ nó gần với ý tưởng của tôi hơn. Nhưng tôi không kiểm soát được tư thế của Pháp sư và cách phóng to hình ảnh.
Thêm ControlNet
Tất nhiên, bước tiếp theo là kiểm soát tư thế bằng cách sử dụng ControlNet. Tôi giả định bạn đã cài đặt và biết cơ bản về nó.
Tôi sẽ hướng dẫn bạn sử dụng nó trong quy trình này. Đọc bài viết ControlNet nếu bạn muốn tìm hiểu thêm.
Tôi sẽ sử dụng ảnh trữ kho này làm hình mẫu.
Ảnh tham khảo
Bước 1: Tải lên ảnh tham khảo lên bảng hình ảnh. Bạn có thể kéo và thả ảnh tham khảo vào đó.
Bước 2: Kiểm tra Enable.
Bước 3: Chọn openpose trong menu thả xuống Preprocessor.
Bước 4: Chọn control_opepose trong menu thả xuống Model.
Tùy chọn, xem trước tư thế trích xuất bằng cách thực hiện các bước sau.
- Kiểm tra Allow Preview.
- Một biểu tượng mới trông giống như một vụ nổ sẽ xuất hiện bên cạnh menu thả xuống Model. Bấm vào biểu tượng để xem trước tư thế.
Ấn Generate để tạo ảnh với ControlNet.
Dưới đây là những gì chúng ta có.
Bây giờ đã tiến một bước tiến. Chúng ta đã sửa tư thế của pháp sư. Anh ta bây giờ luôn ngồi xuống và hiển thị toàn bộ cơ thể của mình.
Nhưng vẫn thiếu một cơ chế để chỉ định gợi ý ở một số khu vực cụ thể. Bạn có thể biết điều tôi muốn là gì. Đúng, thêm gợi ý khu vực!
Thêm gợi ý khu vực
Bây giờ, kích hoạt tiện ích Regional Prompter bằng cách chọn ô kiểm Active.
Chúng ta vẫn sử dụng Horizontal Divide mode.
Kiểm tra Use common prompt.
Chúng ta sẽ chia hình ảnh thành 4 khu vực. Tỷ lệ chia (Divide Raito) là:
1,1,1.5; 1,1,1.5 |
4 khu vực sẽ trông như này.
Chúng ta muốn có những gì sau đây:
- Toàn bộ hình ảnh: một pháp sư
- Khu vực 0: tường đá với biểu tượng cổ xưa
- Khu vực 1: pháp sư đang đọc cuốn sách
- Khu vực 2: một con sói bên cạnh tường đá
- Khu vực 3: một số hộp sọ
Và gợi ý là
một pháp sư bí ẩn, khuôn mặt chi tiết cao, trang phục chi tiết cao, hiệu ứng điện ảnh, bóng tối, kinh dị BREAK tường đá cũ, (biểu tượng cổ xưa:1.3) BREAK cuốn sách cổ cổ (bí ẩn :1.2) BREAK tường đá cũ, (con sói:1.5) BREAK (nhiều hộp sọ:1.5), mờ |
Lưu ý rằng tôi đã tăng trọng số cho một số từ khóa. Nếu không, các đối tượng có thể không hiển thị.
Bây giờ bạn đã hoàn toàn kiểm soát được vị trí của con chó, kỹ năng và biểu tượng cổ điển. Xem các hình ảnh bên dưới.
Xem thêm: Cách tối ưu ánh sáng trong Stable Diffusion: 3 phương pháp đáng thử
Ví dụ 2: Đặt màu chính xác
Giả sử bạn muốn tạo ra một số bức ảnh chụp của một người phụ nữ có tóc màu nâu, áo blouse màu và váy xanh. Nghe có vẻ dễ dàng phải không?
Nếu bạn đã thử tạo ra một cái gì đó như vậy, bạn sẽ biết rằng đây là một thách thức.
Hãy xem một số ví dụ với gợi ý sau đây. (Sửa đổi từ hướng dẫn “Realistic People”)
ảnh toàn thân của phụ nữ trẻ, tóc nâu tự nhiên, áo blouse màu vàng, váy xanh, phố đông đúc, ánh sáng bao quanh, ánh sáng studio, nhìn vào máy ảnh, máy ảnh DSLR, chất lượng siêu cao, lấy nét sắc nét, độ sâu trường ảnh, hạt phim, Fujifilm XT3, rõ ràng tinh khiết, 8K UHD, đôi mắt sáng bóng chi tiết cao, da chi tiết cao, lỗ chân lông |
biến dạng, xấu xí, tồi, chưa trưởng thành, hoạt hình, anime, 3D, vẽ bút mực và trắng đen |
Model: Realistic Vision v2
Stable Diffusion đã tự sáng tạo! Màu sắc đã bị giao nhau.
Bạn sẽ thấy rằng không phải lúc nào cũng dễ dàng để nói cho Stable Diffusion biết màu nào nên xuất hiện ở đâu. Cơ chế tự chú ý của các yếu tố gợi ý không hoạt động tốt ở đây.
Bạn sẽ nhận được một phân công đúng theo cơ hội. Nhưng tôi thà dùng cơ hội đó để có một cấu trúc tốt hơn …
Regional Prompter
Phân công màu là điều mà regional prompter có thể giúp đỡ. Hãy chia hình ảnh theo chiều dọc thành 3 phần.
Chế độ Chia: Dọc
Tỷ lệ chia: 1, 1, 1.5
Sử dụng gợi ý chung: Có
Gợi ý:
ảnh toàn thân của phụ nữ trẻ, phố đông đúc, ánh sáng bao quanh, ánh sáng studio, nhìn vào máy ảnh, máy ảnh DSLR, chất lượng siêu cao, lấy nét sắc nét, độ sâu trường ảnh, hạt phim, Fujifilm XT3, rõ ràng tinh khiết, 8K UHD, đôi mắt sáng bóng chi tiết cao, da chi tiết cao, lỗ chân lông BREAK tóc nâu tự nhiên BREAK (áo blouse màu vàng: 1.3) BREAK (váy xanh: 1.3) |
Gợi ý tiêu cực vẫn như cũ:
biến dạng, xấu xí, tồi, chưa trưởng thành, hoạt hình, anime, 3D, vẽ bút mực và trắng đen |
Rất tốt! Regional prompt là một giải pháp hiệu quả cho vấn đề phân công màu sắc.
Sử dụng ControlNet Pose để có thêm kiểm soát.
Regional Prompter như một công cụ sáng tạo
Chúng ta may mắn có Stable Diffusion trong tay. Regional Prompter cho bạn khả năng gợi ý ở các phần khác nhau của hình ảnh. Hãy nghĩ về việc tạo ra những hiệu ứng hình ảnh mới! Tạo ra một số hiệu ứng hình ảnh mà trước đây không thể thực hiện được!
Dưới đây là một ví dụ về chia một hình ảnh về thiên nhiên thành bốn phần theo chiều ngang và gán thời tiết khác nhau cho mỗi phần.
Chế độ Chia: Ngang
Tỷ lệ chia: 1, 1, 1, 1
Sử dụng gợi ý chung: Có
Model: Lyriel v1.5
Gợi ý:
một công viên hoang dã đẹp, con đường đến tự do, lòng dũng cảm và tình yêu, ảnh quốc gia đẹp nhất năm BREAK mùa xuân, cây cỏ, chim chóc, cỏ xanh, (nắng, hoa hoang dã:1.2), tia nắng mặt trời, bầu trời trong xanh BREAK nhiều mây, khô BREAK bão giông, mưa BREAK mùa đông, tuyết rơi dày, cây trơ trụi |
Gợi ý tiêu cực:
BREAK
tuyết rơi BREAK BREAK BREAK BREAK |
Tôi chắc chắn rằng bạn có thể sáng tạo hơn tôi. Hãy để ý tưởng của bạn tự do bay lượn và bắt đầu thực nghiệm!
Lưu ý cuối cùng
- Tăng trọng số cho một từ khóa nếu bạn không thấy đối tượng.
- Thường xuyên có hình ảnh không hoàn hảo. Sửa chúng ở đâu đó bằng cách đổ màu. Khác với nhiều tiện ích mở rộng khác, Regional Prompter chia sẻ cài đặt giữa txt2img và img2img. Vì vậy, hãy chắc chắn bỏ chọn Active nếu bạn không muốn sử dụng nó để đổ màu.
- Tiện ích mở rộng này có nhiều chức năng hơn những gì tôi đã đi qua. Xem trang GitHub của Regional Prompter để tìm hiểu thêm.
- Có một tiện ích phụ trước đây gọi là Latent Couple làm điều tương tự. Regional Prompter đang được cập nhật và có một số chức năng bổ sung.
- Thử nghiệm với chế độ Attention và Latent để xem cái nào hoạt động tốt nhất cho bạn. (Attention hoạt động khá tốt đối với tôi.)
Để biết thêm thông tin chi tiết về Stable Diffusion có thể tìm hiểu thêm tại khóa học Stable Diffusion – Midjourney tại Arcline Academy hoặc có thể tham khảo thêm thông tin các khóa học khác tại đây
Trụ sở chính: 32/19 Nghĩa Hòa, Phường 06, Q. Tân Bình, TPHCM (Nhà Thờ Nghĩa Hòa – Khu Bắc Hải)
Trụ sở miền Tây: L30-09, Đường số 43, Khu Dân cư Stella Megacity, P. Bình Thủy, Q. Bình Thủy, Tp. Cần Thơ
Hotline: 0988 363 967