# Attention Processor

Attention processor는 다양한 유형의 attention mechanism을 적용하기 위한 클래스입니다.

## AttnProcessor[[diffusers.models.attention_processor.AttnProcessor]]

#### diffusers.models.attention_processor.AttnProcessor[[diffusers.models.attention_processor.AttnProcessor]]

```python
diffusers.models.attention_processor.AttnProcessor()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L1103)

주의 관련 연산을 수행하는 기본 프로세서.

#### diffusers.models.attention_processor.AttnProcessor2_0[[diffusers.models.attention_processor.AttnProcessor2_0]]

```python
diffusers.models.attention_processor.AttnProcessor2_0()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L2696)

PyTorch 2.0을 사용하는 경우 기본적으로 활성화되는 스케일된 도트 프로덕트 어텐션을 구현하기 위한 프로세서입니다.

#### diffusers.models.attention_processor.AttnAddedKVProcessor[[diffusers.models.attention_processor.AttnAddedKVProcessor]]

```python
diffusers.models.attention_processor.AttnAddedKVProcessor()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L1279)

텍스트 인코더에 추가적인 학습 가능한 키 및 값 행렬을 사용하여 어텐션 관련 계산을 수행하는 Processor입니다.

#### diffusers.models.attention_processor.AttnAddedKVProcessor2_0[[diffusers.models.attention_processor.AttnAddedKVProcessor2_0]]

```python
diffusers.models.attention_processor.AttnAddedKVProcessor2_0()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L1346)

PyTorch 2.0을 사용하는 경우 기본적으로 활성화되는 스케일된 도트 프로덕트 어텐션을 수행하는 프로세서로, 텍스트 인코더를 위한 추가 학습 가능한 키 및 값 행렬을 포함합니다.

#### diffusers.models.attention_processor.AttnProcessorNPU[[diffusers.models.attention_processor.AttnProcessorNPU]]

```python
diffusers.models.attention_processor.AttnProcessorNPU()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L2582)

torch_npu를 사용하여 flash attention을 구현하는 Processor입니다. Torch_npu는 fp16과 bf16 데이터 타입만 지원합니다. fp32를 사용하면 F.scaled_dot_product_attention이 계산에 사용되지만, NPU에서의 가속 효과는 크지 않습니다.

#### diffusers.models.attention_processor.FusedAttnProcessor2_0[[diffusers.models.attention_processor.FusedAttnProcessor2_0]]

```python
diffusers.models.attention_processor.FusedAttnProcessor2_0()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L3668)

PyTorch 2.0을 사용하는 경우 기본적으로 활성화되는 스케일드 도트-프로덕트 어텐션을 구현하기 위한 프로세서입니다. 융합된 투영 레이어를 사용합니다. 셀프-어텐션 모듈의 경우 모든 투영 행렬(즉, 쿼리, 키, 값)이 융합됩니다. 크로스-어텐션 모듈의 경우 키와 값 투영 행렬이 융합됩니다.

> [!WARNING] > 이 API는 현재 🧪 실험적이며 향후 변경될 수 있습니다.

## Allegro[[diffusers.models.attention_processor.AllegroAttnProcessor2_0]]

#### diffusers.models.attention_processor.AllegroAttnProcessor2_0[[diffusers.models.attention_processor.AllegroAttnProcessor2_0]]

```python
diffusers.models.attention_processor.AllegroAttnProcessor2_0()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L1993)

PyTorch 2.0을 사용하는 경우 기본적으로 활성화되는 스케일된 도트 프로덕트 어텐션을 구현하기 위한 프로세서입니다. 이는 Allegro 모델에서 사용됩니다. 쿼리 벡터와 키 벡터에 정규화 레이어와 로터리 임베딩을 적용합니다.

## AuraFlow[[diffusers.models.attention_processor.AuraFlowAttnProcessor2_0]]

#### diffusers.models.attention_processor.AuraFlowAttnProcessor2_0[[diffusers.models.attention_processor.AuraFlowAttnProcessor2_0]]

```python
diffusers.models.attention_processor.AuraFlowAttnProcessor2_0()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L2087)

Attention processor는 일반적으로 Aura Flow 처리에 사용됩니다.

#### diffusers.models.attention_processor.FusedAuraFlowAttnProcessor2_0[[diffusers.models.attention_processor.FusedAuraFlowAttnProcessor2_0]]

```python
diffusers.models.attention_processor.FusedAuraFlowAttnProcessor2_0()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L2180)

Attention processor는 일반적으로 융합된 투영(fused projections)을 사용하여 Aura Flow를 처리할 때 사용됩니다.

## CogVideoX[[diffusers.models.attention_processor.CogVideoXAttnProcessor2_0]]

#### diffusers.models.attention_processor.CogVideoXAttnProcessor2_0[[diffusers.models.attention_processor.CogVideoXAttnProcessor2_0]]

```python
diffusers.models.attention_processor.CogVideoXAttnProcessor2_0()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L2277)

CogVideoX 모델에서 스케일된 도트-프로덕트 어텐션을 구현하기 위한 Processor입니다. 쿼리와 키 벡터에 회전 임베딩을 적용하지만, 공간 정규화는 포함하지 않습니다.

#### diffusers.models.attention_processor.FusedCogVideoXAttnProcessor2_0[[diffusers.models.attention_processor.FusedCogVideoXAttnProcessor2_0]]

```python
diffusers.models.attention_processor.FusedCogVideoXAttnProcessor2_0()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L2346)

CogVideoX 모델에서 스케일된 도트-프로덕트 어텐션을 구현하기 위한 Processor입니다. 쿼리와 키 벡터에 회전 임베딩을 적용하지만, 공간 정규화는 포함하지 않습니다.

## DreamLite[[diffusers.models.unets.unet_dreamlite.DreamLiteAttnProcessor2_0]]

#### diffusers.models.unets.unet_dreamlite.DreamLiteAttnProcessor2_0[[diffusers.models.unets.unet_dreamlite.DreamLiteAttnProcessor2_0]]

```python
diffusers.models.unets.unet_dreamlite.DreamLiteAttnProcessor2_0()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/unets/unet_dreamlite.py#L285)

Grouped Query Attention(GQA / MQA) 지원을 구현하는 scaled dot-product attention을 위한 Processor입니다.

`AttnProcessor2_0`와 동일하지만, `attn.kv_heads != attn.heads`인 경우를 K/V를 `kv_heads`로 reshape한 뒤 `repeat_interleave`를 적용하여 `attn.heads`까지 확장하는 방식으로 key/value reshape 분기가 올바르게 처리합니다. 이는 GQA와 `qk_norm`를 함께 사용하는 DreamLite UNet에서 요구되며, 기본 `AttnProcessor2_0`은 이러한 조합을 지원하지 않습니다. SDPA는 `dispatch_attention_fn`에 위임되어 diffusers의 모든 attention 백엔드(네이티브 PyTorch SDPA, FlashAttention 등)를 사용할 수 있습니다.

## Custom Diffusion[[diffusers.models.attention_processor.CustomDiffusionAttnProcessor]]

#### diffusers.models.attention_processor.CustomDiffusionAttnProcessor[[diffusers.models.attention_processor.CustomDiffusionAttnProcessor]]

```python
diffusers.models.attention_processor.CustomDiffusionAttnProcessor(train_kv: bool = True, train_q_out: bool = True, hidden_size: int | None = None, cross_attention_dim: int | None = None, out_bias: bool = True, dropout: float = 0.0)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L1175)

**매개변수:**

train_kv (`bool`, 기본값 `True`) : 텍스트 특징에 해당하는 키 및 값 행렬을 새로 학습할지 여부.

train_q_out (`bool`, 기본값 `True`) : 잠재 이미지 특징에 해당하는 쿼리 행렬을 새로 학습할지 여부.

hidden_size (`int`, *선택 사항*, 기본값 `None`) : attention 레이어의 hidden size입니다.

cross_attention_dim (`int`, *선택 사항*, 기본값 `None`) : `encoder_hidden_states`의 채널 수입니다.

out_bias (`bool`, 기본값 `True`) : `train_q_out`에 bias 매개변수를 포함할지 여부.

dropout (`float`, *선택 사항*, 기본값 0.0) : 사용할 dropout 확률입니다.

Custom Diffusion 메서드의 attention을 구현하기 위한 Processor입니다.

#### diffusers.models.attention_processor.CustomDiffusionAttnProcessor2_0[[diffusers.models.attention_processor.CustomDiffusionAttnProcessor2_0]]

```python
diffusers.models.attention_processor.CustomDiffusionAttnProcessor2_0(train_kv: bool = True, train_q_out: bool = True, hidden_size: int | None = None, cross_attention_dim: int | None = None, out_bias: bool = True, dropout: float = 0.0)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L3886)

**매개변수:**

train_kv (`bool`, 기본값 `True`) : 텍스트 특징에 해당하는 키 및 값 행렬을 새로 학습할지 여부.

train_q_out (`bool`, 기본값 `True`) : 잠재 이미지 특징에 해당하는 쿼리 행렬을 새로 학습할지 여부.

hidden_size (`int`, *선택 사항*, 기본값 `None`) : attention 레이어의 hidden size입니다.

cross_attention_dim (`int`, *선택 사항*, 기본값 `None`) : `encoder_hidden_states`의 채널 수입니다.

out_bias (`bool`, 기본값 `True`) : `train_q_out`에 bias 매개변수를 포함할지 여부.

dropout (`float`, *선택 사항*, 기본값 0.0) : 사용할 dropout 확률입니다.

PyTorch 2.0의 메모리 효율적인 스케일드 도트-프로덕트 어텐션을 사용하여 커스텀 디퓨전(Custom Diffusion) 메서드의 어텐션을 구현하는 프로세서입니다.

#### diffusers.models.attention_processor.CustomDiffusionXFormersAttnProcessor[[diffusers.models.attention_processor.CustomDiffusionXFormersAttnProcessor]]

```python
diffusers.models.attention_processor.CustomDiffusionXFormersAttnProcessor(train_kv: bool = True, train_q_out: bool = False, hidden_size: int | None = None, cross_attention_dim: int | None = None, out_bias: bool = True, dropout: float = 0.0, attention_op: Callable | None = None)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L3770)

**매개변수:**

train_kv (`bool`, 기본값 `True`) : 텍스트 특징에 해당하는 키 및 값 행렬을 새로 학습할지 여부.

train_q_out (`bool`, 기본값 `True`) : 잠재 이미지 특징에 해당하는 쿼리 행렬을 새로 학습할지 여부.

hidden_size (`int`, *선택 사항*, 기본값 `None`) : attention 레이어의 hidden size입니다.

cross_attention_dim (`int`, *선택 사항*, 기본값 `None`) : `encoder_hidden_states`의 채널 수입니다.

out_bias (`bool`, 기본값 `True`) : `train_q_out`에 bias 매개변수를 포함할지 여부.

dropout (`float`, *선택 사항*, 기본값 0.0) : 사용할 dropout 확률입니다.

attention_op (`Callable`, *선택 사항*, 기본값 `None`) : attention operator로 사용할 기본 [operator](https://facebookresearch.github.io/xformers/components/ops.html#xformers.ops.AttentionOpBase)입니다. `None`으로 설정하여 xFormers가 최적의 operator를 선택하도록 하는 것이 권장됩니다.

Custom Diffusion 방법에서 xFormers를 사용하여 메모리 효율적인 어텐션을 구현하는 Processor입니다.

## Flux[[diffusers.models.attention_processor.FluxAttnProcessor2_0]]

#### diffusers.models.attention_processor.FluxAttnProcessor2_0[[diffusers.models.attention_processor.FluxAttnProcessor2_0]]

```python
diffusers.models.attention_processor.FluxAttnProcessor2_0(*args, **kwargs)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L5505)

#### diffusers.models.attention_processor.FusedFluxAttnProcessor2_0[[diffusers.models.attention_processor.FusedFluxAttnProcessor2_0]]

```python
diffusers.models.attention_processor.FusedFluxAttnProcessor2_0(*args, **kwargs)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L5529)

#### diffusers.models.attention_processor.FluxSingleAttnProcessor2_0[[diffusers.models.attention_processor.FluxSingleAttnProcessor2_0]]

```python
diffusers.models.attention_processor.FluxSingleAttnProcessor2_0(*args, **kwargs)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L5515)

PyTorch 2.0을 사용하는 경우 기본적으로 활성화되는 스케일된 도트 프로덕트 어텐션을 구현하기 위한 프로세서입니다.

## Hunyuan[[diffusers.models.attention_processor.HunyuanAttnProcessor2_0]]

#### diffusers.models.attention_processor.HunyuanAttnProcessor2_0[[diffusers.models.attention_processor.HunyuanAttnProcessor2_0]]

```python
diffusers.models.attention_processor.HunyuanAttnProcessor2_0()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L3124)

PyTorch 2.0을 사용하는 경우 기본적으로 활성화되는 스케일된 도트 프로덕트 어텐션을 구현하기 위한 프로세서입니다. 이는 HunyuanDiT 모델에서 사용됩니다. 쿼리 및 키 벡터에 s 정규화 레이어와 로터리 임베딩을 적용합니다.

#### diffusers.models.attention_processor.FusedHunyuanAttnProcessor2_0[[diffusers.models.attention_processor.FusedHunyuanAttnProcessor2_0]]

```python
diffusers.models.attention_processor.FusedHunyuanAttnProcessor2_0()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L3222)

Processor는 PyTorch 2.0을 사용하는 경우 기본적으로 활성화되는, 융합된 투영 레이어를 갖춘 스케일된 도트-프로덕트 어텐션을 구현하는 프로세서입니다. 이는 HunyuanDiT 모델에서 사용됩니다. 쿼리 및 키 벡터에 s 정규화 레이어와 로터리 임베딩을 적용합니다.

#### diffusers.models.attention_processor.PAGHunyuanAttnProcessor2_0[[diffusers.models.attention_processor.PAGHunyuanAttnProcessor2_0]]

```python
diffusers.models.attention_processor.PAGHunyuanAttnProcessor2_0()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L3325)

PyTorch 2.0을 사용하는 경우 기본적으로 활성화되는 스케일드 도트-프로덕트 어텐션을 구현하기 위한 프로세서입니다. HunyuanDiT 모델에서 사용됩니다. 이 프로세서는 쿼리 벡터와 키 벡터에 정규화 레이어와 로터리 임베딩을 적용합니다. 이 프로세서의 변형은 [Pertubed Attention Guidance](https://huggingface.co/papers/2403.17377)를 사용합니다.

#### diffusers.models.attention_processor.PAGCFGHunyuanAttnProcessor2_0[[diffusers.models.attention_processor.PAGCFGHunyuanAttnProcessor2_0]]

```python
diffusers.models.attention_processor.PAGCFGHunyuanAttnProcessor2_0()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L3448)

PyTorch 2.0을 사용하는 경우 기본적으로 활성화되는 스케일드 도트-프로덕트 어텐션을 구현하기 위한 프로세서입니다. HunyuanDiT 모델에서 사용됩니다. 이 프로세서는 쿼리 벡터와 키 벡터에 정규화 레이어와 로터리 임베딩을 적용합니다. 이 프로세서의 변형은 [Pertubed Attention Guidance](https://huggingface.co/papers/2403.17377)를 사용합니다.

## IdentitySelfAttnProcessor2_0[[diffusers.models.attention_processor.PAGIdentitySelfAttnProcessor2_0]]

#### diffusers.models.attention_processor.PAGIdentitySelfAttnProcessor2_0[[diffusers.models.attention_processor.PAGIdentitySelfAttnProcessor2_0]]

```python
diffusers.models.attention_processor.PAGIdentitySelfAttnProcessor2_0()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L5043)

PyTorch 2.0을 사용하는 경우 기본적으로 활성화되는 스케일된 도트 프로덕트 어텐션을 사용하여 PAG를 구현하는 Processor입니다. PAG 참고: https://huggingface.co/papers/2403.17377

#### diffusers.models.attention_processor.PAGCFGIdentitySelfAttnProcessor2_0[[diffusers.models.attention_processor.PAGCFGIdentitySelfAttnProcessor2_0]]

```python
diffusers.models.attention_processor.PAGCFGIdentitySelfAttnProcessor2_0()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L5142)

PyTorch 2.0을 사용하는 경우 기본적으로 활성화되는 스케일된 도트 프로덕트 어텐션을 사용하여 PAG를 구현하는 Processor입니다. PAG 참고: https://huggingface.co/papers/2403.17377

## IP-Adapter[[diffusers.models.attention_processor.IPAdapterAttnProcessor]]

#### diffusers.models.attention_processor.IPAdapterAttnProcessor[[diffusers.models.attention_processor.IPAdapterAttnProcessor]]

```python
diffusers.models.attention_processor.IPAdapterAttnProcessor(hidden_size, cross_attention_dim = None, num_tokens = (4,), scale = 1.0)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L4208)

**매개변수:**

hidden_size (`int`) : attention layer의 hidden size입니다.

cross_attention_dim (`int`) : `encoder_hidden_states`의 채널 수.

num_tokens (`int`, `tuple[int]` 또는 `list[int]`, 기본값 `(4,)`) : 이미지 기능의 컨텍스트 길이입니다.

scale (`float` 또는 `float` 리스트, 기본값 1.0) : 이미지 프롬프트의 가중치 스케일입니다.

Multiple IP-Adapters용 Attention 프로세서.

#### diffusers.models.attention_processor.IPAdapterAttnProcessor2_0[[diffusers.models.attention_processor.IPAdapterAttnProcessor2_0]]

```python
diffusers.models.attention_processor.IPAdapterAttnProcessor2_0(hidden_size, cross_attention_dim = None, num_tokens = (4,), scale = 1.0)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L4408)

**매개변수:**

hidden_size (`int`) : attention layer의 hidden size입니다.

cross_attention_dim (`int`) : `encoder_hidden_states`의 채널 수.

num_tokens (`int`, `tuple[int]` 또는 `list[int]`, 기본값 `(4,)`) : 이미지 기능의 컨텍스트 길이입니다.

scale (`float` 또는 `list[float]`, 기본값 1.0) : 이미지 프롬프트의 가중치 스케일입니다.

PyTorch 2.0용 IP-Adapter의 Attention 프로세서입니다.

#### diffusers.models.attention_processor.SD3IPAdapterJointAttnProcessor2_0[[diffusers.models.attention_processor.SD3IPAdapterJointAttnProcessor2_0]]

```python
diffusers.models.attention_processor.SD3IPAdapterJointAttnProcessor2_0(hidden_size: int, ip_hidden_states_dim: int, head_dim: int, timesteps_emb_dim: int = 1280, scale: float = 0.5)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L4872)

**매개변수:**

hidden_size (`int`) : 숨겨진 채널의 수.

ip_hidden_states_dim (`int`) : 이미지 특징 차원.

head_dim (`int`) : 헤드 채널의 수.

timesteps_emb_dim (`int`, 기본값 1280) : timestep 임베딩의 입력 채널 수입니다.

scale (`float`, 기본값 0.5) : IP-Adapter 스케일.

IP-Adapter에서 일반적으로 SD3 계열의 self-attention 투영을 처리할 때 사용되며, 추가적인 이미지 기반 정보와 timestep 임베딩을 함께 처리하는 attention processor입니다.

## JointAttnProcessor2_0[[diffusers.models.attention_processor.JointAttnProcessor2_0]]

#### diffusers.models.attention_processor.JointAttnProcessor2_0[[diffusers.models.attention_processor.JointAttnProcessor2_0]]

```python
diffusers.models.attention_processor.JointAttnProcessor2_0()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L1422)

Attention processor는 일반적으로 SD3 유사한 self-attention 투영을 처리하는 데 사용됩니다.

#### diffusers.models.attention_processor.PAGJointAttnProcessor2_0[[diffusers.models.attention_processor.PAGJointAttnProcessor2_0]]

```python
diffusers.models.attention_processor.PAGJointAttnProcessor2_0()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L1508)

Attention processor는 일반적으로 SD3 유사한 self-attention 투영을 처리하는 데 사용됩니다.

#### diffusers.models.attention_processor.PAGCFGJointAttnProcessor2_0[[diffusers.models.attention_processor.PAGCFGJointAttnProcessor2_0]]

```python
diffusers.models.attention_processor.PAGCFGJointAttnProcessor2_0()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L1664)

Attention processor는 일반적으로 SD3 유사한 self-attention 투영을 처리하는 데 사용됩니다.

#### diffusers.models.attention_processor.FusedJointAttnProcessor2_0[[diffusers.models.attention_processor.FusedJointAttnProcessor2_0]]

```python
diffusers.models.attention_processor.FusedJointAttnProcessor2_0()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L1829)

Attention processor는 일반적으로 SD3 유사한 self-attention 투영을 처리하는 데 사용됩니다.

## LoRA[[diffusers.models.attention_processor.LoRAAttnProcessor]]

#### diffusers.models.attention_processor.LoRAAttnProcessor[[diffusers.models.attention_processor.LoRAAttnProcessor]]

```python
diffusers.models.attention_processor.LoRAAttnProcessor()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L5305)

LoRA를 사용하여 attention을 구현하는 Processor입니다.

#### diffusers.models.attention_processor.LoRAAttnProcessor2_0[[diffusers.models.attention_processor.LoRAAttnProcessor2_0]]

```python
diffusers.models.attention_processor.LoRAAttnProcessor2_0()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L5314)

LoRA를 사용하여 attention을 구현하는 Processor입니다 (PyTorch 2.0을 사용하는 경우 기본적으로 활성화됩니다).

#### diffusers.models.attention_processor.LoRAAttnAddedKVProcessor[[diffusers.models.attention_processor.LoRAAttnAddedKVProcessor]]

```python
diffusers.models.attention_processor.LoRAAttnAddedKVProcessor()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L5332)

텍스트 인코더에 추가 학습 가능한 키 및 값 행렬을 갖춘 LoRA로 어텐션을 구현하기 위한 Processor

#### diffusers.models.attention_processor.LoRAXFormersAttnProcessor[[diffusers.models.attention_processor.LoRAXFormersAttnProcessor]]

```python
diffusers.models.attention_processor.LoRAXFormersAttnProcessor()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L5323)

xFormers를 사용하여 LoRA로 어텐션을 구현하는 프로세서입니다.

## Lumina-T2X[[diffusers.models.attention_processor.LuminaAttnProcessor2_0]]

#### diffusers.models.attention_processor.LuminaAttnProcessor2_0[[diffusers.models.attention_processor.LuminaAttnProcessor2_0]]

```python
diffusers.models.attention_processor.LuminaAttnProcessor2_0()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L3572)

PyTorch 2.0을 사용하는 경우 기본적으로 활성화되는) 스케일된 도트 프로덕트 어텐션을 구현하기 위한 프로세서입니다. 이는 LuminaNextDiT 모델에서 사용됩니다. 쿼리 및 키 벡터에 s 정규화 레이어와 로터리 임베딩을 적용합니다.

## Mochi[[diffusers.models.attention_processor.MochiAttnProcessor2_0]]

#### diffusers.models.attention_processor.MochiAttnProcessor2_0[[diffusers.models.attention_processor.MochiAttnProcessor2_0]]

```python
diffusers.models.attention_processor.MochiAttnProcessor2_0()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L998)

Mochi에서 사용되는 Attention 프로세서입니다.

#### diffusers.models.attention_processor.MochiVaeAttnProcessor2_0[[diffusers.models.attention_processor.MochiVaeAttnProcessor2_0]]

```python
diffusers.models.attention_processor.MochiVaeAttnProcessor2_0()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L2906)

Mochi VAE에서 사용되는 Attention 프로세서입니다.

## Sana[[diffusers.models.attention_processor.SanaLinearAttnProcessor2_0]]

#### diffusers.models.attention_processor.SanaLinearAttnProcessor2_0[[diffusers.models.attention_processor.SanaLinearAttnProcessor2_0]]

```python
diffusers.models.attention_processor.SanaLinearAttnProcessor2_0()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L5341)

스케일된 도트-프로덕트 선형 어텐션을 구현하기 위한 프로세서

#### diffusers.models.attention_processor.SanaMultiscaleAttnProcessor2_0[[diffusers.models.attention_processor.SanaMultiscaleAttnProcessor2_0]]

```python
diffusers.models.attention_processor.SanaMultiscaleAttnProcessor2_0()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L5245)

멀티스케일 제곱 주의력(multiscale quadratic attention)을 구현하기 위한 프로세서입니다.

#### diffusers.models.attention_processor.PAGCFGSanaLinearAttnProcessor2_0[[diffusers.models.attention_processor.PAGCFGSanaLinearAttnProcessor2_0]]

```python
diffusers.models.attention_processor.PAGCFGSanaLinearAttnProcessor2_0()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L5393)

스케일된 도트-프로덕트 선형 어텐션을 구현하기 위한 프로세서

#### diffusers.models.attention_processor.PAGIdentitySanaLinearAttnProcessor2_0[[diffusers.models.attention_processor.PAGIdentitySanaLinearAttnProcessor2_0]]

```python
diffusers.models.attention_processor.PAGIdentitySanaLinearAttnProcessor2_0()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L5448)

스케일된 도트-프로덕트 선형 어텐션을 구현하기 위한 프로세서

## Stable Audio[[diffusers.models.attention_processor.StableAudioAttnProcessor2_0]]

#### diffusers.models.attention_processor.StableAudioAttnProcessor2_0[[diffusers.models.attention_processor.StableAudioAttnProcessor2_0]]

```python
diffusers.models.attention_processor.StableAudioAttnProcessor2_0()
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L2991)

PyTorch 2.0을 사용하는 경우 기본적으로 활성화되는) 스케일된 도트 프로덕트 어텐션을 구현하기 위한 프로세서입니다. 이는 Stable Audio 모델에서 사용됩니다. 쿼리 및 키 벡터에 로터리 임베딩을 적용하며, MHA, GQA 또는 MQA를 지원합니다.

## SlicedAttnProcessor[[diffusers.models.attention_processor.SlicedAttnProcessor]]

#### diffusers.models.attention_processor.SlicedAttnProcessor[[diffusers.models.attention_processor.SlicedAttnProcessor]]

```python
diffusers.models.attention_processor.SlicedAttnProcessor(slice_size: int)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L4000)

**매개변수:**

slice_size (`int`, *선택 사항*) : attention을 계산할 단계 수입니다. `attention_head_dim // slice_size`만큼의 슬라이스를 사용하며, `attention_head_dim`은 `slice_size`의 배수여야 합니다.

슬라이스드 어텐션을 구현하기 위한 프로세서

#### diffusers.models.attention_processor.SlicedAttnAddedKVProcessor[[diffusers.models.attention_processor.SlicedAttnAddedKVProcessor]]

```python
diffusers.models.attention_processor.SlicedAttnAddedKVProcessor(slice_size)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L4087)

**매개변수:**

slice_size (`int`, *선택 사항*) : attention을 계산할 단계 수입니다. `attention_head_dim // slice_size`만큼의 슬라이스를 사용하며, `attention_head_dim`은 `slice_size`의 배수여야 합니다.

텍스트 인코더에 추가적인 학습 가능한 키 및 값 행렬을 사용하여 슬라이스드 어텐션을 구현하는 프로세서입니다.

## XFormersAttnProcessor[[diffusers.models.attention_processor.XFormersAttnProcessor]]

#### diffusers.models.attention_processor.XFormersAttnProcessor[[diffusers.models.attention_processor.XFormersAttnProcessor]]

```python
diffusers.models.attention_processor.XFormersAttnProcessor(attention_op: Callable | None = None)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L2488)

**매개변수:**

attention_op (`Callable`, *선택 사항*, 기본값 `None`) : attention operator로 사용할 기본 [operator](https://facebookresearch.github.io/xformers/components/ops.html#xformers.ops.AttentionOpBase)입니다. `None`으로 설정하여 xFormers가 최적의 operator를 선택하도록 하는 것이 권장됩니다.

xFormers를 사용하여 메모리 효율적인 어텐션을 구현하는 프로세서.

#### diffusers.models.attention_processor.XFormersAttnAddedKVProcessor[[diffusers.models.attention_processor.XFormersAttnAddedKVProcessor]]

```python
diffusers.models.attention_processor.XFormersAttnAddedKVProcessor(attention_op: Callable | None = None)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L2417)

**매개변수:**

attention_op (`Callable`, *선택 사항*, 기본값 `None`) : attention operator로 사용할 기본 [operator](https://facebookresearch.github.io/xformers/components/ops.html#xformers.ops.AttentionOpBase)입니다. `None`으로 설정하여 xFormers가 최적의 operator를 선택하도록 하는 것이 권장됩니다.

xFormers를 사용하여 메모리 효율적인 어텐션을 구현하는 프로세서.

## XLAFlashAttnProcessor2_0[[diffusers.models.attention_processor.XLAFlashAttnProcessor2_0]]

#### diffusers.models.attention_processor.XLAFlashAttnProcessor2_0[[diffusers.models.attention_processor.XLAFlashAttnProcessor2_0]]

```python
diffusers.models.attention_processor.XLAFlashAttnProcessor2_0(partition_spec: tuple[str | None, ...] | None = None)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L2790)

`torch_xla`를 사용하는 경우 pallas flash attention 커널을 사용하여 스케일된 도트 프로덕트 어텐션을 구현하는 프로세서

## XFormersJointAttnProcessor[[diffusers.models.attention_processor.XFormersJointAttnProcessor]]

#### diffusers.models.attention_processor.XFormersJointAttnProcessor[[diffusers.models.attention_processor.XFormersJointAttnProcessor]]

```python
diffusers.models.attention_processor.XFormersJointAttnProcessor(attention_op: Callable | None = None)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L1908)

**매개변수:**

attention_op (`Callable`, *선택 사항*, 기본값 `None`) : attention operator로 사용할 기본 [operator](https://facebookresearch.github.io/xformers/components/ops.html#xformers.ops.AttentionOpBase)입니다. `None`으로 설정하여 xFormers가 최적의 operator를 선택하도록 하는 것이 권장됩니다.

xFormers를 사용하여 메모리 효율적인 어텐션을 구현하는 프로세서.

## IPAdapterXFormersAttnProcessor[[diffusers.models.attention_processor.IPAdapterXFormersAttnProcessor]]

#### diffusers.models.attention_processor.IPAdapterXFormersAttnProcessor[[diffusers.models.attention_processor.IPAdapterXFormersAttnProcessor]]

```python
diffusers.models.attention_processor.IPAdapterXFormersAttnProcessor(hidden_size, cross_attention_dim = None, num_tokens = (4,), scale = 1.0, attention_op: Callable | None = None)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L4640)

**매개변수:**

hidden_size (`int`) : attention layer의 hidden size입니다.

cross_attention_dim (`int`) : `encoder_hidden_states`의 채널 수.

num_tokens (`int`, `tuple[int]` 또는 `list[int]`, 기본값 `(4,)`) : 이미지 기능의 컨텍스트 길이입니다.

scale (`float` 또는 `list[float]`, 기본값 1.0) : 이미지 프롬프트의 가중치 스케일입니다.

attention_op (`Callable`, *선택 사항*, 기본값 `None`) : attention operator로 사용할 기본 [operator](https://facebookresearch.github.io/xformers/components/ops.html#xformers.ops.AttentionOpBase)입니다. `None`으로 설정하여 xFormers가 최적의 operator를 선택하도록 하는 것이 권장됩니다.

xFormers를 사용하는 IP-Adapter의 Attention 프로세서입니다.

## FluxIPAdapterJointAttnProcessor2_0[[diffusers.models.attention_processor.FluxIPAdapterJointAttnProcessor2_0]]

#### diffusers.models.attention_processor.FluxIPAdapterJointAttnProcessor2_0[[diffusers.models.attention_processor.FluxIPAdapterJointAttnProcessor2_0]]

```python
diffusers.models.attention_processor.FluxIPAdapterJointAttnProcessor2_0(*args, **kwargs)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L5539)

## XLAFluxFlashAttnProcessor2_0[[diffusers.models.attention_processor.XLAFluxFlashAttnProcessor2_0]]

#### diffusers.models.attention_processor.XLAFluxFlashAttnProcessor2_0[[diffusers.models.attention_processor.XLAFluxFlashAttnProcessor2_0]]

```python
diffusers.models.attention_processor.XLAFluxFlashAttnProcessor2_0(*args, **kwargs)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py#L5579)

`torch_xla`를 사용하는 경우 pallas flash attention 커널을 사용하여 스케일된 도트 프로덕트 어텐션을 구현하는 프로세서

