Bài 3: ControlNet giữ hình dáng công trình
Tài liệu được biên soạn cho học viên của EliAI. Học viên không dùng cho bất kỳ mục đích thương mại hoá đối với tài liệu này.
Website EliAI: eliai.vn Youtube EliAI - Học Stable Diffusion cơ bản: https://www.youtube.com/channel/UCH2AwhHq_Mec5tiJ3qpMXOg Group EliAI Architecture - Ứng dụng AI trong Kiến trúc, Nội thất: https://www.facebook.com/groups/2142377032621971
I. Cách sử dụng ControlNet
1. Công dụng
- Vấn đề: trước đây, nếu chúng ta muốn tạo ra hình ảnh với hình dạng, vị trí cụ thể của các chi tiết trong bức ảnh mà chúng ta muốn thì vô cùng khó khăn. Ví dụ chúng ta muốn tạo ra một bức ảnh căn phòng với những nội thất và vị trí các nội thất như hình dưới đây chỉ với prompt thì vô cùng khó.
-
Chính vì thế mà ControlNet ra đời để giải quyết bài toán trên, giúp chúng ta có thể tạo ra bức ảnh mà những chi tiết, bố cục trong bức ảnh chúng ta có thể kiểm soát ngay từ đầu bằng việc đưa một bức ảnh có đường nét, bố cục tương tự vào Stable Diffusion.
-
Quy trình ControlNet hoạt động:
- Bước 1: Đưa vào ControlNet ảnh đầu vào, chúng ta muốn ảnh đầu ra sẽ có hình dạng, chi tiết giống như ảnh dưới đây.
- Bước 2: ControlNet sẽ xử lý và lấy những đường nét chính từ ảnh đưa vào.
- Bước 3: ControlNet sẽ kết hợp với Stable Diffusion tạo ra ảnh mới mà vẫn giữ được những đường nét của ảnh đưa vào.
Lưu ý: ControlNet và Stable Diffusion là hai AI khác nhau, ControlNet chỉ tích hợp vào Stable Diffusion.
⇒ Sản phẩm minh hoạ:
2. Các thông số chính trong ControlNet
a) Preprocessor
- Công dụng: Xử lý các hình ảnh đưa vào controlnet và tạo ra hình ảnh mà AI có thể hiểu được.
b) ControlNet Model
- Công dụng: Kết hợp với Stable Diffusion để ảnh sinh ra phải giống với những đường nét mà Controlnet lấy từ ảnh đưa vào.
Các Model ControlNet.
- Canny: Lấy tất cả đường nét của ảnh nhưng sẽ hơi thô, không tốt bằng LineArt.
- MLSD: Chỉ lấy những đường thẳng phù hợp với các phương án cải tạo mà chỉ cần giữ đường nét chính, được thông dụng nhất.
- LineArt: Lấy tất cả đường nét của ảnh, loại này cũng là loại cho ra đường nét tốt, thông dụng nhất.
- Depth: Lấy những đường nét theo chiều sâu của ảnh, phù hợp cho các không gian phức tạp.
- Pose: Lấy dáng người.
- Scribble: Để lấy các đường nét nghuệch ngoạc như phác họa, vẽ tay phù hợp cho các phương án mang tính sáng tạo cao.
- Segmentation: Lấy nét hình ảnh thành các vùng.
b) Weight (Trọng số của ControlNet)
- Công dụng: chỉ số này giúp cho ảnh tạo ra có bám sát đường nét mà ControlNet lấy từ ảnh đầu vào hay không. Chỉ số này càng lớn thì ảnh tạo ra càng bám sát đường nét, chỉ số này càng nhỏ thì ngược lại (lúc này ảnh tạo ra sẽ sáng tạo hơn).
- Lưu ý: chỉ số này có có phạm vi từ 0 - 2. Giá trị trung bình là 1,3.
c) ControlMode
- Công dụng: Kết hợp với Stable Diffusion để ảnh sinh ra phải giống với những đường nét mà Controlnet lấy từ ảnh đưa vào.
-
Có 3 thông số chính:
-
Balanced: Khi chúng ta chọn chế độ này, mức độ quan trọng của Prompt và ControlNet tác động đến ảnh sẽ được cân bằng. Thông thường, chúng ta sẽ chọn chế độ này.
-
My prompt is more important: Khi chúng ta chọn chế độ này, ảnh tạo ra sẽ bị tác động nhiều bởi prompt hơn so với ControlNet. ⇒ Mảng kiến trúc, Nội thất ưu tiên dùng chế độ này!
-
ControlNet is more important: Khi chúng ta chọn chế độ này, ảnh tạo ra sẽ bị tác động nhiều bởi ControlNet hơn so với prompt.
-
3. Các bước dùng ControlNet cơ bản
- Bước 1: Click vào Controlnet → Thêm ControlNet
- Bước 2: Cho ảnh chúng ta muốn lấy kiểu dáng, đường nét đưa vào . → Điều chỉnh các Moldel, ControlMode, Weight theo nhu cầu → Chạy Preproccesor → Ra ảnh → Bấm nút Xác nhận
-
Bước 3:
-
Tick vào ô vuông để chọn và sử dụng tạo ảnh.
-
Chúng ta có thể sử dụng nhiều ControlNet một lúc để kết hợp tạo ra một bức ảnh ưng ý.
-
Ở giao diện ControlNet, giống như hình mình hoạ phía dưới, chúng ta có thể sử dụng đến 2 - 3 ControlNet một lúc bằng cách đơn giản là kích hoạt từng ControlNet.
-
-
Bước 4: Nhập prompt để mô tả ảnh tạo ra.
-
Bước 5: Điều chỉnh kích thước ảnh tạo ra có tỷ lệ (chiều rộng và chiều cao) giống với tỷ lệ ảnh đưa vào controlnet.
Lưu ý: Trường hợp chúng ta điều chỉnh tỷ lệ ảnh tạo ta khác tỷ lệ ảnh đưa vào thì đường nét của ảnh tạo ra có thể không hoàn toàn giống với đường nét của ảnh đưa vào (bị mất một phần đường nét).
II. Cách loại ControlNet phổ biến
a) Canny
- Canny là một trong những loại ControlNet phổ biến, Control này thường được dùng nhiều trong mảng Kiến trúc, Nội ngoại thất,… phù hợp với những bức ảnh vẽ tay, sketch, hình ảnh thức tế.
- Đánh giá về chất lượng của ControlNet Canny: khả năng lấy đường nét từ ảnh đầu vào của Canny ở mức khá (khoảng 7/10).
b) Lineart
-
Đây là một trong những loại ControlNet được sử dụng phổ biến và chất lượng tốt nhất.
-
Lĩnh vực được áp dụng: Kiến trúc, nội ngoại thất, anime, người,…. Ảnh đầu vào có thể là bản vẽ tay, sketch, ảnh thực tế.
-
Chất lượng của ControlNet Lineart trong việc lấy đường nét từ ảnh đưa vào rất tốt, đường nét mịn hơn, rõ hơn, được đánh giá tốt hơn ControlNet Canny, điểm chất lượng (9/10).
-
Các loại Preprocessor Lineart:
-
Lineart Realistic: phù hợp để tạo ra ảnh thực tế.
-
Lineart Anime: Phù hợp để tạo ra ảnh anime.
-
c) MLSD
- Thường được dùng cho những ảnh đầu vào là ảnh thật, có nhiều chi tiết phức tạp. ControlNet MLSD có khả năng lấy những đường nét chính, bỏ đi các chi tiết nhỏ từ một bức ảnh đầu vào có nhiều chi tiết phức tạp.
- ControlNet này có thể được ứng dụng để lên phương án Cải tạo cho Kiến trúc, Nội thất.
d) Scribble
- Đây là ControlNet phù hợp với những ảnh đầu vào là những bản vẽ tay, đường nét nguệch ngoạc, không phù hợp đối với những ảnh đầu vào có quá nhiều chi tiết.
- Thường được ứng dụng để tạo concept từ bản vẽ tay cho ngành kiến trúc, anime, nhân vật,…
e) Segmentation
- ControlNet Segmentation có khả năng tách bức ảnh đầu vào thành các mảng màu khác nhau, mỗi mảng màu là một chi tiết khác nhau. Đây là một phương pháp khác biệt so với những ControlNet được đề cập ở phía trên.
- ControlNet Segmentation ứng dụng tốt cho mảng nội thất hoặc các hình ảnh có bố cục được chia thành từng mảng rõ ràng.
f) Pose
- Đây là ControlNet có tác dụng mô phỏng lại dáng người từ bức ảnh đưa vào, ảnh tạo ra sẽ giống với dáng người từ ảnh đầu vào.
- ControlNet Open Pose được ứng dụng riêng cho ảnh người.