---
title: base
---

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

<h2 id="fastvideo.models.encoders.base.BaseEncoderOutput"><code>fastvideo.models.encoders.base.BaseEncoderOutput</code></h2>
<pre class="doc-signature"><code>BaseEncoderOutput(last_hidden_state: torch.FloatTensor | None = None, pooler_output: torch.FloatTensor | None = None, hidden_states: tuple&#91;torch.FloatTensor, ...&#93; | None = None, attentions: tuple&#91;torch.FloatTensor, ...&#93; | None = None, attention_mask: torch.Tensor | None = None)</code></pre>


<h2 id="fastvideo.models.encoders.base.ImageEncoderConfig"><code>fastvideo.models.encoders.base.ImageEncoderConfig</code></h2>
<pre class="doc-signature"><code>ImageEncoderConfig(arch_config: ArchConfig = ImageEncoderArchConfig(), prefix: str = &#x27;&#x27;, quant_config: QuantizationConfig | None = None, lora_config: Any | None = None, *, _resolved_attention_backend: AttentionBackendEnum | None = None)</code></pre>


<h2 id="fastvideo.models.encoders.base.TextEncoderConfig"><code>fastvideo.models.encoders.base.TextEncoderConfig</code></h2>
<pre class="doc-signature"><code>TextEncoderConfig(arch_config: ArchConfig = TextEncoderArchConfig(), prefix: str = &#x27;&#x27;, quant_config: QuantizationConfig | None = None, lora_config: Any | None = None, is_chat_model: bool = False, treat_empty_as_dot: bool = False, *, _resolved_attention_backend: AttentionBackendEnum | None = None, chat_template_enable_thinking: bool = False)</code></pre>


<h2 id="fastvideo.models.encoders.base.AttentionBackendEnum"><code>fastvideo.models.encoders.base.AttentionBackendEnum</code></h2>
<pre class="doc-signature"><code>AttentionBackendEnum()</code></pre>

<h2 id="fastvideo.models.encoders.base.TextEncoder"><code>fastvideo.models.encoders.base.TextEncoder</code></h2>
<pre class="doc-signature"><code>TextEncoder(config: TextEncoderConfig)</code></pre>
<p>Base for native encoders with a model-specific forward output contract.</p>

<details><summary>Source</summary><pre><code>class TextEncoder(nn.Module, ABC, Generic&#91;TextEncoderOutputT&#93;):
    &quot;&quot;&quot;Base for native encoders with a model-specific forward output contract.&quot;&quot;&quot;

    _fsdp_shard_conditions: list = field(default_factory=lambda: &#91;&#93;)
    _stacked_params_mapping: list&#91;tuple&#91;str, str, str&#93;&#93; = field(default_factory=list)
    _supported_attention_backends: tuple&#91;AttentionBackendEnum, ...&#93; = TextEncoderConfig()._supported_attention_backends
    supported_checkpoint_quantization_methods: frozenset&#91;str&#93; = frozenset()

    def __init__(self, config: TextEncoderConfig) -&gt; None:
        super().__init__()
        self.config = config
        self._fsdp_shard_conditions = config._fsdp_shard_conditions
        self._stacked_params_mapping = config.arch_config.stacked_params_mapping
        if not self.supported_attention_backends:
            raise ValueError(f&quot;Subclass &#123;self.__class__.__name__&#125; must define _supported_attention_backends&quot;)

    @abstractmethod
    def forward(self, *args: Any, **kwargs: Any) -&gt; TextEncoderOutputT:
        pass

    @property
    def supported_attention_backends(self) -&gt; tuple&#91;AttentionBackendEnum, ...&#93;:
        return self._supported_attention_backends</code></pre></details>
<h3 id="fastvideo.models.encoders.base.TextEncoder.forward"><code>fastvideo.models.encoders.base.TextEncoder.forward</code></h3>
<pre class="doc-signature"><code>forward(*args: Any, **kwargs: Any) -&gt; TextEncoderOutputT</code></pre>

<details><summary>Source</summary><pre><code>@abstractmethod
def forward(self, *args: Any, **kwargs: Any) -&gt; TextEncoderOutputT:
    pass</code></pre></details>
<h2 id="fastvideo.models.encoders.base.ImageEncoder"><code>fastvideo.models.encoders.base.ImageEncoder</code></h2>
<pre class="doc-signature"><code>ImageEncoder(config: ImageEncoderConfig)</code></pre>


<details><summary>Source</summary><pre><code>class ImageEncoder(nn.Module, ABC):
    _supported_attention_backends: tuple&#91;AttentionBackendEnum, ...&#93; = ImageEncoderConfig()._supported_attention_backends

    def __init__(self, config: ImageEncoderConfig) -&gt; None:
        super().__init__()
        self.config = config
        if not self.supported_attention_backends:
            raise ValueError(f&quot;Subclass &#123;self.__class__.__name__&#125; must define _supported_attention_backends&quot;)

    @abstractmethod
    def forward(self, pixel_values: torch.Tensor, **kwargs) -&gt; BaseEncoderOutput:
        pass

    @property
    def supported_attention_backends(self) -&gt; tuple&#91;AttentionBackendEnum, ...&#93;:
        return self._supported_attention_backends</code></pre></details>
<h3 id="fastvideo.models.encoders.base.ImageEncoder.forward"><code>fastvideo.models.encoders.base.ImageEncoder.forward</code></h3>
<pre class="doc-signature"><code>forward(pixel_values: torch.Tensor, **kwargs) -&gt; BaseEncoderOutput</code></pre>

<details><summary>Source</summary><pre><code>@abstractmethod
def forward(self, pixel_values: torch.Tensor, **kwargs) -&gt; BaseEncoderOutput:
    pass</code></pre></details>
</div>
