Buckets:
| # OmniGenTransformer2DModel | |
| Um modelo Transformer que aceita instruções multimodais para gerar imagens para o [OmniGen](https://github.com/VectorSpaceLab/OmniGen/). | |
| O resumo do artigo é: | |
| *O surgimento dos Large Language Models (LLMs) unificou as tarefas de geração de linguagem e revolucionou a interação humano-máquina. No entanto, no campo da geração de imagens, um modelo unificado capaz de lidar com diversas tarefas dentro de um único framework permanece em grande parte inexplorado. Neste trabalho, apresentamos o OmniGen, um novo modelo de difusão para geração unificada de imagens. O OmniGen é caracterizado pelas seguintes funcionalidades: 1) Unificação: o OmniGen não apenas demonstra capacidades de geração de texto para imagem, mas também suporta inerentemente diversas tarefas downstream, como edição de imagem, geração dirigida por sujeito e geração condicional visual. 2) Simplicidade: a arquitetura do OmniGen é altamente simplificada, eliminando a necessidade de plugins adicionais. Além disso, em comparação com modelos de difusão existentes, ele é mais amigável ao usuário e pode concluir tarefas complexas de ponta a ponta por meio de instruções, sem a necessidade de etapas intermediárias extras, simplificando enormemente o fluxo de trabalho de geração de imagens. 3) Transferência de conhecimento: beneficiando-se do aprendizado em um formato unificado, o OmniGen transfere efetivamente conhecimento entre diferentes tarefas, gerencia tarefas e domínios não vistos e exibe capacidades novas. Também exploramos as capacidades de raciocínio do modelo e as aplicações potenciais do mecanismo de chain-of-thought. Este trabalho representa a primeira tentativa de um modelo de geração de imagens de uso geral, e disponibilizaremos nossos recursos em https://github.com/VectorSpaceLab/OmniGen para fomentar avanços futuros.* | |
| ```python | |
| import torch | |
| from diffusers import OmniGenTransformer2DModel | |
| transformer = OmniGenTransformer2DModel.from_pretrained("Shitao/OmniGen-v1-diffusers", subfolder="transformer", dtype=torch.bfloat16) | |
| ``` | |
| ## OmniGenTransformer2DModel[[diffusers.OmniGenTransformer2DModel]] | |
| #### diffusers.OmniGenTransformer2DModel[[diffusers.OmniGenTransformer2DModel]] | |
| ```python | |
| diffusers.OmniGenTransformer2DModel(in_channels: int = 4, patch_size: int = 2, hidden_size: int = 3072, rms_norm_eps: float = 1e-05, num_attention_heads: int = 32, num_key_value_heads: int = 32, intermediate_size: int = 8192, num_layers: int = 32, pad_token_id: int = 32000, vocab_size: int = 32064, max_position_embeddings: int = 131072, original_max_position_embeddings: int = 4096, rope_base: int = 10000, rope_scaling: dict = None, pos_embed_max_size: int = 192, time_step_dim: int = 256, flip_sin_to_cos: bool = True, downscale_freq_shift: int = 0, timestep_activation_fn: str = 'silu') | |
| ``` | |
| [Fonte](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_omnigen.py#L283) | |
| **Parâmetros:** | |
| in_channels (`int`, padrão `4`) : O número de canais na entrada. | |
| patch_size (`int`, padrão `2`) : O tamanho dos patches espaciais a serem usados na camada de incorporação de patches. | |
| hidden_size (`int`, padrão `3072`) : A dimensionalidade das camadas ocultas no modelo. | |
| rms_norm_eps (`float`, padrão `1e-5`) : Eps para a camada RMSNorm. | |
| num_attention_heads (`int`, padrão `32`) : O número de cabeças a serem usadas para a atenção multi-cabeça. | |
| num_key_value_heads (`int`, padrão `32`) : O número de cabeças a serem usadas para chaves e valores na atenção multi-cabeça. | |
| intermediate_size (`int`, padrão `8192`) : Dimensão da camada oculta nas camadas FeedForward. | |
| num_layers (`int`, padrão `32`) : O número de blocos de transformadores a serem usados. | |
| pad_token_id (`int`, padrão `32000`) : O id do token de padding. | |
| vocab_size (`int`, padrão `32064`) : O tamanho do vocabulário do vocabulário de incorporação. | |
| rope_base (`int`, padrão `10000`) : O valor padrão de theta a ser usado ao criar o RoPE. | |
| rope_scaling (`dict`, opcional) : Os fatores de escala para o RoPE. Deve conter `short_factor` e `long_factor`. | |
| pos_embed_max_size (`int`, padrão `192`) : O tamanho máximo dos embeddings posicionais. | |
| time_step_dim (`int`, padrão `256`) : Dimensão de saída dos embeddings de timestep. | |
| flip_sin_to_cos (`bool`, padrão `True`) : Se deve inverter o sin e o cos nos embeddings posicionais ao preparar os embeddings de timestep. | |
| downscale_freq_shift (`int`, padrão `0`) : O deslocamento de frequência a ser usado ao reduzir a escala dos embeddings de timestep. | |
| timestep_activation_fn (`str`, padrão `silu`) : A função de ativação a ser usada para os embeddings de timestep. | |
| O modelo Transformer introduzido em OmniGen (https://huggingface.co/papers/2409.11340). | |
| #### forward[[diffusers.OmniGenTransformer2DModel.forward]] | |
| ```python | |
| forward(hidden_states: Tensor, timestep: typing.Union[int, float, torch.FloatTensor], input_ids: Tensor, input_img_latents: list[torch.Tensor], input_image_sizes: dict[int, list[int]], attention_mask: Tensor, position_ids: Tensor, return_dict: bool = True) | |
| ``` | |
| [Fonte](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_omnigen.py#L407) | |
| **Parâmetros:** | |
| hidden_states (`torch.Tensor` de forma `(batch_size, in_channels, height, width)`) : `hidden_states` de entrada. | |
| timestep (`torch.LongTensor`) : Usado para indicar o passo de desruidamento. | |
| input_ids (`torch.Tensor`) : IDs de tokens de texto multimodal usados como condicionamento. | |
| input_img_latents (`list` de `torch.Tensor`) : Lista de latentes para as imagens de entrada usadas como condicionamento. | |
| input_image_sizes (`dict` de `int` para `list` de `int`) : Mapeamento do índice da amostra para as posições onde os embeddings da imagem de entrada devem ser colocados na sequência de condicionamento. | |
| attention_mask (`torch.Tensor`) : Máscara de atenção para a sequência multimodal conjunta. | |
| position_ids (`torch.Tensor`) : ids de posição usados para calcular os embeddings posicionais. | |
| return_dict (`bool`, *opcional*, padrão `True`) : Indica se deve retornar um `~models.transformer_2d.Transformer2DModelOutput` em vez de uma tupla simples. | |
| **Retorna:** `~models.transformer_2d.Transformer2DModelOutput` ou `tuple` | |
| Se `return_dict` for True, um `~models.transformer_2d.Transformer2DModelOutput` é retornado; caso contrário, uma `tuple` simples é retornada. | |
| O método forward do [OmniGenTransformer2DModel](/docs/diffusers/main/pt/api/models/omnigen_transformer#diffusers.OmniGenTransformer2DModel). | |
Xet Storage Details
- Size:
- 6.63 kB
- Xet hash:
- bebb6b7892ed8f688558508a788bab1222ad882b5ab1f509808f7fcc41de32cb
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.