Diffusers documentation

Ideogram4Transformer2DModel

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Ideogram4Transformer2DModel

Ideogram 4의 이미지형 데이터용 transformer입니다.

Ideogram4Transformer2DModel

클래스 diffusers.Ideogram4Transformer2DModel

< >

( in_channels: int = 128num_layers: int = 34attention_head_dim: int = 256num_attention_heads: int = 18intermediate_size: int = 12288adaln_dim: int = 512llm_features_dim: int = 53248rope_theta: int = 5000000mrope_section: tuple = (24, 20, 20)norm_eps: float = 1e-05 )

매개변수

  • in_channels (int, 기본값 128) — 패치화 이후의 Latent 채널 수(ae_channels * patch_size ** 2).
  • num_layers (int, 기본값 34) — Transformer 블록의 수.
  • attention_head_dim (int, 기본값 256) — 각 attention head의 차원; 전체 hidden size는 attention_head_dim * num_attention_heads입니다.
  • num_attention_heads (int, 기본값 18) — Attention head의 수.
  • intermediate_size (int, 기본값 12288) — 각 블록 내부의 SwiGLU MLP에서 사용되는 피드포워드 히든 크기입니다.
  • adaln_dim (int, 기본값 512) — AdaLN 변조가 사용하는 조건 벡터의 차원입니다.
  • llm_features_dim (int, 기본값 53248) — 모델에 입력되는 토큰별 텍스트 특징의 차원(보통 텍스트 인코더의 여러 레이어에서 나온 hidden states의 연결입니다).
  • rope_theta (int, 기본값 5_000_000) — 다중 축 회전 위치 임베딩에 사용되는 기본값입니다.
  • mrope_section (tuple[int, int, int], 기본값 (24, 20, 20)) — MRoPE의 (t, h, w) 축 각각에 할당되는 주파수의 수입니다.
  • norm_eps (float, 기본값 1e-5) — Transformer 블록 내부의 RMSNorm 모듈에서 사용되는 Epsilon 값입니다.

Ideogram 4 파이프라인에서 사용되는 flow-matching transformer 백본입니다.

Transformer는 멀티모달 텍스트 인코더가 생성한 텍스트 조건 토큰과 패치화된 이미지 잠재 변수를 모두 포함하는 단일 패킹된 시퀀스를 처리합니다. 토큰별 지표가 두 역할을 구분하며, segment_ids에서 파생된 블록 대각선 어텐션 마스크는 패킹된 배치 내에서 각 샘플이 자신에게만 어텐션하도록 제한합니다.

forward

< >

( hidden_states: Tensortimestep: Tensorencoder_hidden_states: Tensorposition_ids: Tensorsegment_ids: Tensorindicator: Tensorattention_kwargs: dict | None = Nonereturn_dict: bool = True )

매개변수

  • hidden_states (torch.Tensor, shape (batch_size, sequence_length, in_channels)) — 패치화된 노이즈 이미지 토큰의 패킹된 시퀀스입니다. 이미지 외 위치는 내부적으로 마스킹됩니다.
  • timestep (torch.Tensor, shape (batch_size,) 또는 (batch_size, sequence_length)) — [0, 1] 범위의 Flow-matching 시간 (0은 순수 노이즈, 1은 깨끗한 데이터).
  • encoder_hidden_states (torch.Tensor, shape (batch_size, sequence_length, llm_features_dim)) — 토큰별 텍스트 조건화 특징입니다. 텍스트가 아닌 위치는 내부적으로 마스킹됩니다.
  • position_ids (torch.Tensor, shape (batch_size, sequence_length, 3)) — (t, h, w) 좌표. multi-axis RoPE가 사용합니다.
  • segment_ids (torch.Tensor, shape (batch_size, sequence_length)) — 패킹된 배치 내에서 토큰별 샘플 ID. 동일한 segment_id를 공유하는 위치들은 서로를 attend합니다.
  • indicator (torch.Tensor, shape (batch_size, sequence_length)) — 토큰별 역할: LLM_TOKEN_INDICATOR(텍스트) 또는 OUTPUT_IMAGE_INDICATOR(이미지).
  • attention_kwargs (dict, 선택 사항) — attention processor로 전달되는 kwargs 딕셔너리입니다. "scale" 항목은 LoRA 가중치를 스케일링합니다(PEFT 백엔드가 활성화된 경우).
  • return_dict (bool, 선택 사항, 기본값 True) — 일반 튜플 대신 Transformer2DModelOutput을 반환할지 여부.

패킹된 시퀀스의 이미지 토큰 위치에서 flow-matching 속도를 예측합니다.

Update on GitHub