Diffusers documentation

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

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