Diffusers documentation

AutoencoderSAME

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

AutoencoderSAME

Autoencoder SAME (Semantically-Aligned Music Encoder) được Stable Audio 3 sử dụng để nén các dạng sóng âm thanh stereo thành một chuỗi latent gọn gàng và tái tạo chúng.

Bộ mã hóa xếp chồng các module SAMETransformerResamplingBlock, mỗi module nhóm một số lượng cố định các khung patch âm thanh và tạo ra một token đầu ra có thể học được thông qua một transformer sai phân. Bộ giải mã đảo ngược quá trình này, mở rộng mỗi token ẩn trở lại thành một patch các khung âm thanh.

Một nút thắt cổ chai soft-norm (SoftNormBottleneck) chuẩn hóa các biến ẩn trước và sau mô hình khuếch tán, cung cấp động lực huấn luyện ổn định.

AutoencoderSAME

lớp diffusers.AutoencoderSAME

< >

( audio_channels: int = 2patch_size: int = 256encoder_channels: int = 128encoder_c_mults: typing.List[int] = (6,)encoder_strides: typing.List[int] = (16,)encoder_transformer_depths: typing.List[int] = (6,)latent_dim: int = 256use_differential_attention: bool = Truedim_heads: int = 64ff_mult: int = 3sliding_window: int = 1encoder_sinusoidal_blocks: typing.List[int] = (0,)decoder_sinusoidal_blocks: typing.List[int] = (0,)sampling_rate: int = 44100 )

Tham số

  • audio_channels — Số kênh âm thanh (2 cho âm thanh stereo).
  • patch_size — Kích thước patch không chồng chéo được áp dụng trước bộ mã hóa TRB (và đảo ngược sau bộ giải mã TRB). Đóng góp patch_size × vào tỷ lệ hạ mẫu tổng. Giá trị sản xuất: 256.
  • encoder_channels — Số kênh cơ bản cho TRB. 128 cho SAME-S, 256 cho SAME-L.
  • encoder_c_mults — Hệ số nhân kênh cho mỗi cấp TRB (một mục cho mỗi TRB). Cả SAME-S và SAME-L đều sử dụng (6,) — một TRB duy nhất có chiều ẩn là encoder_channels × 6.
  • encoder_strides — Bước nhảy (stride) hạ mẫu/tăng mẫu cho mỗi cấp TRB. Cả SAME-S và SAME-L đều dùng (16,) — một TRB với bước nhảy 16.
  • encoder_transformer_depths — Số lớp Transformer cho mỗi cấp TRB. 6 cho SAME-S, 12 cho SAME-L.
  • latent_dim — Chiều của không gian ẩn. 256 cho cả hai biến thể.
  • use_differential_attention — Nếu True, sử dụng differential attention bên trong mỗi khối transformer TRB (mặc định bật cho SAME-S/L).
  • dim_heads — Kích thước chiều của đầu chú ý (attention head). 64 cho SAME-S/L trong môi trường sản xuất.
  • ff_mult — Hệ số mở rộng feed-forward của SwiGLU.
  • sliding_window — Nửa chiều rộng cửa sổ trượt (theo latent) cho chú ý mặt nạ dải. SAME-S/L trong môi trường sản xuất sử dụng 1.
  • encoder_sinusoidal_blocks — Số lượng lớp transformer cuối cùng trong mỗi TRB sử dụng cổng FFN sin trong encoder (SAME-L: (0,)).
  • decoder_sinusoidal_blocks — Số lượng lớp transformer cuối cùng trong mỗi TRB sử dụng gating FFN sin trong bộ giải mã (SAME-L: (8,)).
  • sampling_rate — Tần số lấy mẫu âm thanh tính bằng Hz (ví dụ: 44100).

Autoencoder Semantically-Aligned Music Encoder (SAME) từ Stable Audio 3 (arXiv 2605.17991).

Mô hình bao gồm:

  • Nhúng patch — định hình lại âm thanh stereo thành các patch không chồng lấn, đánh đổi thời gian lấy kênh (patch_size × hạ mẫu, không có tham số học được).
  • Stack TRB của Encoder — các khối SAMETransformerResamplingBlock tiếp tục giảm mẫu với hệ số ∏(encoder_strides).
  • Soft-norm bottleneck — chuẩn hóa affine có thể học với std chạy.
  • Stack TRB của bộ giải mã — phản chiếu bộ mã hóa theo chiều ngược lại.
  • Unpatch — định hình lại các kênh về chiều thời gian.

Tỷ lệ giảm mẫu tổng: patch_size × ∏(encoder_strides).

Các siêu tham số mặc định khớp với checkpoint SAME-S (stabilityai/SAME-S). Để nạp SAME-L (stabilityai/SAME-L, được sử dụng bởi SA3 Medium), hãy truyền encoder_channels=256, encoder_transformer_depths=(12,).

# SAME-S (108 M params, used by SA3 small models) model = AutoencoderSAME() # default values

# SAME-L (852 M params, used by SA3 Medium) model = AutoencoderSAME(encoder_channels=256,
encoder_transformer_depths=(12,))

encode

< >

( sample: Tensorreturn_dict: bool = True )

Tham số

  • sample — tensor dạng sóng (B, audio_channels, T).
  • return_dict — Nếu True, trả về một AutoencoderSAMEOutput.

Mã hóa âm thanh stereo thành các biến ẩn.

decode

< >

( latents: Tensorreturn_dict: bool = True )

Tham số

  • latents — tensor ẩn có dạng (B, latent_dim, T_latent).
  • return_dict — Nếu True, trả về một AutoencoderSAMEDecoderOutput.

Giải mã các biến ẩn (latents) trở lại âm thanh stereo.

forward

< >

( sample: Tensorreturn_dict: bool = True )

Tham số

  • sample — tensor dạng sóng (B, audio_channels, T).
  • return_dict — Nếu True, trả về một AutoencoderSAMEDecoderOutput.

Mã hóa và giải mã ngay lập tức sample (tái tạo).

SAMETransformerResamplingBlock

lớp diffusers.models.autoencoders.autoencoder_same.SAMETransformerResamplingBlock

< >

( in_channels: intout_channels: intstride: intmode: str = 'encoder'transformer_depth: int = 3dim_heads: int = 128use_differential: bool = Trueff_mult: int = 3sliding_window: int = 1sinusoidal_blocks: int = 0 )

Tham số

  • in_channels — Số lượng kênh đầu vào.
  • out_channels — Số lượng kênh đầu ra.
  • stride — Hệ số lấy mẫu xuống/lên.
  • mode — "encoder" hoặc "decoder".
  • transformer_depth — Số lượng lớp TransformerBlock.
  • dim_heads — Kích thước đầu chú ý.
  • use_differential — Xác định có sử dụng differential attention hay không.
  • ff_mult — Hệ số mở rộng mạng feed-forward.
  • sliding_window — Nửa chiều rộng cửa sổ trượt trong latents (nửa chiều rộng dải là sliding_window * (stride + 1)).
  • sinusoidal_blocks — Số lượng lớp transformer cuối cùng sử dụng gating FFN sin thay vì SiLU.

Khối xây dựng cốt lõi của SAME.

Chế độ Encoder (bước S): Nhóm S khung đầu vào liên tiếp thành một phân đoạn, thêm một embedding đầu vào có thể học được duy nhất, sau đó chạy D tầng transformer trên toàn bộ chuỗi phân đoạn đã được làm phẳng và chỉ giữ lại embedding đầu ra → giảm mẫu xuống S lần.

Chế độ giải mã (bước S): Nhóm 1 khung đầu vào với S embedding đầu vào có thể học được, chạy D lớp transformer trên toàn bộ chuỗi đã được làm phẳng, sau đó giữ lại S embedding đầu ra → tăng mẫu lên S lần.

Attention sử dụng mặt nạ dải cửa sổ trượt chồng lấn trên chuỗi phân đoạn đã được làm phẳng: mỗi token chú ý đến sliding_window * (stride + 1) hàng xóm ở mỗi phía. RoPE được tính trên toàn bộ độ dài chuỗi. Điều này khớp chính xác với bản triển khai tham chiếu (một khối không chồng lấn duy nhất chỉ khớp với một phân đoạn).

AutoencoderSAMEOutput

lớp diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEOutput

< >

( latents: Tensor )

Đầu ra của AutoencoderSAME.encode().

AutoencoderSAMEDecoderOutput

class diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEDecoderOutput

< >

( sample: Tensor )

Đầu ra của AutoencoderSAME.decode().

Update on GitHub