---
title: oobleck
---

<div class="python-reference">
<a id="fastvideo.configs.models.vaes.oobleck-classes"></a>
<a id="fastvideo.configs.models.vaes.oobleck"></a>
<p>Config for the Stable Audio Open 1.0 "Oobleck" VAE.</p>
<p>Mirrors the per-channel <code>vae/config.json</code> shipped in
<code>stabilityai/stable-audio-open-1.0</code> 1:1 (see
<code>fastvideo/models/vaes/oobleck.py::OobleckVAE.from_pretrained</code>, which
constructs the VAE from these fields). Inherits the FastVideo VAEConfig
base so the standard <code>load_encoder</code> / <code>load_decoder</code> flags + tiling
knobs apply.</p>
<p>Naming: the VAE architecture is officially "Oobleck" (per Stability
AI's stable-audio-tools) — the surrounding model family is "Stable
Audio Open 1.0". This config is named after the architecture
(<code>OobleckVAEConfig</code>) since the same VAE is shared across Stable Audio
checkpoints; downstream pipelines reference it by its arch name, not
by a host-pipeline name.</p>
<h2 id="fastvideo.configs.models.vaes.oobleck.VAEArchConfig"><code>fastvideo.configs.models.vaes.oobleck.VAEArchConfig</code></h2>
<pre class="doc-signature"><code>VAEArchConfig(stacked_params_mapping: list&#91;tuple&#91;str, str, str&#93;&#93; = list(), scaling_factor: float | torch.Tensor = 0, temporal_compression_ratio: int = 4, spatial_compression_ratio: int = 8)</code></pre>


<h2 id="fastvideo.configs.models.vaes.oobleck.VAEConfig"><code>fastvideo.configs.models.vaes.oobleck.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.configs.models.vaes.oobleck.VAEConfig.add_cli_args"><code>fastvideo.configs.models.vaes.oobleck.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.configs.models.vaes.oobleck.VAEConfig.from_cli_args"><code>fastvideo.configs.models.vaes.oobleck.VAEConfig.from_cli_args</code></h3>
<pre class="doc-signature"><code>from_cli_args(args: argparse.Namespace) -&gt; VAEConfig</code></pre>

<h2 id="fastvideo.configs.models.vaes.oobleck.OobleckVAEArchConfig"><code>fastvideo.configs.models.vaes.oobleck.OobleckVAEArchConfig</code></h2>
<pre class="doc-signature"><code>OobleckVAEArchConfig(stacked_params_mapping: list&#91;tuple&#91;str, str, str&#93;&#93; = list(), scaling_factor: float | torch.Tensor = 0, temporal_compression_ratio: int = 4, spatial_compression_ratio: int = 8, architectures: list&#91;str&#93; = (lambda: &#91;&#x27;AutoencoderOobleck&#x27;&#93;)(), encoder_hidden_size: int = 128, downsampling_ratios: list&#91;int&#93; = (lambda: &#91;2, 4, 4, 8, 8&#93;)(), channel_multiples: list&#91;int&#93; = (lambda: &#91;1, 2, 4, 8, 16&#93;)(), decoder_channels: int = 128, decoder_input_channels: int = 64, audio_channels: int = 2, sampling_rate: int = 44100)</code></pre>
<p>Stable Audio Open 1.0 VAE architecture constants.</p>

<details><summary>Source</summary><pre><code>@dataclass
class OobleckVAEArchConfig(VAEArchConfig):
    &quot;&quot;&quot;Stable Audio Open 1.0 VAE architecture constants.&quot;&quot;&quot;

    architectures: list&#91;str&#93; = field(default_factory=lambda: &#91;&quot;AutoencoderOobleck&quot;&#93;)

    # From stabilityai/stable-audio-open-1.0/vae/config.json.
    encoder_hidden_size: int = 128
    downsampling_ratios: list&#91;int&#93; = field(default_factory=lambda: &#91;2, 4, 4, 8, 8&#93;)
    channel_multiples: list&#91;int&#93; = field(default_factory=lambda: &#91;1, 2, 4, 8, 16&#93;)
    decoder_channels: int = 128
    decoder_input_channels: int = 64
    audio_channels: int = 2  # stereo
    sampling_rate: int = 44100</code></pre></details>
<h2 id="fastvideo.configs.models.vaes.oobleck.OobleckVAEConfig"><code>fastvideo.configs.models.vaes.oobleck.OobleckVAEConfig</code></h2>
<pre class="doc-signature"><code>OobleckVAEConfig(arch_config: VAEArchConfig = OobleckVAEArchConfig(), 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 = False, use_temporal_tiling: bool = False, use_parallel_tiling: bool = False, use_temporal_scaling_frames: bool = True, pretrained_path: str = &#x27;stabilityai/stable-audio-open-1.0&#x27;, pretrained_subfolder: str = &#x27;vae&#x27;, pretrained_dtype: str = &#x27;float16&#x27;, *, _resolved_attention_backend: AttentionBackendEnum | None = None)</code></pre>
<p>FastVideo VAE config wrapping the Oobleck arch.</p>
<p>Audio VAEs don't use the temporal/spatial tiling defaults that the
base VAEConfig is shaped for (those exist for video VAEs); they are
retained but irrelevant for audio.</p>

<details><summary>Source</summary><pre><code>@dataclass
class OobleckVAEConfig(VAEConfig):
    &quot;&quot;&quot;FastVideo VAE config wrapping the Oobleck arch.

    Audio VAEs don&#x27;t use the temporal/spatial tiling defaults that the
    base VAEConfig is shaped for (those exist for video VAEs); they are
    retained but irrelevant for audio.
    &quot;&quot;&quot;

    arch_config: VAEArchConfig = field(default_factory=OobleckVAEArchConfig)

    # Audio is 1-D, so the video-VAE tiling defaults are inert. Disable
    # them so callers don&#x27;t accidentally trip on tile-stride math built
    # for spatial tensors.
    use_tiling: bool = False
    use_temporal_tiling: bool = False
    use_parallel_tiling: bool = False

    # Where the FastVideo loader / pipeline-glue wrapper should fetch
    # weights from when no local path is supplied. Gated repo — caller&#x27;s
    # HF token must have accepted terms on
    # https://huggingface.co/stabilityai/stable-audio-open-1.0.
    pretrained_path: str = &quot;stabilityai/stable-audio-open-1.0&quot;
    pretrained_subfolder: str = &quot;vae&quot;
    # Match official `stable_audio_tools`: VAE runs in fp16 (the
    # `pretransform.model_half` path in
    # `stable_audio_tools/models/pretransforms.py`).
    pretrained_dtype: str = &quot;float16&quot;</code></pre></details>
</div>
