---
title: autoencoder_kl
---

<div class="python-reference">
<a id="fastvideo.models.vaes.autoencoder_kl-classes"></a>
<a id="fastvideo.models.vaes.autoencoder_kl"></a>

<h2 id="fastvideo.models.vaes.autoencoder_kl.VAEConfig"><code>fastvideo.models.vaes.autoencoder_kl.VAEConfig</code></h2>
<pre class="doc-signature"><code>VAEConfig(arch_config: VAEArchConfig = VAEArchConfig(), load_encoder: bool = True, load_decoder: bool = True, tile_sample_min_height: int = 256, tile_sample_min_width: int = 256, tile_sample_min_num_frames: int = 16, tile_sample_stride_height: int = 192, tile_sample_stride_width: int = 192, tile_sample_stride_num_frames: int = 12, blend_num_frames: int = 0, use_tiling: bool = True, use_temporal_tiling: bool = True, use_parallel_tiling: bool = True, use_temporal_scaling_frames: bool = True, *, _resolved_attention_backend: AttentionBackendEnum | None = None)</code></pre>


<h3 id="fastvideo.models.vaes.autoencoder_kl.VAEConfig.add_cli_args"><code>fastvideo.models.vaes.autoencoder_kl.VAEConfig.add_cli_args</code></h3>
<pre class="doc-signature"><code>add_cli_args(parser: Any, prefix: str = &#x27;vae-config&#x27;) -&gt; Any</code></pre>
<p>Add CLI arguments for VAEConfig fields</p>
<h3 id="fastvideo.models.vaes.autoencoder_kl.VAEConfig.from_cli_args"><code>fastvideo.models.vaes.autoencoder_kl.VAEConfig.from_cli_args</code></h3>
<pre class="doc-signature"><code>from_cli_args(args: argparse.Namespace) -&gt; VAEConfig</code></pre>

<h2 id="fastvideo.models.vaes.autoencoder_kl.AutoencoderKL"><code>fastvideo.models.vaes.autoencoder_kl.AutoencoderKL</code></h2>
<pre class="doc-signature"><code>AutoencoderKL(config: VAEConfig, **kwargs: Any)</code></pre>


<details><summary>Source</summary><pre><code>class AutoencoderKL(_DiffusersAutoencoderKL):

    def __init__(self, config: VAEConfig, **kwargs: Any) -&gt; None:
        self.fastvideo_config = config
        arch = config.arch_config

        down_block_types = arch.down_block_types
        if isinstance(down_block_types, list):
            down_block_types = tuple(down_block_types)
        up_block_types = arch.up_block_types
        if isinstance(up_block_types, list):
            up_block_types = tuple(up_block_types)
        block_out_channels = arch.block_out_channels
        if isinstance(block_out_channels, list):
            block_out_channels = tuple(block_out_channels)

        latents_mean = arch.latents_mean
        if isinstance(latents_mean, list):
            latents_mean = tuple(latents_mean)
        latents_std = arch.latents_std
        if isinstance(latents_std, list):
            latents_std = tuple(latents_std)

        super().__init__(
            in_channels=arch.in_channels,
            out_channels=arch.out_channels,
            down_block_types=down_block_types,
            up_block_types=up_block_types,
            block_out_channels=block_out_channels,
            layers_per_block=arch.layers_per_block,
            act_fn=arch.act_fn,
            latent_channels=arch.latent_channels,
            norm_num_groups=arch.norm_num_groups,
            sample_size=arch.sample_size,
            scaling_factor=arch.scaling_factor,
            shift_factor=arch.shift_factor,
            latents_mean=latents_mean,
            latents_std=latents_std,
            force_upcast=arch.force_upcast,
            use_quant_conv=arch.use_quant_conv,
            use_post_quant_conv=arch.use_post_quant_conv,
            mid_block_add_attention=arch.mid_block_add_attention,
            **kwargs,
        )</code></pre></details>
</div>
