Diffusers documentation

Ideogram4Transformer2DModel

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

Ideogram4Transformer2DModel

Một transformer cho dữ liệu dạng ảnh từ Ideogram 4.

Ideogram4Transformer2DModel

lớp diffusers.Ideogram4Transformer2DModel

< >

( in_channels: int = 128num_layers: int = 34attention_head_dim: int = 256num_attention_heads: int = 18intermediate_size: int = 12288adaln_dim: int = 512llm_features_dim: int = 53248rope_theta: int = 5000000mrope_section: tuple = (24, 20, 20)norm_eps: float = 1e-05 )

Tham số

  • in_channels (int, mặc định là 128) — Số kênh tiềm ẩn sau khi patchification (ae_channels * patch_size ** 2).
  • num_layers (int, mặc định là 34) — Số lượng khối transformer.
  • attention_head_dim (int, mặc định là 256) — Kích thước của mỗi đầu chú ý; kích thước ẩn tổng cộng là attention_head_dim * num_attention_heads.
  • num_attention_heads (int, mặc định là 18) — Số lượng đầu chú ý.
  • intermediate_size (int, mặc định là 12288) — Kích thước ẩn của mạng feed-forward được sử dụng bởi MLP SwiGLU bên trong mỗi khối.
  • adaln_dim (int, mặc định là 512) — Kích thước của vector điều kiện được sử dụng bởi các điều biến AdaLN.
  • llm_features_dim (int, mặc định là 53248) — Số chiều của các đặc trưng văn bản cho từng token được đưa vào mô hình (thường là sự kết hợp của các trạng thái ẩn từ nhiều lớp của bộ mã hóa văn bản).
  • rope_theta (int, mặc định là 5_000_000) — Cơ số được sử dụng bởi nhúng vị trí quay đa trục.
  • mrope_section (tuple[int, int, int], mặc định là (24, 20, 20)) — Số lượng tần số được phân bổ cho mỗi trục (t, h, w) của MRoPE.
  • norm_eps (float, mặc định là 1e-5) — Epsilon được sử dụng bởi các module RMSNorm bên trong các khối transformer.

Xương sống transformer flow-matching được sử dụng bởi pipeline Ideogram 4.

Transformer hoạt động trên một chuỗi đóng gói đơn lẻ chứa cả các token điều kiện văn bản (được tạo ra bởi một bộ mã hóa văn bản đa phương thức) và các latent ảnh đã được chia patch. Các chỉ báo theo từng token phân biệt hai vai trò này, và một mặt nạ chú ý dạng khối chéo được suy ra từ segment_ids hạn chế mỗi mẫu chỉ chú ý đến chính nó trong một lô đóng gói.

forward

< >

( hidden_states: Tensortimestep: Tensorencoder_hidden_states: Tensorposition_ids: Tensorsegment_ids: Tensorindicator: Tensorattention_kwargs: dict | None = Nonereturn_dict: bool = True )

Tham số

  • hidden_states (torch.Tensor có hình dạng (batch_size, sequence_length, in_channels)) — Chuỗi đã đóng gói của các token ảnh nhiễu đã được chia patch. Các vị trí không phải ảnh sẽ được che (mask) bên trong.
  • timestep (torch.Tensor có shape (batch_size,) hoặc (batch_size, sequence_length)) — Thời gian flow-matching trong [0, 1] (0 là nhiễu thuần túy, 1 là dữ liệu sạch).
  • encoder_hidden_states (torch.Tensor có hình dạng (batch_size, sequence_length, llm_features_dim)) — Các đặc trưng điều kiện văn bản theo từng token. Các vị trí không phải văn bản sẽ được che đi bên trong.
  • position_ids (torch.Tensor có hình dạng (batch_size, sequence_length, 3)) — tọa độ (t, h, w) được sử dụng bởi RoPE đa trục.
  • segment_ids (torch.Tensor có hình dạng (batch_size, sequence_length)) — ID mẫu cho từng token trong một batch đã đóng gói. Các vị trí cùng chia sẻ một segment_id sẽ chú ý đến nhau.
  • indicator (torch.Tensor có hình dạng (batch_size, sequence_length)) — Vai trò cho từng token: LLM_TOKEN_INDICATOR (văn bản) hoặc OUTPUT_IMAGE_INDICATOR (ảnh).
  • attention_kwargs (dict, tùy chọn) — Một từ điển kwargs được truyền đến bộ xử lý attention. Mục "scale" dùng để nhân trọng số LoRA (khi backend PEFT đang hoạt động).
  • return_dict (bool, tùy chọn, mặc định là True) — Có nên trả về một Transformer2DModelOutput thay vì một tuple thông thường hay không.

Dự đoán vận tốc flow-matching cho các vị trí image-token của chuỗi đã đóng gói.

Update on GitHub