ControlNet là một công cụ mạnh mẽ giúp điều khiển và tinh chỉnh đầu ra của các mô hình AI trong việc tạo hình ảnh, đặc biệt hữu ích cho ngành Diễn họa Kiến trúc. Với ControlNet, người dùng có thể kiểm soát chính xác hơn các yếu tố như bố cục, hình dáng và phong cách của hình ảnh, từ đó tạo ra những sản phẩm đồ họa phù hợp với yêu cầu thiết kế.
Bài viết này từ 4pixos Academy sẽ cung cấp hướng dẫn chi tiết về cách sử dụng ControlNet, giúp bạn tận dụng tối đa công cụ này trong quy trình làm việc.
1. ControlNet là gì?
Trong các mô hình như Stable Diffusion, quá trình tạo hình ảnh từ văn bản hoặc một đầu vào nào đó thường khó kiểm soát. Bạn có thể cung cấp mô tả, nhưng việc hình ảnh cuối cùng có đúng với ý muốn hay không lại phụ thuộc khá nhiều vào cách mà mô hình AI hiểu và diễn giải mô tả đó.
ControlNet ra đời để giải quyết vấn đề trên bằng cách thêm các điều kiện bổ sung (control conditions) cho mô hình. Nó cho phép kiểm soát một số yếu tố cụ thể của hình ảnh như tư thế, hình dáng, cấu trúc vật thể, hoặc các yếu tố kỹ thuật khác.
2. Cách hoạt động của ControlNet
ControlNet hoạt động bằng cách thêm một mạng nơ-ron (neural network) riêng biệt vào các mô hình khuếch tán đã được đào tạo trước. Mạng này giúp “điều khiển” kết quả đầu ra bằng cách sử dụng một loạt các “hướng dẫn” dưới dạng hình ảnh hoặc thông tin bổ sung khác. Cụ thể:
- Kiểm soát bằng hình ảnh đầu vào: Bạn có thể cung cấp một hình ảnh hoặc phác thảo đơn giản để định hình bố cục hoặc cấu trúc của hình ảnh đầu ra.
- Tăng độ chi tiết: ControlNet có thể giúp bạn giữ các yếu tố quan trọng của hình ảnh, như đường nét, tư thế, hoặc tỷ lệ, mà không làm mất đi sự sáng tạo của AI. Ví dụ, nếu bạn cung cấp một bản vẽ phác thảo, ControlNet sẽ sử dụng bản phác đó để tạo ra hình ảnh cuối cùng với độ chi tiết cao hơn.
- Kết hợp nhiều loại dữ liệu: Ngoài hình ảnh, ControlNet có thể làm việc với các loại dữ liệu khác như bản đồ biên (edge maps), bản đồ chiều sâu (depth maps), hay mặt nạ (mask) để kiểm soát chính xác hơn hình ảnh đầu ra.
3. Hướng dẫn cài đặt Stable Diffusion ControlNet
(Phiên bản hướng dẫn này được cập nhật cho ControlNet v1.1)
3.1 Cài đặt ControlNet trên Google Colab
Cài đặt ControlNet trên Google Colab rất dễ dàng, chỉ với vài bước đơn giản thông qua notebook của Stable Diffusion trong phần Quick Start Guide.
- Mở notebook của Stable Diffusion trên Google Colab.
- Trong phần Extensions của notebook, đánh dấu chọn ControlNet.
- Nhấn nút Play để khởi động AUTOMATIC1111.
Vậy là xong, ControlNet đã được kích hoạt trên Google Colab!
3.2 Cài đặt ControlNet trên Windows hoặc Mac
- Mở giao diện web của AUTOMATIC1111 (Giao diện người dùng web (Web UI) của Stable Diffusion) và điều hướng đến trang Extensions.
- Chọn thẻ Install from URL.
- Trong ô URL for extension’s repository, nhập URL sau:
https://github.com/Mikubill/sd-webui-controlnet
- Nhấp vào nút Install.
- Chờ cho đến khi có thông báo xác nhận rằng extension đã được cài đặt thành công.
- Khởi động lại AUTOMATIC1111.
- Truy cập trang ControlNet models.
- Tải xuống tất cả các tệp có đuôi .pth. Nếu bạn không muốn tải hết, có thể tải hai tệp phổ biến là openpose và canny để bắt đầu.
- Đặt các tệp đã tải vào thư mục models của extension ControlNet:
stable-diffusion-webui\extensions\sd-webui-controlnet\models
Khởi động lại giao diện web của AUTOMATIC1111.
Nếu cài đặt thành công, bạn sẽ thấy một phần mới có thể thu gọn trong tab txt2img tên ControlNet, ngay phía trên menu thả xuống của Script.
4. Sử dụng ControlNet – ví dụ đơn giản
Sau khi đã cài đặt ControlNet, chúng ta sẽ cùng thực hiện một ví dụ đơn giản để sử dụng công cụ này.
4.1 Xác minh cài đặt ControlNet
Đầu tiên, hãy đảm bảo rằng bạn đã cài đặt thành công ControlNet. Bạn có thể kiểm tra bằng cách mở giao diện và tìm phần ControlNet trong tab txt2img. Nhấn vào biểu tượng mũi tên bên phải để mở rộng bảng điều khiển ControlNet. Bạn sẽ thấy một số tùy chọn điều chỉnh và khu vực để tải ảnh.
4.2 Cài đặt chế độ tạo ảnh từ văn bản
Để sử dụng ControlNet, bạn cần một model Stable Diffusion. Trong menu thả xuống Stable Diffusion checkpoint, hãy chọn model bạn muốn sử dụng. Ở đây, chúng ta sẽ chọn mô hình v1-5-pruned-emaonly.ckpt cho phiên bản Stable Diffusion v1.5.
Trong tab txt2img, nhập prompt để tạo ảnh. Ví dụ:
- Prompt:
full-body, a young female, highlights in hair, dancing outside a restaurant, brown eyes, wearing jeans
- Negative prompt:
disfigured, ugly, bad, immature
Tiếp theo, cài đặt kích thước cho hình ảnh cần tạo. Ví dụ chọn chiều rộng 512 và chiều cao 776. Lưu ý rằng kích thước ảnh được thiết lập trong phần txt2img, không phải trong phần ControlNet.
4.3 Cài đặt ControlNet
Bây giờ, hãy chuyển sang bảng điều khiển ControlNet.
- Tải ảnh đầu vào: Tải một hình ảnh lên ở image canvas. Đây sẽ là hình ảnh mà ControlNet sẽ sử dụng để lấy thông tin đầu vào.
- Kích hoạt ControlNet: Đánh dấu chọn vào ô Enable.
- Chọn Preprocessor và Model:
- Preprocessor (bộ tiền xử lý) là công cụ sẽ phân tích ảnh đầu vào. Trong ví dụ này, chúng ta sẽ chọn openpose làm preprocessor, dùng để phát hiện các điểm khớp trên cơ thể (keypoint).
- Model: Chọn model phù hợp với preprocessor. Đối với OpenPose, hãy chọn mô hình control_openpose-fp16.
Bảng điều khiển ControlNet của bạn bây giờ sẽ trông như thế này, với hình ảnh đã tải lên và các tùy chọn đã được thiết lập.
4.4 Tạo ảnh
Sau khi hoàn tất cài đặt, nhấn Generate để bắt đầu tạo ảnh bằng ControlNet. Bạn sẽ thấy hình ảnh được tạo ra bám sát theo tư thế của hình ảnh đầu vào. Bước xử lý cuối cùng sẽ là việc hiển thị các điểm khớp (keypoints) mà ControlNet phát hiện ra từ ảnh gốc.
5. Giới thiệu các cài đặt trong ControlNet
Khi bạn bắt đầu sử dụng ControlNet, sẽ có rất nhiều tùy chọn cài đặt xuất hiện, có thể khiến bạn hơi choáng ngợp. Chúng ta sẽ đi qua từng mục một để hiểu rõ hơn cách sử dụng.
5.1 Các cài đặt cơ bản của ControlNet
Khu vực tải lên hình ảnh đầu vào (Image Canvas): Bạn có thể kéo và thả hình ảnh đầu vào vào đây hoặc nhấp vào để chọn tệp từ máy tính. Hình ảnh này sẽ được xử lý bởi preprocessor mà bạn chọn từ menu thả xuống. ControlNet sẽ tạo ra một bản đồ điều khiển (control map) từ hình ảnh này.
- Biểu tượng cây viết: Tạo một bảng vẽ mới với ảnh trắng, cho phép bạn vẽ trực tiếp lên canvas mà không cần tải ảnh.
- Biểu tượng máy ảnh: Chụp ảnh bằng camera của thiết bị và sử dụng ảnh đó làm đầu vào.
Model selection (Chọn mô hình):
- Enable: Bật hoặc tắt ControlNet.
- Low VRAM: Sử dụng cho GPU dưới 8GB VRAM, giúp giảm tải bộ nhớ GPU khi xử lý ảnh.
- Allow Preview: Kích hoạt chế độ xem trước, hiển thị ảnh mẫu ngay bên cạnh ảnh gốc.
Preprocessor: Đây là bộ tiền xử lý (được gọi là annotator trong nghiên cứu), dùng để phát hiện các yếu tố như đường viền (edges), độ sâu (depth), bản đồ bề mặt (normal maps). Bạn có thể chọn preprocessor phù hợp với mục đích của mình.
Model: Chọn model ControlNet tương ứng với preprocessor. Model này sẽ được sử dụng cùng với model Stable Diffusion mà bạn đã chọn.
5.2 Cài đặt kiểm soát trọng số (Control Weight)
Dưới các menu thả xuống của preprocessor và model, có ba thanh trượt giúp bạn điều chỉnh mức độ kiểm soát của ControlNet:
- Weight: Điều chỉnh mức độ chính xác của ControlNet so với prompt. Trọng số cao (1.0) ControlNet sẽ kiểm soát độ chính xác cao, trong khi trọng số thấp (0.1) sẽ làm giảm mức độ chính xác so với bản gốc.
- Starting ControlNet step: Bước đầu tiên mà ControlNet bắt đầu áp dụng. Cài đặt ở mức 0 sẽ áp dụng ngay từ bước đầu tiên.
- Ending ControlNet step: Bước cuối cùng ControlNet áp dụng.
- Ending ControlNet step = 1: ControlNet sẽ ảnh hưởng đến toàn bộ quá trình từ đầu đến bước cuối cùng. Điều này có nghĩa là ControlNet sẽ kiểm soát hình ảnh trong suốt quá trình tạo.
- Ending ControlNet step < 1: ControlNet chỉ tác động đến một phần của quá trình, ví dụ, nếu cài đặt giá trị 0.3, thì ControlNet sẽ chỉ can thiệp vào 30% số bước đầu tiên, và sau đó không còn ảnh hưởng nữa.
5.3 Chế độ kiểm soát (Control Mode)
Control Mode quyết định mức độ ưu tiên giữa thông tin từ prompt và thông tin từ ControlNet (ảnh đầu vào và preprocessor) trong quá trình tạo ảnh. Có ba chế độ điều khiển chính:
- Balanced: Đây là chế độ mặc định, trong đó ControlNet được áp dụng cân bằng trong quá trình điều kiện hóa (conditioning) và không điều kiện hóa (unconditioning) của các bước lấy mẫu.
- My prompt is more important: Trong chế độ này, ảnh hưởng của ControlNet trong quá trình tạo ảnh sẽ giảm dần qua từng bước lấy mẫu của mạng U-Net. Điều này có nghĩa là trong các bước đầu tiên, ControlNet sẽ có vai trò quan trọng, nhưng khi tiến sâu hơn vào quá trình tạo hình ảnh, prompt sẽ trở thành yếu tố quyết định hơn.
- ControlNet is more important: Trong chế độ này, ảnh hưởng của ControlNet trong quá trình không điều kiện hóa (unconditioning) sẽ hoàn toàn bị tắt. Điều này có nghĩa là trong giai đoạn này, ControlNet sẽ không tác động đến cách tạo ra hình ảnh, và prompt sẽ không ảnh hưởng đến ảnh đầu ra.
5.4 Chế độ thay đổi kích thước (Resize Mode)
Khi kích thước ảnh đầu vào hoặc bản đồ điều khiển không khớp với kích thước ảnh cần tạo, bạn có thể chọn một trong ba chế độ sau:
- Just Resize: Cả chiều rộng và chiều cao của bản đồ điều khiển (control map) sẽ được thay đổi một cách độc lập để phù hợp với kích thước của canvas hình ảnh.
- Crop and Resize: Cắt để vừa với canvas, có thể làm mất đi chi tiết.
- Resize and fill: Điều chỉnh kích thước và điền các vùng trống, đảm bảo toàn bộ bản đồ điều khiển được sử dụng.
6. Một số ý tưởng sử dụng ControlNet
Dưới đây là một số ý tưởng thú vị mà bạn có thể áp dụng khi sử dụng ControlNet:
6.1 Sao chép tư thế con người
Một trong những ứng dụng phổ biến nhất của ControlNet là sao chép tư thế con người.
- Mô hình OpenPose: Để sử dụng ControlNet cho việc thay đổi tư thế con người, bạn cần thực hiện theo các bước sau:
- Preprocessor: openpose
- Model: control_…._openpose
Đảm bảo rằng bạn đã chọn Enable.
Ví dụ 1: Sao chép tư thế từ một hình ảnh
Trong ví dụ này, chúng ta sẽ sao chép tư thế của một người phụ nữ đang ngắm lá cây.
Bằng cách sử dụng nhiều model và prompt khác nhau, bạn có thể thay đổi nội dung nhưng vẫn giữ nguyên tư thế.
6.2 Remix một cảnh phim
Bạn có thể tái hiện lại cảnh nhảy múa biểu tượng trong bộ phim Pulp Fiction với một số động tác yoga trong công viên.
- Model: DreamShaper
- Prompt: photo of women doing yoga, outside in a park. Negative prompt: disfigured, ugly, bad, immature
- Negative prompt: disfigured, ugly, bad, immature
6.4 Tạo phong cách cho hình ảnh
1. Sử dụng prompt
Dưới đây là một số hình ảnh được tạo ra với mô hình v1.5 với các prompt khác nhau để có được các phong cách đa dạng.
2. Sử dụng model
Bạn cũng có thể sử dụng các mô hình khác nhau để tạo phong cách cho hình ảnh.
- Prompt: Painting of Beethoven
- Model: Anythingv3, DreamShaper, và OpenJourney models
6.5 Thiết kế nội thất
Bạn có thể sử dụng model MLSD trong ControlNet giúp phát hiện và xử lý các đường thẳng trong hình ảnh để tạo ra ý tưởng thiết kế nội thất. Dưới đây là các cài đặt ControlNet:
- Preprocessor: mlsd
- Model: mlsd
Ví dụ prompt: award winning living room
Model: Stable Diffusion v1.5
Dưới đây là một vài ý tưởng thiết kế được tạo ra.
Ngoài ra, bạn cũng có thể sử dụng model depth. Thay vì các đường thẳng. Model này không chỉ đơn thuần phát hiện các đường thẳng mà còn nhận diện và giữ lại các yếu tố không gian ba chiều của các đối tượng trong ảnh.
- Preprocessor: Depth Midas
- Model: Depth
Những hình ảnh được tạo ra:
ControlNet không chỉ giúp nâng cao chất lượng tác phẩm mà còn tiết kiệm thời gian trong quá trình tạo ra. Việc hiểu rõ ControlNet là gì và cách sử dụng hiệu quả ControlNet sẽ giúp bạn phát huy tối đa khả năng sáng tạo của mình trong lĩnh vực thiết kế. Để trau dồi thêm kiến thức và học thêm nhiều tip hữu ích về diễn hoạ kiến trúc & các công cụ AI, hãy truy cập vào thư viện của 4pixos Academy nhé!
Nếu bạn muốn tìm hiểu sâu hơn về ControlNet và cách áp dụng nó vào công việc sáng tạo của mình, hãy tham gia khóa học Art Direction w AI tại 4pixos Academy. Khóa học này sẽ trang bị cho bạn những kiến thức và kỹ năng cần thiết để ứng dụng AI trong thiết kế một cách sáng tạo và chuyên nghiệp. Đừng bỏ lỡ cơ hội để nâng cao trình độ của mình và khám phá tiềm năng vô hạn mà AI mang lại cho ngành diễn họa kiến trúc.
Ngoài ra, bạn cũng có thể tìm hiểu thêm thông tin các khóa học của 4pixos Academy tại đây.
Xem thêm
> DALL-E 2, Midjourney, Stable Diffusion: Đâu Là Công Cụ AI Tốt Hơn Cho 3D Artist?
> Stable Diffusion là gì? 5 Tính Năng Thần Kỳ Của Stable Diffusion Mà Bạn Cần Biết
> Hướng Dẫn Chi Tiết Cài Stable Diffusion Trên Google Colab
> Google Colab là gì? Hướng dẫn sử dụng Google Colab cho người mới bắt đầu
> Nên Vận Dụng AI Vào Giai Đoạn Nào Trong Quá Trình Diễn Hoạ Kiến Trúc?