Buckets:

hf-doc-build/doc / diffusers /main /vi /api /models /sd3_transformer2d.md
mishig's picture
|
download
raw
6.98 kB
# Mô hình Transformer SD3
Mô hình Transformer được giới thiệu trong [Stable Diffusion 3](https://hf.co/papers/2403.03206). Điểm mới của nó nằm ở khối transformer MMDiT.
## SD3Transformer2DModel[[diffusers.SD3Transformer2DModel]]
#### diffusers.SD3Transformer2DModel[[diffusers.SD3Transformer2DModel]]
```python
diffusers.SD3Transformer2DModel(sample_size: int = 128, patch_size: int = 2, in_channels: int = 16, num_layers: int = 18, attention_head_dim: int = 64, num_attention_heads: int = 18, joint_attention_dim: int = 4096, caption_projection_dim: int = 1152, pooled_projection_dim: int = 2048, out_channels: int = 16, pos_embed_max_size: int = 96, dual_attention_layers: tuple[int, ...] = (), qk_norm: str | None = None)
```
[Nguồn](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_sd3.py#L79)
**Tham số:**
sample_size (`int`, mặc định là `128`) : Độ rộng/chiều cao của các latents. Giá trị này được cố định trong quá trình huấn luyện vì nó được dùng để học một số lượng các position embeddings.
patch_size (`int`, mặc định là `2`) : Kích thước patch để chuyển dữ liệu đầu vào thành các patch nhỏ.
in_channels (`int`, mặc định là `16`) : Số lượng kênh tiềm ẩn trong đầu vào.
num_layers (`int`, mặc định là `18`) : Số lượng lớp khối transformer cần sử dụng.
attention_head_dim (`int`, mặc định là `64`) : Số lượng kênh trong mỗi head.
num_attention_heads (`int`, mặc định là `18`) : Số lượng đầu được sử dụng cho chú ý đa đầu (multi-head attention).
joint_attention_dim (`int`, mặc định là `4096`) : Kích thước embedding cần sử dụng cho chú ý kết hợp văn bản-hình ảnh.
caption_projection_dim (`int`, mặc định là `1152`) : Kích thước embedding của các embedding mô tả.
pooled_projection_dim (`int`, mặc định là `2048`) : Kích thước embedding của các phép chiếu văn bản đã được pool.
out_channels (`int`, mặc định là `16`) : Số lượng kênh tiềm ẩn trong đầu ra.
pos_embed_max_size (`int`, mặc định là `96`) : Chiều cao/chiều rộng tiềm ẩn tối đa của các nhúng vị trí.
dual_attention_layers (`tuple[int, ...]`, mặc định là `()`) : Số lượng khối transformer dual-stream cần sử dụng.
qk_norm (`str`, *tùy chọn*, mặc định là `None`) : Phương pháp chuẩn hóa được sử dụng cho query và key trong lớp attention. Nếu là `None`, sẽ không sử dụng chuẩn hóa.
Mô hình Transformer được giới thiệu trong [Stable Diffusion 3](https://huggingface.co/papers/2403.03206).
#### enable_forward_chunking[[diffusers.SD3Transformer2DModel.enable_forward_chunking]]
```python
enable_forward_chunking(chunk_size: int | None = None, dim: int = 0)
```
[Nguồn](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_sd3.py#L175)
**Tham số:**
chunk_size (`int`, *optional*) : Kích thước chunk của các lớp feed-forward. Nếu không được chỉ định, lớp feed-forward sẽ được thực hiện riêng lẻ trên mỗi tensor có dim=`dim`.
dim (`int`, *optional*, mặc định là `0`) : Chiều mà phép tính feed-forward nên được chia nhỏ. Chọn giữa dim=0 (batch) hoặc dim=1 (chiều dài chuỗi).
Đặt bộ xử lý chú ý để sử dụng [chia nhỏ feed forward](https://huggingface.co/blog/reformer#2-chunked-feed-forward-layers).
#### forward[[diffusers.SD3Transformer2DModel.forward]]
```python
forward(hidden_states: Tensor, encoder_hidden_states: Tensor = None, pooled_projections: Tensor = None, timestep: LongTensor = None, block_controlnet_hidden_states: list = None, joint_attention_kwargs: dict[str, typing.Any] | None = None, return_dict: bool = True, skip_layers: list[int] | None = None)
```
[Nguồn](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_sd3.py#L248)
**Tham số:**
hidden_states (`torch.Tensor` có hình dạng `(batch size, channel, height, width)`) : `hidden_states` đầu vào.
encoder_hidden_states (`torch.Tensor` có shape `(batch size, sequence_len, embed_dims)`) : Các embeddings điều kiện (embeddings được tính từ các điều kiện đầu vào như prompts) cần sử dụng.
pooled_projections (`torch.Tensor` có hình dạng `(batch_size, projection_dim)`) : Các embedding được chiếu từ các embedding của các điều kiện đầu vào.
timestep (`torch.LongTensor`) : Dùng để chỉ bước khử nhiễu.
block_controlnet_hidden_states (`list` của `torch.Tensor`) : Một danh sách các tensor, nếu được chỉ định, sẽ được cộng vào phần dư (residuals) của các khối transformer.
joint_attention_kwargs (`dict`, *tùy chọn*) : Một từ điển kwargs mà nếu được chỉ định sẽ được truyền đến `AttentionProcessor` như đã định nghĩa dưới `self.processor` trong [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py).
return_dict (`bool`, *tùy chọn*, mặc định là `True`) : Có nên trả về một `~models.transformer_2d.Transformer2DModelOutput` thay vì một tuple thông thường hay không.
skip_layers (`list` của `int`, *optional*) : Một danh sách các chỉ số lớp cần bỏ qua trong quá trình truyền thẳng.
**Trả về:**
Nếu `return_dict` là True, một `~models.transformer_2d.Transformer2DModelOutput` sẽ được trả về, ngược lại một `tuple` trong đó phần tử đầu tiên là tensor mẫu.
Phương thức forward của [SD3Transformer2DModel](/docs/diffusers/main/vi/api/models/sd3_transformer2d#diffusers.SD3Transformer2DModel).
#### fuse_qkv_projections[[diffusers.SD3Transformer2DModel.fuse_qkv_projections]]
```python
fuse_qkv_projections()
```
[Nguồn](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_sd3.py#L217)
Bật các phép chiếu QKV đã hợp nhất. Đối với các module 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 module chú ý chéo, các ma trận chiếu khóa và giá trị được hợp nhất.
> [!WARNING] > API này 🧪 đang ở giai đoạn thử nghiệm.
#### unfuse_qkv_projections[[diffusers.SD3Transformer2DModel.unfuse_qkv_projections]]
```python
unfuse_qkv_projections()
```
[Nguồn](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_sd3.py#L239)
Tắt dự phóng QKV hợp nhất nếu đã được bật.
> [!WARNING] > API này 🧪 đang ở giai đoạn thử nghiệm.

Xet Storage Details

Size:
6.98 kB
·
Xet hash:
b0928a7fa9bbe7df3748d3d32d0a19d69eb9b0a97f156f64d2c1b18bc68f18a7

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