Diffusers documentation

Процессор внимания

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Процессор внимания

Процессор внимания — это класс для применения различных типов механизмов внимания.

AttnProcessor

класс diffusers.models.attention_processor.AttnProcessor

< >

( )

Процессор по умолчанию для выполнения вычислений, связанных с механизмом внимания.

класс diffusers.models.attention_processor.AttnProcessor2_0

< >

( )

Процессор для реализации масштабированного внимания на основе скалярного произведения (включен по умолчанию, если вы используете PyTorch 2.0).

класс diffusers.models.attention_processor.AttnAddedKVProcessor

< >

( )

Процессор для выполнения вычислений, связанных с механизмом внимания, с дополнительными обучаемыми матрицами ключей и значений для текстового энкодера.

класс diffusers.models.attention_processor.AttnAddedKVProcessor2_0

< >

( )

Процессор для выполнения масштабированного внимания на основе скалярного произведения (включен по умолчанию при использовании PyTorch 2.0), с дополнительными обучаемыми матрицами ключей и значений для текстового энкодера.

класс diffusers.models.attention_processor.AttnProcessorNPU

< >

( )

Процессор для реализации flash attention с использованием torch_npu. Torch_npu поддерживает только типы данных fp16 и bf16. Если используется fp32, для вычислений будет применяться F.scaled_dot_product_attention, однако эффект ускорения на NPU незначителен.

класс diffusers.models.attention_processor.FusedAttnProcessor2_0

< >

( )

Процессор для реализации масштабированного внимания на основе скалярного произведения (включен по умолчанию при использовании PyTorch 2.0). Он использует объединенные проекционные слои. Для модулей само-внимания все проекционные матрицы (т. е. query, key, value) объединяются. Для модулей кросс-внимания объединяются проекционные матрицы key и value.

> Этот API в настоящее время носит 🧪 экспериментальный характер и может измениться в будущем.

Allegro

класс diffusers.models.attention_processor.AllegroAttnProcessor2_0

< >

( )

Процессор для реализации масштабированного внимания на основе скалярного произведения (включен по умолчанию при использовании PyTorch 2.0). Он используется в модели Allegro. Применяет слой нормализации и вращательное встраивание к векторам запроса и ключа.

AuraFlow

класс diffusers.models.attention_processor.AuraFlowAttnProcessor2_0

< >

( )

Процессор внимания, обычно используемый при обработке Aura Flow.

класс diffusers.models.attention_processor.FusedAuraFlowAttnProcessor2_0

< >

( )

Процессор внимания, обычно используемый при обработке Aura Flow со слиянием проекций.

CogVideoX

класс diffusers.models.attention_processor.CogVideoXAttnProcessor2_0

< >

( )

Процессор для реализации масштабированного внимания на основе скалярного произведения для модели CogVideoX. Он применяет вращательное встраивание к векторам запроса и ключа, но не включает пространственную нормализацию.

класс diffusers.models.attention_processor.FusedCogVideoXAttnProcessor2_0

< >

( )

Процессор для реализации масштабированного внимания на основе скалярного произведения для модели CogVideoX. Он применяет вращательное встраивание к векторам запроса и ключа, но не включает пространственную нормализацию.

DreamLite

класс diffusers.models.unets.unet_dreamlite.DreamLiteAttnProcessor2_0

< >

( )

Процессор для реализации масштабированного внимания на основе скалярного произведения с поддержкой Grouped Query Attention (GQA / MQA).

Идентичен AttnProcessor2_0, за исключением того, что ветка reshape для ключей/значений корректно обрабатывает случай attn.kv_heads != attn.heads, изменяя размерность K/V до kv_heads, а затем применяя repeat_interleave до attn.heads. Это необходимо для DreamLite UNet, который сочетает GQA с qk_norm — комбинацию, не поддерживаемую стандартным AttnProcessor2_0. Вызов SDPA делегируется dispatch_attention_fn, что позволяет использовать любой из бэкендов внимания diffusers (нативный PyTorch SDPA, FlashAttention и т. д.).

Custom Diffusion

класс diffusers.models.attention_processor.CustomDiffusionAttnProcessor

< >

( train_kv: bool = Truetrain_q_out: bool = Truehidden_size: int | None = Nonecross_attention_dim: int | None = Noneout_bias: bool = Truedropout: float = 0.0 )

Параметры

  • train_kv (bool, по умолчанию True) — Следует ли обучать новые матрицы ключей и значений, соответствующие текстовым признакам.
  • train_q_out (bool, по умолчанию True) — Следует ли обучать новые матрицы запросов, соответствующие латентным признакам изображения.
  • hidden_size (int, необязательный, по умолчанию None) — Размер скрытого слоя слоя внимания.
  • cross_attention_dim (int, необязательный, по умолчанию None) — Количество каналов в encoder_hidden_states.
  • out_bias (bool, по умолчанию True) — Включать ли параметр смещения в train_q_out.
  • dropout (float, необязательный, по умолчанию 0.0) — Вероятность dropout, которую следует использовать.

Процессор для реализации внимания в методе Custom Diffusion.

класс diffusers.models.attention_processor.CustomDiffusionAttnProcessor2_0

< >

( train_kv: bool = Truetrain_q_out: bool = Truehidden_size: int | None = Nonecross_attention_dim: int | None = Noneout_bias: bool = Truedropout: float = 0.0 )

Параметры

  • train_kv (bool, по умолчанию True) — Следует ли обучать новые матрицы ключей и значений, соответствующие текстовым признакам.
  • train_q_out (bool, по умолчанию True) — Следует ли обучать новые матрицы запросов, соответствующие латентным признакам изображения.
  • hidden_size (int, необязательный, по умолчанию None) — Размер скрытого слоя слоя внимания.
  • cross_attention_dim (int, необязательный, по умолчанию None) — Количество каналов в encoder_hidden_states.
  • out_bias (bool, по умолчанию True) — Включать ли параметр смещения в train_q_out.
  • dropout (float, необязательный, по умолчанию 0.0) — Вероятность dropout, которую следует использовать.

Процессор для реализации механизма внимания для метода Custom Diffusion с использованием эффективного по памяти масштабированного внимания на основе скалярного произведения в PyTorch 2.0.

класс diffusers.models.attention_processor.CustomDiffusionXFormersAttnProcessor

< >

( train_kv: bool = Truetrain_q_out: bool = Falsehidden_size: int | None = Nonecross_attention_dim: int | None = Noneout_bias: bool = Truedropout: float = 0.0attention_op: Callable | None = None )

Параметры

  • train_kv (bool, по умолчанию True) — Следует ли обучать новые матрицы ключей и значений, соответствующие текстовым признакам.
  • train_q_out (bool, по умолчанию True) — Следует ли обучать новые матрицы запросов, соответствующие латентным признакам изображения.
  • hidden_size (int, необязательный, по умолчанию None) — Размер скрытого слоя слоя внимания.
  • cross_attention_dim (int, необязательный, по умолчанию None) — Количество каналов в encoder_hidden_states.
  • out_bias (bool, по умолчанию True) — Включать ли параметр смещения в train_q_out.
  • dropout (float, необязательный, по умолчанию 0.0) — Вероятность dropout, которую следует использовать.
  • attention_op (Callable, необязательный, по умолчанию None) — Базовый оператор, используемый в качестве оператора внимания. Рекомендуется установить значение None, чтобы xFormers самостоятельно выбрал оптимальный оператор.

Процессор для реализации эффективного по памяти внимания с использованием xFormers для метода Custom Diffusion.

Flux

класс diffusers.models.attention_processor.FluxAttnProcessor2_0

< >

( *args**kwargs )

класс diffusers.models.attention_processor.FusedFluxAttnProcessor2_0

< >

( *args**kwargs )

класс diffusers.models.attention_processor.FluxSingleAttnProcessor2_0

< >

( *args**kwargs )

Процессор для реализации масштабированного внимания на основе скалярного произведения (включен по умолчанию, если вы используете PyTorch 2.0).

Hunyuan

класс diffusers.models.attention_processor.HunyuanAttnProcessor2_0

< >

( )

Процессор для реализации масштабированного внимания на основе скалярного произведения (включен по умолчанию при использовании PyTorch 2.0). Он используется в модели HunyuanDiT. Применяет слой нормализации s и вращательное встраивание к векторам запроса и ключа.

класс diffusers.models.attention_processor.FusedHunyuanAttnProcessor2_0

< >

( )

Процессор для реализации масштабированного внимания на основе скалярного произведения (включен по умолчанию при использовании PyTorch 2.0) со слиянными слоями проекции. Используется в модели HunyuanDiT. Применяет слой нормализации s и вращательное встраивание к векторам запроса и ключа.

класс diffusers.models.attention_processor.PAGHunyuanAttnProcessor2_0

< >

( )

Процессор для реализации масштабированного внимания на основе скалярного произведения (включен по умолчанию при использовании PyTorch 2.0). Он используется в модели HunyuanDiT. Применяет слой нормализации и ротационное встраивание к векторам запроса и ключа. Этот вариант процессора использует Pertubed Attention Guidance.

класс diffusers.models.attention_processor.PAGCFGHunyuanAttnProcessor2_0

< >

( )

Процессор для реализации масштабированного внимания на основе скалярного произведения (включен по умолчанию при использовании PyTorch 2.0). Он используется в модели HunyuanDiT. Применяет слой нормализации и ротационное встраивание к векторам запроса и ключа. Этот вариант процессора использует Pertubed Attention Guidance.

IdentitySelfAttnProcessor2_0

класс diffusers.models.attention_processor.PAGIdentitySelfAttnProcessor2_0

< >

( )

Процессор для реализации PAG с использованием масштабированного внимания на основе скалярного произведения (включено по умолчанию при использовании PyTorch 2.0). Ссылка на PAG: https://huggingface.co/papers/2403.17377

класс diffusers.models.attention_processor.PAGCFGIdentitySelfAttnProcessor2_0

< >

( )

Процессор для реализации PAG с использованием масштабированного внимания на основе скалярного произведения (включено по умолчанию при использовании PyTorch 2.0). Ссылка на PAG: https://huggingface.co/papers/2403.17377

IP-Adapter

класс diffusers.models.attention_processor.IPAdapterAttnProcessor

< >

( hidden_sizecross_attention_dim = Nonenum_tokens = (4,)scale = 1.0 )

Параметры

  • hidden_size (int) — Размер скрытого слоя механизма внимания.
  • cross_attention_dim (int) — Количество каналов в encoder_hidden_states.
  • num_tokens (int, tuple[int] or list[int], по умолчанию (4,)) — Длина контекста для признаков изображения.
  • scale (float or listfloat, по умолчанию 1.0) — коэффициент масштабирования веса изображения-промпта.

Процессор внимания для нескольких IP-адаптеров.

класс diffusers.models.attention_processor.IPAdapterAttnProcessor2_0

< >

( hidden_sizecross_attention_dim = Nonenum_tokens = (4,)scale = 1.0 )

Параметры

  • hidden_size (int) — Размер скрытого слоя механизма внимания.
  • cross_attention_dim (int) — Количество каналов в encoder_hidden_states.
  • num_tokens (int, tuple[int] or list[int], по умолчанию (4,)) — Длина контекста для признаков изображения.
  • scale (float или list[float], по умолчанию 1.0) — весовое значение масштаба для изображения-промпта.

Процессор внимания для IP-Adapter для PyTorch 2.0.

класс diffusers.models.attention_processor.SD3IPAdapterJointAttnProcessor2_0

< >

( hidden_size: intip_hidden_states_dim: inthead_dim: inttimesteps_emb_dim: int = 1280scale: float = 0.5 )

Параметры

  • hidden_size (int) — Количество скрытых каналов.
  • ip_hidden_states_dim (int) — Размерность признаков изображения.
  • head_dim (int) — Количество каналов в каждой голове.
  • timesteps_emb_dim (int, по умолчанию 1280) — Количество входных каналов для эмбеддинга временных шагов.
  • scale (float, по умолчанию 0.5) — Масштаб IP-Adapter.

Процессор внимания для IP-Adapter, обычно используемый при обработке проекций само-внимания в моделях типа SD3, с дополнительной информацией на основе изображений и эмбеддингами временных шагов.

JointAttnProcessor2_0

класс diffusers.models.attention_processor.JointAttnProcessor2_0

< >

( )

Процессор внимания, обычно используемый при обработке проекций само-внимания в моделях типа SD3.

класс diffusers.models.attention_processor.PAGJointAttnProcessor2_0

< >

( )

Процессор внимания, обычно используемый при обработке проекций само-внимания в моделях типа SD3.

класс diffusers.models.attention_processor.PAGCFGJointAttnProcessor2_0

< >

( )

Процессор внимания, обычно используемый при обработке проекций само-внимания в моделях типа SD3.

класс diffusers.models.attention_processor.FusedJointAttnProcessor2_0

< >

( )

Процессор внимания, обычно используемый при обработке проекций само-внимания в моделях типа SD3.

LoRA

класс diffusers.models.attention_processor.LoRAAttnProcessor

< >

( )

Процессор для реализации внимания с LoRA.

класс diffusers.models.attention_processor.LoRAAttnProcessor2_0

< >

( )

Процессор для реализации внимания с LoRA (включен по умолчанию, если вы используете PyTorch 2.0).

класс diffusers.models.attention_processor.LoRAAttnAddedKVProcessor

< >

( )

Процессор для реализации внимания с LoRA с дополнительными обучаемыми матрицами ключей и значений для текстового энкодера.

класс diffusers.models.attention_processor.LoRAXFormersAttnProcessor

< >

( )

Процессор для реализации внимания с использованием LoRA и xFormers.

Lumina-T2X

класс diffusers.models.attention_processor.LuminaAttnProcessor2_0

< >

( )

Процессор для реализации масштабированного внимания на основе скалярного произведения (включен по умолчанию при использовании PyTorch 2.0). Он используется в модели LuminaNextDiT. Применяет слой нормализации s и вращательное встраивание к векторам запроса и ключа.

Mochi

класс diffusers.models.attention_processor.MochiAttnProcessor2_0

< >

( )

Процессор внимания, используемый в Mochi.

класс diffusers.models.attention_processor.MochiVaeAttnProcessor2_0

< >

( )

Процессор внимания, используемый в Mochi VAE.

Sana

класс diffusers.models.attention_processor.SanaLinearAttnProcessor2_0

< >

( )

Процессор для реализации линейного внимания с масштабированным скалярным произведением.

класс diffusers.models.attention_processor.SanaMultiscaleAttnProcessor2_0

< >

( )

Процессор для реализации мультимасштабного квадратичного внимания.

класс diffusers.models.attention_processor.PAGCFGSanaLinearAttnProcessor2_0

< >

( )

Процессор для реализации линейного внимания с масштабированным скалярным произведением.

класс diffusers.models.attention_processor.PAGIdentitySanaLinearAttnProcessor2_0

< >

( )

Процессор для реализации линейного внимания с масштабированным скалярным произведением.

Stable Audio

класс diffusers.models.attention_processor.StableAudioAttnProcessor2_0

< >

( )

Процессор для реализации масштабированного внимания на основе скалярного произведения (включен по умолчанию при использовании PyTorch 2.0). Он используется в модели Stable Audio. Применяет ротационное встраивание к векторам запроса и ключа и поддерживает MHA, GQA или MQA.

SlicedAttnProcessor

класс diffusers.models.attention_processor.SlicedAttnProcessor

< >

( slice_size: int )

Параметры

  • slice_size (int, необязательный) — Количество шагов для вычисления внимания. Используется столько слайсов, сколько получается из attention_head_dim // slice_size, при этом attention_head_dim должно быть кратным slice_size.

Процессор для реализации срединного внимания.

класс diffusers.models.attention_processor.SlicedAttnAddedKVProcessor

< >

( slice_size )

Параметры

  • slice_size (int, необязательный) — Количество шагов для вычисления внимания. Используется столько слайсов, сколько получается из attention_head_dim // slice_size, при этом attention_head_dim должно быть кратным slice_size.

Процессор для реализации срезанного внимания с дополнительными обучаемыми матрицами ключей и значений для текстового энкодера.

XFormersAttnProcessor

класс diffusers.models.attention_processor.XFormersAttnProcessor

< >

( attention_op: Callable | None = None )

Параметры

  • attention_op (Callable, необязательный, по умолчанию None) — Базовый оператор, используемый в качестве оператора внимания. Рекомендуется установить значение None, чтобы xFormers самостоятельно выбрал оптимальный оператор.

Процессор для реализации экономного по памяти внимания с использованием xFormers.

класс diffusers.models.attention_processor.XFormersAttnAddedKVProcessor

< >

( attention_op: Callable | None = None )

Параметры

  • attention_op (Callable, необязательный, по умолчанию None) — Базовый оператор, используемый в качестве оператора внимания. Рекомендуется установить значение None, чтобы xFormers самостоятельно выбрал оптимальный оператор.

Процессор для реализации экономного по памяти внимания с использованием xFormers.

XLAFlashAttnProcessor2_0

класс diffusers.models.attention_processor.XLAFlashAttnProcessor2_0

< >

( partition_spec: tuple[str | None, ...] | None = None )

Процессор для реализации масштабированного внимания на основе скалярного произведения с ядром pallas flash attention при использовании torch_xla.

XFormersJointAttnProcessor

класс diffusers.models.attention_processor.XFormersJointAttnProcessor

< >

( attention_op: Callable | None = None )

Параметры

  • attention_op (Callable, необязательный, по умолчанию None) — Базовый оператор, используемый в качестве оператора внимания. Рекомендуется установить значение None, чтобы xFormers самостоятельно выбрал оптимальный оператор.

Процессор для реализации экономного по памяти внимания с использованием xFormers.

IPAdapterXFormersAttnProcessor

класс diffusers.models.attention_processor.IPAdapterXFormersAttnProcessor

< >

( hidden_sizecross_attention_dim = Nonenum_tokens = (4,)scale = 1.0attention_op: Callable | None = None )

Параметры

  • hidden_size (int) — Размер скрытого слоя механизма внимания.
  • cross_attention_dim (int) — Количество каналов в encoder_hidden_states.
  • num_tokens (int, tuple[int] or list[int], по умолчанию (4,)) — Длина контекста для признаков изображения.
  • scale (float или list[float], по умолчанию 1.0) — весовое значение масштаба для изображения-промпта.
  • attention_op (Callable, необязательный, по умолчанию None) — Базовый оператор, используемый в качестве оператора внимания. Рекомендуется установить значение None, чтобы xFormers самостоятельно выбрал оптимальный оператор.

Процессор внимания для IP-Adapter с использованием xFormers.

FluxIPAdapterJointAttnProcessor2_0

класс diffusers.models.attention_processor.FluxIPAdapterJointAttnProcessor2_0

< >

( *args**kwargs )

XLAFluxFlashAttnProcessor2_0

класс diffusers.models.attention_processor.XLAFluxFlashAttnProcessor2_0

< >

( *args**kwargs )

Процессор для реализации масштабированного внимания на основе скалярного произведения с ядром pallas flash attention при использовании torch_xla.

Update on GitHub