> 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.caption.caption_preparation

## Module Contents

### Classes

| Name                                                                                                        | Description                                        |
| ----------------------------------------------------------------------------------------------------------- | -------------------------------------------------- |
| [`CaptionPreparationStage`](#nemo_curator-stages-video-caption-caption_preparation-CaptionPreparationStage) | Stage that prepares captions for video processing. |

### Functions

| Name                                                                                | Description |
| ----------------------------------------------------------------------------------- | ----------- |
| [`_get_prompt`](#nemo_curator-stages-video-caption-caption_preparation-_get_prompt) | -           |

### Data

[`_ENHANCE_PROMPTS`](#nemo_curator-stages-video-caption-caption_preparation-_ENHANCE_PROMPTS)

[`_PROMPTS`](#nemo_curator-stages-video-caption-caption_preparation-_PROMPTS)

### API

```python
class nemo_curator.stages.video.caption.caption_preparation.CaptionPreparationStage(
    model_variant: str = 'qwen2.5',
    prompt_variant: str = 'default',
    prompt_text: str | None = None,
    verbose: bool = False,
    sampling_fps: float = 2.0,
    window_size: int = 256,
    remainder_threshold: int = 128,
    preprocess_dtype: str = 'float32',
    generate_previews: bool = True,
    name: str = 'caption_preparation'
)
```

Dataclass

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

Stage that prepares captions for video processing.

**`generate_previews`** `bool = True`

---

**`model_variant`** `str = 'qwen2.5'`

---

**`name`** `str = 'caption_preparation'`

---

**`preprocess_dtype`** `str = 'float32'`

---

**`prompt_text`** `str | None = None`

---

**`prompt_variant`** `str = 'default'`

---

**`remainder_threshold`** `int = 128`

---

**`sampling_fps`** `float = 2.0`

---

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

---

**`window_size`** `int = 256`

---

```python
nemo_curator.stages.video.caption.caption_preparation.CaptionPreparationStage.inputs() -> tuple[list[str], list[str]]
```

```python
nemo_curator.stages.video.caption.caption_preparation.CaptionPreparationStage.outputs() -> tuple[list[str], list[str]]
```

```python
nemo_curator.stages.video.caption.caption_preparation.CaptionPreparationStage.process(
    task: nemo_curator.tasks.video.VideoTask
) -> nemo_curator.tasks.video.VideoTask
```

```python
nemo_curator.stages.video.caption.caption_preparation.CaptionPreparationStage.setup(
    worker_metadata: nemo_curator.backends.base.WorkerMetadata | None = None
) -> None
```

```python
nemo_curator.stages.video.caption.caption_preparation.CaptionPreparationStage.setup_on_node(
    node_info: nemo_curator.backends.base.NodeInfo | None = None,
    worker_metadata: nemo_curator.backends.base.WorkerMetadata | None = None
) -> None
```

```python
nemo_curator.stages.video.caption.caption_preparation._get_prompt(
    prompt_variant: str,
    prompt_text: str | None
) -> str
```

```python
nemo_curator.stages.video.caption.caption_preparation._ENHANCE_PROMPTS = {'default': '\n        You are a chatbot that enhances video caption inputs, add...
```

```python
nemo_curator.stages.video.caption.caption_preparation._PROMPTS = {'default': '\n        Elaborate on the visual and narrative elements of the vid...
```