Buckets:

hf-doc-build/doc / diffusers /main /ru /api /models /omnigen_transformer.md
mishig's picture
|
download
raw
9.8 kB
# 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.