Diffusers documentation

Attention Processor

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

Attention Processor

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

AttnProcessor

클래스 diffusers.models.attention_processor.AttnProcessor

< >

( )

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

클래스 diffusers.models.attention_processor.AttnProcessor2_0

< >

( )

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

클래스 diffusers.models.attention_processor.AttnAddedKVProcessor

< >

( )

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

클래스 diffusers.models.attention_processor.AttnAddedKVProcessor2_0

< >

( )

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

class diffusers.models.attention_processor.AttnProcessorNPU

< >

( )

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

클래스 diffusers.models.attention_processor.FusedAttnProcessor2_0

< >

( )

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

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

Allegro

클래스 diffusers.models.attention_processor.AllegroAttnProcessor2_0

< >

( )

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

AuraFlow

클래스 diffusers.models.attention_processor.AuraFlowAttnProcessor2_0

< >

( )

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

클래스 diffusers.models.attention_processor.FusedAuraFlowAttnProcessor2_0

< >

( )

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

CogVideoX

클래스 diffusers.models.attention_processor.CogVideoXAttnProcessor2_0

< >

( )

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

클래스 diffusers.models.attention_processor.FusedCogVideoXAttnProcessor2_0

< >

( )

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

DreamLite

class diffusers.models.unets.unet_dreamlite.DreamLiteAttnProcessor2_0

< >

( )

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

< >

( 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) — 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

< >

( 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) — 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 방법의 어텐션을 구현하는 Processor입니다.

클래스 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) — 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입니다. None으로 설정하여 xFormers가 최적의 operator를 선택하도록 하는 것이 권장됩니다.

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

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을 사용하는 경우 기본적으로 활성화되는) 스케일된 도트 프로덕트 어텐션을 구현하는 Processor입니다. 이 Processor는 융합된 투영 레이어를 포함하며 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

< >

( )

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

클래스 diffusers.models.attention_processor.PAGCFGIdentitySelfAttnProcessor2_0

< >

( )

PyTorch 2.0을 사용하는 경우 기본적으로 활성화되는 스케일된 도트 프로덕트 어텐션을 사용하여 PAG를 구현하는 프로세서. 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) — Attention 레이어의 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

< >

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

매개변수

  • hidden_size (int) — Attention 레이어의 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

< >

( 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) — timestep 임베딩의 입력 채널 수입니다.
  • scale (float, 기본값 0.5) — IP-Adapter 스케일입니다.

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

JointAttnProcessor2_0

클래스 diffusers.models.attention_processor.JointAttnProcessor2_0

< >

( )

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

클래스 diffusers.models.attention_processor.PAGJointAttnProcessor2_0

< >

( )

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

클래스 diffusers.models.attention_processor.PAGCFGJointAttnProcessor2_0

< >

( )

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

클래스 diffusers.models.attention_processor.FusedJointAttnProcessor2_0

< >

( )

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

LoRA

클래스 diffusers.models.attention_processor.LoRAAttnProcessor

< >

( )

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

클래스 diffusers.models.attention_processor.LoRAAttnProcessor2_0

< >

( )

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

클래스 diffusers.models.attention_processor.LoRAAttnAddedKVProcessor

< >

( )

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

class diffusers.models.attention_processor.LoRAXFormersAttnProcessor

< >

( )

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

Lumina-T2X

클래스 diffusers.models.attention_processor.LuminaAttnProcessor2_0

< >

( )

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

Mochi

클래스 diffusers.models.attention_processor.MochiAttnProcessor2_0

< >

( )

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

클래스 diffusers.models.attention_processor.MochiVaeAttnProcessor2_0

< >

( )

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

Sana

클래스 diffusers.models.attention_processor.SanaLinearAttnProcessor2_0

< >

( )

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

클래스 diffusers.models.attention_processor.SanaMultiscaleAttnProcessor2_0

< >

( )

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

class diffusers.models.attention_processor.PAGCFGSanaLinearAttnProcessor2_0

< >

( )

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

class 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을 계산할 스텝 수입니다. attention_head_dim // slice_size만큼의 슬라이스를 사용하며, attention_head_dim은 slice_size의 배수여야 합니다.

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

클래스 diffusers.models.attention_processor.SlicedAttnAddedKVProcessor

< >

( slice_size )

매개변수

  • slice_size (int, 선택 사항) — Attention을 계산할 스텝 수입니다. 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) — attention operator로 사용할 기본 operator입니다. None으로 설정하여 xFormers가 최적의 operator를 선택하도록 하는 것이 권장됩니다.

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

클래스 diffusers.models.attention_processor.XFormersAttnAddedKVProcessor

< >

( attention_op: Callable | None = None )

매개변수

  • attention_op (Callable, 선택 사항, 기본값 None) — attention operator로 사용할 기본 operator입니다. None으로 설정하여 xFormers가 최적의 operator를 선택하도록 하는 것이 권장됩니다.

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

XLAFlashAttnProcessor2_0

클래스 diffusers.models.attention_processor.XLAFlashAttnProcessor2_0

< >

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

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

XFormersJointAttnProcessor

클래스 diffusers.models.attention_processor.XFormersJointAttnProcessor

< >

( attention_op: Callable | None = None )

매개변수

  • attention_op (Callable, 선택 사항, 기본값 None) — attention operator로 사용할 기본 operator입니다. None으로 설정하여 xFormers가 최적의 operator를 선택하도록 하는 것이 권장됩니다.

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

IPAdapterXFormersAttnProcessor

클래스 diffusers.models.attention_processor.IPAdapterXFormersAttnProcessor

< >

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

매개변수

  • hidden_size (int) — Attention 레이어의 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입니다. None으로 설정하여 xFormers가 최적의 operator를 선택하도록 하는 것이 권장됩니다.

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

FluxIPAdapterJointAttnProcessor2_0

클래스 diffusers.models.attention_processor.FluxIPAdapterJointAttnProcessor2_0

< >

( *args**kwargs )

XLAFluxFlashAttnProcessor2_0

클래스 diffusers.models.attention_processor.XLAFluxFlashAttnProcessor2_0

< >

( *args**kwargs )

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

Update on GitHub