Inpainting trong Stable Diffusion (và các mô hình tạo sinh ảnh khác) là một kỹ thuật cho phép bạn chỉnh sửa và điền vào các vùng bị thiếu hoặc không mong muốn trên một bức ảnh có sẵn. Nó giống như việc bạn có một “cục tẩy thần kỳ” có thể không chỉ xóa đi phần bạn không thích mà còn tự động điền vào đó bằng nội dung phù hợp với ngữ cảnh xung quanh.
Inpainting hoạt động như thế nào?
Về cơ bản, inpainting hoạt động theo các bước sau:
- Chọn vùng cần chỉnh sửa (Masking):
- Bạn tạo một “mask” (mặt nạ). Mask này là một hình ảnh trắng đen, trong đó:
- Vùng màu trắng: Biểu thị khu vực bạn muốn chỉnh sửa (khu vực cần inpaint).
- Vùng màu đen: Biểu thị khu vực bạn muốn giữ nguyên (không bị ảnh hưởng).
- Mask này thường được tạo bằng cách vẽ trực tiếp trên ảnh trong giao diện của công cụ Stable Diffusion (ví dụ: Automatic1111, ComfyUI) hoặc sử dụng phần mềm chỉnh sửa ảnh bên ngoài.
- Bạn tạo một “mask” (mặt nạ). Mask này là một hình ảnh trắng đen, trong đó:
- Cung cấp ảnh gốc và mask:
- Bạn đưa ảnh gốc và mask vừa tạo vào mô hình Stable Diffusion có hỗ trợ inpainting.
- Text Prompt (Tùy chọn):
- Bạn có thể cung cấp một text prompt (gợi ý bằng văn bản) để mô tả nội dung bạn muốn điền vào vùng đã mask. Ví dụ: “a fluffy white cat” (một con mèo trắng mịn) nếu bạn muốn thay thế một vật thể bằng một con mèo.
- Text prompt không bắt buộc, nhưng nó giúp mô hình hiểu rõ hơn ý định của bạn và tạo ra kết quả phù hợp hơn.
- Quá trình Inpainting (Khuếch tán ngược có điều kiện):
- Mô hình Stable Diffusion sử dụng quá trình khuếch tán ngược (reverse diffusion) có điều kiện.
- Điều kiện: Điều kiện ở đây là sự kết hợp của:
- Ảnh gốc (phần không bị mask): Cung cấp ngữ cảnh xung quanh.
- Mask: Xác định khu vực cần điền.
- Text prompt (nếu có): Hướng dẫn mô hình về nội dung cần điền.
- Khuếch tán ngược: Mô hình bắt đầu từ nhiễu ngẫu nhiên và dần dần loại bỏ nhiễu, nhưng quá trình này bị ràng buộc bởi các điều kiện trên.
- Mô hình “học” cách điền vào vùng bị mask sao cho:
- Phù hợp với ngữ cảnh xung quanh: Màu sắc, ánh sáng, phong cách phải hài hòa với phần còn lại của ảnh.
- Phù hợp với text prompt (nếu có): Tạo ra nội dung theo mô tả.
- Kết quả:
- Mô hình tạo ra một ảnh mới, trong đó vùng bị mask đã được điền vào bằng nội dung mới.
Các ứng dụng của Inpainting:
- Xóa đối tượng không mong muốn: Loại bỏ người, vật thể, khuyết điểm,… khỏi ảnh.
- Thay thế đối tượng: Thay thế một đối tượng bằng một đối tượng khác (ví dụ: thay một chiếc xe hơi bằng một chiếc xe đạp).
- Khôi phục ảnh cũ: Điền vào các phần bị rách, mờ, mất chi tiết trên ảnh cũ.
- Chỉnh sửa ảnh sáng tạo: Thêm các yếu tố mới vào ảnh, thay đổi trang phục, tạo hiệu ứng đặc biệt,…
- Mở rộng ảnh (Outpainting): Một biến thể của inpainting, cho phép mở rộng ảnh ra ngoài ranh giới ban đầu.
Ví dụ:
- Xóa người khỏi ảnh phong cảnh:
- Bạn có một bức ảnh phong cảnh đẹp, nhưng có một người lạ đi vào khung hình.
- Bạn tạo mask, tô trắng phần người đó.
- Bạn không cần text prompt (hoặc có thể dùng prompt đơn giản như “landscape” - phong cảnh).
- Mô hình sẽ xóa người đó và điền vào bằng nền phong cảnh phù hợp.
- Thay đổi màu áo:
- Bạn có ảnh chân dung và muốn đổi màu áo.
- Bạn tạo mask, tô trắng phần áo.
- Bạn dùng text prompt: “red shirt” (áo sơ mi đỏ).
- Mô hình sẽ thay đổi màu áo thành màu đỏ.
- Thêm mây vào bầu trời:
- Bạn có ảnh bầu trời, nhưng muốn thêm mây.
- Bạn tạo mask, tô trắng một phần bầu trời.
- Bạn dùng text prompt: “fluffy white clouds” (những đám mây trắng mịn).
- Mô hình sẽ thêm mây vào vùng đã mask.
Inpainting và ControlNet:
ControlNet có thể được sử dụng kết hợp với inpainting để tăng cường khả năng kiểm soát. Ví dụ:
- Bạn có thể sử dụng ControlNet với Canny edge map để xác định hình dạng của đối tượng mới bạn muốn thêm vào.
- Bạn có thể sử dụng ControlNet với depth map để đảm bảo đối tượng mới được inpaint vào đúng vị trí trong không gian 3D của ảnh.
Tóm lại:
Inpainting là một kỹ thuật mạnh mẽ và linh hoạt trong Stable Diffusion, cho phép bạn chỉnh sửa ảnh một cách sáng tạo và dễ dàng. Nó mở ra nhiều khả năng trong việc chỉnh sửa ảnh, khôi phục ảnh và tạo ra những hình ảnh độc đáo. Việc kết hợp inpainting với các công cụ khác như ControlNet càng làm tăng thêm sức mạnh và tính linh hoạt của kỹ thuật này.