Buckets:
Inpainting
Inpainting thay thế hoặc chỉnh sửa các khu vực cụ thể của một hình ảnh. Điều này biến nó thành một công cụ hữu ích cho việc phục hồi hình ảnh như loại bỏ các khuyết điểm và hiện tượng nhiễu, hoặc thậm chí thay thế một khu vực của hình ảnh bằng một thứ gì đó hoàn toàn mới. Inpainting dựa vào một mask để xác định các vùng của hình ảnh cần được lấp đầy; khu vực cần inpaint được biểu diễn bằng các pixel màu trắng và khu vực cần giữ lại được biểu diễn bằng các pixel màu đen. Các pixel màu trắng được lấp đầy bởi prompt.
Với 🤗 Diffusers, đây là cách bạn có thể thực hiện inpainting:
- Tải checkpoint inpainting bằng lớp AutoPipelineForInpainting. Lớp này sẽ tự động phát hiện lớp pipeline phù hợp để tải dựa trên checkpoint:
import torch
from diffusers import AutoPipelineForInpainting
from diffusers.utils import load_image, make_image_grid
pipeline = AutoPipelineForInpainting.from_pretrained(
"kandinsky-community/kandinsky-2-2-decoder-inpaint", dtype=torch.float16
)
pipeline.enable_model_cpu_offload()
# remove following line if xFormers is not installed or you have PyTorch 2.0 or higher installed
pipeline.enable_xformers_memory_efficient_attention()
Bạn sẽ nhận thấy trong suốt hướng dẫn, chúng tôi sử dụng enable_model_cpu_offload() và enable_xformers_memory_efficient_attention() để tiết kiệm bộ nhớ và tăng tốc độ suy luận. Nếu bạn đang sử dụng PyTorch 2.0, không cần thiết phải gọi enable_xformers_memory_efficient_attention() trên pipeline của bạn vì nó đã sử dụng scaled-dot product attention bản địa của PyTorch 2.0.
- Tải ảnh nền và ảnh mặt nạ:
init_image = load_image("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/inpaint.png")
mask_image = load_image("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/inpaint_mask.png")
- Tạo một prompt để inpaint hình ảnh và truyền nó vào pipeline cùng với hình ảnh gốc và hình ảnh mask:
prompt = "a black cat with glowing eyes, cute, adorable, disney, pixar, highly detailed, 8k"
negative_prompt = "bad anatomy, deformed, ugly, disfigured"
image = pipeline(prompt=prompt, negative_prompt=negative_prompt, image=init_image, mask_image=mask_image).images[0]
make_image_grid([init_image, mask_image, image], rows=1, cols=3)
ảnh cơ sở
mask image
hình ảnh được tạo
Tạo một hình ảnh mặt nạ
Trong suốt hướng dẫn này, hình ảnh mask được cung cấp trong tất cả các ví dụ mã để tiện lợi. Bạn có thể inpaint trên các hình ảnh của riêng mình, nhưng sẽ cần tạo một hình ảnh mask cho nó. Sử dụng Space bên dưới để dễ dàng tạo một hình ảnh mask.
Tải lên một hình ảnh nền để inpaint và sử dụng công cụ phác thảo để vẽ mặt nạ. Khi hoàn tất, nhấp vào Run để tạo và tải xuống hình ảnh mặt nạ.
Xet Storage Details
- Size:
- 40.9 kB
- Xet hash:
- a05d2b648e518433cbadc1ea58bfe5b84f492a7dd70db3b94e38dee215be2f44
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.