---
title: stable_audio_pipeline
---

<div class="python-reference">
<a id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline-classes"></a>
<a id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline-functions"></a>
<a id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioPipeline-functions"></a>
<a id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline"></a>
<p>Stable Audio Open 1.0 pipeline (T2A + A2A + RePaint inpainting).</p>
<p>Components are loaded via the standard
<code>ComposedPipelineBase.load_modules</code> against the FastVideo-curated
Diffusers-format repo <code>FastVideo/stable-audio-open-1.0-Diffusers</code>
(produced by
<code>scripts/checkpoint_conversion/stable_audio_to_diffusers.py</code>). The DiT
is a <code>BaseDiT</code> subclass loaded by <code>TransformerLoader</code>; the VAE is
loaded by <code>VAELoader</code>; the multi-conditioner (T5 + NumberConditioners)
is loaded by <code>ConditionerLoader</code> (a Stable Audio-specific addition).</p>
<p>Stages:</p>
<pre><code>InputValidationStage
  → StableAudioConditioningStage      (T5 + NumberConditioner -&gt; cross-attn + global cond, with CFG)
  → StableAudioLatentPreparationStage (initial Gaussian noise; encodes A2A / inpaint refs)
  → StableAudioDenoisingStage         (k-diffusion `dpmpp-3m-sde` over the DiT)
  → StableAudioDecodingStage          (OobleckVAE -&gt; waveform)
</code></pre>
<h2 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.FastVideoArgs"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.FastVideoArgs</code></h2>
<pre class="doc-signature"><code>FastVideoArgs(model_path: str, mode: ExecutionMode = ExecutionMode.INFERENCE, workload_type: WorkloadType = WorkloadType.T2V, distributed_executor_backend: str = &#x27;mp&#x27;, enable_streaming_ipc_queues: bool = False, ray_placement_group: PlacementGroup | None = None, ray_runtime_env: RuntimeEnv | None = None, inference_mode: bool = True, trust_remote_code: bool = False, revision: str | None = None, num_gpus: int = 1, tp_size: int = -1, sp_size: int = -1, hsdp_replicate_dim: int = 1, hsdp_shard_dim: int = -1, dist_timeout: int | None = None, pipeline_config: PipelineConfig = PipelineConfig(), preprocess_config: PreprocessConfig | None = None, lora_path: str | None = None, lora_nickname: str = &#x27;default&#x27;, lora_strength: float = 1.0, lora_target_modules: list&#91;str&#93; | None = None, output_type: str = &#x27;pil&#x27;, attention_backend: str | None = None, dit_cpu_offload: bool = True, use_fsdp_inference: bool = False, dit_layerwise_offload: bool = True, text_encoder_cpu_offload: bool = True, image_encoder_cpu_offload: bool = True, vae_cpu_offload: bool = True, pin_cpu_memory: bool = True, h3_sequential_load: bool | None = None, h3_encoder_split: bool | None = None, h3_encoder_nodes: int = -1, h3_encoder_workers: int = 0, video_decode_backend: str = &#x27;h3-vae&#x27;, taeh3_checkpoint: str | None = None, taeh3_chunk_size: int = 5, h3_vae_nvfp4_decoder: str | None = None, lazy_module_load: bool | None = None, vae_parallel_decode: bool = False, vae_parallel_encode: bool = False, vae_parallel_decode_strategy: str | None = None, enable_torch_compile: bool = False, regional_compile: bool = False, enable_torch_compile_text_encoder: bool = False, enable_torch_compile_vae: bool = False, enable_torch_compile_audio_vae: bool = False, torch_compile_kwargs: dict&#91;str, Any&#93; = dict(), torch_compile_kwargs_dit: dict&#91;str, Any&#93; = dict(), torch_compile_kwargs_text_encoder: dict&#91;str, Any&#93; = dict(), torch_compile_kwargs_vae: dict&#91;str, Any&#93; = dict(), torch_compile_kwargs_audio_vae: dict&#91;str, Any&#93; = dict(), inference_torch_compile: bool = False, h3_vsa_fp4: dict&#91;str, Any&#93; = dict(), disable_autocast: bool = False, VSA_sparsity: float | None = None, VSA_tile_size: int | None = None, moba_config_path: str | None = None, moba_config: dict&#91;str, Any&#93; = dict(), master_port: int | None = None, enable_stage_verification: bool = True, prompt_txt: str | None = None, ltx2_vae_tiling: bool | None = None, ltx2_vae_spatial_tile_size_in_pixels: int | None = None, ltx2_vae_spatial_tile_overlap_in_pixels: int | None = None, ltx2_vae_temporal_tile_size_in_frames: int | None = None, ltx2_vae_temporal_tile_overlap_in_frames: int | None = None, ltx2_initial_latent_path: str | None = None, ltx2_audio_latent_path: str | None = None, refine_enabled: bool | None = None, refine_upsampler_path: str | None = None, refine_transformer_path: str | None = None, refine_lora_path: str | None = None, refine_num_inference_steps: int | None = None, refine_guidance_scale: float | None = None, refine_add_noise: bool | None = None, refine_noise_path: str | None = None, refine_audio_noise_path: str | None = None, ltx2_refine_enabled: bool = False, ltx2_refine_upsampler_path: str | None = None, ltx2_refine_transformer_path: str | None = None, ltx2_refine_lora_path: str | None = None, ltx2_refine_num_inference_steps: int = 3, ltx2_refine_guidance_scale: float = 1.0, ltx2_refine_add_noise: bool = True, ltx2_refine_noise_path: str | None = None, ltx2_refine_audio_noise_path: str | None = None, ltx2_legacy_native_noise_order: bool = False, ltx2_use_distilled_sigmas: bool = True, model_paths: dict&#91;str, str&#93; = dict(), model_loaded: dict&#91;str, bool&#93; = (lambda: &#123;&#x27;transformer&#x27;: True, &#x27;vae&#x27;: True, &#x27;upsampler&#x27;: True&#125;)(), override_text_encoder_safetensors: str | None = None, override_text_encoder_quant: QuantizationMethods = None, transformer_quant: Any | None = None, override_transformer_cls_name: str | None = None, init_weights_from_safetensors: str = &#x27;&#x27;, init_weights_from_safetensors_2: str = &#x27;&#x27;, override_pipeline_cls_name: str | None = None, boundary_ratio: float | None = 0.875)</code></pre>


<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.FastVideoArgs.is_output_rank"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.FastVideoArgs.is_output_rank</code></h3>
<pre class="doc-signature"><code>is_output_rank: bool</code></pre>
<p>Whether this process may materialize user-facing outputs.</p>
<p>This is runtime state assigned by an SPMD executor, not a public
configuration field, so dataclass serialization and typed config
parsing deliberately ignore it.</p>
<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.FastVideoArgs.add_cli_args"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.FastVideoArgs.add_cli_args</code></h3>
<pre class="doc-signature"><code>add_cli_args(parser: FlexibleArgumentParser) -&gt; FlexibleArgumentParser</code></pre>

<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.FastVideoArgs.from_cli_args"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.FastVideoArgs.from_cli_args</code></h3>
<pre class="doc-signature"><code>from_cli_args(args: argparse.Namespace) -&gt; FastVideoArgs</code></pre>

<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.FastVideoArgs.from_kwargs"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.FastVideoArgs.from_kwargs</code></h3>
<pre class="doc-signature"><code>from_kwargs(**kwargs: Any) -&gt; FastVideoArgs</code></pre>

<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.FastVideoArgs.check_fastvideo_args"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.FastVideoArgs.check_fastvideo_args</code></h3>
<pre class="doc-signature"><code>check_fastvideo_args() -&gt; None</code></pre>
<p>Validate inference arguments for consistency</p>
<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.FastVideoArgs.finalize_device_offload_policy"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.FastVideoArgs.finalize_device_offload_policy</code></h3>
<pre class="doc-signature"><code>finalize_device_offload_policy(device_id: int = 0) -&gt; bool</code></pre>
<p>Apply device-local memory policy, then resolve incompatible modes.</p>
<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.FastVideoArgs.disable_offload_on_unified_memory"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.FastVideoArgs.disable_offload_on_unified_memory</code></h3>
<pre class="doc-signature"><code>disable_offload_on_unified_memory(device_id: int = 0, *, offload_flag: str | None = None) -&gt; bool</code></pre>
<p>Disable host offload after a worker has selected its device.</p>
<p>CUDA's unified-memory probe reads runtime device properties and may
initialize a CUDA context. Callers must therefore use this only inside
a device-owning process, after selecting and binding <code>device_id</code>.
Returning the classification lets direct component-loader callers
apply the same policy to explicit per-call overrides. When
<code>offload_flag</code> is given, the return value says whether this policy
covers that component role.</p>
<h2 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.init_logger"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.init_logger</code></h2>
<pre class="doc-signature"><code>init_logger(name: str) -&gt; _FastvideoLogger</code></pre>
<p>The main purpose of this function is to ensure that loggers are
retrieved in such a way that we can be sure the root fastvideo logger has
already been configured.</p>
<h2 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioConditioningStage"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioConditioningStage</code></h2>
<pre class="doc-signature"><code>StableAudioConditioningStage(conditioner)</code></pre>
<p>Run the conditioner over the prompt + duration and stash the
DiT-ready (cross_attn_cond, cross_attn_mask, global_embed) triple
on <code>batch.extra</code> (plus the negative-prompt triple when CFG is on).</p>

<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioConditioningStage.verify_input"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioConditioningStage.verify_input</code></h3>
<pre class="doc-signature"><code>verify_input(batch, fastvideo_args)</code></pre>

<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioConditioningStage.verify_output"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioConditioningStage.verify_output</code></h3>
<pre class="doc-signature"><code>verify_output(batch, fastvideo_args)</code></pre>

<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioConditioningStage.forward"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioConditioningStage.forward</code></h3>
<pre class="doc-signature"><code>forward(batch: ForwardBatch, fastvideo_args: FastVideoArgs) -&gt; ForwardBatch</code></pre>

<h2 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioDecodingStage"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioDecodingStage</code></h2>
<pre class="doc-signature"><code>StableAudioDecodingStage(vae)</code></pre>
<p>Decode latent → audio waveform + slice to [start, end].</p>

<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioDecodingStage.verify_input"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioDecodingStage.verify_input</code></h3>
<pre class="doc-signature"><code>verify_input(batch, fastvideo_args)</code></pre>

<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioDecodingStage.verify_output"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioDecodingStage.verify_output</code></h3>
<pre class="doc-signature"><code>verify_output(batch, fastvideo_args)</code></pre>

<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioDecodingStage.forward"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioDecodingStage.forward</code></h3>
<pre class="doc-signature"><code>forward(batch: ForwardBatch, fastvideo_args: FastVideoArgs) -&gt; ForwardBatch</code></pre>

<h2 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioDenoisingStage"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioDenoisingStage</code></h2>
<pre class="doc-signature"><code>StableAudioDenoisingStage(transformer)</code></pre>
<p>k-diffusion <code>dpmpp-3m-sde</code> sampling loop.</p>

<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioDenoisingStage.verify_input"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioDenoisingStage.verify_input</code></h3>
<pre class="doc-signature"><code>verify_input(batch, fastvideo_args)</code></pre>

<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioDenoisingStage.verify_output"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioDenoisingStage.verify_output</code></h3>
<pre class="doc-signature"><code>verify_output(batch, fastvideo_args)</code></pre>

<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioDenoisingStage.forward"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioDenoisingStage.forward</code></h3>
<pre class="doc-signature"><code>forward(batch: ForwardBatch, fastvideo_args: FastVideoArgs) -&gt; ForwardBatch</code></pre>

<h2 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioLatentPreparationStage"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioLatentPreparationStage</code></h2>
<pre class="doc-signature"><code>StableAudioLatentPreparationStage(io_channels: int = 64, sample_size: int = 2097152, vae = None, sample_rate: int = 44100, audio_channels: int = 2)</code></pre>


<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioLatentPreparationStage.verify_input"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioLatentPreparationStage.verify_input</code></h3>
<pre class="doc-signature"><code>verify_input(batch, fastvideo_args)</code></pre>

<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioLatentPreparationStage.verify_output"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioLatentPreparationStage.verify_output</code></h3>
<pre class="doc-signature"><code>verify_output(batch, fastvideo_args)</code></pre>

<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioLatentPreparationStage.forward"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioLatentPreparationStage.forward</code></h3>
<pre class="doc-signature"><code>forward(batch: ForwardBatch, fastvideo_args: FastVideoArgs) -&gt; ForwardBatch</code></pre>

<h2 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase</code></h2>
<pre class="doc-signature"><code>ComposedPipelineBase(model_path: str, fastvideo_args: FastVideoArgs | TrainingArgs, required_config_modules: list&#91;str&#93; | None = None, loaded_modules: dict&#91;str, torch.nn.Module&#93; | None = None)</code></pre>
<p>Base class for pipelines composed of multiple stages.</p>
<p>This class provides the framework for creating pipelines by composing multiple
stages together. Each stage is responsible for a specific part of the diffusion
process, and the pipeline orchestrates the execution of these stages.</p>
<p>Initialize the pipeline. After <strong>init</strong>, the pipeline should be ready to
use. The pipeline should be stateless and not hold any batch state.</p>
<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.get_hf_download_component_dirs"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.get_hf_download_component_dirs</code></h3>
<pre class="doc-signature"><code>get_hf_download_component_dirs() -&gt; tuple&#91;str, ...&#93; | None</code></pre>
<p>Return component directories for an opt-in partial Hub download.</p>
<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.get_hf_download_allow_patterns"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.get_hf_download_allow_patterns</code></h3>
<pre class="doc-signature"><code>get_hf_download_allow_patterns() -&gt; list&#91;str&#93; | None</code></pre>
<p>Return Hub patterns for the manifest and selected components.</p>
<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.set_trainable"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.set_trainable</code></h3>
<pre class="doc-signature"><code>set_trainable() -&gt; None</code></pre>

<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.post_init"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.post_init</code></h3>
<pre class="doc-signature"><code>post_init() -&gt; None</code></pre>

<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.initialize_training_pipeline"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.initialize_training_pipeline</code></h3>
<pre class="doc-signature"><code>initialize_training_pipeline(training_args: TrainingArgs)</code></pre>

<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.initialize_validation_pipeline"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.initialize_validation_pipeline</code></h3>
<pre class="doc-signature"><code>initialize_validation_pipeline(training_args: TrainingArgs)</code></pre>

<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.from_pretrained"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.from_pretrained</code></h3>
<pre class="doc-signature"><code>from_pretrained(model_path: str, device: str | None = None, torch_dtype: torch.dtype | None = None, pipeline_config: str | PipelineConfig | None = None, args: argparse.Namespace | None = None, required_config_modules: list&#91;str&#93; | None = None, loaded_modules: dict&#91;str, torch.nn.Module&#93; | None = None, **kwargs) -&gt; ComposedPipelineBase</code></pre>
<p>Load a pipeline from a pretrained model.
loaded_modules: Optional[Dict[str, torch.nn.Module]] = None,
If provided, loaded_modules will be used instead of loading from config/pretrained weights.</p>
<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.get_module"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.get_module</code></h3>
<pre class="doc-signature"><code>get_module(module_name: str, default_value: Any = None) -&gt; Any</code></pre>

<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.add_module"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.add_module</code></h3>
<pre class="doc-signature"><code>add_module(module_name: str, module: Any)</code></pre>

<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.required_config_modules"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.required_config_modules</code></h3>
<pre class="doc-signature"><code>required_config_modules: list&#91;str&#93;</code></pre>
<p>List of modules that are required by the pipeline. The names should match
the diffusers directory and model_index.json file. These modules will be
loaded using the PipelineComponentLoader and made available in the
modules dictionary. Access these modules using the get_module method.</p>
<p>class ConcretePipeline(ComposedPipelineBase):
    _required_config_modules = ["vae", "text_encoder", "transformer", "scheduler", "tokenizer"]</p>
<pre><code>@property
def required_config_modules(self):
    return self._required_config_modules
</code></pre>
<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.stages"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.stages</code></h3>
<pre class="doc-signature"><code>stages: list&#91;PipelineStage&#93;</code></pre>
<p>List of stages in the pipeline.</p>
<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.create_pipeline_stages"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.create_pipeline_stages</code></h3>
<pre class="doc-signature"><code>create_pipeline_stages(fastvideo_args: FastVideoArgs)</code></pre>
<p>Create the inference pipeline stages.</p>
<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.create_training_stages"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.create_training_stages</code></h3>
<pre class="doc-signature"><code>create_training_stages(training_args: TrainingArgs)</code></pre>
<p>Create the training pipeline stages.</p>
<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.initialize_pipeline"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.initialize_pipeline</code></h3>
<pre class="doc-signature"><code>initialize_pipeline(fastvideo_args: FastVideoArgs)</code></pre>
<p>Initialize the pipeline.</p>
<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.load_modules"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.load_modules</code></h3>
<pre class="doc-signature"><code>load_modules(fastvideo_args: FastVideoArgs, loaded_modules: dict&#91;str, torch.nn.Module&#93; | None = None) -&gt; dict&#91;str, Any&#93;</code></pre>
<p>Load the modules from the config.
loaded_modules: Optional[Dict[str, torch.nn.Module]] = None, 
If provided, loaded_modules will be used instead of loading from config/pretrained weights.</p>
<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.add_stage"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.add_stage</code></h3>
<pre class="doc-signature"><code>add_stage(stage_name: str, stage: PipelineStage)</code></pre>

<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.forward"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.forward</code></h3>
<pre class="doc-signature"><code>forward(batch: ForwardBatch, fastvideo_args: FastVideoArgs) -&gt; ForwardBatch</code></pre>
<p>Generate a video or image using the pipeline.</p>
<h4>Parameters</h4>
<dl>
<dt><code>batch: ForwardBatch</code></dt><dd><p>The batch to generate from.</p></dd>
<dt><code>fastvideo_args: FastVideoArgs</code></dt><dd><p>The inference arguments.</p></dd>
</dl>
<p>Returns:
    ForwardBatch: The batch with the generated video or image.</p>
<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.train"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.train</code></h3>
<pre class="doc-signature"><code>train() -&gt; None</code></pre>

<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.close"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.ComposedPipelineBase.close</code></h3>
<pre class="doc-signature"><code>close() -&gt; None</code></pre>

<h2 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.InputValidationStage"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.InputValidationStage</code></h2>
<pre class="doc-signature"><code>InputValidationStage()</code></pre>
<p>Stage for validating and preparing inputs for diffusion pipelines.</p>
<p>This stage validates that all required inputs are present and properly formatted
before proceeding with the diffusion process.</p>
<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.InputValidationStage.forward"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.InputValidationStage.forward</code></h3>
<pre class="doc-signature"><code>forward(batch: ForwardBatch, fastvideo_args: FastVideoArgs) -&gt; ForwardBatch</code></pre>
<p>Validate and prepare inputs.</p>
<h4>Parameters</h4>
<dl>
<dt><code>batch: ForwardBatch</code></dt><dd><p>The current batch information.</p></dd>
<dt><code>fastvideo_args: FastVideoArgs</code></dt><dd><p>The inference arguments.</p></dd>
</dl>
<h4>Returns</h4>
<dl>
<dt><code>ForwardBatch</code></dt><dd><p>The validated batch information.</p></dd>
</dl>
<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.InputValidationStage.verify_input"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.InputValidationStage.verify_input</code></h3>
<pre class="doc-signature"><code>verify_input(batch: ForwardBatch, fastvideo_args: FastVideoArgs) -&gt; VerificationResult</code></pre>
<p>Verify input validation stage inputs.</p>
<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.InputValidationStage.verify_output"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.InputValidationStage.verify_output</code></h3>
<pre class="doc-signature"><code>verify_output(batch: ForwardBatch, fastvideo_args: FastVideoArgs) -&gt; VerificationResult</code></pre>
<p>Verify input validation stage outputs.</p>
<h2 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioPipeline"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioPipeline</code></h2>
<pre class="doc-signature"><code>StableAudioPipeline(model_path: str, fastvideo_args: FastVideoArgs | TrainingArgs, required_config_modules: list&#91;str&#93; | None = None, loaded_modules: dict&#91;str, torch.nn.Module&#93; | None = None)</code></pre>
<p>Stable Audio Open 1.0 pipeline.</p>
<p>Mode is kwargs-driven on <code>generate_video()</code>:</p>
<ul>
<li>Text-to-audio (default) -- <code>prompt=...</code>, <code>audio_end_in_s=...</code></li>
<li>Audio-to-audio variation -- add <code>init_audio=ref</code> (and optionally
    <code>init_noise_level</code>, lower = closer to reference)</li>
<li>RePaint inpainting / outpainting -- add <code>inpaint_audio=ref</code> and
    <code>inpaint_mask</code> (1-D, 1 = keep / 0 = regenerate)</li>
</ul>
<p>See <code>examples/inference/basic/basic_stable_audio*.py</code> for runnable
examples of each mode.</p>
<details><summary>Source</summary><pre><code>class StableAudioPipeline(ComposedPipelineBase):
    &quot;&quot;&quot;Stable Audio Open 1.0 pipeline.

    Mode is kwargs-driven on `generate_video()`:

      * Text-to-audio (default) -- `prompt=...`, `audio_end_in_s=...`
      * Audio-to-audio variation -- add `init_audio=ref` (and optionally
        `init_noise_level`, lower = closer to reference)
      * RePaint inpainting / outpainting -- add `inpaint_audio=ref` and
        `inpaint_mask` (1-D, 1 = keep / 0 = regenerate)

    See `examples/inference/basic/basic_stable_audio*.py` for runnable
    examples of each mode.
    &quot;&quot;&quot;

    _required_config_modules = &#91;
        &quot;vae&quot;,
        &quot;transformer&quot;,
        &quot;conditioner&quot;,
    &#93;

    def initialize_pipeline(self, fastvideo_args: FastVideoArgs) -&gt; None:
        &quot;&quot;&quot;Apply Stable Audio&#x27;s process-global numerics overrides BEFORE
        the standard component loaders run (TF32 off for A2A renoise
        determinism).&quot;&quot;&quot;
        _disable_tf32_for_stable_audio()

    def create_pipeline_stages(self, fastvideo_args: FastVideoArgs) -&gt; None:
        pc = fastvideo_args.pipeline_config

        self.add_stage(stage_name=&quot;input_validation_stage&quot;, stage=InputValidationStage())

        self.add_stage(
            stage_name=&quot;conditioning_stage&quot;,
            stage=StableAudioConditioningStage(conditioner=self.get_module(&quot;conditioner&quot;)),
        )

        self.add_stage(
            stage_name=&quot;latent_preparation_stage&quot;,
            stage=StableAudioLatentPreparationStage(
                io_channels=64,
                # Per-variant training window: 2,097,152 (~47.5s) for
                # SA-1.0; 524,288 (~11.9s) for SA-small. Pulled from the
                # pipeline config so each variant gets its own latent
                # length.
                sample_size=pc.sample_size,
                vae=self.get_module(&quot;vae&quot;),
                sample_rate=pc.sampling_rate,
                audio_channels=pc.audio_channels,
            ),
        )

        self.add_stage(
            stage_name=&quot;denoising_stage&quot;,
            stage=StableAudioDenoisingStage(transformer=self.get_module(&quot;transformer&quot;)),
        )

        self.add_stage(
            stage_name=&quot;decoding_stage&quot;,
            stage=StableAudioDecodingStage(vae=self.get_module(&quot;vae&quot;)),
        )</code></pre></details>
<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioPipeline.initialize_pipeline"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioPipeline.initialize_pipeline</code></h3>
<pre class="doc-signature"><code>initialize_pipeline(fastvideo_args: FastVideoArgs) -&gt; None</code></pre>
<p>Apply Stable Audio's process-global numerics overrides BEFORE
the standard component loaders run (TF32 off for A2A renoise
determinism).</p>
<details><summary>Source</summary><pre><code>def initialize_pipeline(self, fastvideo_args: FastVideoArgs) -&gt; None:
    &quot;&quot;&quot;Apply Stable Audio&#x27;s process-global numerics overrides BEFORE
    the standard component loaders run (TF32 off for A2A renoise
    determinism).&quot;&quot;&quot;
    _disable_tf32_for_stable_audio()</code></pre></details>
<h3 id="fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioPipeline.create_pipeline_stages"><code>fastvideo.pipelines.basic.stable_audio.stable_audio_pipeline.StableAudioPipeline.create_pipeline_stages</code></h3>
<pre class="doc-signature"><code>create_pipeline_stages(fastvideo_args: FastVideoArgs) -&gt; None</code></pre>

<details><summary>Source</summary><pre><code>def create_pipeline_stages(self, fastvideo_args: FastVideoArgs) -&gt; None:
    pc = fastvideo_args.pipeline_config

    self.add_stage(stage_name=&quot;input_validation_stage&quot;, stage=InputValidationStage())

    self.add_stage(
        stage_name=&quot;conditioning_stage&quot;,
        stage=StableAudioConditioningStage(conditioner=self.get_module(&quot;conditioner&quot;)),
    )

    self.add_stage(
        stage_name=&quot;latent_preparation_stage&quot;,
        stage=StableAudioLatentPreparationStage(
            io_channels=64,
            # Per-variant training window: 2,097,152 (~47.5s) for
            # SA-1.0; 524,288 (~11.9s) for SA-small. Pulled from the
            # pipeline config so each variant gets its own latent
            # length.
            sample_size=pc.sample_size,
            vae=self.get_module(&quot;vae&quot;),
            sample_rate=pc.sampling_rate,
            audio_channels=pc.audio_channels,
        ),
    )

    self.add_stage(
        stage_name=&quot;denoising_stage&quot;,
        stage=StableAudioDenoisingStage(transformer=self.get_module(&quot;transformer&quot;)),
    )

    self.add_stage(
        stage_name=&quot;decoding_stage&quot;,
        stage=StableAudioDecodingStage(vae=self.get_module(&quot;vae&quot;)),
    )</code></pre></details>
</div>
