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

Um transformer para dados semelhantes a imagens do Ideogram 4.

Ideogram4Transformer2DModel

classe 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 )

Parâmetros

  • in_channels (int, padrão 128) — Número de canais latentes após a patchification (ae_channels * patch_size ** 2).
  • num_layers (int, padrão 34) — Número de blocos de transformer.
  • attention_head_dim (int, padrão 256) — Dimensão de cada cabeça de atenção; o tamanho oculto total é attention_head_dim * num_attention_heads.
  • num_attention_heads (int, padrão 18) — Número de cabeças de atenção.
  • intermediate_size (int, padrão 12288) — Tamanho oculto do feed-forward usado pelo MLP SwiGLU dentro de cada bloco.
  • adaln_dim (int, padrão 512) — Dimensão do vetor de condicionamento consumido pelas modulações AdaLN.
  • llm_features_dim (int, padrão 53248) — Dimensão dos recursos de texto por token fornecidos ao modelo (tipicamente uma concatenação de estados ocultos de várias camadas do codificador de texto).
  • rope_theta (int, padrão 5_000_000) — Base utilizada pelo incorporamento de posição rotacional multi-eixo.
  • mrope_section (tuple[int, int, int], padrão (24, 20, 20)) — Número de frequências alocadas a cada um dos eixos (t, h, w) do MRoPE.
  • norm_eps (float, padrão 1e-5) — Epsilon usado pelos módulos RMSNorm dentro dos blocos do transformer.

O backbone de transformer de flow-matching usado pelo pipeline Ideogram 4.

O transformer opera em uma única sequência empacotada contendo tanto tokens de condicionamento de texto (produzidos por um codificador de texto multimodal) quanto latentes de imagem em patches. Indicadores por token distinguem os dois papéis, e uma máscara de atenção diagonal por blocos derivada de segment_ids restringe cada amostra a prestar atenção apenas a si mesma dentro de um lote empacotado.

forward

< >

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

Parâmetros

  • hidden_states (torch.Tensor de forma (batch_size, sequence_length, in_channels)) — Sequência empacotada de tokens de imagem barulhentos e em patches. As posições que não são de imagem são mascaradas internamente.
  • timestep (torch.Tensor de forma (batch_size,) ou (batch_size, sequence_length)) — Tempo de flow-matching em [0, 1] (0 é ruído puro, 1 é dados limpos).
  • encoder_hidden_states (torch.Tensor de forma (batch_size, sequence_length, llm_features_dim)) — Recursos de condicionamento de texto por token. As posições não-textuais são mascaradas internamente.
  • position_ids (torch.Tensor de forma (batch_size, sequence_length, 3)) — coordenadas (t, h, w) consumidas pelo RoPE multi-eixo.
  • segment_ids (torch.Tensor de forma (batch_size, sequence_length)) — ID da amostra por token dentro de um lote empacotado. Posições que compartilham o mesmo segment_id prestam atenção umas às outras.
  • indicator (torch.Tensor de forma (batch_size, sequence_length)) — Papel por token: LLM_TOKEN_INDICATOR (texto) ou OUTPUT_IMAGE_INDICATOR (imagem).
  • attention_kwargs (dict, opcional) — Um dicionário de kwargs passado ao processador de atenção. A entrada "scale" escala os pesos do LoRA (quando o backend PEFT está ativo).
  • return_dict (bool, opcional, padrão True) — Se deve retornar um Transformer2DModelOutput em vez de uma tupla simples.

Preveja a velocidade de flow-matching para as posições de tokens de imagem da sequência empacotada.

Update on GitHub