Diffusers documentation

Tiny AutoEncoder

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

Tiny AutoEncoder

Tiny AutoEncoder for Stable Diffusion (TAESD) được giới thiệu trong madebyollin/taesd bởi Ollin Boer Bohan. Đây là phiên bản VAE thu nhỏ, được chưng cất từ Stable Diffusion, có khả năng giải mã các latent trong StableDiffusionPipeline hoặc StableDiffusionXLPipeline gần như tức thì.

Để sử dụng với Stable Diffusion v-2.1:

import torch
from diffusers import DiffusionPipeline, AutoencoderTiny

pipe = DiffusionPipeline.from_pretrained(
    "stabilityai/stable-diffusion-2-1-base", dtype=torch.float16
)
pipe.vae = AutoencoderTiny.from_pretrained("madebyollin/taesd", dtype=torch.float16)
pipe = pipe.to("cuda")  # or "mps", "xpu", "cpu"

prompt = "slice of delicious New York-style berry cheesecake"
image = pipe(prompt, num_inference_steps=25).images[0]
image

Để sử dụng với Stable Diffusion XL 1.0

import torch
from diffusers import DiffusionPipeline, AutoencoderTiny

pipe = DiffusionPipeline.from_pretrained(
    "stabilityai/stable-diffusion-xl-base-1.0", dtype=torch.float16
)
pipe.vae = AutoencoderTiny.from_pretrained("madebyollin/taesdxl", dtype=torch.float16)
pipe = pipe.to("cuda")  # or "mps", "xpu", "cpu"

prompt = "slice of delicious New York-style berry cheesecake"
image = pipe(prompt, num_inference_steps=25).images[0]
image

AutoencoderTiny

lớp diffusers.AutoencoderTiny

< >

( in_channels: int = 3out_channels: int = 3encoder_block_out_channels: tuple = (64, 64, 64, 64)decoder_block_out_channels: tuple = (64, 64, 64, 64)act_fn: str = 'relu'upsample_fn: str = 'nearest'latent_channels: int = 4upsampling_scaling_factor: int = 2num_encoder_blocks: tuple = (1, 3, 3, 3)num_decoder_blocks: tuple = (3, 3, 3, 1)latent_magnitude: int = 3latent_shift: float = 0.5force_upcast: bool = Falsescaling_factor: float = 1.0shift_factor: float = 0.0 )

Tham số

  • in_channels (int, tùy chọn, mặc định là 3) — Số kênh trong ảnh đầu vào.
  • out_channels (int, tùy chọn, mặc định là 3) — Số lượng kênh trong đầu ra.
  • encoder_block_out_channels (tuple[int], tùy chọn, mặc định là (64, 64, 64, 64)) — bộ tuple các số nguyên đại diện cho số lượng kênh đầu ra của mỗi khối encoder. Độ dài của bộ tuple phải bằng với số lượng các khối encoder.
  • decoder_block_out_channels (tuple[int], tùy chọn, mặc định là (64, 64, 64, 64)) — bộ tuple các số nguyên đại diện cho số lượng kênh đầu ra của mỗi khối decoder. Độ dài của bộ tuple phải bằng với số lượng khối decoder.
  • act_fn (str, tùy chọn, mặc định là "relu") — Hàm kích hoạt được sử dụng xuyên suốt mô hình.
  • latent_channels (int, tùy chọn, mặc định là 4) — Số lượng kênh trong biểu diễn ẩn. Không gian ẩn đóng vai trò là biểu diễn nén của ảnh đầu vào.
  • upsampling_scaling_factor (int, tùy chọn, mặc định là 2) — Hệ số mở rộng cho quá trình upsampling trong bộ giải mã. Nó xác định kích thước của ảnh đầu ra trong quá trình upsampling.
  • num_encoder_blocks (tuple[int], tuỳ chọn, mặc định là (1, 3, 3, 3)) — bộ tuple các số nguyên đại diện cho số lượng khối encoder ở mỗi giai đoạn của quá trình mã hóa. Độ dài của tuple phải bằng với số giai đoạn trong encoder. Mỗi giai đoạn có một số lượng khối encoder khác nhau.
  • num_decoder_blocks (tuple[int], tuỳ chọn, mặc định là (3, 3, 3, 1)) — bộ tuple các số nguyên đại diện cho số lượng khối decoder ở mỗi giai đoạn của quá trình giải mã. Độ dài của tuple phải bằng với số giai đoạn trong decoder. Mỗi giai đoạn có một số lượng khối decoder khác nhau.
  • latent_magnitude (float, tùy chọn, mặc định là 3.0) — Độ lớn của biểu diễn ẩn. Tham số này điều chỉnh các giá trị của biểu diễn ẩn để kiểm soát mức độ bảo toàn thông tin.
  • latent_shift (float, tùy chọn, mặc định là 0.5) — Lượng dịch chuyển áp dụng cho biểu diễn ẩn. Tham số này kiểm soát tâm của không gian ẩn.
  • scaling_factor (float, tùy chọn, mặc định là 1.0) — Độ lệch chuẩn theo từng thành phần của không gian ẩn đã được huấn luyện, được tính toán bằng cách sử dụng lô đầu tiên của tập dữ liệu huấn luyện. Giá trị này được dùng để chuẩn hóa không gian ẩn sao cho có phương sai bằng đơn vị khi huấn luyện mô hình khuếch tán. Các ẩn (latents) được chuẩn hóa bằng công thức z = z * scaling_factor trước khi được truyền vào mô hình khuếch tán. Khi giải mã, các ẩn được đưa về thang đo gốc bằng công thức: z = 1 / scaling_factor * z. Để biết thêm chi tiết, hãy tham khảo các mục 4.3.2 và D.1 của bài báo High-Resolution Image Synthesis with Latent Diffusion Models. Tuy nhiên, đối với Autoencoder này, không có hệ số chuẩn hóa nào được sử dụng, do đó giá trị mặc định là 1.0.
  • force_upcast (bool, tùy chọn, mặc định là False) — Nếu được bật, tham số này sẽ buộc VAE chạy ở float32 cho các pipeline có độ phân giải ảnh cao, chẳng hạn như SD-XL. VAE có thể được tinh chỉnh / huấn luyện ở dải giá trị thấp hơn mà không mất quá nhiều độ chính xác, trong trường hợp đó force_upcast có thể được đặt thành False (xem AutoEncoder thân thiện với fp16 này).

Một mô hình VAE được chưng cất nhỏ gọn để mã hóa ảnh thành các biến ẩn và giải mã các biểu diễn ẩn thành ảnh.

AutoencoderTiny là một lớp bọc quanh bản triển khai gốc của TAESD.

Mô hình này kế thừa từ ModelMixin. Xem tài liệu của lớp cha để biết các phương thức chung được triển khai cho tất cả các mô hình (chẳng hạn như tải xuống hoặc lưu).

forward

< >

( sample: Tensorreturn_dict: bool = True ) → DecoderOutput or tuple

Tham số

  • sample (torch.Tensor) — Mẫu đầu vào.
  • return_dict (bool, tùy chọn, mặc định là True) — Có nên trả về một DecoderOutput thay vì một tuple thông thường hay không.

Trả về

DecoderOutput hoặc tuple

Nếu return_dict là True, một DecoderOutput sẽ được trả về, ngược lại một tuple thông thường sẽ được trả về.

scale_latents

< >

( x: Tensor )

raw latents -> [0, 1]

unscale_latents

< >

( x: Tensor )

[0, 1] -> latents thô

AutoencoderTinyOutput

lớp diffusers.models.autoencoders.autoencoder_tiny.AutoencoderTinyOutput

< >

( latents: Tensor )

Tham số

  • latents (torch.Tensor) — Đầu ra đã mã hóa của Encoder.

Đầu ra của phương pháp mã hóa của AutoencoderTiny.

Update on GitHub