Diffusers documentation
Pemroses Gambar VAE
Pemroses Gambar VAE
VaeImageProcessor menyediakan API terpadu bagi StableDiffusionPipeline untuk menyiapkan input gambar untuk encoding VAE dan memproses output pasca-decoding. Ini mencakup transformasi seperti pengubahan ukuran, normalisasi, dan konversi antara PIL Image, PyTorch, dan array NumPy.
Semua pipeline dengan VaeImageProcessor menerima PIL Image, tensor PyTorch, atau array NumPy sebagai input gambar dan mengembalikan output berdasarkan argumen output_type dari pengguna. Anda dapat meneruskan latens gambar yang sudah dienkod secara langsung ke pipeline dan mengembalikan latens dari pipeline sebagai output tertentu dengan argumen output_type (misalnya output_type="latent"). Hal ini memungkinkan Anda mengambil latens yang dihasilkan dari satu pipeline dan meneruskannya ke pipeline lain sebagai input tanpa keluar dari ruang latens. Ini juga membuat penggunaan beberapa pipeline bersama menjadi jauh lebih mudah dengan meneruskan tensor PyTorch secara langsung antar pipeline yang berbeda.
VaeImageProcessor
kelas diffusers.VaeImageProcessor
< source >( do_resize: bool = Truevae_scale_factor: int = 8vae_latent_channels: int = 4resample: str = 'lanczos'reducing_gap: int | None = Nonedo_normalize: bool = Truedo_binarize: bool = Falsedo_convert_rgb: bool = Falsedo_convert_grayscale: bool = False )
Parameter
- do_resize (
bool, opsional, defaultTrue) — Apakah akan menurunkan dimensi (height, width) gambar menjadi kelipatan darivae_scale_factor. Dapat menerima argumenheightdanwidthdari metode image_processor.VaeImageProcessor.preprocess(). - vae_scale_factor (
int, opsional, default8) — Faktor skala VAE. Jikado_resizeadalahTrue, gambar akan di-resize secara otomatis menjadi kelipatan dari faktor ini. - resample (
str, opsional, defaultlanczos) — Filter resampling yang digunakan saat mengubah ukuran gambar. - do_normalize (
bool, opsional, defaultTrue) — Apakah akan menormalisasi gambar ke [-1,1]. - do_binarize (
bool, opsional, defaultFalse) — Apakah akan mbinarize gambar menjadi 0/1. - do_convert_rgb (
bool, opsional, defaultnyaFalse) — Apakah akan mengonversi gambar ke format RGB. - do_convert_grayscale (
bool, opsional, defaultnyaFalse) — Apakah akan mengonversi gambar ke format grayscale.
Pemroses gambar untuk VAE.
apply_overlay
< source >( mask: Imageinit_image: Imageimage: Imagecrop_coords: tuple[int, int, int, int] | None = None ) → PIL.Image.Image
Parameter
- mask (
PIL.Image.Image) — Gambar mask yang menyoroti area untuk di-overlay. - init_image (
PIL.Image.Image) — Gambar asli tempat overlay diterapkan. - image (
PIL.Image.Image) — Gambar yang akan ditumpangkan ke gambar asli. - crop_coords (
tuple[int, int, int, int], opsional) — Koordinat untuk memotong gambar. Jika diberikan, gambar akan dipotong sesuai koordinat tersebut.
Mengembalikan
PIL.Image.Image
Gambar akhir dengan overlay yang diterapkan.
Menerapkan overlay dari mask dan gambar inpainted pada gambar asli.
binarize
< source >( image: Image ) → PIL.Image.Image
Buat sebuah mask.
blur
< source >( image: Imageblur_factor: int = 4 ) → PIL.Image.Image
Menerapkan Gaussian blur pada gambar.
convert_to_grayscale
< source >( image: Image ) → PIL.Image.Image
Mengonversi gambar PIL yang diberikan menjadi grayscale.
convert_to_rgb
< source >( image: Image ) → PIL.Image.Image
Mengonversi gambar PIL ke format RGB.
denormalize
< source >( images: typing.Union[numpy.ndarray, torch.Tensor] ) → np.ndarray or torch.Tensor
Denormalisasi array gambar ke [0,1].
get_crop_region
< source >( mask_image: Imagewidth: intheight: intpad = 0 ) → tuple
Parameter
- mask_image (PIL.Image.Image) — Gambar mask.
- width (int) — Lebar gambar yang akan diproses.
- height (int) — Tinggi gambar yang akan diproses.
- pad (int, opsional) — Padding yang akan ditambahkan ke area crop. Defaultnya 0.
Mengembalikan
tuple
(x1, y1, x2, y2) merepresentasikan area persegi panjang yang berisi semua area ter-mask pada sebuah gambar dan sesuai dengan rasio aspek asli.
Menemukan area persegi panjang yang berisi semua area yang dimasker dalam sebuah gambar, dan memperluas area tersebut agar sesuai dengan rasio aspek gambar asli; misalnya, jika pengguna menggambar mask pada area 128x32, dan dimensi untuk pemrosesan adalah 512x512, area tersebut akan diperluas menjadi 128x128.
get_default_height_width
< source >( image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor]height: int | None = Nonewidth: int | None = None ) → tuple[int, int]
Parameter
- image (
PIL.Image.Image | np.ndarray | torch.Tensor) — Input gambar, yang dapat berupa gambar PIL, array NumPy, atau tensor PyTorch. Jika berupa array NumPy, bentuknya harus[batch, height, width]atau[batch, height, width, channels]. Jika berupa tensor PyTorch, bentuknya harus[batch, channels, height, width]. - height (
int | None, opsional, defaultNone) — Tinggi gambar yang telah dipreprocess. JikaNone, tinggi dari inputimageakan digunakan. - width (
int | None, opsional, defaultNone) — Lebar dari gambar yang telah dipreprocess. JikaNone, lebar dari inputimageakan digunakan.
Mengembalikan
tuple[int, int]
Tuple yang berisi tinggi dan lebar, keduanya di-resize ke kelipatan bilangan bulat terdekat dari
vae_scale_factor.
Mengembalikan tinggi dan lebar gambar, yang diskalakan ke bawah menjadi kelipatan bilangan bulat terdekat dari vae_scale_factor.
normalize
< source >( images: typing.Union[numpy.ndarray, torch.Tensor] ) → np.ndarray or torch.Tensor
Normalisasi array gambar ke [-1,1].
numpy_to_pil
< source >( images: ndarray ) → list[PIL.Image.Image]
Mengonversi gambar numpy atau batch gambar menjadi gambar PIL.
numpy_to_pt
< source >( images: ndarray ) → torch.Tensor
Mengonversi gambar NumPy menjadi tensor PyTorch.
pil_to_numpy
< source >( images: list[PIL.Image.Image] | PIL.Image.Image ) → np.ndarray
Mengonversi gambar PIL atau daftar gambar PIL menjadi array NumPy.
postprocess
< source >( image: Tensoroutput_type: str = 'pil'do_denormalize: list[bool] | None = None ) → PIL.Image.Image, np.ndarray or torch.Tensor
Parameter
- image (
torch.Tensor) — Input gambar, harus berupa tensor pytorch dengan bentukB x C x H x W. - output_type (
str, opsional, defaultnyapil) — Jenis output gambar, dapat berupa salah satu daripil,np,pt,latent. - do_denormalize (
list[bool], opsional, defaultNone) — Apakah akan menormalisasi ulang gambar ke [0,1]. JikaNone, akan menggunakan nilaido_normalizedalam konfigurasiVaeImageProcessor.
Mengembalikan
PIL.Image.Image, np.ndarray atau torch.Tensor
Gambar yang telah diproses pascaproses.
Proses pascaproses output gambar dari tensor ke output_type.
praproses
< source >( image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]height: int | None = Nonewidth: int | None = Noneresize_mode: str = 'default'crops_coords: tuple[int, int, int, int] | None = None ) → torch.Tensor
Parameter
- image (
PipelineImageInput) — Input gambar, format yang diterima adalah gambar PIL, array NumPy, tensor PyTorch; juga menerima daftar format yang didukung. - height (
int, opsional) — Tinggi pada gambar yang telah dipreprocess. JikaNone, akan menggunakanget_default_height_width()untuk mendapatkan tinggi default. - width (
int, opsional) — Lebar dalam preprocessed. JikaNone, akan menggunakan get_default_height_width()` untuk mendapatkan lebar default. - resize_mode (
str, opsional, defaultnyadefault) — Mode resize, dapat berupadefaultataufill. Jikadefault, gambar akan di-resize agar muat di dalam lebar dan tinggi yang ditentukan, dan rasio aspek asli mungkin tidak dipertahankan. Jikafill, gambar akan di-resize agar muat di dalam lebar dan tinggi yang ditentukan, mempertahankan rasio aspek, dan kemudian mengpusatkan gambar di dalam dimensi tersebut, mengisi bagian kosong dengan data dari gambar. Jikacrop, gambar akan di-resize agar muat di dalam lebar dan tinggi yang ditentukan, mempertahankan rasio aspek, dan kemudian mengpusatkan gambar di dalam dimensi tersebut, memotong bagian yang berlebih. Perhatikan bahwa resize_modefilldancrophanya didukung untuk input gambar PIL. - crops_coords (
list[tuple[int, int, int, int]], opsional, defaultnyaNone) — Koordinat crop untuk setiap gambar dalam batch. JikaNone, gambar tidak akan di-crop.
Mengembalikan
torch.Tensor
Gambar yang telah dipreprocess.
Praproses input gambar.
pt_to_numpy
< source >( images: Tensor ) → np.ndarray
Mengonversi tensor PyTorch menjadi gambar NumPy.
resize
< source >( image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor]height: intwidth: intresize_mode: str = 'default' ) → PIL.Image.Image, np.ndarray or torch.Tensor
Parameter
- image (
PIL.Image.Image,np.ndarrayatautorch.Tensor) — Input gambar, dapat berupa gambar PIL, array numpy, atau tensor pytorch. - height (
int) — Tinggi untuk mengubah ukuran. - width (
int) — Lebar untuk mengubah ukuran. - resize_mode (
str, opsional, defaultnyadefault) — Mode resize yang akan digunakan, dapat berupadefaultataufill. Jikadefault, gambar akan di-resize agar muat di dalam lebar dan tinggi yang ditentukan, dan rasio aspek asli mungkin tidak dipertahankan. Jikafill, gambar akan di-resize agar muat di dalam lebar dan tinggi yang ditentukan, dengan mempertahankan rasio aspek, lalu gambar diposisikan di tengah dimensi tersebut, mengisi area kosong dengan data dari gambar. Jikacrop, gambar akan di-resize agar muat di dalam lebar dan tinggi yang ditentukan, dengan mempertahankan rasio aspek, lalu gambar diposisikan di tengah dimensi tersebut, memotong bagian yang berlebih. Perhatikan bahwa resize_modefilldancrophanya didukung untuk input gambar PIL.
Mengembalikan
PIL.Image.Image, np.ndarray atau torch.Tensor
Gambar yang telah diubah ukurannya.
Ukurkan ulang gambar.
InpaintProcessor
InpaintProcessor menerima input mask dan image lalu memproses keduanya secara bersama. Secara opsional, ia dapat menerima padding_mask_crop dan menerapkan overlay mask.
kelas diffusers.InpaintProcessor
< source >( do_resize: bool = Truevae_scale_factor: int = 8vae_latent_channels: int = 4resample: str = 'lanczos'reducing_gap: int | None = Nonedo_normalize: bool = Truedo_binarize: bool = Falsedo_convert_grayscale: bool = Falsemask_do_normalize: bool = Falsemask_do_binarize: bool = Truemask_do_convert_grayscale: bool = True )
Pemroses gambar untuk inpainting gambar dan mask.
postprocess
< source >( image: Tensoroutput_type: str = 'pil'original_image: PIL.Image.Image | None = Noneoriginal_mask: PIL.Image.Image | None = Nonecrops_coords: tuple[int, int, int, int] | None = None )
Proses pascaproses gambar, terapkan overlay mask secara opsional
praproses
< source >( image: Imagemask: PIL.Image.Image | None = Noneheight: int | None = Nonewidth: int | None = Nonepadding_mask_crop: int | None = None )
Praproses gambar dan mask.
VaeImageProcessorLDM3D
VaeImageProcessorLDM3D menerima input RGB dan kedalaman serta mengembalikan output RGB dan kedalaman.
kelas diffusers.VaeImageProcessorLDM3D
< source >( do_resize: bool = Truevae_scale_factor: int = 8resample: str = 'lanczos'do_normalize: bool = True )
Parameter
- do_resize (
bool, opsional, defaultTrue) — Apakah akan menurunkan dimensi (tinggi, lebar) gambar menjadi kelipatan darivae_scale_factor. - vae_scale_factor (
int, opsional, default8) — Faktor skala VAE. Jikado_resizeadalahTrue, gambar akan di-resize secara otomatis menjadi kelipatan dari faktor ini. - resample (
str, opsional, defaultlanczos) — Filter resampling yang digunakan saat mengubah ukuran gambar. - do_normalize (
bool, opsional, defaultTrue) — Apakah akan menormalisasi gambar ke [-1,1].
Pemroses gambar untuk VAE LDM3D.
depth_pil_to_numpy
< source >( images: list[PIL.Image.Image] | PIL.Image.Image ) → np.ndarray
Mengonversi gambar PIL atau daftar gambar PIL menjadi array NumPy.
numpy_to_depth
< source >( images: ndarray ) → list[PIL.Image.Image]
Mengonversi gambar kedalaman NumPy atau kumpulan gambar menjadi daftar gambar PIL.
numpy_to_pil
< source >( images: ndarray ) → list[PIL.Image.Image]
Mengonversi gambar NumPy atau batch gambar menjadi daftar gambar PIL.
praproses
< source >( rgb: typing.Union[torch.Tensor, PIL.Image.Image, numpy.ndarray]depth: typing.Union[torch.Tensor, PIL.Image.Image, numpy.ndarray]height: int | None = Nonewidth: int | None = Nonetarget_res: int | None = None ) → tuple[torch.Tensor, torch.Tensor]
Parameter
- rgb (
torch.Tensor | PIL.Image.Image | np.ndarray) — Gambar input RGB, yang dapat berupa satu gambar atau batch. - depth (
torch.Tensor | PIL.Image.Image | np.ndarray) — Gambar input kedalaman, yang dapat berupa satu gambar atau batch. - height (
int | None, opsional, defaultNone) — Tinggi yang diinginkan untuk gambar yang diproses. JikaNone, defaultnya adalah tinggi gambar input. - width (
int | None, opsional, defaultNone) — Lebar yang diinginkan untuk gambar yang diproses. JikaNone, defaultnya adalah lebar gambar input. - target_res (
int | None, opsional, defaultnyaNone) — Resolusi target untuk mengubah ukuran gambar. Jika ditentukan, menimpa height dan width.
Mengembalikan
tuple[torch.Tensor, torch.Tensor]
Tuple yang berisi gambar RGB dan kedalaman yang telah diproses sebagai tensor PyTorch.
Praproses input gambar. Format yang diterima adalah gambar PIL, array NumPy, atau tensor PyTorch.
Mengonversi gambar kedalaman mirip RGB menjadi peta kedalaman.
PixArtImageProcessor
kelas diffusers.PixArtImageProcessor
< source >( do_resize: bool = Truevae_scale_factor: int = 8resample: str = 'lanczos'do_normalize: bool = Truedo_binarize: bool = Falsedo_convert_grayscale: bool = False )
Parameter
- do_resize (
bool, opsional, defaultTrue) — Apakah akan menurunkan dimensi (height, width) gambar menjadi kelipatan darivae_scale_factor. Dapat menerima argumenheightdanwidthdari metode image_processor.VaeImageProcessor.preprocess(). - vae_scale_factor (
int, opsional, default8) — Faktor skala VAE. Jikado_resizeadalahTrue, gambar akan di-resize secara otomatis menjadi kelipatan dari faktor ini. - resample (
str, opsional, defaultlanczos) — Filter resampling yang digunakan saat mengubah ukuran gambar. - do_normalize (
bool, opsional, defaultTrue) — Apakah akan menormalisasi gambar ke [-1,1]. - do_binarize (
bool, opsional, defaultFalse) — Apakah akan mbinarize gambar menjadi 0/1. - do_convert_rgb (
bool, opsional, defaultnyaFalse) — Apakah akan mengonversi gambar ke format RGB. - do_convert_grayscale (
bool, opsional, defaultnyaFalse) — Apakah akan mengonversi gambar ke format grayscale.
Pemroses gambar untuk pengubahan ukuran dan pemotongan gambar PixArt.
classify_height_width_bin
< source >( height: intwidth: intratios: dict ) → tuple[int, int]
Mengembalikan tinggi dan lebar yang telah dibin berdasarkan rasio aspek.
resize_and_crop_tensor
< source >( samples: Tensornew_width: intnew_height: int ) → torch.Tensor
Parameter
- samples (
torch.Tensor) — Tensor dengan bentuk (N, C, H, W) di mana N adalah ukuran batch, C adalah jumlah channel, H adalah tinggi, dan W adalah lebar. - new_width (
int) — Lebar yang diinginkan untuk gambar keluaran. - new_height (
int) — Tinggi yang diinginkan untuk gambar keluaran.
Mengembalikan
torch.Tensor
Tensor yang berisi gambar yang telah diubah ukurannya dan dipotong.
Mengubah ukuran dan memotong tensor gambar ke dimensi yang ditentukan.
IPAdapterMaskProcessor
kelas diffusers.IPAdapterMaskProcessor
< source >( do_resize: bool = Truevae_scale_factor: int = 8resample: str = 'lanczos'do_normalize: bool = Falsedo_binarize: bool = Truedo_convert_grayscale: bool = True )
Parameter
- do_resize (
bool, opsional, defaultTrue) — Apakah akan menurunkan dimensi (tinggi, lebar) gambar menjadi kelipatan darivae_scale_factor. - vae_scale_factor (
int, opsional, default8) — Faktor skala VAE. Jikado_resizeadalahTrue, gambar akan di-resize secara otomatis menjadi kelipatan dari faktor ini. - resample (
str, opsional, defaultlanczos) — Filter resampling yang digunakan saat mengubah ukuran gambar. - do_normalize (
bool, opsional, defaultFalse) — Apakah akan menormalisasi gambar ke [-1,1]. - do_binarize (
bool, opsional, defaultnyaTrue) — Apakah akan mbinariskan gambar menjadi 0/1. - do_convert_grayscale (
bool, opsional, defaultnyaTrue) — Apakah akan mengonversi gambar ke format grayscale.
Pemroses gambar untuk masker gambar IP Adapter.
downsample
< source >( mask: Tensorbatch_size: intnum_queries: intvalue_embed_dim: int ) → torch.Tensor
Menurunkan sampel tensor mask yang diberikan agar sesuai dengan dimensi yang diharapkan untuk scaled dot-product attention. Jika rasio aspek mask tidak cocok dengan rasio aspek gambar keluaran, peringatan akan diterbitkan.