---
title: base
---

<div class="python-reference">

<a id="fastvideo.models.schedulers.base"></a>

<h2 id="fastvideo.models.schedulers.base.BaseScheduler"><code>fastvideo.models.schedulers.base.BaseScheduler</code></h2>
<pre class="doc-signature"><code>BaseScheduler(*args, **kwargs)</code></pre>


<details><summary>Source</summary><pre><code>class BaseScheduler(ABC):
    timesteps: torch.Tensor
    order: int
    num_train_timesteps: int

    def __init__(self, *args, **kwargs) -&gt; None:
        # Check if subclass has defined all required properties
        required_attributes = &#91;&#x27;timesteps&#x27;, &#x27;order&#x27;, &#x27;num_train_timesteps&#x27;&#93;

        for attr in required_attributes:
            if not hasattr(self, attr):
                raise AttributeError(f&quot;Subclasses of BaseScheduler must define &#x27;&#123;attr&#125;&#x27; property&quot;)

    @abstractmethod
    def set_shift(self, shift: float) -&gt; None:
        pass

    @abstractmethod
    def set_timesteps(self, *args, **kwargs) -&gt; None:
        pass

    @abstractmethod
    def scale_model_input(self, sample: torch.Tensor, timestep: int | None = None) -&gt; torch.Tensor:
        pass</code></pre></details>
<h3 id="fastvideo.models.schedulers.base.BaseScheduler.set_shift"><code>fastvideo.models.schedulers.base.BaseScheduler.set_shift</code></h3>
<pre class="doc-signature"><code>set_shift(shift: float) -&gt; None</code></pre>

<details><summary>Source</summary><pre><code>@abstractmethod
def set_shift(self, shift: float) -&gt; None:
    pass</code></pre></details>
<h3 id="fastvideo.models.schedulers.base.BaseScheduler.set_timesteps"><code>fastvideo.models.schedulers.base.BaseScheduler.set_timesteps</code></h3>
<pre class="doc-signature"><code>set_timesteps(*args, **kwargs) -&gt; None</code></pre>

<details><summary>Source</summary><pre><code>@abstractmethod
def set_timesteps(self, *args, **kwargs) -&gt; None:
    pass</code></pre></details>
<h3 id="fastvideo.models.schedulers.base.BaseScheduler.scale_model_input"><code>fastvideo.models.schedulers.base.BaseScheduler.scale_model_input</code></h3>
<pre class="doc-signature"><code>scale_model_input(sample: torch.Tensor, timestep: int | None = None) -&gt; torch.Tensor</code></pre>

<details><summary>Source</summary><pre><code>@abstractmethod
def scale_model_input(self, sample: torch.Tensor, timestep: int | None = None) -&gt; torch.Tensor:
    pass</code></pre></details>
</div>
