# HeliosTransformer3DModel

[Helios](https://github.com/PKU-YuanGroup/Helios)에서 3D 비디오 유사 데이터에 대한 T2V, I2V 및 V2V를 지원하는 14B 실시간 오토레그레시브 Diffusion Transformer 모델이 베이징대학교 & ByteDance & 기타 연구진에 의해 [Helios: Real Real-Time Long Video Generation Model](https://huggingface.co/papers/2603.04379)에서 소개되었습니다.

다음 코드 스니펫으로 모델을 로드할 수 있습니다.

```python
from diffusers import HeliosTransformer3DModel

# Best Quality
transformer = HeliosTransformer3DModel.from_pretrained("BestWishYsh/Helios-Base", subfolder="transformer", dtype=torch.bfloat16)
# Intermediate Weight
transformer = HeliosTransformer3DModel.from_pretrained("BestWishYsh/Helios-Mid", subfolder="transformer", dtype=torch.bfloat16)
# Best Efficiency
transformer = HeliosTransformer3DModel.from_pretrained("BestWishYsh/Helios-Distilled", subfolder="transformer", dtype=torch.bfloat16)
```

## HeliosTransformer3DModel[[diffusers.HeliosTransformer3DModel]]

#### diffusers.HeliosTransformer3DModel[[diffusers.HeliosTransformer3DModel]]

```python
diffusers.HeliosTransformer3DModel(patch_size: tuple = (1, 2, 2), num_attention_heads: int = 40, attention_head_dim: int = 128, in_channels: int = 16, out_channels: int = 16, text_dim: int = 4096, freq_dim: int = 256, ffn_dim: int = 13824, num_layers: int = 40, cross_attn_norm: bool = True, qk_norm: str | None = 'rms_norm_across_heads', eps: float = 1e-06, added_kv_proj_dim: int | None = None, rope_dim: tuple = (44, 42, 42), rope_theta: float = 10000.0, guidance_cross_attn: bool = True, zero_history_timestep: bool = True, has_multi_term_memory_patch: bool = True, is_amplify_history: bool = False, history_scale_mode: str = 'per_head')
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_helios.py#L501)

**매개변수:**

patch_size (`tuple[int]`, 기본값 `(1, 2, 2)`) : 비디오 임베딩을 위한 3D 패치 차원 (t_patch, h_patch, w_patch).

num_attention_heads (`int`, 기본값 `40`) : 텍스트 임베딩의 고정 길이입니다.

attention_head_dim (`int`, 기본값 `128`) : 각 헤드(head)의 채널 수입니다.

in_channels (`int`, 기본값 `16`) : 입력의 채널 수.

out_channels (`int`, 기본값 `16`) : 출력의 채널 수.

text_dim (`int`, 기본값 `512`) : 텍스트 임베딩의 입력 차원입니다.

freq_dim (`int`, 기본값 `256`) : 사인oidal 시간 임베딩의 차원.

ffn_dim (`int`, 기본값 `13824`) : 피드포워드 네트워크의 중간 차원.

num_layers (`int`, 기본값 `40`) : 사용할 transformer 블록의 레이어 수입니다.

window_size (`tuple[int]`, 기본값 `(-1, -1)`) : 로컬 어텐션의 윈도우 크기(-1은 글로벌 어텐션을 나타냅니다).

cross_attn_norm (`bool`, 기본값 `True`) : cross-attention 정규화를 활성화합니다.

qk_norm (`bool`, 기본값 `True`) : query/key 정규화를 활성화합니다.

eps (`float`, 기본값 `1e-6`) : 정규화 레이어에 사용되는 Epsilon 값.

add_img_emb (`bool`, 기본값 `False`) : img_emb을 사용할지 여부.

added_kv_proj_dim (`int`, *선택 사항*, 기본값 `None`) : 추가된 key 및 value projection에 사용할 채널 수입니다. `None`인 경우 projection이 사용되지 않습니다.

Helios 모델에서 사용되는 비디오 유사 데이터용 Transformer 모델입니다.

#### forward[[diffusers.HeliosTransformer3DModel.forward]]

```python
forward(hidden_states: Tensor, timestep: LongTensor, encoder_hidden_states: Tensor, indices_hidden_states = None, indices_latents_history_short = None, indices_latents_history_mid = None, indices_latents_history_long = None, latents_history_short = None, latents_history_mid = None, latents_history_long = None, return_dict: bool = True, attention_kwargs: dict[str, typing.Any] | None = None)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_helios.py#L661)

**매개변수:**

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)`) : 사용할 조건 임베딩(프롬프트와 같은 입력 조건에서 계산된 임베딩).

indices_hidden_states (`torch.Tensor`, *선택 사항*) : `hidden_states`에서 회전 위치 임베딩을 계산하는 데 사용되는 프레임 인덱스.

indices_latents_history_short (`torch.Tensor`, *선택 사항*) : 짧은 히스토리 라텐트(frame)의 프레임 인덱스입니다.

indices_latents_history_mid (`torch.Tensor`, *선택 사항*) : 중간 히스토리 라텐트의 프레임 인덱스입니다.

indices_latents_history_long (`torch.Tensor`, *선택 사항*) : 긴 히스토리(latents)의 프레임 인덱스입니다.

latents_history_short (`torch.Tensor`, *선택 사항*) : 짧은 히스토리 latents 조건부.

latents_history_mid (`torch.Tensor`, *선택 사항*) : 중간 히스토리(latents) 조건화.

latents_history_long (`torch.Tensor`, *선택 사항*) : Long history latents conditioning.

return_dict (`bool`, *선택 사항*, 기본값 `True`) : 일반 튜플 대신 `~models.transformer_2d.Transformer2DModelOutput`을 반환할지 여부.

attention_kwargs (`dict`, *선택 사항*) : 지정된 경우 [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py)의 `self.processor` 아래에서 정의된 `AttentionProcessor`로 전달되는 kwargs 사전입니다.

**반환값:**

`return_dict`가 True이면 `~models.transformer_2d.Transformer2DModelOutput`이 반환되고, 그렇지 않으면 첫 번째 요소가 샘플 텐서인 `tuple`이 반환됩니다.

[HeliosTransformer3DModel](/docs/diffusers/main/ko/api/models/helios_transformer3d#diffusers.HeliosTransformer3DModel)의 forward 메서드입니다.

## 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)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/modeling_outputs.py#L21)

**매개변수:**

sample (`torch.Tensor`, shape `(batch_size, num_channels, height, width)` 또는 [Transformer2DModel](/docs/diffusers/main/ko/api/models/transformer2d#diffusers.Transformer2DModel)이 discrete인 경우 `(batch size, num_vector_embeds - 1, num_latent_pixels)`) : `encoder_hidden_states` 입력에 조건부인 hidden states 출력입니다. discrete인 경우, 노이즈가 제거된 latent 픽셀에 대한 확률 분포를 반환합니다.

[Transformer2DModel](/docs/diffusers/main/ko/api/models/transformer2d#diffusers.Transformer2DModel)의 출력입니다.

