Diffusers documentation

ChromaTransformer2DModel

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

ChromaTransformer2DModel

Um modelo Transformer de fluxo modificado da Chroma

ChromaTransformer2DModel

classe diffusers.ChromaTransformer2DModel

< >

( patch_size: int = 1in_channels: int = 64out_channels: int | None = Nonenum_layers: int = 19num_single_layers: int = 38attention_head_dim: int = 128num_attention_heads: int = 24joint_attention_dim: int = 4096axes_dims_rope: tuple[int, ...] = (16, 56, 56)approximator_num_channels: int = 64approximator_hidden_dim: int = 5120approximator_layers: int = 5 )

Parâmetros

  • patch_size (int, padrão 1) — Tamanho do patch para dividir os dados de entrada em pequenos patches.
  • in_channels (int, padrão 64) — O número de canais na entrada.
  • out_channels (int, opcional, padrão None) — O número de canais na saída. Se não for especificado, o padrão é in_channels.
  • num_layers (int, padrão 19) — O número de blocos DiT de fluxo duplo a serem usados.
  • num_single_layers (int, padrão 38) — O número de blocos DiT de fluxo único a serem usados.
  • attention_head_dim (int, padrão 128) — O número de dimensões a serem usadas para cada cabeça de atenção.
  • num_attention_heads (int, padrão 24) — O número de cabeças de atenção a serem usadas.
  • joint_attention_dim (int, padrão 4096) — O número de dimensões a serem usadas para a atenção conjunta (dimensão de incorporação/canal de encoder_hidden_states).
  • axes_dims_rope (tuple[int], padrão (16, 56, 56)) — As dimensões a serem usadas para os embeddings posicionais rotativos.

O modelo Transformer introduzido no Flux, modificado para o Chroma.

Referência: https://huggingface.co/lodestones/Chroma1-HD

forward

< >

( hidden_states: Tensorencoder_hidden_states: Tensor = Nonetimestep: LongTensor = Noneimg_ids: Tensor = Nonetxt_ids: Tensor = Noneattention_mask: Tensor = Nonejoint_attention_kwargs: dict[str, typing.Any] | None = Nonecontrolnet_block_samples = Nonecontrolnet_single_block_samples = Nonereturn_dict: bool = Truecontrolnet_blocks_repeat: bool = False )

Parâmetros

  • hidden_states (torch.Tensor de forma (batch_size, image_sequence_length, in_channels)) — hidden_states de entrada.
  • encoder_hidden_states (torch.Tensor de forma (batch_size, text_sequence_length, joint_attention_dim)) — Incorporações condicionais (incorporações calculadas a partir das condições de entrada, como prompts) a serem usadas.
  • timestep ( torch.LongTensor) — Usado para indicar o passo de desruido.
  • img_ids (torch.Tensor) — ids de posição de imagem usados para calcular os embeddings posicionais rotativos.
  • txt_ids (torch.Tensor) — Ids de posição de texto usados para calcular os embeddings posicionais rotativos.
  • attention_mask (torch.Tensor, opcional) — Máscara aplicada a encoder_hidden_states durante a atenção.
  • controlnet_block_samples (list de torch.Tensor, opcional) — Uma lista de tensores que, se especificada, é adicionada aos resíduos dos blocos do transformer.
  • controlnet_single_block_samples (list de torch.Tensor, opcional) — Uma lista de tensores que, se especificada, é adicionada aos resíduos dos blocos de transformador únicos.
  • controlnet_blocks_repeat (bool, opcional, padrão False) — Se as amostras do bloco controlnet devem ser repetidas em todos os blocos do transformer.
  • joint_attention_kwargs (dict, opcional) — Um dicionário de kwargs que, se especificado, é passado ao AttentionProcessor conforme definido em self.processor em diffusers.models.attention_processor.
  • return_dict (bool, opcional, padrão True) — Se deve ou não retornar um ~models.transformer_2d.Transformer2DModelOutput em vez de uma tupla simples.

O método forward do FluxTransformer2DModel.

Update on GitHub