Buckets:
Inpainting
Inpainting, bir görüntünün belirli alanlarını değiştirir veya düzenler. Bu, görüntü onarımı için (kusur ve artefaktların kaldırılması gibi) veya bir görüntü alanının tamamen yeni bir şeyle değiştirilmesi için faydalı bir araç haline getirir. Inpainting, bir görüntünün hangi bölgelerinin doldurulacağını belirlemek için bir maskeye dayanır; inpainting yapılacak alan beyaz piksellerle, korunacak alan ise siyah piksellerle temsil edilir. Beyaz pikseller, prompt tarafından doldurulur.
🤗 Diffusers ile inpainting işlemini şu şekilde yapabilirsiniz:
- Bir inpainting checkpoint'ini AutoPipelineForInpainting sınıfıyla yükleyin. Bu, checkpoint'e dayanarak yüklenmesi gereken uygun pipeline sınıfını otomatik olarak algılar:
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()
Kılavuz boyunca, belleği tasarruflu kullanmak ve çıkarım hızını artırmak için enable_model_cpu_offload() ve enable_xformers_memory_efficient_attention() işlevlerini kullandığımızı fark edeceksiniz. PyTorch 2.0 kullanıyorsanız, hattınızda enable_xformers_memory_efficient_attention() işlevini çağırmak gerekmez çünkü PyTorch 2.0'ın yerel scaled-dot product attention mekanizmasını zaten kullanıyor olacaktır.
- Taban ve maske görüntülerini yükleyin:
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")
- Görseli doldurmak için bir istem oluşturun ve temel ile maske görselleriyle birlikte hattın (pipeline) girdisine iletin:
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)
temel görüntü
mask görüntüsü
oluşturulan görsel
Bir maske görüntüsü oluşturun
Bu kılavuz boyunca, kullanım kolaylığı için tüm kod örneklerinde maske görüntüsü sağlanmaktadır. Kendi görüntülerinizde inpaint işlemi yapabilirsiniz, ancak bunun için bir maske görüntüsü oluşturmanız gerekir. Bir maske görüntüsü oluşturmak için aşağıdaki Space'i kullanın.
Doldurmak için bir taban görüntü yükleyin ve maske çizmek için eskiz aracını kullanın. İşiniz bittiğinde, maske görüntüsünü oluşturmak ve indirmek için Run düğmesine tıklayın.
Xet Storage Details
- Size:
- 39 kB
- Xet hash:
- 051f3d3b43cfb84e51fdba4efa2f7fb80f06b31efa1f4561d2e80cc8a5e08748
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.