Diffusers documentation

ConsisIDTransformer3DModel

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

ConsisIDTransformer3DModel

A Diffusion Transformer model for 3D data from ConsisID was introduced in Identity-Preserving Text-to-Video Generation by Frequency Decomposition by Peking University & University of Rochester & etc.

Модель можно загрузить с помощью следующего фрагмента кода.

from diffusers import ConsisIDTransformer3DModel

transformer = ConsisIDTransformer3DModel.from_pretrained("BestWishYsh/ConsisID-preview", subfolder="transformer", dtype=torch.bfloat16).to("cuda")  # or "mps", "xpu", "cpu"

ConsisIDTransformer3DModel

класс diffusers.ConsisIDTransformer3DModel

< >

( num_attention_heads: int = 30attention_head_dim: int = 64in_channels: int = 16out_channels: int | None = 16flip_sin_to_cos: bool = Truefreq_shift: int = 0time_embed_dim: int = 512text_embed_dim: int = 4096num_layers: int = 30dropout: float = 0.0attention_bias: bool = Truesample_width: int = 90sample_height: int = 60sample_frames: int = 49patch_size: int = 2temporal_compression_ratio: int = 4max_text_seq_length: int = 226activation_fn: str = 'gelu-approximate'timestep_activation_fn: str = 'silu'norm_elementwise_affine: bool = Truenorm_eps: float = 1e-05spatial_interpolation_scale: float = 1.875temporal_interpolation_scale: float = 1.0use_rotary_positional_embeddings: bool = Falseuse_learned_positional_embeddings: bool = Falseis_train_face: bool = Falseis_kps: bool = Falsecross_attn_interval: int = 2cross_attn_dim_head: int = 128cross_attn_num_heads: int = 16LFE_id_dim: int = 1280LFE_vit_dim: int = 1024LFE_depth: int = 10LFE_dim_head: int = 64LFE_num_heads: int = 16LFE_num_id_token: int = 5LFE_num_querie: int = 32LFE_output_dim: int = 2048LFE_ff_mult: int = 4LFE_num_scale: int = 5local_face_scale: float = 1.0 )

Параметры

  • num_attention_heads (int, по умолчанию 30) — Количество голов, используемых для многоголовного внимания.
  • attention_head_dim (int, по умолчанию 64) — Количество каналов в каждой голове.
  • in_channels (int, по умолчанию 16) — Количество каналов на входе.
  • out_channels (int, необязательный, по умолчанию 16) — Количество каналов на выходе.
  • flip_sin_to_cos (bool, по умолчанию True) — Определяет, следует ли заменить sin на cos во временном эмбеддинге.
  • time_embed_dim (int, по умолчанию 512) — Размерность выходного вектора эмбеддингов временных шагов.
  • text_embed_dim (int, по умолчанию 4096) — Входное измерение текстовых эмбеддингов от текстового энкодера.
  • num_layers (int, по умолчанию 30) — Количество блоков Transformer, используемых в модели.
  • dropout (float, по умолчанию 0.0) — Вероятность применения dropout.
  • attention_bias (bool, по умолчанию True) — Использовать ли смещение (bias) в слоях проекции внимания.
  • sample_width (int, по умолчанию 90) — Ширина входных латентов.
  • sample_height (int, по умолчанию 60) — Высота входных латентов.
  • sample_frames (int, по умолчанию 49) — Количество кадров во входных латентах. Обратите внимание, что этот параметр был неверно инициализирован значением 49 вместо 13, поскольку ConsisID обрабатывал 13 латентных кадров за один проход в своих настройках по умолчанию и рекомендуемых настройках, однако его нельзя изменить на правильное значение, чтобы обеспечить обратную совместимость. Чтобы создать трансформер с K латентными кадрами, правильным значением для передачи здесь будет: ((K - 1) * temporal_compression_ratio + 1).
  • patch_size (int, по умолчанию 2) — Размер патчей, используемых в слое встраивания патчей.
  • temporal_compression_ratio (int, по умолчанию 4) — Коэффициент сжатия по временному измерению. См. документацию для sample_frames.
  • max_text_seq_length (int, по умолчанию 226) — Максимальная длина последовательности входных текстовых эмбеддингов.
  • activation_fn (str, по умолчанию "gelu-approximate") — Функция активации, используемая в полносвязном слое.
  • timestep_activation_fn (str, по умолчанию "silu") — Функция активации, используемая при генерации эмбеддингов временных шагов.
  • norm_elementwise_affine (bool, по умолчанию True) — Использовать ли elementwise affine в слоях нормализации.
  • norm_eps (float, по умолчанию 1e-5) — Значение эпсилона, используемое в слоях нормализации.
  • spatial_interpolation_scale (float, по умолчанию 1.875) — Коэффициент масштабирования, применяемый к 3D-позиционным эмбеддингам по пространственным измерениям.
  • temporal_interpolation_scale (float, по умолчанию 1.0) — Коэффициент масштабирования, применяемый к 3D-позиционным эмбеддингам вдоль временных измерений.
  • is_train_face (bool, по умолчанию False) — Определяет, следует ли включать модуль сохранения идентичности в процессе обучения. Если установлено значение True, модель будет ориентироваться на задачи сохранения идентичности.
  • is_kps (bool, по умолчанию False) — Включает ли использование ключевых точек для глобального извлечателя лиц. Если True, ключевые точки будут присутствовать в модели.
  • cross_attn_interval (int, по умолчанию 2) — Интервал между слоями кросс-внимания в архитектуре Transformer. Увеличение значения может снизить частоту вычислений кросс-внимания, что помогает уменьшить вычислительные затраты.
  • cross_attn_dim_head (int, optional, по умолчанию 128) — Размерность каждого внимания в слоях кросс-внимания архитектуры Transformer. Увеличение значения повышает способность модели обрабатывать более сложные паттерны, но также увеличивает затраты памяти и вычислительных ресурсов.
  • cross_attn_num_heads (int, optional, по умолчанию 16) — Количество голок внимания в слоях кросс-внимания. Большое число голок позволяет использовать более параллельные механизмы внимания, улавливая разнообразные связи между различными компонентами входных данных, но также может увеличивать вычислительные требования.
  • LFE_id_dim (int, optional, по умолчанию 1280) — Размерность вектора идентичности, используемого в Local Facial Extractor (LFE). Этот вектор представляет признаки идентичности лица, которые важны для таких задач, как распознавание лиц и сохранение идентичности в разных кадрах.
  • LFE_vit_dim (int, optional, по умолчанию 1024) — Размерность выхода vision transformer (ViT), используемого в Local Facial Extractor (LFE). Это значение определяет размерность векторов признаков, генерируемых трансформером, которые будут обработаны для извлечения черт лица.
  • LFE_depth (int, optional, по умолчанию 10) — Количество слоев в Local Facial Extractor (LFE). Увеличение глубины позволяет модели захватывать более сложные представления черт лица, но также повышает вычислительную нагрузку.
  • LFE_dim_head (int, optional, по умолчанию 64) — Размерность каждого внимания в Local Facial Extractor (LFE). Этот параметр влияет на то, насколько детально модель может обрабатывать и фокусироваться на различных частях черт лица в процессе извлечения.
  • LFE_num_heads (int, optional, по умолчанию 16) — Количество головок внимания в Local Facial Extractor (LFE). Увеличение числа головок может повысить способность модели улавливать разнообразные черты лица, но за счёт роста вычислительной сложности.
  • LFE_num_id_token (int, optional, по умолчанию 5) — Количество токенов идентичности, используемых в Local Facial Extractor (LFE). Это определяет, сколько токенов, связанных с идентичностью, модель будет обрабатывать для обеспечения сохранения идентичности лица во время извлечения признаков.
  • LFE_num_querie (int, optional, по умолчанию 32) — Количество токенов запроса, используемых в Local Facial Extractor (LFE). Эти токены применяются для захвата информации о лице с высокой частотой, что способствует точному извлечению черт лица.
  • LFE_output_dim (int, optional, defaults to 2048) — Размерность выходного слоя Local Facial Extractor (LFE). Эта размерность определяет размер векторов признаков, генерируемых модулем LFE, которые будут использоваться для последующих задач, таких как распознавание лиц или отслеживание.
  • LFE_ff_mult (int, optional, по умолчанию 4) — Коэффициент умножения, применяемый к размеру скрытого слоя сети прямого распространения в Local Facial Extractor (LFE). Более высокое значение увеличивает способность модели обучаться более сложным преобразованиям черт лица, но также повышает требования к вычислениям и памяти.
  • LFE_num_scale (int, optional, по умолчанию 5) — Количество различных масштабов визуальных признаков. Более высокое значение увеличивает способность модели обучаться более сложным преобразованиям черт лица, но также повышает требования к вычислениям и памяти.
  • local_face_scale (float, по умолчанию 1.0) — Коэффициент масштабирования, используемый для корректировки важности локальных черт лица в модели. Это может влиять на то, насколько сильно модель фокусируется на высокочастотном содержании, связанном с лицом.

Модель Transformer для видеоподобных данных в ConsisID.

forward

< >

( hidden_states: Tensorencoder_hidden_states: Tensortimestep: typing.Union[int, float, torch.LongTensor]timestep_cond: typing.Optional[torch.Tensor] = Noneimage_rotary_emb: tuple[torch.Tensor, torch.Tensor] | None = Noneattention_kwargs: dict[str, typing.Any] | None = Noneid_cond: typing.Optional[torch.Tensor] = Noneid_vit_hidden: typing.Optional[torch.Tensor] = Nonereturn_dict: bool = True )

Параметры

  • hidden_states (torch.Tensor формы (batch_size, num_frames, channels, height, width)) — Входные hidden_states.
  • encoder_hidden_states (torch.Tensor формы (batch_size, sequence_len, embed_dims)) — Условные эмбеддинги (эмбеддинги, вычисленные на основе входных условий, таких как промпты), которые следует использовать.
  • timestep (torch.LongTensor) — Используется для указания шага денойзинга.
  • timestep_cond (torch.Tensor, необязательный) — Условные эмбеддинги для временного шага. Если переданы, эмбеддинги будут сложены с сэмплами, прошедшими через слой self.time_embedding, чтобы получить итоговые эмбеддинги временного шага.
  • image_rotary_emb (tuple из torch.Tensor, необязательный) — Предварительно вычисленные ротационные позиционные эмбеддинги.
  • attention_kwargs (dict, необязательный) — Словарь kwargs, который при указании передается в AttentionProcessor, определенный в self.processor в diffusers.models.attention_processor.
  • id_cond (torch.Tensor, необязательный) — Векторное представление лица, извлечённое локальным экстрактором лиц и используемое для условного формирования идентичности.
  • id_vit_hidden (torch.Tensor, необязательный) — Скрытые состояния ViT, извлечённые из изображений лиц и используемые для условного формирования идентичности.
  • return_dict (bool, необязательный, по умолчанию True) — Определяет, следует ли возвращать ~models.transformer_2d.Transformer2DModelOutput вместо обычного кортежа.

Метод forward модели ConsisIDTransformer3DModel.

Transformer2DModelOutput

класс diffusers.models.modeling_outputs.Transformer2DModelOutput

< >

( sample: torch.Tensor )

Параметры

  • sample (torch.Tensor формы (batch_size, num_channels, height, width) или (batch size, num_vector_embeds - 1, num_latent_pixels), если Transformer2DModel дискретный) — Выходные скрытые состояния, обусловленные входом encoder_hidden_states. Если модель дискретная, возвращает распределения вероятностей для латентных пикселей без шума.

Вывод Transformer2DModel.

Update on GitHub