Buckets:
| # OmniGenTransformer2DModel | |
| Модель Transformer, которая принимает мультимодальные инструкции для генерации изображений для [OmniGen](https://github.com/VectorSpaceLab/OmniGen/). | |
| Аннотация из статьи: | |
| *Появление больших языковых моделей (LLM) унифицировало задачи генерации текста и революционизировало взаимодействие человека с машиной. Однако в области генерации изображений единая модель, способная выполнять различные задачи в рамках одной архитектуры, по-прежнему остаётся малоизученной. В данной работе мы представляем OmniGen — новую диффузионную модель для унифицированной генерации изображений. OmniGen характеризуется следующими особенностями: 1) Унификация: OmniGen не только демонстрирует возможности генерации изображений по тексту, но и изначально поддерживает различные задачи нижнего уровня, такие как редактирование изображений, генерация по заданному объекту и условная генерация по визуальному условию. 2) Простота: Архитектура OmniGen значительно упрощена, что исключает необходимость в дополнительных плагинах. Кроме того, по сравнению с существующими диффузионными моделями, она более удобна для пользователя и может выполнять сложные задачи от начала до конца по инструкциям без необходимости дополнительных промежуточных шагов, что значительно упрощает рабочий процесс генерации изображений. 3) Перенос знаний: Благодаря обучению в унифицированном формате OmniGen эффективно переносит знания между различными задачами, справляется с невиданными ранее задачами и доменами и демонстрирует новые возможности. Мы также исследуем способности модели к рассуждениям и потенциальные применения механизма цепочки рассуждений (chain-of-thought). Данная работа представляет собой первую попытку создания универсальной модели генерации изображений, и мы опубликуем наши ресурсы по адресу https://github.com/VectorSpaceLab/OmniGen, чтобы содействовать будущему развитию в этой области.* | |
| ```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') | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_omnigen.py#L283) | |
| **Параметры:** | |
| in_channels (`int`, по умолчанию `4`) : количество каналов на входе. | |
| patch_size (`int`, по умолчанию `2`) : Размер пространственных патчей, используемых в слое встраивания патчей. | |
| hidden_size (`int`, по умолчанию `3072`) : Размерность скрытых слоёв в модели. | |
| rms_norm_eps (`float`, по умолчанию `1e-5`) : Eps для слоя RMSNorm. | |
| num_attention_heads (`int`, по умолчанию `32`) : Количество головок для использования в механизме внимания с несколькими головками. | |
| num_key_value_heads (`int`, по умолчанию `32`) : Количество голов, используемых для ключей и значений в механизме внимания с несколькими головами. | |
| intermediate_size (`int`, по умолчанию `8192`) : Размерность скрытого слоя в слоях FeedForward. | |
| num_layers (`int`, по умолчанию `32`) : Количество блоков трансформера, которые следует использовать. | |
| pad_token_id (`int`, по умолчанию `32000`) : Идентификатор токена отступов (padding). | |
| vocab_size (`int`, по умолчанию `32064`) : Размер словаря эмбеддингов. | |
| rope_base (`int`, по умолчанию `10000`) : Значение theta по умолчанию, используемое при создании RoPE. | |
| rope_scaling (`dict`, optional) : Коэффициенты масштабирования для RoPE. Должен содержать `short_factor` и `long_factor`. | |
| pos_embed_max_size (`int`, по умолчанию `192`) : Максимальный размер позиционных эмбеддингов. | |
| time_step_dim (`int`, по умолчанию `256`) : Размерность выходного вектора эмбеддингов временных шагов. | |
| flip_sin_to_cos (`bool`, по умолчанию `True`) : Нужно ли менять местами sin и cos в позиционных эмбеддингах при подготовке эмбеддингов временных шагов. | |
| downscale_freq_shift (`int`, по умолчанию `0`) : Сдвиг частоты, используемый при уменьшении масштаба эмбеддингов временных шагов. | |
| timestep_activation_fn (`str`, по умолчанию `silu`) : Функция активации, используемая для эмбеддингов временных шагов. | |
| Модель Transformer, представленная в 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) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_omnigen.py#L407) | |
| **Параметры:** | |
| hidden_states (`torch.Tensor` формы `(batch_size, in_channels, height, width)`) : Входные `hidden_states`. | |
| timestep (`torch.LongTensor`) : Используется для указания шага денойзинга. | |
| input_ids (`torch.Tensor`) : Мультимодальные идентификаторы текстовых токенов, используемые в качестве условия. | |
| input_img_latents (`list` из `torch.Tensor`) : Список латентов для входных изображений, используемых в качестве условия. | |
| input_image_sizes (`dict` из `int` в `list` из `int`) : Соответствие между индексом образца и позициями, на которых эмбеддинги входного изображения должны быть размещены в последовательности условий. | |
| attention_mask (`torch.Tensor`) : Маска внимания для объединённой мультимодальной последовательности. | |
| position_ids (`torch.Tensor`) : Идентификаторы позиций, используемые для вычисления позиционных эмбеддингов. | |
| return_dict (`bool`, *необязательный*, по умолчанию `True`) : Возвращать ли `~models.transformer_2d.Transformer2DModelOutput` вместо обычного кортежа. | |
| **Возвращает:** `~models.transformer_2d.Transformer2DModelOutput` или `tuple` | |
| Если `return_dict` равно True, возвращается `~models.transformer_2d.Transformer2DModelOutput`, в противном случае возвращается обычный `tuple`. | |
| Метод forward модели [OmniGenTransformer2DModel](/docs/diffusers/main/ru/api/models/omnigen_transformer#diffusers.OmniGenTransformer2DModel). | |
Xet Storage Details
- Size:
- 9.8 kB
- Xet hash:
- d5dbc537acc88efaa60b47c2f8fe541e2400a1c34690ee54acf6232f1ce11703
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.