After Detailer (adetailer) là một tiện ích mở rộng web-UI Stabel Diffusion Automatic11111 giúp tự động hoàn thiện hình ảnh và nhiều chức năng khác. Nó tiết kiệm thời gian cho bạn và rất hữu ích để nhanh chóng khắc phục các vấn đề phổ biến như khuôn mặt bị mờ. Trong bài viết này, bạn sẽ tìm hiểu cách nó hoạt động, cách sử dụng và một số trường hợp sử dụng phổ biến.
Phần mềm
Chúng ta sẽ sử dụng giao diện người dùng AUTOMATIC1111 Stable Diffusion. Bạn có thể sử dụng giao diện này trên Windows, Mac hoặc Google Colab.
Hãy xem Hướng dẫn Bắt đầu Nhanh nếu bạn là người mới với Stable Diffusion.
Cài đặt tiện ích After Detailer
Google Colab
Sử dụng After Detailer trong sổ ghi chép Google Colab của chúng ta rất dễ dàng. Bạn chỉ cần chọn tùy chọn ADetailer trong phần Tiện ích.
Windows hoặc Mac
Thực hiện theo các bước sau để cài đặt tiện ích Regional Prompter trong AUTOMATIC1111.
1. Khởi động AUTOMATIC1111 Web-UI bình thường.
2. Di chuyển đến Extension Page.
3. Nhấp vào tab Install from URL.
4. Nhập URL sau vào trường URL for extension’s git repository.
https://github.com/Bing-su/adetailer |
5. Chờ đợi thông báo xác nhận cài đặt hoàn tất.
6. Khởi động lại Web-UI.
Inpaint để sửa lỗi khuôn mặt
Trước khi tìm hiểu cách sử dụng After Detailer, thì việc đi qua những gì bạn sẽ làm nếu không có nó là hữu ích.
Vấn đề với việc tạo ra các khuôn mặt nhỏ
Hãy giả sử bạn tạo ra một hình ảnh toàn thân của một người. Bởi vì bạn đang sử dụng một mô hình v1, bạn không nên đặt độ phân giải quá cao (lớn hơn quá nhiều so với 512 pixel). Nếu không, bạn sẽ có các bản sao của cùng một người.
Mô hình: Realistic Vision v2
Gợi ý:
Một người phụ nữ đang ngồi trên một cây kem khổng lồ, được trang trí bởi những màu sắc sặc sỡ, ngọt ngào và những viên hạt màu cầu vồng. Sự ngọt ngào và niềm vui, hạnh phúc, sự kết hợp mê hoặc, trí tưởng tượng và một thế giới tưởng tượng, cổ tích, tương phản cao, nét mực, những cú nổ, ánh sáng quá mức, ấn tượng màu tím và đỏ, trừu tượng, không gian âm. |
Gợi ý phủ định:
Dưới tuổi vị thành niên, chưa trưởng thành, bị biến dạng, xấu xí. |
Kích thước: 512×768
Bởi vì khuôn mặt nhỏ và độ phân giải thấp, không có nhiều pixel bao phủ khuôn mặt. Mô hình VAE không có đủ pixel để tạo ra một khuôn mặt tốt. Vì vậy, khuôn mặt bị mờ.
Những gì bạn thường làm là gửi hình ảnh đến Inpainting bằng cách sử dụng nút Send to inpaint.
Trong tab Inpaint, vẽ một mặt nạ xung quanh khuôn mặt bị mờ.
Sử dụng các thiết lập sau:
- Mask mode: Inpaint masked
- Masked content: Original
- Inpaint area: Only masked
- Denoising strength: 0.5
Nhấn Generate.
Bạn sẽ thấy khuôn mặt được sửa chữa một cách đẹp đẽ. Tùy chọn inpaint only masked đặc biệt quan trọng vì nó sử dụng toàn bộ độ phân giải (512×768) để tái tạo lại khu vực có mặt nạ. Hiệu quả, nó tái tạo khuôn mặt ở độ phân giải cao hơn rồi thu nhỏ nó lại về độ phân giải ban đầu. Đó là lý do tại sao bây giờ khuôn mặt trông tốt hơn rất nhiều.
Tự động hoàn thiện hình ảnh với After Detailer
After Detailer tự động hóa quy trình này và nhiều chức năng khác. Công cụ này sử dụng mô hình nhận diện khuôn mặt để phát hiện khuôn mặt và tự động tạo mặt nạ cho việc hoàn thiện.
Tiện ích mở rộng sau đó thực hiện hoàn thiện với khu vực chỉ có mặt nạ, tương tự như đã thực hiện trong phần trước. Kết quả là:
Vì vậy, đó là một tiện ích mở rộng tiết kiệm thời gian.
Sử dụng After Detailer
Sử dụng trong Txt2img
Để sử dụng After Detailer trong txt2img, mở rộng ADetailer.
Chọn Enable ADetailer.
Chọn model face_yolo8n.pt trong menu thả xuống ADetailer model.
Chỉ cần thực hiện những thao tác đơn giản này để sử dụng chức năng cơ bản của việc phục hồi khuôn mặt.
Nhấn Generate. Bạn sẽ nhận được hình ảnh sau đây. Lý do bạn không nhận được khuôn mặt giống hệt như hoàn thiện bằng tay là do các mặt nạ hoàn thiện được vẽ khác nhau.
Sử dụng trong img2img
Bạn cũng có thể sử dụng After Detailer với image-to-image. Lợi ích là bạn có thể phục hồi khuôn mặt và thêm chi tiết cho toàn bộ hình ảnh cùng một lúc.
Trong trang txt2img, gửi hình ảnh đến trang img2img bằng cách sử dụng nút Send to img2img. Các tham số tạo ra, chẳng hạn như prompt và negative prompt, sẽ tự động được điền vào.
Đặt denoising strength (của img2img, không phải ADetailer) vào một giá trị thấp, ví dụ: 0.1.
Kích hoạt After Detailer trong phần ADetailer.
Nhấn Generate. Nhiều chi tiết được thêm vào hình ảnh!
Điều chỉnh denoising strength để điều khiển mức độ chi tiết được thêm vào.
denoising strength 0.1
denoising strength 0.2
Bạn cũng có thể sử dụng ADetailer trong tab inpaint. Nếu khu vực có mặt nạ bị thay đổi.
Giải thích các tham số của ADetailer
Bây giờ bạn đã biết chức năng cơ bản, hãy tìm hiểu một số tham số bổ sung để điều chỉnh chức năng của nó.
Mô hình nhận diện Chọn mô hình nhận diện trong menu thả xuống ADetailer model. Các mô hình được chia thành một số nhóm khác nhau:
- Face_xxxx: Phát hiện và vẽ lại khuôn mặt
- Hand_xxxx: Phát hiện và vẽ lại bàn tay
- Person_xxxx: Phát hiện và vẽ lại toàn bộ người
- Mediapipe_face_xxxxx: Phát hiện và vẽ lại khuôn mặt
Những mô hình hữu ích nhất là face_yolo và person_yolo. Các mô hình YOLO (You Only Look Once) rất tốt trong việc phát hiện khuôn mặt và đối tượng, và hoàn thiện hoạt động tốt.
Face_yolo_8n
Inpainted
Person_yolo_8n_seg
Inpainted
Tuy nhiên, do cần nhiều pixel hơn để hoàn thiện toàn bộ người, nên khuôn mặt không được hoàn thiện chi tiết như khi sử dụng mô hình face. Thường thì không nên hoàn thiện một khu vực lớn. Nếu bạn có một hình ảnh như vậy, bạn nên hoàn thiện bàn chân, váy, v.v. một cách thủ công từng bước một.
Mediapipe_face có thể thành công hoặc thất bại. Họ không thể làm tốt khi khuôn mặt bị lỗi, đó là lý do tại sao chúng ta cần chúng từ đầu…
Các mô hình tay dùng để vẽ lại bàn tay. Nhưng đừng kỳ vọng quá nhiều vào điều này vì Stable Diffusion vẫn chưa tốt trong việc vẽ lại bàn tay, dù có vẽ lại bao nhiêu lần.
Cuối cùng, bạn có thể tự hỏi về sự khác biệt giữa các mô hình YOLO 8n và 8s. Mô hình 8n nhanh hơn nhưng nhỏ gấp 3 lần so với mô hình 8s (do đó, ít mạnh mẽ hơn). Tôi thấy mô hình 8n hoạt động tốt. Chuyển sang mô hình 8s nếu After Detailer gặp khó khăn trong việc phát hiện khuôn mặt.
Cuối cùng, bạn có thể sử dụng lên đến hai mô hình nhận diện mỗi lần. Chỉ cần chuyển sang tab thứ hai và chọn một mô hình bổ sung.
Bây giờ nó sẽ phát hiện khuôn mặt và sau đó là bàn tay. Sau đó, nó hoàn thiện để sửa chữa cả hai một cách tuần tự.
Detecting face
Detecting Hand
Inpaint face and hand
Xem thêm: Regional Prompter: Điều khiển cấu trúc hình ảnh trong Stable Diffusion
Sử dụng một prompt khác trong việc hoàn thiện hình ảnh
Sử dụng prompt khác cho phép bạn, ví dụ, thay đổi khuôn mặt sau khi hoàn thiện. Điền các prompt và negatives cho việc hoàn thiện vào phần ADetailer bên dưới.
Một mẹo phổ biến là sử dụng nhiều tên người nổi tiếng để điều chỉnh diện mạo theo ý muốn. Ví dụ, tôi muốn khuôn mặt là sự kết hợp của hai nữ diễn viên.
(Emma Watson:0.8), Ana de Armas |
Keyword weight (trọng số từ khóa) được sử dụng để giảm hiệu ứng của Emma Watson, người thường mạnh mẽ hơn.
Điều chỉnh inpainting denoising strength (đây là phần ADetailer, KHÔNG phải txt2img) để điều chỉnh hiệu ứng. Bây giờ bạn có được diện mạo mới kết hợp!
Nếu bạn thấy diện mạo không đồng nhất trên khuôn mặt, hãy sử dụng các tên người nổi tiếng VÀ prompt ban đầu thay vì chỉ sử dụng các tên riêng lẻ.
Bạn có thể tự hỏi tại sao bạn không thể sử dụng các tên người nổi tiếng trong prompt ban đầu. Bạn tất nhiên có thể, nhưng do hiệu ứng liên kết, bạn sẽ vô tình nhận được các đối tượng và phong cách liên quan đến những cái tên mạnh mẽ này.
Cuối cùng, bạn cũng có thể sử dụng LoRA trong prompt. Dưới đây là kết quả hoàn thiện khuôn mặt với LoRA Tifa Lockhart.
lora:tifa-nvwls-v1:1 |
Detection (Phát hiện)
Các giá trị mặc định hoạt động tốt, nhưng dưới đây là ý nghĩa của chúng.
Detection model confidence threshold: Nhớ hộp xung quanh khuôn mặt với một số trên đỉnh? Con số đó gọi là điểm đánh giá độ tin cậy. 0.8 có nghĩa là mô hình tin tưởng 80% đó là khuôn mặt. Ngưỡng (threshold) là điểm đánh giá độ tin cậy tối thiểu cần thiết. Nếu bạn đặt nó là 0.9, một khuôn mặt với điểm đánh giá độ tin cậy là 0.8 sẽ không được xem xét. Giữ nó ở mức thấp 0.3. Giảm nó nếu bạn gặp vấn đề trong việc phát hiện khuôn mặt. Tăng nó nếu bạn phát hiện quá nhiều.
Mask min/max area ratio: Diện tích tối thiểu và tối đa của mặt nạ phát hiện được cho phép. Ví dụ, nếu bạn đặt tỷ lệ diện tích tối thiểu là 0.1, tiện ích sẽ loại bỏ những phát hiện có mặt nạ nhỏ hơn 10% kích thước của hình ảnh. Tăng tỷ lệ tối thiểu nếu bạn phát hiện các đối tượng nhỏ không mong muốn.
Mask Preprocessing (Xử lý mặt nạ)
Thường thì bạn không cần thay đổi chúng.
Chúng dùng để di chuyển và thay đổi kích thước mặt nạ trước khi hoàn thiện. Để có kết quả tốt nhất, bật “Save mask previews” trong Settings > ADetailer để hiểu cách mặt nạ thay đổi. Một hình ảnh xem trước mặt nạ sẽ được lưu lại cho mỗi phát hiện.
Mask x/y offset: Di chuyển mặt nạ theo hướng x/y, tính bằng pixel.
Mask erosion (-) / dilation (+): Thu nhỏ / Mở rộng mặt nạ.
Mask Merge mode:
- None: Hoàn thiện mỗi mặt nạ.
- Merge: Kết hợp các mặt nạ và sau đó hoàn thiện.
- Merge and invert: Hoàn thiện khu vực không có mặt nạ.
Inpainting (Hoàn thiện)
Thiết lập quan trọng nhất trong phần Inpainting là Inpaint denoising strength. Điều này điều chỉnh độ mạnh giảm nhiễu được sử dụng trong hoàn thiện tự động. Tăng lên để thực hiện nhiều thay đổi. Giảm xuống để thay đổi ít hơn.
Hầu hết thời gian bạn muốn sử dụng Inpaint only masked để hoàn thiện khuôn mặt.
Bạn có thể định nghĩa tối ưu chiều rộng ảnh, chiều cao, tỷ lệ CFG và số bước mẫu sử dụng trong hoàn thiện. Nhưng các giá trị mặc định là ổn.
Sử dụng ADetailer với ControlNet
ControlNet là một công cụ không thể thiếu để điều khiển chính xác việc tạo ra hình ảnh. Kiểm tra bài viết ControlNet nếu bạn chưa quen thuộc với nó. Để sử dụng ADetailer với ControlNet, bạn phải có ControlNet được cài đặt trên AUTOMATIC1111 của bạn.
Bạn có thể chọn mô hình ControlNet trong phần cuối cùng.
ControlNet Openpose
Sử dụng mô hình ControlNet Oopenpose để hoàn thiện người có cùng dáng điệu. Sử dụng mô hình openpose với mô hình phát hiện person_yolo.
Ví dụ, nếu không có bất kỳ ControlNet nào được bật và với độ mạnh giảm nhiễu cao (0.74), dáng điệu có thể thay đổi một cách không nhất quán với toàn bộ hình ảnh. Xem ví dụ dưới đây.
Khi bật ControlNet Openpose, dáng điệu của cô gái được giữ nguyên sau khi hoàn thiện.
ControlNet Tile
Bật ControlNet Tile để hoàn thiện trông chính xác hơn so với hình ảnh gốc.
Dưới đây là kết quả trước và sau khi bật ControlNet Tile.
Without ControlNet Tile
With ControlNet Tile
Bật ControlNet Tile nếu bạn muốn hoàn thiện được hướng dẫn bởi nội dung gốc.
ControlNet inpaint
Mô hình hoàn thiện ControlNet (control_xxxx_inpaint) với bộ xử lý tiền xử lý global_inpaint_harmonious cải thiện tính nhất quán giữa khu vực hoàn thiện và phần còn lại của hình ảnh.
Ví dụ, việc đặt độ mạnh giảm nhiễu hoàn thiện là 1 (tối đa) trong After Detailer là thảm họa.
Inpainting denoising strength = 1
Quá trình hoàn thiện có quá nhiều tự do để thay đổi khu vực có mặt nạ và đã làm hỏng hình ảnh.
Vấn đề này có thể được giải quyết bằng cách bật mô hình hoàn thiện ControlNet và bộ xử lý tiền xử lý global_inpaint_harmonious.
Inpainting denoising strength = 1 with global_inpaint_harmonious
Sử dụng global_inpaint_harmonious khi bạn muốn đặt độ mạnh giảm nhiễu hoàn thiện cao. Điều chỉnh giá trị một cách nhỏ hoặc thay đổi hạt giống để có được một thế hệ khác nhau.
ControlNet Line art
ControlNet line art cho phép quá trình hoàn thiện theo dõi đường nét tổng quan của hình ảnh gốc.
Original
After Detailer with ControlNet Line art
Sử dụng ControlNet line art nếu bạn muốn hình ảnh hoàn thiện tuân theo đường nét tổng quan của nội dung gốc.
ADetailer vs face restoration
Cả ADetailer và tùy chọn phục hồi khuôn mặt đều có thể được sử dụng để sửa chữa khuôn mặt bị lỗi. After Detailer sử dụng hoàn thiện ở độ phân giải cao và thu nhỏ nó lại để sửa chữa khuôn mặt. Phục hồi khuôn mặt sử dụng một mô hình AI khác, chẳng hạn như CodeFormer và GFGAN, để phục hồi khuôn mặt.
Việc sử dụng hoàn thiện (như sử dụng ADetailer) được ưa chuộng vì:
- Mô hình phục hồi khuôn mặt có thể tạo ra một phong cách không nhất quán với mô hình Stable Diffusion của bạn.
- Bạn có thể điều hướng thêm hoàn thiện bằng cách sửa đổi prompt và ControlNet.
Khi nào nên sử dụng ADetailer
Không có gì bạn có thể làm trong ADetailer mà bạn không thể thực hiện thủ công. ADetailer tự động hoá quy trình sau đây.
- Gửi hình ảnh để hoàn thiện
- Tạo mặt nạ hoàn thiện
- Cài đặt ControlNet (Tùy chọn)
- Tạo ra hoàn thiện
Khía cạnh có giá trị nhất khi sử dụng tiện ích mở rộng này là tự động hóa để bạn có thể tạo ra nhiều hình ảnh với cùng một thiết lập (kích thước lô lớn hơn 1). Điều này rất tẻ nhạt nếu thực hiện thủ công.
Vậy là xong. Hy vọng bạn đã thích hướng dẫn này. Hãy cho tôi biết nếu bạn có bất kỳ ý kiến hay phản hồi nào trong ô bình luận dưới đây.
Mẹo
Khi sử dụng ADetailer với img2img, có hai độ mạnh giảm nhiễu để đặt. Độ mạnh giảm nhiễu của img2img đặt giá trị cho toàn bộ hình ảnh. Độ mạnh giảm nhiễu hoàn thiện trong ADetailer đặt độ mạnh giảm nhiễu cho hoàn thiện.
Bạn có thể tùy chọn bật tính năng lưu kết quả của mô hình phát hiện trong Cài đặt > ADetailer. Nó sẽ lưu một hình ảnh bổ sung với vùng được phát hiện và điểm đánh giá độ tin cậy.
Để 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