Diffusers documentation
Bộ xử lý chú ý
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
Bộ xử lý mặc định để thực hiện các phép tính liên quan đến chú ý.
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).
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.
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.
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ể.
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
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
Bộ xử lý chú ý thường được sử dụng trong quá trình xử lý Aura Flow.
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
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.
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
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
< source >( 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 trongencoder_hidden_states. - out_bias (
bool, mặc định làTrue) — Có bao gồm tham số bias trongtrain_q_outhay 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
< source >( 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 trongencoder_hidden_states. - out_bias (
bool, mặc định làTrue) — Có bao gồm tham số bias trongtrain_q_outhay 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
< source >( 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 trongencoder_hidden_states. - out_bias (
bool, mặc định làTrue) — Có bao gồm tham số bias trongtrain_q_outhay 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ànhNonevà để 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
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
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.
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.
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.
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
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
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
< source >( 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 trongencoder_hidden_states. - num_tokens (
int,tuple[int]hoặclist[int], mặc định là(4,)) — Chiều dài ngữ cảnh của các đặc trưng hình ảnh. - scale (
floathoặ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
< source >( 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 trongencoder_hidden_states. - num_tokens (
int,tuple[int]hoặclist[int], mặc định là(4,)) — Chiều dài ngữ cảnh của các đặc trưng hình ảnh. - scale (
floathoặclist[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
< source >( 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
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.
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.
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.
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
Bộ xử lý để triển khai chú ý với LoRA.
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).
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.
Bộ xử lý để triển khai chú ý với LoRA sử dụng xFormers.
Lumina-T2X
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
Bộ xử lý chú ý được sử dụng trong Mochi.
Bộ xử lý chú ý được sử dụng trong Mochi VAE.
Sana
Bộ xử lý để triển khai chú ý tuyến tính tích vô hướng có tỷ lệ.
Bộ xử lý để triển khai chú ý bậc hai đa tỷ lệ.
Bộ xử lý để triển khai chú ý tuyến tính tích vô hướng có tỷ lệ.
Bộ xử lý để triển khai chú ý tuyến tính tích vô hướng có tỷ lệ.
Stable Audio
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
< source >( slice_size: int )
Bộ xử lý để triển khai chú ý phân lát.
lớp diffusers.models.attention_processor.SlicedAttnAddedKVProcessor
< source >( 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
< source >( 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ànhNonevà để 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
< source >( 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ànhNonevà để 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
< source >( 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
< source >( 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ànhNonevà để 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
< source >( 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 trongencoder_hidden_states. - num_tokens (
int,tuple[int]hoặclist[int], mặc định là(4,)) — Chiều dài ngữ cảnh của các đặc trưng hình ảnh. - scale (
floathoặclist[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ànhNonevà để 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
< source >( *args**kwargs )
XLAFluxFlashAttnProcessor2_0
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.