Diffusers documentation

Обработчик изображений VAE

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Обработчик изображений 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

< >

( 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

< >

( 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

< >

( image: Image ) → PIL.Image.Image

Параметры

  • image (PIL.Image.Image) — Входное изображение, должно быть изображением в формате PIL.

Возвращает

PIL.Image.Image

Двоичное изображение. Значения, меньшие 0.5, устанавливаются в 0, значения, большие 0.5, устанавливаются в 1.

Создайте маску.

размытие

< >

( image: Imageblur_factor: int = 4 ) → PIL.Image.Image

Параметры

  • image (PIL.Image.Image) — Изображение PIL, которое нужно преобразовать в оттенки серого.

Возвращает

PIL.Image.Image

Изображение PIL, преобразованное в оттенки серого.

Применяет гауссово размытие к изображению.

convert_to_grayscale

< >

( image: Image ) → PIL.Image.Image

Параметры

  • image (PIL.Image.Image) — Входное изображение для преобразования.

Возвращает

PIL.Image.Image

Изображение, преобразованное в оттенки серого.

Преобразует заданное изображение PIL в оттенки серого.

convert_to_rgb

< >

( image: Image ) → PIL.Image.Image

Параметры

  • image (PIL.Image.Image) — Изображение PIL, которое нужно преобразовать в RGB.

Возвращает

PIL.Image.Image

Изображение PIL, преобразованное в RGB.

Преобразует изображение PIL в формат RGB.

denormalize

< >

( images: typing.Union[numpy.ndarray, torch.Tensor] ) → np.ndarray or torch.Tensor

Параметры

  • images (np.ndarray или torch.Tensor) — Массив изображений для денормализации.

Возвращает

np.ndarray или torch.Tensor

Массив денормализованного изображения.

Разнормализовать массив изображения до [0,1].

get_crop_region

< >

( 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

< >

( 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

< >

( images: typing.Union[numpy.ndarray, torch.Tensor] ) → np.ndarray or torch.Tensor

Параметры

  • images (np.ndarray или torch.Tensor) — Массив изображений для нормализации.

Возвращает

np.ndarray или torch.Tensor

Нормализованный массив изображения.

Нормализовать массив изображения до [-1,1].

numpy_to_pil

< >

( images: ndarray ) → list[PIL.Image.Image]

Параметры

  • images (np.ndarray) — Массив изображений для преобразования в формат PIL.

Возвращает

list[PIL.Image.Image]

Список изображений PIL.

Преобразование изображения numpy или пакета изображений в изображение PIL.

numpy_to_pt

< >

( images: ndarray ) → torch.Tensor

Параметры

  • images (np.ndarray) — Массив изображений NumPy для преобразования в формат PyTorch.

Возвращает

torch.Tensor

Представление изображений в виде тензора PyTorch.

Преобразование изображения NumPy в тензор PyTorch.

pil_to_numpy

< >

( images: list[PIL.Image.Image] | PIL.Image.Image ) → np.ndarray

Параметры

  • images (PIL.Image.Image или list[PIL.Image.Image]) — Изображение PIL или список изображений для преобразования в формат NumPy.

Возвращает

np.ndarray

Представление изображений в виде массива NumPy.

Преобразовать изображение PIL или список изображений PIL в массивы NumPy.

postprocess

< >

( 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

< >

( 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_mode fill и crop поддерживаются только для входных изображений в формате PIL.
  • crops_coords (list[tuple[int, int, int, int]], необязательный, по умолчанию None) — Координаты обрезки для каждого изображения в батче. Если None, изображение не будет обрезано.

Возвращает

torch.Tensor

Предобработанное изображение.

Предобработка входных изображений.

pt_to_numpy

< >

( images: Tensor ) → np.ndarray

Параметры

  • images (torch.Tensor) — Тензор PyTorch, который нужно преобразовать в формат NumPy.

Возвращает

np.ndarray

Представление изображений в виде массива NumPy.

Преобразование тензора PyTorch в изображение NumPy.

resize

< >

( 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 or torch.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

< >

( 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

< >

( 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

< >

( image: Imagemask: PIL.Image.Image | None = Noneheight: int | None = Nonewidth: int | None = Nonepadding_mask_crop: int | None = None )

Предобработка изображения и маски.

VaeImageProcessorLDM3D

Класс VaeImageProcessorLDM3D принимает на вход RGB-изображения и карты глубины и возвращает RGB-изображения и карты глубины.

класс diffusers.VaeImageProcessorLDM3D

< >

( 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

< >

( images: list[PIL.Image.Image] | PIL.Image.Image ) → np.ndarray

Параметры

  • images (list[PIL.Image.Image, PIL.Image.Image]) — Входное изображение или список изображений для преобразования.

Возвращает

np.ndarray

Массив NumPy с преобразованными изображениями.

Преобразовать изображение PIL или список изображений PIL в массивы NumPy.

numpy_to_depth

< >

( images: ndarray ) → list[PIL.Image.Image]

Параметры

  • images (np.ndarray) — Входной массив NumPy с изображениями глубины, который может представлять собой одно изображение или пакет.

Возвращает

list[PIL.Image.Image]

Список изображений PIL, преобразованных из входных изображений глубины NumPy.

Преобразовать изображение глубины NumPy или пакет изображений в список изображений PIL.

numpy_to_pil

< >

( images: ndarray ) → list[PIL.Image.Image]

Параметры

  • images (np.ndarray) — Входной массив NumPy с изображениями, содержащий одно изображение или пакет.

Возвращает

list[PIL.Image.Image]

Список изображений PIL, преобразованных из входного массива NumPy.

Преобразовать изображение NumPy или пакет изображений в список изображений PIL.

preprocess

< >

( 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.

rgblike_to_depthmap

< >

( image: typing.Union[numpy.ndarray, torch.Tensor] )

Преобразование изображения глубины в формате RGB в карту глубины.

PixArtImageProcessor

класс diffusers.PixArtImageProcessor

< >

( 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

< >

( height: intwidth: intratios: dict ) → tuple[int, int]

Параметры

  • height (int) — Высота изображения.
  • width (int) — Ширина изображения.
  • ratios (dict) — Словарь, где ключи — это соотношения сторон, а значения — кортежи (высота, ширина).

Возвращает

tuple[int, int]

Ближайшие бинные значения высоты и ширины.

Возвращает бинированные высоту и ширину на основе соотношения сторон.

resize_and_crop_tensor

< >

( 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

< >

( 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

< >

( 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

Тензор маски после уменьшения разрешения.

Уменьшает размер предоставленного тензора маски, чтобы он соответствовал ожидаемым размерам для масштабированного внимания на основе скалярного произведения. Если соотношение сторон маски не совпадает с соотношением сторон выходного изображения, выводится предупреждение.

Update on GitHub