Buckets:

mishig's picture
|
download
raw
37.9 kB

Inpainting

Inpainting mengganti atau mengedit area tertentu pada gambar. Hal ini menjadikannya alat yang berguna untuk pemulihan gambar seperti menghilangkan cacat dan artefak, atau bahkan mengganti area gambar dengan sesuatu yang sepenuhnya baru. Inpainting bergantung pada mask untuk menentukan wilayah mana dari gambar yang akan diisi; area yang akan di-inpaint direpresentasikan oleh piksel putih dan area yang akan dipertahankan direpresentasikan oleh piksel hitam. Piksel putih diisi oleh prompt.

Dengan 🤗 Diffusers, berikut cara Anda melakukan inpainting:

  1. Muat checkpoint inpainting dengan kelas AutoPipelineForInpainting. Kelas ini akan secara otomatis mendeteksi kelas pipeline yang tepat untuk dimuat berdasarkan 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()

Anda akan melihat di sepanjang panduan, kami menggunakan enable_model_cpu_offload() dan enable_xformers_memory_efficient_attention() untuk menghemat memori dan meningkatkan kecepatan inferensi. Jika Anda menggunakan PyTorch 2.0, tidak perlu memanggil enable_xformers_memory_efficient_attention() pada pipeline Anda karena pipeline tersebut sudah menggunakan scaled-dot product attention bawaan dari PyTorch 2.0.

  1. Muat gambar dasar dan mask:
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")
  1. Buat prompt untuk inpaint gambar dan teruskan ke pipeline dengan gambar dasar dan 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)
base image



mask gambar



gambar yang dihasilkan

Buat gambar mask

Sepanjang panduan ini, gambar mask disediakan di semua contoh kode untuk kemudahan. Anda dapat melakukan inpainting pada gambar Anda sendiri, tetapi Anda perlu membuat gambar mask untuknya. Gunakan Space di bawah ini untuk dengan mudah membuat gambar mask.

Unggah gambar dasar untuk di-inpaint dan gunakan alat sketsa untuk menggambar mask. Setelah selesai, klik Run untuk menghasilkan dan mengunduh gambar mask.

Xet Storage Details

Size:
37.9 kB
·
Xet hash:
fc73df6532811067259f1de1d59f6b7eb8cdbb55167a125b77578dcb6b8b2a85

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.