Diffusers documentation
CosmosTransformer3DModel
CosmosTransformer3DModel
NVIDIA의 Cosmos World Foundation Model Platform for Physical AI에서 3D 비디오 유사 데이터용 Diffusion Transformer 모델이 소개되었습니다.
다음 코드 스니펫으로 모델을 로드할 수 있습니다.
from diffusers import CosmosTransformer3DModel
transformer = CosmosTransformer3DModel.from_pretrained("nvidia/Cosmos-1.0-Diffusion-7B-Text2World", subfolder="transformer", dtype=torch.bfloat16)CosmosTransformer3DModel
클래스 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 )
매개변수
- in_channels (
int, 기본값16) — 입력의 채널 수입니다. - out_channels (
int, 기본값16) — 출력의 채널 수입니다. - num_attention_heads (
int, 기본값32) — 멀티헤드 어텐션에 사용할 헤드의 수입니다. - attention_head_dim (
int, 기본값128) — 각 attention head의 채널 수입니다. - num_layers (
int, 기본값28) — 사용할 transformer 블록의 레이어 수입니다. - mlp_ratio (
float, 기본값4.0) — 피드포워드 네트워크에서 은닉층 크기와 입력 크기의 비율입니다. - text_embed_dim (
int, 기본값4096) — 텍스트 인코더에서 생성된 텍스트 임베딩의 입력 차원입니다. - adaln_lora_dim (
int, 기본값256) — Adaptive LayerNorm LoRA 레이어의 숨겨진 차원입니다. - max_size (
tuple[int, int, int], 기본값(128, 240, 240)) — 시간, 높이, 너비 차원에서의 입력 latent 텐서의 최대 크기입니다. - patch_size (
tuple[int, int, int], 기본값(1, 2, 2)) — 시간, 높이, 너비 차원에서 입력 잠재 텐서를 패치화할 때 사용할 패치 크기입니다. - rope_scale (
tuple[float, float, float], 기본값(2.0, 1.0, 1.0)) — 시간, 높이, 너비 차원에서 RoPE에 사용할 스케일링 계수입니다. - concat_padding_mask (
bool, 기본값True) — 패딩 마스크를 입력 잠재 텐서에 연결할지 여부입니다. - extra_pos_embed_type (
str, 선택 사항, 기본값learnable) — 사용할 추가 위치 임베딩의 유형입니다.None또는learnable중 하나여야 합니다. - controlnet_block_every_n (
int, 선택 사항) — 컨트롤 잔차를 받아야 하는 트랜스포머 블록 사이의 간격(예:7은 매 7번째 블록 이후에 주입함을 의미). Cosmos Transfer2.5에 필수적입니다. - img_context_dim_in (
int, 선택 사항) — 입력 이미지 컨텍스트 특징 벡터의 차원입니다. 즉, [B, N, D]에서 D에 해당합니다. - img_context_num_tokens (
int) — 이미지 컨텍스트 특징 벡터의 토큰 수, 즉 [B, N, D]의 N입니다.img_context_dim_in이 제공되지 않으면 이 매개변수는 무시됩니다. - img_context_dim_out (
int) — 이미지 컨텍스트 투영 레이어의 출력 차원입니다.img_context_dim_in이 제공되지 않으면 이 매개변수는 무시됩니다.
Cosmos에서 사용되는 비디오 유사 데이터용 Transformer 모델입니다.
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 )
매개변수
- hidden_states (
torch.Tensor, shape(batch_size, num_channels, num_frames, height, width)) — 입력hidden_states. - timestep (
torch.LongTensor) — 디노이징 단계를 나타내는 데 사용됩니다. - encoder_hidden_states (
torch.Tensor, shape(batch_size, sequence_len, embed_dims)) — 사용할 조건 임베딩(프롬프트와 같은 입력 조건에서 계산된 임베딩). - block_controlnet_hidden_states (
listoftorch.Tensor, 선택 사항) — 지정된 경우 transformer 블록의 잔차에 추가되는 텐서 목록입니다. - attention_mask (
torch.Tensor, 선택 사항) — Attention 과정에서encoder_hidden_states에 적용되는 마스크입니다. - fps (
int, 선택 사항) — 회전 위치 임베딩을 계산하는 데 사용되는 입력 비디오의 초당 프레임 수. - condition_mask (
torch.Tensor, 선택 사항) — 조건부 영역을 나타내기 위해hidden_states에 연결되는 마스크 채널입니다. - padding_mask (
torch.Tensor, 선택 사항) —concat_padding_mask가 활성화된 경우hidden_states에 연결되는 패딩 마스크입니다. - return_dict (
bool, 선택 사항, 기본값True) — 단순 tuple 대신~models.transformer_2d.Transformer2DModelOutput를 반환할지 여부.
CosmosTransformer3DModel의 forward 메서드입니다.
Transformer2DModelOutput
클래스 diffusers.models.modeling_outputs.Transformer2DModelOutput
< source >( sample: torch.Tensor )
매개변수
- sample (
torch.Tensor, shape(batch_size, num_channels, height, width)또는 Transformer2DModel이 discrete인 경우(batch size, num_vector_embeds - 1, num_latent_pixels)) —encoder_hidden_states입력에 조건부인 hidden states 출력입니다. discrete인 경우, 노이즈가 제거된 latent 픽셀에 대한 확률 분포를 반환합니다.
Transformer2DModel의 출력입니다.