Buckets:
| # ConsisIDTransformer3DModel | |
| Một mô hình Diffusion Transformer cho dữ liệu 3D từ [ConsisID](https://github.com/PKU-YuanGroup/ConsisID) đã được giới thiệu trong [Identity-Preserving Text-to-Video Generation by Frequency Decomposition](https://huggingface.co/papers/2411.17440) bởi Đại học Bắc Kinh & Đại học Rochester & v.v. | |
| Mô hình có thể được tải bằng đoạn mã sau. | |
| ```python | |
| from diffusers import ConsisIDTransformer3DModel | |
| transformer = ConsisIDTransformer3DModel.from_pretrained("BestWishYsh/ConsisID-preview", subfolder="transformer", dtype=torch.bfloat16).to("cuda") # or "mps", "xpu", "cpu" | |
| ``` | |
| ## ConsisIDTransformer3DModel[[diffusers.ConsisIDTransformer3DModel]] | |
| #### diffusers.ConsisIDTransformer3DModel[[diffusers.ConsisIDTransformer3DModel]] | |
| ```python | |
| diffusers.ConsisIDTransformer3DModel(num_attention_heads: int = 30, attention_head_dim: int = 64, in_channels: int = 16, out_channels: int | None = 16, flip_sin_to_cos: bool = True, freq_shift: int = 0, time_embed_dim: int = 512, text_embed_dim: int = 4096, num_layers: int = 30, dropout: float = 0.0, attention_bias: bool = True, sample_width: int = 90, sample_height: int = 60, sample_frames: int = 49, patch_size: int = 2, temporal_compression_ratio: int = 4, max_text_seq_length: int = 226, activation_fn: str = 'gelu-approximate', timestep_activation_fn: str = 'silu', norm_elementwise_affine: bool = True, norm_eps: float = 1e-05, spatial_interpolation_scale: float = 1.875, temporal_interpolation_scale: float = 1.0, use_rotary_positional_embeddings: bool = False, use_learned_positional_embeddings: bool = False, is_train_face: bool = False, is_kps: bool = False, cross_attn_interval: int = 2, cross_attn_dim_head: int = 128, cross_attn_num_heads: int = 16, LFE_id_dim: int = 1280, LFE_vit_dim: int = 1024, LFE_depth: int = 10, LFE_dim_head: int = 64, LFE_num_heads: int = 16, LFE_num_id_token: int = 5, LFE_num_querie: int = 32, LFE_output_dim: int = 2048, LFE_ff_mult: int = 4, LFE_num_scale: int = 5, local_face_scale: float = 1.0) | |
| ``` | |
| [Nguồn](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/consisid_transformer_3d.py#L351) | |
| **Tham số:** | |
| num_attention_heads (`int`, mặc định là `30`) : Số lượng đầu (heads) được sử dụng cho chú ý đa đầu (multi-head attention). | |
| attention_head_dim (`int`, mặc định là `64`) : Số lượng kênh trong mỗi head. | |
| in_channels (`int`, mặc định là `16`) : Số lượng kênh trong đầu vào. | |
| out_channels (`int`, *tuỳ chọn*, mặc định là `16`) : Số lượng kênh trong đầu ra. | |
| flip_sin_to_cos (`bool`, mặc định là `True`) : Có nên đảo sin thành cos trong nhúng thời gian hay không. | |
| time_embed_dim (`int`, mặc định là `512`) : Kích thước chiều đầu ra của các embedding bước thời gian. | |
| text_embed_dim (`int`, mặc định là `4096`) : Kích thước chiều đầu vào của các vector nhúng văn bản từ bộ mã hóa văn bản. | |
| num_layers (`int`, mặc định là `30`) : Số lượng lớp khối Transformer cần sử dụng. | |
| dropout (`float`, mặc định là `0.0`) : Xác suất dropout cần sử dụng. | |
| attention_bias (`bool`, mặc định là `True`) : Có sử dụng bias trong các lớp chiếu attention hay không. | |
| sample_width (`int`, mặc định là `90`) : Độ rộng của các latents đầu vào. | |
| sample_height (`int`, mặc định là `60`) : Chiều cao của các latents đầu vào. | |
| sample_frames (`int`, mặc định là `49`) : Số lượng khung hình trong các latents đầu vào. Lưu ý rằng tham số này đã được khởi tạo sai thành 49 thay vì 13 vì ConsisID xử lý 13 khung hình latent cùng lúc trong các cài đặt mặc định và được khuyến nghị, nhưng không thể thay đổi thành giá trị chính xác để đảm bảo tính tương thích ngược. Để tạo một transformer với K khung hình latent, giá trị chính xác cần truyền ở đây là: ((K - 1) * temporal_compression_ratio + 1). | |
| 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. | |
| temporal_compression_ratio (`int`, mặc định là `4`) : Tỷ lệ nén theo chiều thời gian. Xem tài liệu cho `sample_frames`. | |
| max_text_seq_length (`int`, mặc định là `226`) : Độ dài tối đa của chuỗi cho các nhúng văn bản đầu vào. | |
| activation_fn (`str`, mặc định là `"gelu-approximate"`) : Hàm kích hoạt được sử dụng trong mạng truyền thẳng. | |
| timestep_activation_fn (`str`, mặc định là `"silu"`) : Hàm kích hoạt được sử dụng khi tạo các nhúng bước thời gian (timestep embeddings). | |
| norm_elementwise_affine (`bool`, mặc định là `True`) : Có sử dụng affine từng phần tử trong các lớp chuẩn hóa hay không. | |
| norm_eps (`float`, mặc định là `1e-5`) : Giá trị epsilon được sử dụng trong các lớp chuẩn hóa. | |
| spatial_interpolation_scale (`float`, mặc định là `1.875`) : Hệ số tỷ lệ để áp dụng trong các nhúng vị trí 3D trên các chiều không gian. | |
| temporal_interpolation_scale (`float`, mặc định là `1.0`) : Hệ số tỷ lệ để áp dụng trong các nhúng vị trí 3D trên các chiều thời gian. | |
| is_train_face (`bool`, mặc định là `False`) : Xác định có bật module bảo toàn danh tính trong quá trình huấn luyện hay không. Khi đặt thành `True`, mô hình sẽ tập trung vào các tác vụ bảo toàn danh tính. | |
| is_kps (`bool`, mặc định là `False`) : Có bật keypoint cho bộ trích xuất khuôn mặt toàn cục hay không. Nếu `True`, các keypoint sẽ có trong mô hình. | |
| cross_attn_interval (`int`, mặc định là `2`) : Khoảng cách giữa các lớp cross-attention trong kiến trúc Transformer. Giá trị lớn hơn có thể làm giảm tần suất tính toán cross-attention, giúp giảm chi phí tính toán. | |
| cross_attn_dim_head (`int`, tùy chọn, mặc định là `128`) : Độ lớn chiều của mỗi đầu chú ý trong các lớp cross-attention của kiến trúc Transformer. Giá trị lớn hơn làm tăng khả năng chú ý đến các mẫu phức tạp hơn, nhưng cũng làm tăng chi phí bộ nhớ và tính toán. | |
| cross_attn_num_heads (`int`, tùy chọn, mặc định là `16`) : Số lượng đầu chú ý trong các lớp chú ý chéo. Nhiều đầu hơn cho phép các cơ chế chú ý song song hơn, nắm bắt các mối quan hệ đa dạng giữa các thành phần khác nhau của đầu vào, nhưng cũng có thể làm tăng yêu cầu về tính toán. | |
| LFE_id_dim (`int`, tùy chọn, mặc định là `1280`) : Độ chiều của vector nhận dạng được sử dụng trong Local Facial Extractor (LFE). Vector này đại diện cho các đặc trưng nhận dạng của khuôn mặt, đóng vai trò quan trọng trong các tác vụ như nhận dạng khuôn mặt và duy trì nhận dạng xuyên suốt các khung hình khác nhau. | |
| LFE_vit_dim (`int`, tùy chọn, mặc định là `1024`) : Kích thước của đầu ra vision transformer (ViT) được sử dụng trong Local Facial Extractor (LFE). Giá trị này quyết định kích thước của các vector đặc trưng do transformer tạo ra, sẽ được xử lý để trích xuất đặc trưng khuôn mặt. | |
| LFE_depth (`int`, tùy chọn, mặc định là `10`) : Số lượng lớp trong Local Facial Extractor (LFE). Việc tăng độ sâu cho phép mô hình nắm bắt các biểu diễn phức tạp hơn của các đặc điểm khuôn mặt, nhưng cũng làm tăng tải tính toán. | |
| LFE_dim_head (`int`, tùy chọn, mặc định là `64`) : Độ chiều của mỗi đầu chú ý trong Local Facial Extractor (LFE). Tham số này ảnh hưởng đến mức độ chi tiết mà mô hình có thể xử lý và tập trung vào các phần khác nhau của đặc điểm khuôn mặt trong quá trình trích xuất. | |
| LFE_num_heads (`int`, tùy chọn, mặc định là `16`) : Số lượng đầu chú ý (attention heads) trong Local Facial Extractor (LFE). Nhiều đầu hơn có thể cải thiện khả năng nắm bắt các đặc điểm khuôn mặt đa dạng của mô hình, nhưng với chi phí là độ phức tạp tính toán tăng lên. | |
| LFE_num_id_token (`int`, tùy chọn, mặc định là `5`) : Số lượng token nhận dạng được sử dụng trong Local Facial Extractor (LFE). Tham số này xác định số lượng token liên quan đến nhận dạng mà mô hình sẽ xử lý để đảm bảo việc bảo toàn danh tính khuôn mặt trong quá trình trích xuất đặc trưng. | |
| LFE_num_querie (`int`, tùy chọn, mặc định là `32`) : Số lượng token truy vấn được sử dụng trong Local Facial Extractor (LFE). Các token này được dùng để nắm bắt thông tin liên quan đến khuôn mặt có tần số cao, hỗ trợ trích xuất đặc điểm khuôn mặt chính xác. | |
| LFE_output_dim (`int`, tùy chọn, mặc định là `2048`) : Kích thước chiều đầu ra của Local Facial Extractor (LFE). Chiều này xác định kích thước của các vector đặc trưng do module LFE tạo ra, sẽ được sử dụng cho các tác vụ tiếp theo như nhận diện khuôn mặt hoặc theo dõi. | |
| LFE_ff_mult (`int`, tùy chọn, mặc định là `4`) : Hệ số nhân được áp dụng cho kích thước lớp ẩn của mạng feed-forward trong Local Facial Extractor (LFE). Giá trị cao hơn làm tăng khả năng của mô hình trong việc học các phép biến đổi đặc điểm khuôn mặt phức tạp hơn, nhưng đồng thời cũng làm tăng yêu cầu về tính toán và bộ nhớ. | |
| LFE_num_scale (`int`, tùy chọn, mặc định là `5`) : Số lượng các thang đo khác nhau của đặc trưng thị giác. Giá trị cao hơn làm tăng khả năng của mô hình trong việc học các phép biến đổi đặc trưng khuôn mặt phức tạp hơn, nhưng đồng thời cũng làm tăng yêu cầu về tính toán và bộ nhớ. | |
| local_face_scale (`float`, mặc định là `1.0`) : Hệ số tỷ lệ được sử dụng để điều chỉnh mức độ quan trọng của các đặc điểm khuôn mặt cục bộ trong mô hình. Điều này có thể ảnh hưởng đến mức độ tập trung của mô hình vào nội dung khuôn mặt có tần số cao. | |
| Một mô hình Transformer cho dữ liệu dạng video trong [ConsisID](https://github.com/PKU-YuanGroup/ConsisID). | |
| #### forward[[diffusers.ConsisIDTransformer3DModel.forward]] | |
| ```python | |
| forward(hidden_states: Tensor, encoder_hidden_states: Tensor, timestep: typing.Union[int, float, torch.LongTensor], timestep_cond: typing.Optional[torch.Tensor] = None, image_rotary_emb: tuple[torch.Tensor, torch.Tensor] | None = None, attention_kwargs: dict[str, typing.Any] | None = None, id_cond: typing.Optional[torch.Tensor] = None, id_vit_hidden: typing.Optional[torch.Tensor] = None, return_dict: bool = True) | |
| ``` | |
| [Nguồn](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/consisid_transformer_3d.py#L623) | |
| **Tham số:** | |
| hidden_states (`torch.Tensor` có hình dạng `(batch_size, num_frames, channels, 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. | |
| timestep (`torch.LongTensor`) : Dùng để chỉ bước khử nhiễu. | |
| timestep_cond (`torch.Tensor`, *tùy chọn*) : Các embedding điều kiện cho timestep. Nếu được cung cấp, các embedding này sẽ được cộng với các mẫu đi qua lớp `self.time_embedding` để thu được các embedding timestep cuối cùng. | |
| image_rotary_emb (`tuple` của `torch.Tensor`, *tuỳ chọn*) : Các nhúng vị trí quay đã tính trước. | |
| 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). | |
| id_cond (`torch.Tensor`, *tùy chọn*) : Nhúng khuôn mặt (face embedding) được trích xuất bởi bộ trích xuất khuôn mặt cục bộ, dùng để điều kiện hóa danh tính. | |
| id_vit_hidden (`torch.Tensor`, *tùy chọn*) : Trạng thái ẩn của ViT được trích xuất từ các hình ảnh khuôn mặt, dùng để điều kiện hóa danh tính. | |
| 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. | |
| **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 [ConsisIDTransformer3DModel](/docs/diffusers/main/vi/api/models/consisid_transformer3d#diffusers.ConsisIDTransformer3DModel). | |
| ## Transformer2DModelOutput[[diffusers.models.modeling_outputs.Transformer2DModelOutput]] | |
| #### diffusers.models.modeling_outputs.Transformer2DModelOutput[[diffusers.models.modeling_outputs.Transformer2DModelOutput]] | |
| ```python | |
| diffusers.models.modeling_outputs.Transformer2DModelOutput(sample: torch.Tensor) | |
| ``` | |
| [Nguồn](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/modeling_outputs.py#L21) | |
| **Tham số:** | |
| sample (`torch.Tensor` có shape `(batch_size, num_channels, height, width)` hoặc `(batch size, num_vector_embeds - 1, num_latent_pixels)` nếu [Transformer2DModel](/docs/diffusers/main/vi/api/models/transformer2d#diffusers.Transformer2DModel) là discrete) : Đầu ra của hidden states được điều kiện bởi đầu vào `encoder_hidden_states`. Nếu là discrete, trả về các phân phối xác suất cho các latent pixels chưa bị nhiễu. | |
| Đầu ra của [Transformer2DModel](/docs/diffusers/main/vi/api/models/transformer2d#diffusers.Transformer2DModel). | |
Xet Storage Details
- Size:
- 14.6 kB
- Xet hash:
- 4d3215f2581ae26b17151878f123482bfb23142fa7f407c651eee654c45ec1b8
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.