Diffusers documentation
CogView4Transformer2DModel
CogView4Transformer2DModel
Mô hình Diffusion Transformer cho dữ liệu 2D từ CogView4
Mô hình có thể được tải bằng đoạn mã sau.
from diffusers import CogView4Transformer2DModel
transformer = CogView4Transformer2DModel.from_pretrained("THUDM/CogView4-6B", subfolder="transformer", dtype=torch.bfloat16).to("cuda") # or "mps", "xpu", "cpu"CogView4Transformer2DModel
lớp diffusers.CogView4Transformer2DModel
< source >( patch_size: int = 2in_channels: int = 16out_channels: int = 16num_layers: int = 30attention_head_dim: int = 40num_attention_heads: int = 64text_embed_dim: int = 4096time_embed_dim: int = 512condition_dim: int = 256pos_embed_max_size: int = 128sample_size: int = 128rope_axes_dim: tuple = (256, 256) )
Tham số
- patch_size (
int, mặc định là2) — Kích thước của các patch được sử dụng trong lớp nhúng patch. - in_channels (
int, mặc định là16) — Số lượng kênh trong đầu vào. - num_layers (
int, mặc định là30) — Số lượng lớp khối Transformer cần sử dụng. - attention_head_dim (
int, mặc định là40) — Số lượng kênh trong mỗi head. - num_attention_heads (
int, mặc định là64) — Số lượng đầu (heads) được sử dụng cho cơ chế chú ý đa đầu (multi-head attention). - out_channels (
int, mặc định là16) — Số lượng kênh trong đầu ra. - text_embed_dim (
int, mặc định là4096) — Kích thước đầu vào của các vector nhúng văn bản từ bộ mã hóa văn bản. - time_embed_dim (
int, mặc định là512) — Kích thước đầu ra của các embedding bước thời gian. - condition_dim (
int, mặc định là256) — Kích thước nhúng của các điều kiện độ phân giải kiểu SDXL đầu vào (original_size, target_size, crop_coords). - pos_embed_max_size (
int, mặc định là128) — Độ phân giải tối đa của các embedding vị trí, từ đó các lát cắt có hình dạngH x Wđược lấy và cộng vào các latent đã chia patch của đầu vào, trong đóHvàWlần lượt là chiều cao và chiều rộng của latent. Giá trị 128 có nghĩa là chiều cao và chiều rộng tối đa được hỗ trợ cho việc tạo ảnh là128 * vae_scale_factor * patch_size => 128 * 8 * 2 => 2048. - sample_size (
int, mặc định là128) — Độ phân giải cơ bản của latents đầu vào. Nếu height/width không được cung cấp trong quá trình tạo, giá trị này sẽ được sử dụng để xác định độ phân giải làsample_size * vae_scale_factor => 128 * 8 => 1024
forward
< source >( hidden_states: Tensorencoder_hidden_states: Tensortimestep: LongTensororiginal_size: Tensortarget_size: Tensorcrop_coords: Tensorattention_kwargs: dict[str, typing.Any] | None = Nonereturn_dict: bool = Trueattention_mask: typing.Optional[torch.Tensor] = Noneimage_rotary_emb: tuple[torch.Tensor, torch.Tensor] | list[tuple[torch.Tensor, torch.Tensor]] | None = None )
Tham số
- hidden_states (
torch.Tensorcó hình dạng(batch_size, in_channels, height, width)) —hidden_statesđầu vào. - encoder_hidden_states (
torch.Tensorcó hình dạng(batch_size, sequence_len, embed_dims)) — Các embedding điều kiện (embedding được tính từ các điều kiện đầu vào như prompt) cần sử dụng. - timestep (
torch.LongTensor) — Dùng để chỉ bước khử nhiễu. - original_size (
torch.Tensor) — Điều kiện kích thước ảnh gốc. - target_size (
torch.Tensor) — Kích thước ảnh đích để điều kiện hóa. - crop_coords (
torch.Tensor) — Toạ độ điều kiện cắt. - attention_kwargs (
dict, tùy chọn) — Một từ điển kwargs, nếu được chỉ định, sẽ được truyền đếnAttentionProcessornhư đã định nghĩa dướiself.processortrong diffusers.models.attention_processor. - return_dict (
bool, tùy chọn, mặc định làTrue) — Có nên trả về một~models.transformer_2d.Transformer2DModelOutputthay vì một tuple thông thường hay không. - attention_mask (
torch.Tensor, tùy chọn) — Mặt nạ áp dụng cho điểm chú ý. - image_rotary_emb (
tuplecủatorch.Tensor, tùy chọn) — Các embedding vị trí xoay đã được tính trước.
Phương thức forward của CogView4Transformer2DModel.
Transformer2DModelOutput
lớp diffusers.models.modeling_outputs.Transformer2DModelOutput
< source >( sample: torch.Tensor )
Tham số
- sample (
torch.Tensorcó hình dạng(batch_size, num_channels, height, width)hoặc(batch size, num_vector_embeds - 1, num_latent_pixels)nếu Transformer2DModel là rời rạc) — Trạng thái ẩn đầu ra được điều kiện bởi đầu vàoencoder_hidden_states. Nếu là rời rạc, trả về các phân phối xác suất cho các pixel tiềm ẩn không nhiễu.
Đầu ra của Transformer2DModel.