Diffusers documentation
CogVideoXTransformer3DModel
CogVideoXTransformer3DModel
CogVideoX'ten 3D veriler için bir Diffusion Transformer modeli, Tsinghua University & ZhipuAI tarafından CogVideoX: Text-to-Video Diffusion Models with An Expert Transformer makalesinde tanıtılmıştır.
Model, aşağıdaki kod parçasıyla yüklenebilir.
from diffusers import CogVideoXTransformer3DModel
transformer = CogVideoXTransformer3DModel.from_pretrained("THUDM/CogVideoX-2b", subfolder="transformer", dtype=torch.float16).to("cuda") # or "mps", "xpu", "cpu"CogVideoXTransformer3DModel
sınıf diffusers.CogVideoXTransformer3DModel
< source >( num_attention_heads: int = 30attention_head_dim: int = 64in_channels: int = 16out_channels: int | None = 16flip_sin_to_cos: bool = Truefreq_shift: int = 0time_embed_dim: int = 512ofs_embed_dim: int | None = Nonetext_embed_dim: int = 4096num_layers: int = 30dropout: float = 0.0attention_bias: bool = Truesample_width: int = 90sample_height: int = 60sample_frames: int = 49patch_size: int = 2patch_size_t: int | None = Nonetemporal_compression_ratio: int = 4max_text_seq_length: int = 226activation_fn: str = 'gelu-approximate'timestep_activation_fn: str = 'silu'norm_elementwise_affine: bool = Truenorm_eps: float = 1e-05spatial_interpolation_scale: float = 1.875temporal_interpolation_scale: float = 1.0use_rotary_positional_embeddings: bool = Falseuse_learned_positional_embeddings: bool = Falsepatch_bias: bool = True )
Parametreler
- num_attention_heads (
int, varsayılan30) — Çok başlı dikkat (multi-head attention) için kullanılacak baş sayısı. - attention_head_dim (
int, varsayılan64) — Her baştaki kanal sayısı. - in_channels (
int, varsayılan16) — Girdideki kanal sayısı. - out_channels (
int, isteğe bağlı, varsayılan16) — Çıktıdaki kanal sayısı. - flip_sin_to_cos (
bool, varsayılanTrue) — Zaman gömme (embedding) içinde sin'in cos'a çevrilip çevrilmeyeceğini belirtir. - time_embed_dim (
int, varsayılan512) — Zaman adımı gömme çıktısının boyutu. - ofs_embed_dim (
int, varsayılan512) — CogVideoX-5b-I2B'nin 1.5 sürümünde kullanılan “ofs” gömme çıktısının boyutu - text_embed_dim (
int, varsayılan4096) — Metin kodlayıcıdan gelen metin gömme girdi boyutu. - num_layers (
int, varsayılan30) — Kullanılacak Transformer bloklarının katman sayısı. - dropout (
float, varsayılan0.0) — Kullanılacak dropout olasılığı. - attention_bias (
bool, varsayılanTrue) — Dikkat projeksiyon katmanlarında sapma (bias) kullanılıp kullanılmayacağı. - sample_width (
int, varsayılan90) — Girdi latentlerinin genişliği. - sample_height (
int, varsayılan60) — Girdi latentlerinin yüksekliği. - sample_frames (
int, varsayılan49) — Girdi latentlerindeki kare sayısı. Dikkat edin, CogVideoX varsayılan ve önerilen ayarlarında 13 latent kareyi birden işlemesi nedeniyle bu parametre 13 yerine yanlışlıkla 49 olarak başlatılmıştır; ancak geriye dönük uyumluluğu sağlamak için doğru değere değiştirilemez. K latent kareli bir dönüştürücü oluşturmak için buraya geçirilmesi gereken doğru değer şudur: ((K - 1) * temporal_compression_ratio + 1). - patch_size (
int, varsayılan2) — Patch gömme katmanında kullanılacak yamaların boyutu. - temporal_compression_ratio (
int, varsayılan4) — Zamansal boyut boyunca sıkıştırma oranı.sample_framesbelgelerine bakın. - max_text_seq_length (
int, varsayılan226) — Girdi metin gömme (embedding) dizilerinin maksimum uzunluğu. - activation_fn (
str, varsayılan"gelu-approximate") — İleri beslemeli ağda kullanılacak aktivasyon fonksiyonu. - timestep_activation_fn (
str, varsayılan"silu") — Zaman adımları gömmelemelerini üretirken kullanılacak aktivasyon fonksiyonu. - norm_elementwise_affine (
bool, varsayılanTrue) — Normalizasyon katmanlarında elementwise affine kullanılacak mı. - norm_eps (
float, varsayılan1e-5) — Normalizasyon katmanlarında kullanılacak epsilon değeri. - spatial_interpolation_scale (
float, varsayılan1.875) — Uzamsal boyutlar boyunca 3D konumsal gömme (embedding) içinde uygulanacak ölçekleme faktörü. - temporal_interpolation_scale (
float, varsayılan1.0) — Zamansal boyutlar boyunca 3D konumsal gömme (embedding) içinde uygulanacak ölçekleme faktörü.
CogVideoX içinde video benzeri veriler için bir Transformer modeli.
forward
< source >( hidden_states: Tensorencoder_hidden_states: Tensortimestep: typing.Union[int, float, torch.LongTensor]timestep_cond: typing.Optional[torch.Tensor] = Noneofs: typing.Union[int, float, torch.LongTensor, NoneType] = Noneimage_rotary_emb: tuple[torch.Tensor, torch.Tensor] | None = Noneattention_kwargs: dict[str, typing.Any] | None = Nonereturn_dict: bool = True )
Parametreler
- hidden_states (
torch.Tensor, şekli(batch_size, num_frames, channels, height, width)) — Girdihidden_states. - encoder_hidden_states (
torch.Tensor, şekli(batch_size, sequence_len, embed_dims)) — Kullanılacak koşullu gömme değerleri (prompt gibi girdi koşullarından hesaplanan gömme değerleri). - timestep (
torch.LongTensor) — Gürültü azaltma adımını belirtmek için kullanılır. - timestep_cond (
torch.Tensor, isteğe bağlı) — Timestep için koşullu gömme (embedding) değerleri. Sağlanırsa, gömme değerleriself.time_embeddingkatmanından geçirilen örneklerle toplanarak nihai timestep gömme değerleri elde edilir. - ofs (
torch.Tensor, isteğe bağlı) — CogVideoX-5b-I2V'de kullanılan ofset gömme değerleri. - image_rotary_emb (
tupleoftorch.Tensor, opsiyonel) — Önceden hesaplanmış döner konumsal gömme (embedding) değerleri. - attention_kwargs (
dict, isteğe bağlı) — Belirtilirse, diffusers.models.attention_processor içindekiself.processoraltında tanımlananAttentionProcessor'a iletilen bir kwargs sözlüğü. - return_dict (
bool, isteğe bağlı, varsayılanTrue) — Düz bir tuple yerine~models.transformer_2d.Transformer2DModelOutputdöndürülüp döndürülmemesi.
CogVideoXTransformer3DModel ileri yöntemi.
Füzyonlu QKV projeksiyonlarını etkinleştirir. Kendi dikkat (self-attention) modülleri için tüm projeksiyon matrisleri (yani sorgu, anahtar, değer) füzyonlanır. Çapraz dikkat (cross-attention) modülleri için anahtar ve değer projeksiyon matrisleri füzyonlanır.
> Bu API 🧪 deneyseldir.
Etkinleştirilmişse birleşik QKV projeksiyonunu devre dışı bırakır.
> Bu API 🧪 deneyseldir.
Transformer2DModelOutput
sınıf diffusers.models.modeling_outputs.Transformer2DModelOutput
< source >( sample: torch.Tensor )
Parametreler
- sample (
torch.Tensor, şekli(batch_size, num_channels, height, width)veya Transformer2DModel ayrık (discrete) ise(batch size, num_vector_embeds - 1, num_latent_pixels)) —encoder_hidden_statesgirdisine koşullu gizli durum (hidden states) çıktısı. Ayrık (discrete) ise, gürültüsü kaldırılmış (unnoised) gizli (latent) pikseller için olasılık dağıtımlarını döndürür.
Transformer2DModel'nin çıktısı.