Buckets:

hf-doc-build/doc / diffusers /main /ko /api /attnprocessor.md
mishig's picture
|
download
raw
34.6 kB
# 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 커널을 사용하여 스케일된 도트 프로덕트 어텐션을 구현하는 프로세서

Xet Storage Details

Size:
34.6 kB
·
Xet hash:
96d6fcf5376039911f0571728d6bf030cdf520ed48bd8979a5a87b7cf4b1a040

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.