Diffusers documentation
Обработчик изображений VAE
Обработчик изображений VAE
Класс VaeImageProcessor предоставляет единый API для StableDiffusionPipeline, позволяющий готовить входные изображения для кодирования VAE и выполнять постобработку выходов после их декодирования. Сюда входят такие преобразования, как изменение размера, нормализация и конвертация между массивами PIL Image, PyTorch и NumPy.
Все пайплайны с VaeImageProcessor принимают в качестве входных изображений PIL Image, тензоры PyTorch или массивы NumPy и возвращают результат в соответствии с аргументом output_type, указанным пользователем. Вы можете передать закодированные латенты изображения напрямую в пайплайн и получить латенты из пайплайна в качестве конкретного вывода с помощью аргумента output_type (например, output_type="latent"). Это позволяет извлекать сгенерированные латенты из одного пайплайна и передавать их в другой пайплайн в качестве входа, не покидая латентное пространство. Кроме того, это значительно упрощает совместное использование нескольких пайплайнов за счёт прямой передачи тензоров PyTorch между различными пайплайнами.
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) — Определяет, следует ли масштабировать размеры изображения (высота, ширина) до кратныхvae_scale_factor. Может принимать аргументыheightиwidthиз метода image_processor.VaeImageProcessor.preprocess(). - vae_scale_factor (
int, необязательный, по умолчанию8) — Масштабный коэффициент VAE. Если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) — Следует ли преобразовать изображения в формат grayscale.
Обработчик изображений для VAE.
apply_overlay
< source >( mask: Imageinit_image: Imageimage: Imagecrop_coords: tuple[int, int, int, int] | None = None ) → PIL.Image.Image
Параметры
- mask (
PIL.Image.Image) — Изображение маски, выделяющее области для наложения. - init_image (
PIL.Image.Image) — Исходное изображение, к которому применяется наложение. - image (
PIL.Image.Image) — Изображение, которое нужно наложить на исходное. - crop_coords (
tuple[int, int, int, int], необязательный) — Координаты для обрезки изображения. Если указаны, изображение будет обрезано в соответствии с ними.
Возвращает
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
Параметры
- mask_image (PIL.Image.Image) — Изображение маски.
- width (int) — Ширина обрабатываемого изображения.
- height (int) — Высота обрабатываемого изображения.
- pad (int, optional) — Отступ, добавляемый к области вырезания. По умолчанию 0.
Возвращает
tuple
(x1, y1, x2, y2) представляют прямоугольную область, содержащую все замаскированные области на изображении и соответствующую исходному соотношению сторон.
Находит прямоугольную область, содержащую все замаскированные области на изображении, и расширяет её так, чтобы соотношение сторон соответствовало исходному изображению; например, если пользователь нарисовал маску в области 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) — Входное изображение, должно быть тензором PyTorch с формойB x C x H x W. - output_type (
str, необязательный, по умолчаниюpil) — Тип выходного изображения, может быть одним изpil,np,pt,latent. - do_denormalize (
list[bool], необязательный, по умолчаниюNone) — Определяет, следует ли денормализовать изображение до диапазона [0,1]. ЕслиNone, будет использовано значениеdo_normalizeиз конфигурацииVaeImageProcessor.
Возвращает
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, изображение будет масштабировано так, чтобы поместиться в заданные ширину и высоту с сохранением соотношения сторон, а затем центрировано в пределах этих размеров, при этом избыточные части будут обрезаны. Обратите внимание, что значения resize_modefillиcropподдерживаются только для входных изображений в формате PIL. - crops_coords (
list[tuple[int, int, int, int]], необязательный, по умолчаниюNone) — Координаты обрезки для каждого изображения в батче. ЕслиNone, изображение не будет обрезано.
Возвращает
torch.Tensor
Предобработанное изображение.
Предобработка входных изображений.
pt_to_numpy
< source >( images: Tensor ) → np.ndarray
Преобразование тензора PyTorch в изображение 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
Параметры
- image (
PIL.Image.Image,np.ndarrayortorch.Tensor) — Входное изображение, может быть изображением PIL, массивом numpy или тензором PyTorch. - height (
int) — Высота, к которой нужно изменить размер. - width (
int) — Ширина, к которой нужно изменить размер. - resize_mode (
str, необязательный, по умолчаниюdefault) — Режим масштабирования, может бытьdefaultилиfill. Если указаноdefault, изображение будет масштабировано так, чтобы поместиться в заданные ширину и высоту, при этом исходное соотношение сторон может не сохраняться. Если указаноfill, изображение будет масштабировано так, чтобы поместиться в заданные ширину и высоту с сохранением соотношения сторон, а затем центрировано в пределах этих размеров, при этом пустые области заполняются данными из изображения. Если указаноcrop, изображение будет масштабировано так, чтобы поместиться в заданные ширину и высоту с сохранением соотношения сторон, а затем центрировано в пределах этих размеров, с обрезкой лишних частей. Обратите внимание, что режимыfillиcropподдерживаются только для входных изображений в формате PIL.
Возвращает
PIL.Image.Image, np.ndarray или torch.Tensor
Изображение изменённого размера.
Изменение размера изображения.
InpaintProcessor
InpaintProcessor принимает на вход mask и image и обрабатывает их совместно. По желанию он может принимать padding_mask_crop и применять наложение маски.
класс 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-изображения и карты глубины и возвращает RGB-изображения и карты глубины.
класс diffusers.VaeImageProcessorLDM3D
< source >( do_resize: bool = Truevae_scale_factor: int = 8resample: str = 'lanczos'do_normalize: bool = True )
Параметры
- do_resize (
bool, необязательный, по умолчаниюTrue) — Определяет, следует ли масштабировать размеры изображения (высота, ширина) до кратныхvae_scale_factor. - vae_scale_factor (
int, необязательный, по умолчанию8) — Масштабный коэффициент VAE. Если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) — Целевое разрешение для изменения размера изображений. Если указано, переопределяет высоту и ширину.
Возвращает
tuple[torch.Tensor, torch.Tensor]
Кортеж, содержащий обработанные RGB- и глубинные изображения в виде тензоров PyTorch.
Предобработка входных изображений. Поддерживаемые форматы: изображения 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) — Определяет, следует ли масштабировать размеры изображения (высота, ширина) до кратныхvae_scale_factor. Может принимать аргументыheightиwidthиз метода image_processor.VaeImageProcessor.preprocess(). - vae_scale_factor (
int, необязательный, по умолчанию8) — Масштабный коэффициент VAE. Если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) — Следует ли преобразовать изображения в формат grayscale.
Обработчик изображений для изменения размера и обрезки изображений PixArt.
classify_height_width_bin
< source >( height: intwidth: intratios: dict ) → tuple[int, int]
Возвращает бинированные высоту и ширину на основе соотношения сторон.
resize_and_crop_tensor
< source >( samples: Tensornew_width: intnew_height: int ) → torch.Tensor
Параметры
- samples (
torch.Tensor) — Тензор формы (N, C, H, W), где N — размер батча, C — количество каналов, H — высота, а W — ширина. - new_width (
int) — Желаемая ширина выходных изображений. - new_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) — Определяет, следует ли масштабировать размеры изображения (высота, ширина) до кратныхvae_scale_factor. - vae_scale_factor (
int, необязательный, по умолчанию8) — Масштабный коэффициент VAE. Еслиdo_resizeравноTrue, изображение автоматически масштабируется до кратных этого коэффициента значений. - resample (
str, необязательный, по умолчаниюlanczos) — Фильтр ресемплинга, используемый при изменении размера изображения. - do_normalize (
bool, необязательный, по умолчаниюFalse) — Нужно ли нормализовать изображение до [-1,1]. - do_binarize (
bool, необязательный, по умолчаниюTrue) — Определяет, следует ли бинаризировать изображение в 0/1. - do_convert_grayscale (
bool, необязательный, по умолчаниюTrue) — Определяет, следует ли преобразовать изображения в формат grayscale.
Обработчик изображений для масок изображений IP Adapter.
downsample
< source >( mask: Tensorbatch_size: intnum_queries: intvalue_embed_dim: int ) → torch.Tensor
Параметры
- mask (
torch.Tensor) — Входной тензор маски, созданный с помощьюIPAdapterMaskProcessor.preprocess(). - batch_size (
int) — Размер батча. - num_queries (
int) — Количество запросов. - value_embed_dim (
int) — Размерность эмбеддингов значений.
Возвращает
torch.Tensor
Тензор маски после уменьшения разрешения.
Уменьшает размер предоставленного тензора маски, чтобы он соответствовал ожидаемым размерам для масштабированного внимания на основе скалярного произведения. Если соотношение сторон маски не совпадает с соотношением сторон выходного изображения, выводится предупреждение.