> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/curator/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/curator/_mcp/server.

# nemo_curator.stages.video.filtering.clip_aesthetic_filter

## Module Contents

### Classes

| Name                                                                                                              | Description                                                    |
| ----------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
| [`ClipAestheticFilterStage`](#nemo_curator-stages-video-filtering-clip_aesthetic_filter-ClipAestheticFilterStage) | Stage for filtering video clips based on CLIP aesthetic score. |

### API

```python
class nemo_curator.stages.video.filtering.clip_aesthetic_filter.ClipAestheticFilterStage(
    model_dir: str = 'models/clip_aesthetic',
    score_threshold: float = 0.5,
    reduction: typing.Literal['mean', 'min'] = 'min',
    target_fps: float = 1.0,
    num_gpus_per_worker: float = 0.25,
    verbose: bool = False,
    name: str = 'clip_aesthetic_filter'
)
```

Dataclass

**Bases:** [ProcessingStage\[VideoTask, VideoTask\]](/nemo-curator/nemo_curator/stages/base#nemo_curator-stages-base-ProcessingStage)

Stage for filtering video clips based on CLIP aesthetic score.

This class processes video clips through a series of steps including aesthetic score
calculation and filtering based on thresholds.

**`model_dir`** `str = 'models/clip_aesthetic'`

---

**`name`** `str = 'clip_aesthetic_filter'`

---

**`num_gpus_per_worker`** `float = 0.25`

---

**`reduction`** `Literal['mean', 'min'] = 'min'`

---

**`score_threshold`** `float = 0.5`

---

**`target_fps`** `float = 1.0`

---

**`verbose`** `bool = False`

---

```python
nemo_curator.stages.video.filtering.clip_aesthetic_filter.ClipAestheticFilterStage.__post_init__() -> None
```

```python
nemo_curator.stages.video.filtering.clip_aesthetic_filter.ClipAestheticFilterStage.inputs() -> tuple[list[str], list[str]]
```

```python
nemo_curator.stages.video.filtering.clip_aesthetic_filter.ClipAestheticFilterStage.outputs() -> tuple[list[str], list[str]]
```

```python
nemo_curator.stages.video.filtering.clip_aesthetic_filter.ClipAestheticFilterStage.process(
    task: nemo_curator.tasks.video.VideoTask
) -> nemo_curator.tasks.video.VideoTask
```

```python
nemo_curator.stages.video.filtering.clip_aesthetic_filter.ClipAestheticFilterStage.setup(
    worker_metadata: nemo_curator.backends.base.WorkerMetadata | None = None
) -> None
```

```python
nemo_curator.stages.video.filtering.clip_aesthetic_filter.ClipAestheticFilterStage.setup_on_node(
    node_info: nemo_curator.backends.base.NodeInfo,
    worker_metadata: nemo_curator.backends.base.WorkerMetadata
) -> None
```

Download the weights for the CLIPAestheticScorer model on the node.