Skip to content
FastVideo
Esc
↑↓navigate↵open⌘Jpreview
On this page

oobleck

Config for the Stable Audio Open 1.0 "Oobleck" VAE.

Mirrors the per-channel vae/config.json shipped in stabilityai/stable-audio-open-1.0 1:1 (see fastvideo/models/vaes/oobleck.py::OobleckVAE.from_pretrained, which constructs the VAE from these fields). Inherits the FastVideo VAEConfig base so the standard load_encoder / load_decoder flags + tiling knobs apply.

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 (OobleckVAEConfig) since the same VAE is shared across Stable Audio checkpoints; downstream pipelines reference it by its arch name, not by a host-pipeline name.

fastvideo.configs.models.vaes.oobleck.VAEArchConfig

VAEArchConfig(stacked_params_mapping: list[tuple[str, str, str]] = list(), scaling_factor: float | torch.Tensor = 0, temporal_compression_ratio: int = 4, spatial_compression_ratio: int = 8)

fastvideo.configs.models.vaes.oobleck.VAEConfig

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)

fastvideo.configs.models.vaes.oobleck.VAEConfig.add_cli_args

add_cli_args(parser: Any, prefix: str = 'vae-config') -> Any

Add CLI arguments for VAEConfig fields

fastvideo.configs.models.vaes.oobleck.VAEConfig.from_cli_args

from_cli_args(args: argparse.Namespace) -> VAEConfig

fastvideo.configs.models.vaes.oobleck.OobleckVAEArchConfig

OobleckVAEArchConfig(stacked_params_mapping: list[tuple[str, str, str]] = list(), scaling_factor: float | torch.Tensor = 0, temporal_compression_ratio: int = 4, spatial_compression_ratio: int = 8, architectures: list[str] = (lambda: ['AutoencoderOobleck'])(), encoder_hidden_size: int = 128, downsampling_ratios: list[int] = (lambda: [2, 4, 4, 8, 8])(), channel_multiples: list[int] = (lambda: [1, 2, 4, 8, 16])(), decoder_channels: int = 128, decoder_input_channels: int = 64, audio_channels: int = 2, sampling_rate: int = 44100)

Stable Audio Open 1.0 VAE architecture constants.

Source
@dataclass
class OobleckVAEArchConfig(VAEArchConfig):
    """Stable Audio Open 1.0 VAE architecture constants."""
architectures: list[str] = field(default_factory=lambda: ["AutoencoderOobleck"])

# From stabilityai/stable-audio-open-1.0/vae/config.json.
encoder_hidden_size: int = 128
downsampling_ratios: list[int] = field(default_factory=lambda: [2, 4, 4, 8, 8])
channel_multiples: list[int] = field(default_factory=lambda: [1, 2, 4, 8, 16])
decoder_channels: int = 128
decoder_input_channels: int = 64
audio_channels: int = 2  # stereo
sampling_rate: int = 44100</code></pre></details>

fastvideo.configs.models.vaes.oobleck.OobleckVAEConfig

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 = 'stabilityai/stable-audio-open-1.0', pretrained_subfolder: str = 'vae', pretrained_dtype: str = 'float16', *, _resolved_attention_backend: AttentionBackendEnum | None = None)

FastVideo VAE config wrapping the Oobleck arch.

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.

Source
@dataclass
class OobleckVAEConfig(VAEConfig):
    """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>

Was this page helpful?