Buckets:
| # OmniGenTransformer2DModel | |
| Un modelo Transformer que acepta instrucciones multimodales para generar imágenes para [OmniGen](https://github.com/VectorSpaceLab/OmniGen/). | |
| El resumen del artículo es: | |
| *El surgimiento de los Modelos de Lenguaje de Gran Escala (LLMs) ha unificado las tareas de generación de lenguaje y ha revolucionado la interacción humano-máquina. Sin embargo, en el ámbito de la generación de imágenes, un modelo unificado capaz de manejar diversas tareas dentro de un único marco sigue siendo en gran medida inexplorado. En este trabajo, presentamos OmniGen, un nuevo modelo de difusión para la generación unificada de imágenes. OmniGen se caracteriza por las siguientes características: 1) Unificación: OmniGen no solo demuestra capacidades de generación de texto a imagen, sino que también admite de forma inherente diversas tareas descendentes, como la edición de imágenes, la generación dirigida por sujeto y la generación condicional visual. 2) Simplicidad: La arquitectura de OmniGen está altamente simplificada, eliminando la necesidad de complementos adicionales. Además, en comparación con los modelos de difusión existentes, es más fácil de usar y puede completar tareas complejas de extremo a extremo mediante instrucciones, sin la necesidad de pasos intermedios adicionales, simplificando en gran medida el flujo de trabajo de generación de imágenes. 3) Transferencia de conocimiento: Gracias al aprendizaje en un formato unificado, OmniGen transfiere de manera efectiva el conocimiento entre diferentes tareas, gestiona tareas y dominios no vistos y exhibe capacidades novedosas. También exploramos las capacidades de razonamiento del modelo y las aplicaciones potenciales del mecanismo de cadena de pensamiento. Este trabajo representa el primer intento de un modelo de generación de imágenes de uso general, y publicaremos nuestros recursos en https://github.com/VectorSpaceLab/OmniGen para fomentar avances 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') | |
| ``` | |
| [Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_omnigen.py#L283) | |
| **Parámetros:** | |
| in_channels (`int`, por defecto `4`) : El número de canales en la entrada. | |
| patch_size (`int`, por defecto `2`) : El tamaño de los parches espaciales a utilizar en la capa de incrustación de parches. | |
| hidden_size (`int`, por defecto `3072`) : La dimensionalidad de las capas ocultas en el modelo. | |
| rms_norm_eps (`float`, por defecto `1e-5`) : Eps para la capa RMSNorm. | |
| num_attention_heads (`int`, por defecto `32`) : El número de cabezas a utilizar para la atención multi-cabeza. | |
| num_key_value_heads (`int`, por defecto `32`) : El número de cabezas a utilizar para las claves y los valores en la atención multi-cabeza. | |
| intermediate_size (`int`, por defecto `8192`) : Dimensión de la capa oculta en las capas FeedForward. | |
| num_layers (`int`, por defecto `32`) : El número de bloques de transformador a utilizar. | |
| pad_token_id (`int`, por defecto `32000`) : El id del token de relleno. | |
| vocab_size (`int`, por defecto `32064`) : El tamaño del vocabulario de las incrustaciones. | |
| rope_base (`int`, por defecto `10000`) : El valor de theta por defecto que se utiliza al crear RoPE. | |
| rope_scaling (`dict`, opcional) : Los factores de escalado para RoPE. Debe contener `short_factor` y `long_factor`. | |
| pos_embed_max_size (`int`, por defecto `192`) : El tamaño máximo de las incrustaciones posicionales. | |
| time_step_dim (`int`, por defecto `256`) : Dimensión de salida de las incrustaciones de paso de tiempo. | |
| flip_sin_to_cos (`bool`, por defecto `True`) : Si se deben invertir el sin y el cos en los embeddings posicionales al preparar los embeddings de timestep. | |
| downscale_freq_shift (`int`, por defecto `0`) : El desplazamiento de frecuencia que se utilizará al reducir la escala de las incrustaciones de paso temporal. | |
| timestep_activation_fn (`str`, por defecto `silu`) : La función de activación a utilizar para las incrustaciones de paso de tiempo. | |
| El modelo Transformer introducido en 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) | |
| ``` | |
| [Fuente](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`) : Se utiliza para indicar el paso de desruido. | |
| input_ids (`torch.Tensor`) : ids de tokens de texto multimodal utilizados como condicionamiento. | |
| input_img_latents (`list` de `torch.Tensor`) : Lista de latentes para las imágenes de entrada utilizadas como condicionamiento. | |
| input_image_sizes (`dict` de `int` a `list` de `int`) : Mapeo del índice de muestra a las posiciones donde deben colocarse los embeddings de la imagen de entrada en la secuencia de condicionamiento. | |
| attention_mask (`torch.Tensor`) : Máscara de atención para la secuencia multimodal conjunta. | |
| position_ids (`torch.Tensor`) : ids de posición utilizados para calcular los embeddings posicionales. | |
| return_dict (`bool`, *opcional*, valor predeterminado `True`) : Indica si se debe devolver un `~models.transformer_2d.Transformer2DModelOutput` en lugar de una tupla simple. | |
| **Devuelve:** `~models.transformer_2d.Transformer2DModelOutput` o `tuple` | |
| Si `return_dict` es True, se devuelve un `~models.transformer_2d.Transformer2DModelOutput`; en caso contrario, se devuelve una `tuple` simple. | |
| El método forward de [OmniGenTransformer2DModel](/docs/diffusers/main/es/api/models/omnigen_transformer#diffusers.OmniGenTransformer2DModel). | |
Xet Storage Details
- Size:
- 6.89 kB
- Xet hash:
- 9cab2f947e0f3a43985ce6eaaca06b5a183d78f3f26779363ee9bba2a7c802d0
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.