Diffusers 文件
ConsisIDTransformer3D模型
並獲得增強的文件體驗
開始使用
ConsisIDTransformer3D模型
ConsisIDTransformer3D模型是一種用於3D資料的擴散Transformer模型,由ConsisID專案在透過頻率分解實現身份保留文字到影片生成論文中提出,作者包括北京大學、羅切斯特大學等。
該模型可以透過以下程式碼片段載入。
from diffusers import ConsisIDTransformer3DModel
transformer = ConsisIDTransformer3DModel.from_pretrained("BestWishYsh/ConsisID-preview", subfolder="transformer", torch_dtype=torch.bfloat16).to("cuda")
ConsisIDTransformer3D模型
class diffusers.ConsisIDTransformer3DModel
< 來源 >( num_attention_heads: int = 30 attention_head_dim: int = 64 in_channels: int = 16 out_channels: typing.Optional[int] = 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 )
引數
- num_attention_heads (
int
, 預設為30
) — 用於多頭注意力機制的頭數量。 - attention_head_dim (
int
, 預設為64
) — 每個注意力頭中的通道數量。 - in_channels (
int
, 預設為16
) — 輸入中的通道數量。 - out_channels (
int
, 可選, 預設為16
) — 輸出中的通道數量。 - flip_sin_to_cos (
bool
, 預設為True
) — 是否在時間嵌入中翻轉sin到cos。 - time_embed_dim (
int
, 預設為512
) — 時間步嵌入的輸出維度。 - text_embed_dim (
int
, 預設為4096
) — 文字編碼器中文字嵌入的輸入維度。 - num_layers (
int
, 預設為30
) — 要使用的Transformer塊層數。 - dropout (
float
, 預設為0.0
) — 要使用的dropout機率。 - attention_bias (
bool
, 預設為True
) — 是否在注意力投影層中使用偏置。 - sample_width (
int
, 預設為90
) — 輸入潛在的寬度。 - sample_height (
int
, 預設為60
) — 輸入潛在的高度。 - sample_frames (
int
, 預設為49
) — 輸入潛在中的幀數。請注意,此引數被錯誤地初始化為49而不是13,因為ConsisID在預設和推薦設定中一次處理13個潛在幀,但為確保向後相容性,無法更改為正確的值。要建立具有K個潛在幀的Transformer,這裡傳遞的正確值應為:((K - 1) * temporal_compression_ratio + 1)。 - patch_size (
int
, 預設為2
) — 補丁嵌入層中要使用的補丁大小。 - temporal_compression_ratio (
int
, 預設為4
) — 時間維度上的壓縮比。參見sample_frames
的文件。 - 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-5
) — 歸一化層中使用的epsilon值。 - spatial_interpolation_scale (
float
, 預設為1.875
) — 在3D位置嵌入中應用於空間維度的縮放因子。 - temporal_interpolation_scale (
float
, 預設為1.0
) — 在3D位置嵌入中應用於時間維度的縮放因子。 - is_train_face (
bool
, 預設為False
) — 在訓練過程中是否啟用身份保留模組。當設定為True
時,模型將專注於身份保留任務。 - is_kps (
bool
, 預設為False
) — 是否為全局面部提取器啟用關鍵點。如果為True
,模型將包含關鍵點。 - cross_attn_interval (
int
, 預設為2
) — Transformer架構中交叉注意力層之間的間隔。較大的值可能會減少交叉注意力計算的頻率,這有助於降低計算開銷。 - cross_attn_dim_head (
int
, 可選, 預設為128
) — Transformer架構中交叉注意力層中每個注意力頭的維度。較大的值增加了關注更復雜模式的能力,但也會增加記憶體和計算成本。 - cross_attn_num_heads (
int
, 可選, 預設為16
) — 交叉注意力層中的注意力頭數量。更多的頭允許更多的並行注意力機制,捕捉輸入不同元件之間的多樣化關係,但也會增加計算需求。 - LFE_id_dim (
int
, 可選, 預設為1280
) — 區域性面部提取器(LFE)中使用的身份向量的維度。該向量表示面部身份特徵,對於面部識別和跨不同幀的身份保留任務非常重要。 - LFE_vit_dim (
int
, 可選, 預設為1024
) — 區域性面部提取器(LFE)中使用的視覺Transformer(ViT)輸出的維度。此值決定了用於面部特徵提取的Transformer生成特徵向量的大小。 - LFE_depth (
int
, 可選,預設為10
) — 區域性面部提取器 (LFE) 中的層數。增加深度可以使模型捕獲更復雜的面部特徵表示,但也會增加計算負載。 - LFE_dim_head (
int
, 可選,預設為64
) — 區域性面部提取器 (LFE) 中每個注意力頭的維度。此引數會影響模型在提取過程中處理和聚焦面部特徵不同部分的精細程度。 - LFE_num_heads (
int
, 可選,預設為16
) — 區域性面部提取器 (LFE) 中注意力頭的數量。更多的頭可以提高模型捕獲不同面部特徵的能力,但會增加計算複雜性。 - LFE_num_id_token (
int
, 可選,預設為5
) — 區域性面部提取器 (LFE) 中使用的身份令牌數量。這定義了模型將處理多少個與身份相關的令牌,以確保在特徵提取過程中保留面部身份。 - LFE_num_querie (
int
, 可選,預設為32
) — 區域性面部提取器 (LFE) 中使用的查詢令牌數量。這些令牌用於捕獲有助於準確提取面部特徵的高頻面部相關資訊。 - LFE_output_dim (
int
, 可選,預設為2048
) — 區域性面部提取器 (LFE) 的輸出維度。此維度決定了 LFE 模組生成的特徵向量的大小,這些特徵向量將用於後續任務,如人臉識別或跟蹤。 - LFE_ff_mult (
int
, 可選,預設為4
) — 應用於區域性面部提取器 (LFE) 中前饋網路隱藏層大小的乘法因子。值越高會增加模型學習更復雜麵部特徵變換的能力,但也會增加計算和記憶體需求。 - LFE_num_scale (
int
, 可選,預設為5
) — 視覺特徵的不同尺度的數量。值越高會增加模型學習更復雜麵部特徵變換的能力,但也會增加計算和記憶體需求。 - local_face_scale (
float
, 預設為1.0
) — 用於調整模型中區域性面部特徵重要性的縮放因子。這會影響模型對高頻面部相關內容的關注程度。
用於 ConsisID 中類影片資料的 Transformer 模型。
設定注意力處理器
< 源 >( processor: typing.Union[diffusers.models.attention_processor.AttnProcessor, diffusers.models.attention_processor.CustomDiffusionAttnProcessor, diffusers.models.attention_processor.AttnAddedKVProcessor, diffusers.models.attention_processor.AttnAddedKVProcessor2_0, diffusers.models.attention_processor.JointAttnProcessor2_0, diffusers.models.attention_processor.PAGJointAttnProcessor2_0, diffusers.models.attention_processor.PAGCFGJointAttnProcessor2_0, diffusers.models.attention_processor.FusedJointAttnProcessor2_0, diffusers.models.attention_processor.AllegroAttnProcessor2_0, diffusers.models.attention_processor.AuraFlowAttnProcessor2_0, diffusers.models.attention_processor.FusedAuraFlowAttnProcessor2_0, diffusers.models.attention_processor.FluxAttnProcessor2_0, diffusers.models.attention_processor.FluxAttnProcessor2_0_NPU, diffusers.models.attention_processor.FusedFluxAttnProcessor2_0, diffusers.models.attention_processor.FusedFluxAttnProcessor2_0_NPU, diffusers.models.attention_processor.CogVideoXAttnProcessor2_0, diffusers.models.attention_processor.FusedCogVideoXAttnProcessor2_0, diffusers.models.attention_processor.XFormersAttnAddedKVProcessor, diffusers.models.attention_processor.XFormersAttnProcessor, diffusers.models.attention_processor.XLAFlashAttnProcessor2_0, diffusers.models.attention_processor.AttnProcessorNPU, diffusers.models.attention_processor.AttnProcessor2_0, diffusers.models.attention_processor.MochiVaeAttnProcessor2_0, diffusers.models.attention_processor.MochiAttnProcessor2_0, diffusers.models.attention_processor.StableAudioAttnProcessor2_0, diffusers.models.attention_processor.HunyuanAttnProcessor2_0, diffusers.models.attention_processor.FusedHunyuanAttnProcessor2_0, diffusers.models.attention_processor.PAGHunyuanAttnProcessor2_0, diffusers.models.attention_processor.PAGCFGHunyuanAttnProcessor2_0, diffusers.models.attention_processor.LuminaAttnProcessor2_0, diffusers.models.attention_processor.FusedAttnProcessor2_0, diffusers.models.attention_processor.CustomDiffusionXFormersAttnProcessor, diffusers.models.attention_processor.CustomDiffusionAttnProcessor2_0, diffusers.models.attention_processor.SlicedAttnProcessor, diffusers.models.attention_processor.SlicedAttnAddedKVProcessor, diffusers.models.attention_processor.SanaLinearAttnProcessor2_0, diffusers.models.attention_processor.PAGCFGSanaLinearAttnProcessor2_0, diffusers.models.attention_processor.PAGIdentitySanaLinearAttnProcessor2_0, diffusers.models.attention_processor.SanaMultiscaleLinearAttention, diffusers.models.attention_processor.SanaMultiscaleAttnProcessor2_0, diffusers.models.attention_processor.SanaMultiscaleAttentionProjection, diffusers.models.attention_processor.IPAdapterAttnProcessor, diffusers.models.attention_processor.IPAdapterAttnProcessor2_0, diffusers.models.attention_processor.IPAdapterXFormersAttnProcessor, diffusers.models.attention_processor.SD3IPAdapterJointAttnProcessor2_0, diffusers.models.attention_processor.PAGIdentitySelfAttnProcessor2_0, diffusers.models.attention_processor.PAGCFGIdentitySelfAttnProcessor2_0, diffusers.models.attention_processor.LoRAAttnProcessor, diffusers.models.attention_processor.LoRAAttnProcessor2_0, diffusers.models.attention_processor.LoRAXFormersAttnProcessor, diffusers.models.attention_processor.LoRAAttnAddedKVProcessor, typing.Dict[str, typing.Union[diffusers.models.attention_processor.AttnProcessor, diffusers.models.attention_processor.CustomDiffusionAttnProcessor, diffusers.models.attention_processor.AttnAddedKVProcessor, diffusers.models.attention_processor.AttnAddedKVProcessor2_0, diffusers.models.attention_processor.JointAttnProcessor2_0, diffusers.models.attention_processor.PAGJointAttnProcessor2_0, diffusers.models.attention_processor.PAGCFGJointAttnProcessor2_0, diffusers.models.attention_processor.FusedJointAttnProcessor2_0, diffusers.models.attention_processor.AllegroAttnProcessor2_0, diffusers.models.attention_processor.AuraFlowAttnProcessor2_0, diffusers.models.attention_processor.FusedAuraFlowAttnProcessor2_0, diffusers.models.attention_processor.FluxAttnProcessor2_0, diffusers.models.attention_processor.FluxAttnProcessor2_0_NPU, diffusers.models.attention_processor.FusedFluxAttnProcessor2_0, diffusers.models.attention_processor.FusedFluxAttnProcessor2_0_NPU, diffusers.models.attention_processor.CogVideoXAttnProcessor2_0, diffusers.models.attention_processor.FusedCogVideoXAttnProcessor2_0, diffusers.models.attention_processor.XFormersAttnAddedKVProcessor, diffusers.models.attention_processor.XFormersAttnProcessor, diffusers.models.attention_processor.XLAFlashAttnProcessor2_0, diffusers.models.attention_processor.AttnProcessorNPU, diffusers.models.attention_processor.AttnProcessor2_0, diffusers.models.attention_processor.MochiVaeAttnProcessor2_0, diffusers.models.attention_processor.MochiAttnProcessor2_0, diffusers.models.attention_processor.StableAudioAttnProcessor2_0, diffusers.models.attention_processor.HunyuanAttnProcessor2_0, diffusers.models.attention_processor.FusedHunyuanAttnProcessor2_0, diffusers.models.attention_processor.PAGHunyuanAttnProcessor2_0, diffusers.models.attention_processor.PAGCFGHunyuanAttnProcessor2_0, diffusers.models.attention_processor.LuminaAttnProcessor2_0, diffusers.models.attention_processor.FusedAttnProcessor2_0, diffusers.models.attention_processor.CustomDiffusionXFormersAttnProcessor, diffusers.models.attention_processor.CustomDiffusionAttnProcessor2_0, diffusers.models.attention_processor.SlicedAttnProcessor, diffusers.models.attention_processor.SlicedAttnAddedKVProcessor, diffusers.models.attention_processor.SanaLinearAttnProcessor2_0, diffusers.models.attention_processor.PAGCFGSanaLinearAttnProcessor2_0, diffusers.models.attention_processor.PAGIdentitySanaLinearAttnProcessor2_0, diffusers.models.attention_processor.SanaMultiscaleLinearAttention, diffusers.models.attention_processor.SanaMultiscaleAttnProcessor2_0, diffusers.models.attention_processor.SanaMultiscaleAttentionProjection, diffusers.models.attention_processor.IPAdapterAttnProcessor, diffusers.models.attention_processor.IPAdapterAttnProcessor2_0, diffusers.models.attention_processor.IPAdapterXFormersAttnProcessor, diffusers.models.attention_processor.SD3IPAdapterJointAttnProcessor2_0, diffusers.models.attention_processor.PAGIdentitySelfAttnProcessor2_0, diffusers.models.attention_processor.PAGCFGIdentitySelfAttnProcessor2_0, diffusers.models.attention_processor.LoRAAttnProcessor, diffusers.models.attention_processor.LoRAAttnProcessor2_0, diffusers.models.attention_processor.LoRAXFormersAttnProcessor, diffusers.models.attention_processor.LoRAAttnAddedKVProcessor]]] )
設定用於計算注意力的注意力處理器。
Transformer2DModelOutput
class diffusers.models.modeling_outputs.Transformer2DModelOutput
< 源 >( sample: torch.Tensor )
引數
- sample (形狀為
(batch_size, num_channels, height, width)
的torch.Tensor
或如果 Transformer2DModel 是離散的,則為(batch size, num_vector_embeds - 1, num_latent_pixels)
) — 在encoder_hidden_states
輸入上輸出的隱藏狀態。如果是離散的,則返回未去噪潛在畫素的機率分佈。
Transformer2DModel 的輸出。