Diffusers documentation
VAE 이미지 프로세서
VAE 이미지 프로세서
VaeImageProcessor는 StableDiffusionPipeline이 VAE 인코딩을 위해 이미지 입력을 준비하고, 디코딩된 출력을 후처리할 때 사용할 수 있는 통합된 API를 제공합니다. 여기에는 리사이즈, 정규화, PIL Image, PyTorch, NumPy 배열 간의 변환과 같은 변환 작업이 포함됩니다.
VaeImageProcessor를 사용하는 모든 파이프라인은 PIL Image, PyTorch tensor 또는 NumPy 배열을 이미지 입력으로 받아 사용자의 output_type 인자에 따라 출력을 반환합니다. 인코딩된 이미지 latents를 파이프라인에 직접 전달하고 output_type 인자를 통해 특정 출력(예: output_type="latent")으로 latents를 반환할 수 있습니다. 이를 통해 하나의 파이프라인에서 생성된 latents를 latent space를 벗어나지 않고 다른 파이프라인의 입력으로 전달할 수 있습니다. 또한 PyTorch tensor를 서로 다른 파이프라인 사이에 직접 전달함으로써 여러 파이프라인을 함께 사용하는 것이 훨씬 쉬워집니다.
VaeImageProcessor
클래스 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 )
매개변수
- do_resize (
bool, 선택 사항, 기본값True) — 이미지의 (height, width) 차원을vae_scale_factor의 배수로 축소할지 여부입니다. image_processor.VaeImageProcessor.preprocess() 메서드에서height및width인수를 받을 수 있습니다. - vae_scale_factor (
int, 선택 사항, 기본값8) — VAE scale factor입니다.do_resize가True인 경우 이미지는 이 배수의 배수로 자동으로 리사이즈됩니다. - resample (
str, 선택 사항, 기본값lanczos) — 이미지 크기 조정 시 사용할 리샘플링 필터. - do_normalize (
bool, 선택 사항, 기본값True) — 이미지를 [-1,1] 범위로 정규화할지 여부입니다. - do_binarize (
bool, 선택 사항, 기본값False) — 이미지를 0/1로 바이너리화할지 여부입니다. - do_convert_rgb (
bool, 선택 사항, 기본값False) — 이미지를 RGB 형식으로 변환할지 여부입니다. - do_convert_grayscale (
bool, 선택 사항, 기본값False) — 이미지를 회색조 형식으로 변환할지 여부입니다.
VAE용 이미지 프로세서.
apply_overlay
< source >( mask: Imageinit_image: Imageimage: Imagecrop_coords: tuple[int, int, int, int] | None = None ) → PIL.Image.Image
…
binarize
< source >( image: Image ) → PIL.Image.Image
마스크를 생성합니다.
블러
< source >( image: Imageblur_factor: int = 4 ) → PIL.Image.Image
이미지에 가우시안 블러를 적용합니다.
convert_to_grayscale
< source >( image: Image ) → PIL.Image.Image
주어진 PIL 이미지를 회색조로 변환합니다.
convert_to_rgb
< source >( image: Image ) → PIL.Image.Image
PIL 이미지를 RGB 형식으로 변환합니다.
denormalize
< source >( images: typing.Union[numpy.ndarray, torch.Tensor] ) → np.ndarray or torch.Tensor
이미지 배열을 [0,1] 범위로 비정규화합니다.
get_crop_region
< source >( mask_image: Imagewidth: intheight: intpad = 0 ) → tuple
이미지의 모든 마스킹된 영역을 포함하는 직사각형 영역을 찾은 후, 원본 이미지의 종횡비(aspect ratio)에 맞게 영역을 확장합니다. 예를 들어, 사용자가 128x32 영역에 마스킹을 그렸고 처리 차원이 512x512인 경우, 해당 영역은 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]
매개변수
- image (
PIL.Image.Image | np.ndarray | torch.Tensor) — PIL 이미지, NumPy 배열 또는 PyTorch 텐서일 수 있는 이미지 입력입니다. NumPy 배열인 경우, 형태가[batch, height, width]또는[batch, height, width, channels]여야 합니다. PyTorch 텐서인 경우, 형태가[batch, channels, height, width]여야 합니다. - height (
int | None, 선택 사항, 기본값None) — 전처리된 이미지의 높이입니다.None인 경우image입력의 높이가 사용됩니다. - width (
int | None, 선택 사항, 기본값None) — 전처리된 이미지의 너비입니다.None인 경우image입력의 너비를 사용합니다.
반환값
tuple[int, int]
vae_scale_factor의 가장 가까운 정수 배수로 리사이즈된 높이와 너비를 포함하는 튜플입니다.
vae_scale_factor의 정수 배로 축소된 이미지의 높이와 너비를 반환합니다.
normalize
< source >( images: typing.Union[numpy.ndarray, torch.Tensor] ) → np.ndarray or torch.Tensor
이미지 배열을 [-1,1] 범위로 정규화합니다.
numpy_to_pil
< source >( images: ndarray ) → list[PIL.Image.Image]
numpy 이미지 또는 이미지 배치 하나를 PIL 이미지로 변환합니다.
numpy_to_pt
< source >( images: ndarray ) → torch.Tensor
NumPy 이미지를 PyTorch 텐서로 변환합니다.
pil_to_numpy
< source >( images: list[PIL.Image.Image] | PIL.Image.Image ) → np.ndarray
PIL 이미지 또는 PIL 이미지 목록을 NumPy 배열로 변환합니다.
postprocess
< source >( image: Tensoroutput_type: str = 'pil'do_denormalize: list[bool] | None = None ) → PIL.Image.Image, np.ndarray or torch.Tensor
매개변수
- image (
torch.Tensor) — 이미지 입력으로,B x C x H x W형태의 pytorch 텐서여야 합니다. - output_type (
str, 선택 사항, 기본값pil) — 이미지의 출력 형식이며,pil,np,pt,latent중 하나일 수 있습니다. - do_denormalize (
list[bool], 선택 사항, 기본값None) — 이미지를 [0,1] 범위로 역정규화할지 여부입니다.None인 경우VaeImageProcessor설정의do_normalize값을 사용합니다.
반환값
PIL.Image.Image, np.ndarray 또는 torch.Tensor
후처리된 이미지.
텐서에서 output_type로 이미지 출력을 후처리합니다.
preprocess
< 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
매개변수
- image (
PipelineImageInput) — 이미지 입력입니다. PIL 이미지, NumPy 배열, PyTorch 텐서 형식을 지원하며, 지원되는 형식의 리스트도 허용합니다. - height (
int, 선택 사항) — 전처리된 이미지의 높이입니다.None인 경우get_default_height_width()를 사용하여 기본 높이를 가져옵니다. - width (
int, 선택 사항) — 전처리된 이미지의 너비입니다.None인 경우, 기본 너비를 가져오기 위해 get_default_height_width()`를 사용합니다. - resize_mode (
str, 선택 사항, 기본값default) — 리사이즈 모드로,default또는fill중 하나를 사용할 수 있습니다.default인 경우, 지정된 너비와 높이에 맞게 이미지를 리사이즈하며 원래의 종횡비를 유지하지 않을 수 있습니다.fill인 경우, 종횡비를 유지하면서 지정된 너비와 높이에 맞게 이미지를 리사이즈한 후, 차원 내에서 이미지를 중앙 정렬하고 빈 공간을 이미지 데이터로 채웁니다.crop인 경우, 종횡비를 유지하면서 지정된 너비와 높이에 맞게 이미지를 리사이즈한 후, 차원 내에서 이미지를 중앙 정렬하고 초과 부분을 잘라냅니다.fill및cropresize_mode는 PIL 이미지 입력에서만 지원된다는 점에 유의하세요. - crops_coords (
list[tuple[int, int, int, int]], 선택 사항, 기본값None) — 배치의 각 이미지에 대한 크롭 좌표입니다.None인 경우 이미지를 크롭하지 않습니다.
반환값
torch.Tensor
전처리된 이미지.
이미지 입력을 전처리합니다.
pt_to_numpy
< source >( images: Tensor ) → np.ndarray
PyTorch 텐서를 NumPy 이미지로 변환합니다.
리사이즈
< 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
매개변수
- image (
PIL.Image.Image,np.ndarray또는torch.Tensor) — 이미지 입력으로, PIL 이미지, numpy 배열 또는 pytorch 텐서일 수 있습니다. - height (
int) — 리사이즈할 높이. - width (
int) — 리사이즈할 너비. - resize_mode (
str, 선택 사항, 기본값default) — 사용할 리사이즈 모드로,default또는fill중 하나를 사용할 수 있습니다.default인 경우, 지정된 너비와 높이에 맞게 이미지를 리사이즈하며 원래의 종횡비를 유지하지 않을 수 있습니다.fill인 경우, 종횡비를 유지하면서 지정된 너비와 높이에 맞게 이미지를 리사이즈한 후, 차원 내에서 이미지를 중앙 정렬하고 빈 공간을 이미지 데이터로 채웁니다.crop인 경우, 종횡비를 유지하면서 지정된 너비와 높이에 맞게 이미지를 리사이즈한 후, 차원 내에서 이미지를 중앙 정렬하고 초과 부분을 잘라냅니다.fill및cropresize_mode는 PIL 이미지 입력에서만 지원된다는 점에 유의하세요.
반환값
PIL.Image.Image, np.ndarray 또는 torch.Tensor
크기가 조정된 이미지.
이미지 크기 조정
InpaintProcessor
InpaintProcessor는 mask와 image 입력을 받아 함께 처리합니다. 선택적으로 padding_mask_crop을 받아 mask 오버레이를 적용할 수 있습니다.
클래스 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 )
인페인팅용 이미지와 마스크를 처리하는 이미지 프로세서
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 )
이미지를 후처리하고, 선택적으로 마스크 오버레이를 적용합니다
preprocess
< source >( image: Imagemask: PIL.Image.Image | None = Noneheight: int | None = Nonewidth: int | None = Nonepadding_mask_crop: int | None = None )
이미지와 마스크를 전처리합니다.
VaeImageProcessorLDM3D
VaeImageProcessorLDM3D는 RGB 및 깊이(depth) 입력을 받아 RGB 및 깊이 출력을 반환합니다.
클래스 diffusers.VaeImageProcessorLDM3D
< source >( do_resize: bool = Truevae_scale_factor: int = 8resample: str = 'lanczos'do_normalize: bool = True )
매개변수
- do_resize (
bool, 선택 사항, 기본값True) — 이미지의 (height, width) 차원을vae_scale_factor의 배수로 축소할지 여부. - vae_scale_factor (
int, 선택 사항, 기본값8) — VAE scale factor입니다.do_resize가True인 경우 이미지는 이 배수의 배수로 자동으로 리사이즈됩니다. - resample (
str, 선택 사항, 기본값lanczos) — 이미지 크기 조정 시 사용할 리샘플링 필터. - do_normalize (
bool, 선택 사항, 기본값True) — 이미지를 [-1,1] 범위로 정규화할지 여부입니다.
VAE LDM3D용 이미지 프로세서입니다.
depth_pil_to_numpy
< source >( images: list[PIL.Image.Image] | PIL.Image.Image ) → np.ndarray
PIL 이미지 또는 PIL 이미지 목록을 NumPy 배열로 변환합니다.
numpy_to_depth
< source >( images: ndarray ) → list[PIL.Image.Image]
NumPy 깊이 이미지 또는 이미지 배치 목록을 PIL 이미지 목록으로 변환합니다.
numpy_to_pil
< source >( images: ndarray ) → list[PIL.Image.Image]
NumPy 이미지 또는 이미지 배치 목록을 PIL 이미지 목록으로 변환합니다.
preprocess
< 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]
매개변수
- rgb (
torch.Tensor | PIL.Image.Image | np.ndarray) — 단일 이미지 또는 배치일 수 있는 RGB 입력 이미지입니다. - depth (
torch.Tensor | PIL.Image.Image | np.ndarray) — 단일 이미지 또는 배치일 수 있는 깊이 입력 이미지입니다. - height (
int | None, 선택 사항, 기본값None) — 처리된 이미지의 원하는 높이입니다.None인 경우 입력 이미지의 높이를 기본값으로 사용합니다. - width (
int | None, 선택 사항, 기본값None) — 처리된 이미지의 원하는 너비입니다.None인 경우 입력 이미지의 너비로 기본 설정됩니다. - target_res (
int | None, 선택 사항, 기본값None) — 이미지를 리사이즈할 때 사용할 목표 해상도입니다. 지정된 경우 height와 width를 덮어씁니다.
반환값
tuple[torch.Tensor, torch.Tensor]
PyTorch 텐서로 처리된 RGB 및 깊이 이미지를 포함하는 튜플입니다.
이미지 입력을 전처리합니다. 허용되는 형식은 PIL 이미지, NumPy 배열 또는 PyTorch 텐서입니다.
RGB와 유사한 깊이 이미지를 깊이 맵으로 변환합니다.
PixArtImageProcessor
클래스 diffusers.PixArtImageProcessor
< source >( do_resize: bool = Truevae_scale_factor: int = 8resample: str = 'lanczos'do_normalize: bool = Truedo_binarize: bool = Falsedo_convert_grayscale: bool = False )
매개변수
- do_resize (
bool, 선택 사항, 기본값True) — 이미지의 (height, width) 차원을vae_scale_factor의 배수로 축소할지 여부입니다. image_processor.VaeImageProcessor.preprocess() 메서드에서height및width인수를 받을 수 있습니다. - vae_scale_factor (
int, 선택 사항, 기본값8) — VAE scale factor입니다.do_resize가True인 경우 이미지는 이 배수의 배수로 자동으로 리사이즈됩니다. - resample (
str, 선택 사항, 기본값lanczos) — 이미지 크기 조정 시 사용할 리샘플링 필터. - do_normalize (
bool, 선택 사항, 기본값True) — 이미지를 [-1,1] 범위로 정규화할지 여부입니다. - do_binarize (
bool, 선택 사항, 기본값False) — 이미지를 0/1로 바이너리화할지 여부입니다. - do_convert_rgb (
bool, 선택 사항, 기본값False) — 이미지를 RGB 형식으로 변환할지 여부입니다. - do_convert_grayscale (
bool, 선택 사항, 기본값False) — 이미지를 회색조 형식으로 변환할지 여부입니다.
PixArt 이미지의 리사이즈 및 크롭을 위한 이미지 프로세서.
classify_height_width_bin
< source >( height: intwidth: intratios: dict ) → tuple[int, int]
aspect ratio에 기반하여 버닝된 높이와 너비를 반환합니다.
resize_and_crop_tensor
< source >( samples: Tensornew_width: intnew_height: int ) → torch.Tensor
이미지 텐서를 지정된 크기로 리사이즈하고 크롭합니다.
IPAdapterMaskProcessor
클래스 diffusers.IPAdapterMaskProcessor
< source >( do_resize: bool = Truevae_scale_factor: int = 8resample: str = 'lanczos'do_normalize: bool = Falsedo_binarize: bool = Truedo_convert_grayscale: bool = True )
매개변수
- do_resize (
bool, 선택 사항, 기본값True) — 이미지의 (height, width) 차원을vae_scale_factor의 배수로 축소할지 여부. - vae_scale_factor (
int, 선택 사항, 기본값8) — VAE scale factor입니다.do_resize가True인 경우 이미지는 이 배수의 배수로 자동으로 리사이즈됩니다. - resample (
str, 선택 사항, 기본값lanczos) — 이미지 크기 조정 시 사용할 리샘플링 필터. - do_normalize (
bool, 선택 사항, 기본값False) — 이미지를 [-1,1] 범위로 정규화할지 여부입니다. - do_binarize (
bool, 선택 사항, 기본값True) — 이미지를 0/1로 바이너리화할지 여부입니다. - do_convert_grayscale (
bool, 선택 사항, 기본값True) — 이미지를 회색조 형식으로 변환할지 여부입니다.
IP Adapter 이미지 마스크용 이미지 프로세서.
다운샘플링
< source >( mask: Tensorbatch_size: intnum_queries: intvalue_embed_dim: int ) → torch.Tensor
제공된 mask 텐서를 스케일된 dot-product attention에 필요한 차원에 맞게 다운샘플링합니다. mask의 종횡비가 출력 이미지의 종횡비와 일치하지 않으면 경고가 발생합니다.