Diffusers documentation
CogView3PlusTransformer2DModel
CogView3PlusTransformer2DModel
Một mô hình Diffusion Transformer cho dữ liệu 2D từ CogView3Plus đã được giới thiệu trong CogView3: Finer and Faster Text-to-Image Generation via Relay Diffusion bởi Đại học Thanh Hoa & ZhipuAI.
Mô hình có thể được tải bằng đoạn mã sau.
from diffusers import CogView3PlusTransformer2DModel
transformer = CogView3PlusTransformer2DModel.from_pretrained("THUDM/CogView3Plus-3b", subfolder="transformer", dtype=torch.bfloat16).to("cuda") # or "mps", "xpu", "cpu"CogView3PlusTransformer2DModel
lớp diffusers.CogView3PlusTransformer2DModel
< source >( patch_size: int = 2in_channels: int = 16num_layers: int = 30attention_head_dim: int = 40num_attention_heads: int = 64out_channels: int = 16text_embed_dim: int = 4096time_embed_dim: int = 512condition_dim: int = 256pos_embed_max_size: int = 128sample_size: int = 128 )
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
Mô hình Transformer được giới thiệu trong CogView3: Finer and Faster Text-to-Image Generation via Relay Diffusion.
forward
< source >( hidden_states: Tensorencoder_hidden_states: Tensortimestep: LongTensororiginal_size: Tensortarget_size: Tensorcrop_coords: Tensorreturn_dict: bool = True ) → torch.Tensor or ~models.transformer_2d.Transformer2DModelOutput
Tham số
- hidden_states (
torch.Tensor) —hidden_statesđầu vào có hình dạng(batch size, channel, height, width). - encoder_hidden_states (
torch.Tensor) — Các embedding điều kiện (embedding được tính từ các điều kiện đầu vào như prompt) có hình dạng(batch_size, sequence_len, text_embed_dim) - timestep (
torch.LongTensor) — Dùng để chỉ bước khử nhiễu. - original_size (
torch.Tensor) — CogView3 sử dụng micro-conditioning kiểu SDXL cho kích thước ảnh gốc như đã mô tả trong mục 2.2 của https://huggingface.co/papers/2307.01952. - target_size (
torch.Tensor) — CogView3 sử dụng micro-conditioning kiểu SDXL cho kích thước ảnh đích như đã mô tả trong mục 2.2 của https://huggingface.co/papers/2307.01952. - crop_coords (
torch.Tensor) — CogView3 sử dụng micro-conditioning kiểu SDXL cho tọa độ crop như đã giải thích trong mục 2.2 của https://huggingface.co/papers/2307.01952. - 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.
Trả về
torch.Tensor hoặc ~models.transformer_2d.Transformer2DModelOutput
Các latents đã khử nhiễu sử dụng các đầu vào được cung cấp làm điều kiện.
Phương thức forward của CogView3PlusTransformer2DModel.
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.