Diffusers documentation

Bộ xử lý chú ý

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

Bộ xử lý chú ý

Attention processor là một lớp để áp dụng các loại cơ chế chú ý khác nhau.

AttnProcessor

lớp diffusers.models.attention_processor.AttnProcessor

< >

( )

Bộ xử lý mặc định để thực hiện các phép tính liên quan đến chú ý.

lớp diffusers.models.attention_processor.AttnProcessor2_0

< >

( )

Bộ xử lý để triển khai chú ý tích cóp có tỷ lệ (được bật theo mặc định nếu bạn đang sử dụng PyTorch 2.0).

lớp diffusers.models.attention_processor.AttnAddedKVProcessor

< >

( )

Bộ xử lý để thực hiện các phép tính liên quan đến chú ý với các ma trận khóa và giá trị có thể học thêm cho bộ mã hóa văn bản.

lớp diffusers.models.attention_processor.AttnAddedKVProcessor2_0

< >

( )

Bộ xử lý để thực hiện chú ý tích vô hướng có tỷ lệ (được bật theo mặc định nếu bạn đang sử dụng PyTorch 2.0), với các ma trận khóa và giá trị có thể học thêm cho bộ mã hóa văn bản.

lớp diffusers.models.attention_processor.AttnProcessorNPU

< >

( )

Bộ xử lý để triển khai flash attention sử dụng torch_npu. Torch_npu chỉ hỗ trợ các kiểu dữ liệu fp16 và bf16. Nếu sử dụng fp32, F.scaled_dot_product_attention sẽ được dùng để tính toán, nhưng hiệu quả tăng tốc trên NPU không đáng kể.

lớp diffusers.models.attention_processor.FusedAttnProcessor2_0

< >

( )

Bộ xử lý để triển khai chú ý tích vô hướng có tỷ lệ (được bật mặc định nếu bạn đang sử dụng PyTorch 2.0). Nó sử dụng các lớp chiếu hợp nhất. Đối với các mô-đun tự chú ý, tất cả các ma trận chiếu (tức là truy vấn, khóa, giá trị) đều được hợp nhất. Đối với các mô-đun chú ý chéo, các ma trận chiếu khóa và giá trị được hợp nhất.

> API này hiện tại mang tính chất 🧪 thử nghiệm và có thể thay đổi trong tương lai.

Allegro

lớp diffusers.models.attention_processor.AllegroAttnProcessor2_0

< >

( )

Bộ xử lý để triển khai chú ý tích vô hướng có tỷ lệ (được bật mặc định nếu bạn đang sử dụng PyTorch 2.0). Nó được sử dụng trong mô hình Allegro. Nó áp dụng một lớp chuẩn hóa và nhúng quay (rotary embedding) lên vector truy vấn và vector khóa.

AuraFlow

lớp diffusers.models.attention_processor.AuraFlowAttnProcessor2_0

< >

( )

Bộ xử lý chú ý thường được sử dụng trong quá trình xử lý Aura Flow.

lớp diffusers.models.attention_processor.FusedAuraFlowAttnProcessor2_0

< >

( )

Bộ xử lý chú ý thường được sử dụng trong xử lý Aura Flow với các phép chiếu đã hợp nhất.

CogVideoX

lớp diffusers.models.attention_processor.CogVideoXAttnProcessor2_0

< >

( )

Bộ xử lý để triển khai chú ý tích vô hướng có tỷ lệ cho mô hình CogVideoX. Nó áp dụng nhúng quay (rotary embedding) lên các vector truy vấn và khóa, nhưng không bao gồm chuẩn hóa không gian.

lớp diffusers.models.attention_processor.FusedCogVideoXAttnProcessor2_0

< >

( )

Bộ xử lý để triển khai chú ý tích vô hướng có tỷ lệ cho mô hình CogVideoX. Nó áp dụng nhúng quay (rotary embedding) lên các vector truy vấn và khóa, nhưng không bao gồm chuẩn hóa không gian.

DreamLite

lớp diffusers.models.unets.unet_dreamlite.DreamLiteAttnProcessor2_0

< >

( )

Bộ xử lý để triển khai chú ý tích cóp có tỷ lệ (scaled dot-product attention) với hỗ trợ Chú vấn truy vấn nhóm (Grouped Query Attention (GQA / MQA)).

Giống hệt AttnProcessor2_0 ngoại trừ nhánh reshape key/value xử lý chính xác trường hợp attn.kv_heads != attn.heads bằng cách reshape K/V thành kv_heads rồi repeat_interleave chúng lên đến attn.heads. Điều này là bắt buộc đối với DreamLite UNet, kết hợp GQA với qk_norm — một tổ hợp mà AttnProcessor2_0 mặc định không xử lý được. SDPA được ủy quyền cho dispatch_attention_fn để có thể sử dụng bất kỳ backend attention nào của diffusers (native PyTorch SDPA, FlashAttention, v.v.).

Custom Diffusion

lớp 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 )

Tham số

  • train_kv (bool, mặc định là True) — Có huấn luyện mới các ma trận key và value tương ứng với các đặc trưng văn bản hay không.
  • train_q_out (bool, mặc định là True) — Có huấn luyện mới các ma trận truy vấn tương ứng với các đặc trưng ảnh tiềm ẩn hay không.
  • hidden_size (int, tùy chọn, mặc định là None) — Kích thước ẩn của lớp chú ý.
  • cross_attention_dim (int, tùy chọn, mặc định là None) — Số lượng kênh trong encoder_hidden_states.
  • out_bias (bool, mặc định là True) — Có bao gồm tham số bias trong train_q_out hay không.
  • dropout (float, tùy chọn, mặc định là 0.0) — Xác suất dropout cần sử dụng.

Bộ xử lý để triển khai chú ý cho phương pháp Custom Diffusion.

lớp 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 )

Tham số

  • train_kv (bool, mặc định là True) — Có huấn luyện mới các ma trận key và value tương ứng với các đặc trưng văn bản hay không.
  • train_q_out (bool, mặc định là True) — Có huấn luyện mới các ma trận truy vấn tương ứng với các đặc trưng ảnh tiềm ẩn hay không.
  • hidden_size (int, tùy chọn, mặc định là None) — Kích thước ẩn của lớp chú ý.
  • cross_attention_dim (int, tùy chọn, mặc định là None) — Số lượng kênh trong encoder_hidden_states.
  • out_bias (bool, mặc định là True) — Có bao gồm tham số bias trong train_q_out hay không.
  • dropout (float, tùy chọn, mặc định là 0.0) — Xác suất dropout cần sử dụng.

Bộ xử lý để triển khai chú ý (attention) cho phương pháp Custom Diffusion bằng cách sử dụng chú ý tích cóp điểm (scaled dot-product attention) hiệu quả bộ nhớ của PyTorch 2.0.

lớp 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 )

Tham số

  • train_kv (bool, mặc định là True) — Có huấn luyện mới các ma trận key và value tương ứng với các đặc trưng văn bản hay không.
  • train_q_out (bool, mặc định là True) — Có huấn luyện mới các ma trận truy vấn tương ứng với các đặc trưng ảnh tiềm ẩn hay không.
  • hidden_size (int, tùy chọn, mặc định là None) — Kích thước ẩn của lớp chú ý.
  • cross_attention_dim (int, tùy chọn, mặc định là None) — Số lượng kênh trong encoder_hidden_states.
  • out_bias (bool, mặc định là True) — Có bao gồm tham số bias trong train_q_out hay không.
  • dropout (float, tùy chọn, mặc định là 0.0) — Xác suất dropout cần sử dụng.
  • attention_op (Callable, tùy chọn, mặc định là None) — operator cơ bản được sử dụng làm attention operator. Khuyến nghị đặt thành None và để xFormers tự chọn operator tốt nhất.

Bộ xử lý để triển khai chú ý hiệu quả bộ nhớ sử dụng xFormers cho phương pháp Custom Diffusion.

Flux

lớp diffusers.models.attention_processor.FluxAttnProcessor2_0

< >

( *args**kwargs )

lớp diffusers.models.attention_processor.FusedFluxAttnProcessor2_0

< >

( *args**kwargs )

lớp diffusers.models.attention_processor.FluxSingleAttnProcessor2_0

< >

( *args**kwargs )

Bộ xử lý để triển khai chú ý tích cóp có tỷ lệ (được bật theo mặc định nếu bạn đang sử dụng PyTorch 2.0).

Hunyuan

lớp diffusers.models.attention_processor.HunyuanAttnProcessor2_0

< >

( )

Bộ xử lý để triển khai chú ý tích vô hướng có tỷ lệ (được bật mặc định nếu bạn đang sử dụng PyTorch 2.0). Nó được sử dụng trong mô hình HunyuanDiT. Nó áp dụng một lớp chuẩn hóa s và nhúng quay (rotary embedding) lên vector truy vấn và khóa.

lớp diffusers.models.attention_processor.FusedHunyuanAttnProcessor2_0

< >

( )

Bộ xử lý để triển khai chú ý tích vô hướng có tỷ lệ (được bật mặc định nếu bạn đang sử dụng PyTorch 2.0) với các lớp chiếu đã hợp nhất. Thành phần này được sử dụng trong mô hình HunyuanDiT. Nó áp dụng một lớp chuẩn hóa s và nhúng quay (rotary embedding) lên vector truy vấn và vector khóa.

lớp diffusers.models.attention_processor.PAGHunyuanAttnProcessor2_0

< >

( )

Bộ xử lý để triển khai chú ý tích vô hướng có tỷ lệ (được bật mặc định nếu bạn đang sử dụng PyTorch 2.0). Nó được sử dụng trong mô hình HunyuanDiT. Nó áp dụng một lớp chuẩn hóa và nhúng quay (rotary embedding) lên vector truy vấn và khóa. Biến thể của bộ xử lý này sử dụng Pertubed Attention Guidance.

lớp diffusers.models.attention_processor.PAGCFGHunyuanAttnProcessor2_0

< >

( )

Bộ xử lý để triển khai chú ý tích vô hướng có tỷ lệ (được bật mặc định nếu bạn đang sử dụng PyTorch 2.0). Nó được sử dụng trong mô hình HunyuanDiT. Nó áp dụng một lớp chuẩn hóa và nhúng quay (rotary embedding) lên vector truy vấn và khóa. Biến thể của bộ xử lý này sử dụng Pertubed Attention Guidance.

IdentitySelfAttnProcessor2_0

lớp diffusers.models.attention_processor.PAGIdentitySelfAttnProcessor2_0

< >

( )

Bộ xử lý để triển khai PAG bằng cách sử dụng chú ý tích vô hướng có tỷ lệ (được bật theo mặc định nếu bạn đang sử dụng PyTorch 2.0). Tham chiếu PAG: https://huggingface.co/papers/2403.17377

lớp diffusers.models.attention_processor.PAGCFGIdentitySelfAttnProcessor2_0

< >

( )

Bộ xử lý để triển khai PAG bằng cách sử dụng chú ý tích vô hướng có tỷ lệ (được bật theo mặc định nếu bạn đang sử dụng PyTorch 2.0). Tham chiếu PAG: https://huggingface.co/papers/2403.17377

IP-Adapter

lớp diffusers.models.attention_processor.IPAdapterAttnProcessor

< >

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

Tham số

  • hidden_size (int) — Kích thước ẩn của lớp chú ý.
  • cross_attention_dim (int) — Số lượng kênh trong encoder_hidden_states.
  • num_tokens (int, tuple[int] hoặc list[int], mặc định là (4,)) — Chiều dài ngữ cảnh của các đặc trưng hình ảnh.
  • scale (float hoặc listfloat, mặc định là 1.0) — thang trọng số của image prompt.

Bộ xử lý chú ý cho nhiều IP-Adapter.

lớp diffusers.models.attention_processor.IPAdapterAttnProcessor2_0

< >

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

Tham số

  • hidden_size (int) — Kích thước ẩn của lớp chú ý.
  • cross_attention_dim (int) — Số lượng kênh trong encoder_hidden_states.
  • num_tokens (int, tuple[int] hoặc list[int], mặc định là (4,)) — Chiều dài ngữ cảnh của các đặc trưng hình ảnh.
  • scale (float hoặc list[float], mặc định là 1.0) — thang trọng số của image prompt.

Bộ xử lý chú ý cho IP-Adapter cho PyTorch 2.0.

lớp diffusers.models.attention_processor.SD3IPAdapterJointAttnProcessor2_0

< >

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

Tham số

  • hidden_size (int) — Số lượng kênh ẩn.
  • ip_hidden_states_dim (int) — Kích thước đặc trưng của hình ảnh.
  • head_dim (int) — Số lượng kênh đầu.
  • timesteps_emb_dim (int, mặc định là 1280) — Số lượng kênh đầu vào cho nhúng bước thời gian (timestep embedding).
  • scale (float, mặc định là 0.5) — Thang IP-Adapter.

Bộ xử lý chú ý cho IP-Adapter, thường được sử dụng trong việc xử lý các phép chiếu tự chú ý kiểu SD3, với thông tin dựa trên hình ảnh bổ sung và nhúng bước thời gian.

JointAttnProcessor2_0

lớp diffusers.models.attention_processor.JointAttnProcessor2_0

< >

( )

Bộ xử lý chú ý thường được sử dụng trong việc xử lý các phép chiếu tự chú ý kiểu SD3.

lớp diffusers.models.attention_processor.PAGJointAttnProcessor2_0

< >

( )

Bộ xử lý chú ý thường được sử dụng trong việc xử lý các phép chiếu tự chú ý kiểu SD3.

lớp diffusers.models.attention_processor.PAGCFGJointAttnProcessor2_0

< >

( )

Bộ xử lý chú ý thường được sử dụng trong việc xử lý các phép chiếu tự chú ý kiểu SD3.

lớp diffusers.models.attention_processor.FusedJointAttnProcessor2_0

< >

( )

Bộ xử lý chú ý thường được sử dụng trong việc xử lý các phép chiếu tự chú ý kiểu SD3.

LoRA

lớp diffusers.models.attention_processor.LoRAAttnProcessor

< >

( )

Bộ xử lý để triển khai chú ý với LoRA.

lớp diffusers.models.attention_processor.LoRAAttnProcessor2_0

< >

( )

Bộ xử lý để triển khai attention với LoRA (được bật mặc định nếu bạn đang sử dụng PyTorch 2.0).

lớp diffusers.models.attention_processor.LoRAAttnAddedKVProcessor

< >

( )

Bộ xử lý để triển khai chú ý với LoRA kèm theo các ma trận khóa và giá trị có thể học bổ sung cho bộ mã hóa văn bản.

lớp diffusers.models.attention_processor.LoRAXFormersAttnProcessor

< >

( )

Bộ xử lý để triển khai chú ý với LoRA sử dụng xFormers.

Lumina-T2X

lớp diffusers.models.attention_processor.LuminaAttnProcessor2_0

< >

( )

Bộ xử lý để triển khai chú ý tích vô hướng có tỷ lệ (được bật mặc định nếu bạn đang sử dụng PyTorch 2.0). Nó được sử dụng trong mô hình LuminaNextDiT. Nó áp dụng một lớp chuẩn hóa s và nhúng quay (rotary embedding) lên vector truy vấn và khóa.

Mochi

lớp diffusers.models.attention_processor.MochiAttnProcessor2_0

< >

( )

Bộ xử lý chú ý được sử dụng trong Mochi.

lớp diffusers.models.attention_processor.MochiVaeAttnProcessor2_0

< >

( )

Bộ xử lý chú ý được sử dụng trong Mochi VAE.

Sana

lớp diffusers.models.attention_processor.SanaLinearAttnProcessor2_0

< >

( )

Bộ xử lý để triển khai chú ý tuyến tính tích vô hướng có tỷ lệ.

lớp diffusers.models.attention_processor.SanaMultiscaleAttnProcessor2_0

< >

( )

Bộ xử lý để triển khai chú ý bậc hai đa tỷ lệ.

class diffusers.models.attention_processor.PAGCFGSanaLinearAttnProcessor2_0

< >

( )

Bộ xử lý để triển khai chú ý tuyến tính tích vô hướng có tỷ lệ.

class diffusers.models.attention_processor.PAGIdentitySanaLinearAttnProcessor2_0

< >

( )

Bộ xử lý để triển khai chú ý tuyến tính tích vô hướng có tỷ lệ.

Stable Audio

lớp diffusers.models.attention_processor.StableAudioAttnProcessor2_0

< >

( )

Bộ xử lý để triển khai chú ý tích vô hướng có tỷ lệ (được bật mặc định nếu bạn đang sử dụng PyTorch 2.0). Nó được sử dụng trong mô hình Stable Audio. Nó áp dụng nhúng quay (rotary embedding) lên vector truy vấn và khóa, và cho phép MHA, GQA hoặc MQA.

SlicedAttnProcessor

class diffusers.models.attention_processor.SlicedAttnProcessor

< >

( slice_size: int )

Tham số

  • slice_size (int, tùy chọn) — Số bước để tính attention. Sử dụng nhiều lát bằng attention_head_dim // slice_size, và attention_head_dim phải là bội số của slice_size.

Bộ xử lý để triển khai chú ý phân lát.

lớp diffusers.models.attention_processor.SlicedAttnAddedKVProcessor

< >

( slice_size )

Tham số

  • slice_size (int, tùy chọn) — Số bước để tính attention. Sử dụng nhiều lát bằng attention_head_dim // slice_size, và attention_head_dim phải là bội số của slice_size.

Bộ xử lý để triển khai chú ý lát cắt với các ma trận khóa và giá trị học được bổ sung cho bộ mã hóa văn bản.

XFormersAttnProcessor

lớp diffusers.models.attention_processor.XFormersAttnProcessor

< >

( attention_op: Callable | None = None )

Tham số

  • attention_op (Callable, tùy chọn, mặc định là None) — operator cơ bản được sử dụng làm attention operator. Khuyến nghị đặt thành None và để xFormers tự chọn operator tốt nhất.

Bộ xử lý để triển khai chú ý tiết kiệm bộ nhớ bằng xFormers.

lớp diffusers.models.attention_processor.XFormersAttnAddedKVProcessor

< >

( attention_op: Callable | None = None )

Tham số

  • attention_op (Callable, tùy chọn, mặc định là None) — operator cơ bản được sử dụng làm attention operator. Khuyến nghị đặt thành None và để xFormers tự chọn operator tốt nhất.

Bộ xử lý để triển khai chú ý tiết kiệm bộ nhớ bằng xFormers.

XLAFlashAttnProcessor2_0

lớp diffusers.models.attention_processor.XLAFlashAttnProcessor2_0

< >

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

Bộ xử lý để triển khai chú ý tích cóp có tỷ lệ với kernel flash attention pallas nếu đang sử dụng torch_xla.

XFormersJointAttnProcessor

lớp diffusers.models.attention_processor.XFormersJointAttnProcessor

< >

( attention_op: Callable | None = None )

Tham số

  • attention_op (Callable, tùy chọn, mặc định là None) — operator cơ bản được sử dụng làm attention operator. Khuyến nghị đặt thành None và để xFormers tự chọn operator tốt nhất.

Bộ xử lý để triển khai chú ý tiết kiệm bộ nhớ bằng xFormers.

IPAdapterXFormersAttnProcessor

lớp diffusers.models.attention_processor.IPAdapterXFormersAttnProcessor

< >

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

Tham số

  • hidden_size (int) — Kích thước ẩn của lớp chú ý.
  • cross_attention_dim (int) — Số lượng kênh trong encoder_hidden_states.
  • num_tokens (int, tuple[int] hoặc list[int], mặc định là (4,)) — Chiều dài ngữ cảnh của các đặc trưng hình ảnh.
  • scale (float hoặc list[float], mặc định là 1.0) — thang trọng số của image prompt.
  • attention_op (Callable, tùy chọn, mặc định là None) — operator cơ bản được sử dụng làm attention operator. Khuyến nghị đặt thành None và để xFormers tự chọn operator tốt nhất.

Bộ xử lý chú ý cho IP-Adapter sử dụng xFormers.

FluxIPAdapterJointAttnProcessor2_0

lớp diffusers.models.attention_processor.FluxIPAdapterJointAttnProcessor2_0

< >

( *args**kwargs )

XLAFluxFlashAttnProcessor2_0

lớp diffusers.models.attention_processor.XLAFluxFlashAttnProcessor2_0

< >

( *args**kwargs )

Bộ xử lý để triển khai chú ý tích cóp có tỷ lệ với kernel flash attention pallas nếu đang sử dụng torch_xla.

Update on GitHub