Diffusers documentation
Lumina2Transformer2DModel
Lumina2Transformer2DModel
Модель Diffusion Transformer для 3D-видеоподобных данных была представлена в Lumina Image 2.0 от Alpha-VLLM.
Модель можно загрузить с помощью следующего фрагмента кода.
from diffusers import Lumina2Transformer2DModel
transformer = Lumina2Transformer2DModel.from_pretrained("Alpha-VLLM/Lumina-Image-2.0", subfolder="transformer", dtype=torch.bfloat16)Lumina2Transformer2DModel
класс diffusers.Lumina2Transformer2DModel
< source >( sample_size: int = 128patch_size: int = 2in_channels: int = 16out_channels: int | None = Nonehidden_size: int = 2304num_layers: int = 26num_refiner_layers: int = 2num_attention_heads: int = 24num_kv_heads: int = 8multiple_of: int = 256ffn_dim_multiplier: float | None = Nonenorm_eps: float = 1e-05scaling_factor: float = 1.0axes_dim_rope: tuple = (32, 32, 32)axes_lens: tuple = (300, 512, 512)cap_feat_dim: int = 1024 )
Параметры
- sample_size (
int) — Ширина латентных изображений. Это значение фиксировано во время обучения, поскольку используется для обучения набора позиционных эмбеддингов. - patch_size (
int, необязательный, (int, необязательный, по умолчанию 2) — Размер каждого патча на изображении. Этот параметр определяет разрешение патчей, передаваемых в модель. - in_channels (
int, необязательный, по умолчанию 4) — Количество входных каналов для модели. Как правило, это значение совпадает с количеством каналов во входных изображениях. - hidden_size (
int, необязательный, по умолчанию 4096) — Размерность скрытых слоёв в модели. Этот параметр определяет ширину скрытых представлений модели. - num_layers (
int, необязательный, по умолчанию 32) — Количество слоев в модели. Определяет глубину нейронной сети. - num_attention_heads (
int, необязательный, по умолчанию 32) — Количество головок внимания в каждом слое внимания. Этот параметр определяет, сколько отдельных механизмов внимания используется. - num_kv_heads (
int, необязательный, по умолчанию 8) — Количество ключевых и значимых головок в механизме внимания, если оно отличается от количества головок внимания. Если значение равно None, по умолчанию используется num_attention_heads. - multiple_of (
int, необязательный, по умолчанию 256) — Множитель, кратным которому должен быть размер скрытого слоя. Это может помочь оптимизировать работу на определённых аппаратных конфигурациях. - ffn_dim_multiplier (
float, необязательный) — Множитель размерности полносвязной сети. Если значение равно None, используется значение по умолчанию, определяемое конфигурацией модели. - norm_eps (
float, необязательный, по умолчанию 1e-5) — Небольшое значение, добавляемое к знаменателю для численной устойчивости в слоях нормализации. - scaling_factor (
float, необязательный, по умолчанию 1.0) — Коэффициент масштабирования, применяемый к определенным параметрам или слоям модели. Его можно использовать для корректировки общего масштаба операций модели.
Lumina2NextDiT: диффузионная модель с трансформерным каркасом.
forward
< source >( hidden_states: Tensortimestep: Tensorencoder_hidden_states: Tensorencoder_attention_mask: Tensorattention_kwargs: dict[str, typing.Any] | None = Nonereturn_dict: bool = True )
Параметры
- hidden_states (
torch.Tensorформы(batch_size, in_channels, height, width)) — Входныеhidden_states. - timestep (
torch.LongTensor) — Используется для указания шага денойзинга. - encoder_hidden_states (
torch.Tensorформы(batch_size, sequence_len, embed_dims)) — Условные эмбеддинги (эмбеддинги, вычисленные на основе входных условий, таких как промпты), которые следует использовать. - encoder_attention_mask (
torch.Tensor) — Маска, применяемая кencoder_hidden_statesво время внимания. - attention_kwargs (
dict, необязательный) — Словарь kwargs, который при указании передается вAttentionProcessor, определенный вself.processorв diffusers.models.attention_processor. - return_dict (
bool, необязательный, по умолчаниюTrue) — Определяет, следует ли возвращать~models.transformer_2d.Transformer2DModelOutputвместо обычного кортежа.
Метод forward модели Lumina2Transformer2DModel.
Transformer2DModelOutput
класс diffusers.models.modeling_outputs.Transformer2DModelOutput
< source >( 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.