Diffusers documentation
CosmosTransformer3DModel
CosmosTransformer3DModel
Un modelo Diffusion Transformer para datos de video 3D fue introducido en Cosmos World Foundation Model Platform for Physical AI por NVIDIA.
El modelo se puede cargar con el siguiente fragmento de código.
from diffusers import CosmosTransformer3DModel
transformer = CosmosTransformer3DModel.from_pretrained("nvidia/Cosmos-1.0-Diffusion-7B-Text2World", subfolder="transformer", dtype=torch.bfloat16)CosmosTransformer3DModel
clase diffusers.CosmosTransformer3DModel
< source >( in_channels: int = 16out_channels: int = 16num_attention_heads: int = 32attention_head_dim: int = 128num_layers: int = 28mlp_ratio: float = 4.0text_embed_dim: int = 1024adaln_lora_dim: int = 256max_size: tuple = (128, 240, 240)patch_size: tuple = (1, 2, 2)rope_scale: tuple = (2.0, 1.0, 1.0)concat_padding_mask: bool = Trueextra_pos_embed_type: str | None = 'learnable'use_crossattn_projection: bool = Falsecrossattn_proj_in_channels: int = 1024encoder_hidden_states_channels: int = 1024controlnet_block_every_n: int | None = Noneimg_context_dim_in: int | None = Noneimg_context_num_tokens: int = 256img_context_dim_out: int = 2048 )
Parámetros
- in_channels (
int, por defecto16) — El número de canales en la entrada. - out_channels (
int, por defecto16) — El número de canales en la salida. - num_attention_heads (
int, por defecto32) — El número de cabezas a utilizar para la atención multi-cabeza. - attention_head_dim (
int, por defecto128) — El número de canales en cada cabeza de atención. - num_layers (
int, por defecto28) — El número de capas de bloques de transformador a utilizar. - mlp_ratio (
float, por defecto4.0) — La proporción entre el tamaño de la capa oculta y el tamaño de la entrada en la red feedforward. - text_embed_dim (
int, por defecto4096) — Dimensión de entrada de las incrustaciones de texto del codificador de texto. - adaln_lora_dim (
int, por defecto256) — La dimensión oculta de la capa LoRA de Adaptive LayerNorm. - max_size (
tuple[int, int, int], por defecto(128, 240, 240)) — El tamaño máximo de los tensores latentes de entrada en las dimensiones temporal, de altura y de ancho. - patch_size (
tuple[int, int, int], por defecto(1, 2, 2)) — El tamaño de parche a utilizar para aplicar patchify a los tensores latentes de entrada en las dimensiones temporal, de altura y de ancho. - rope_scale (
tuple[float, float, float], por defecto(2.0, 1.0, 1.0)) — El factor de escala a utilizar para RoPE en las dimensiones temporal, de altura y de ancho. - concat_padding_mask (
bool, por defectoTrue) — Si se debe concatenar la máscara de relleno a los tensores latentes de entrada. - extra_pos_embed_type (
str, opcional, valor predeterminadolearnable) — El tipo de incrustaciones posicionales adicionales a utilizar. Puede serNoneolearnable. - controlnet_block_every_n (
int, opcional) — Intervalo entre bloques del transformer que deben recibir residuos de control (por ejemplo,7para inyectarlos después de cada séptimo bloque). Obligatorio para Cosmos Transfer2.5. - img_context_dim_in (
int, opcional) — La dimensión del vector de características de contexto de imagen de entrada, es decir, es la D en [B, N, D]. - img_context_num_tokens (
int) — El número de tokens en el vector de características del contexto de imagen, es decir, es la N en [B, N, D]. Siimg_context_dim_inno se proporciona, este parámetro se ignora. - img_context_dim_out (
int) — La dimensión de salida de la capa de proyección del contexto de imagen. Si no se proporcionaimg_context_dim_in, este parámetro se ignora.
Un modelo Transformer para datos tipo video utilizado en Cosmos.
forward
< source >( hidden_states: Tensortimestep: Tensorencoder_hidden_states: Tensorblock_controlnet_hidden_states: list[torch.Tensor] | None = Noneattention_mask: typing.Optional[torch.Tensor] = Nonefps: int | None = Nonecondition_mask: typing.Optional[torch.Tensor] = Nonepadding_mask: typing.Optional[torch.Tensor] = Nonereturn_dict: bool = True )
Parámetros
- hidden_states (
torch.Tensorde forma(batch_size, num_channels, num_frames, height, width)) — Entradahidden_states. - timestep (
torch.LongTensor) — Se utiliza para indicar el paso de desruido. - encoder_hidden_states (
torch.Tensorde forma(batch_size, sequence_len, embed_dims)) — Incrustaciones condicionales (incrustaciones calculadas a partir de las condiciones de entrada, como los prompts) que se deben utilizar. - block_controlnet_hidden_states (
listdetorch.Tensor, opcional) — Una lista de tensores que, si se especifica, se suma a los residuos de los bloques del transformador. - attention_mask (
torch.Tensor, opcional) — Máscara aplicada aencoder_hidden_statesdurante la atención. - fps (
int, opcional) — Fotogramas por segundo del video de entrada utilizado para calcular los embeddings posicionales rotatorios. - condition_mask (
torch.Tensor, opcional) — Canal de máscara concatenado ahidden_statespara indicar la región de condicionamiento. - padding_mask (
torch.Tensor, opcional) — Máscara de relleno concatenada ahidden_statescuandoconcat_padding_maskestá habilitado. - return_dict (
bool, opcional, valor predeterminadoTrue) — Indica si se debe devolver un~models.transformer_2d.Transformer2DModelOutputen lugar de una tupla simple.
El método forward del CosmosTransformer3DModel.
Transformer2DModelOutput
clase diffusers.models.modeling_outputs.Transformer2DModelOutput
< source >( sample: torch.Tensor )
Parámetros
- sample (
torch.Tensorde forma(batch_size, num_channels, height, width)o(batch size, num_vector_embeds - 1, num_latent_pixels)si Transformer2DModel es discreto) — La salida de estados ocultos condicionada a la entradaencoder_hidden_states. Si es discreto, devuelve distribuciones de probabilidad para los píxeles latentes sin ruido.
La salida de Transformer2DModel.