> ## Documentation Index
> Fetch the complete documentation index at: https://docs.videodb.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Sandbox Models

> Available models for VideoDB Sandbox Compute and their minimum tiers.

Sandbox models run on VideoDB Sandbox Compute. Pick a model, create a sandbox on a compatible tier, wait until it is active, and pass the sandbox ID to a supported workflow.

Sandbox models can be used across VideoDB workflows, including understanding analyzers, indexing pipelines, text-to-speech, image generation, audio generation, and text generation.

<Note>
  Use model names exactly as listed unless your VideoDB team contact gives you an alias.
</Note>

***

## Model catalog

| Model                               | Type                  | Minimum tier | Good for                                  |
| ----------------------------------- | --------------------- | ------------ | ----------------------------------------- |
| `google/gemma-4-E2B-it-FP8`         | VLM                   | `small`      | lightweight visual scene understanding    |
| `Qwen/Qwen3.5-9B-FP8`               | VLM / text generation | `small`      | lightweight visual and text reasoning     |
| `google/gemma-4-12B-it-FP8`         | VLM                   | `medium`     | balanced visual scene understanding       |
| `google/gemma-4-26B-A4B-it-FP8`     | VLM                   | `medium`     | higher-quality visual scene understanding |
| `google/gemma-4-31B-it-FP8`         | VLM                   | `medium`     | advanced visual scene understanding       |
| `Qwen/Qwen3.5-27B-FP8`              | VLM / text generation | `medium`     | larger visual and text reasoning          |
| `openai/whisper-large-v3-turbo`     | speech-to-text        | `small`      | transcription and speech recognition      |
| `k2-fsa/OmniVoice`                  | text-to-speech        | `small`      | TTS, voice design, and voice cloning      |
| `black-forest-labs/FLUX.1-dev`      | image generation      | `medium`     | text-to-image generation                  |
| `stabilityai/stable-audio-open-1.0` | audio generation      | `small`      | text-to-audio and sound generation        |
| `rtdetr-v2-r50vd`                   | object detection      | `small`      | object detection workflows                |

***

## Choose a tier

Use the smallest tier that supports the largest model in your workflow.

```python theme={null}
from videodb import SandboxTier

# Small-tier models: OmniVoice, Whisper, Qwen 9B, lightweight VLMs, and object detection
small_sandbox = conn.create_sandbox(
    tier=SandboxTier.small,
    model_categories=["vlm", "text_to_speech", "speech_to_text", "object_detection"],
)

# Medium-tier models: FLUX and larger VLMs
medium_sandbox = conn.create_sandbox(
    tier=SandboxTier.medium,
    model_categories=["vlm", "image_generation"],
)
```

If a workflow uses both small and medium models, create a `medium` sandbox and reuse it across those jobs.

***

## Where to pass the model name

| Workflow                | Model field             | Sandbox field                |
| ----------------------- | ----------------------- | ---------------------------- |
| Understanding analyzers | analyzer `config.model` | analyzer `config.sandbox_id` |
| Generation APIs         | `model_name`            | `sandbox_id`                 |

For hosted/default models, omit `sandbox_id`. For models listed on this page, pass a compatible sandbox ID.

***

## Use a model in Understanding and Indexing

Use the sandbox model during understanding, then index the produced artifact with the standard `video.index(...)` interface.

```python theme={null}
sandbox = conn.create_sandbox(
    tier=SandboxTier.medium,
    models=["google/gemma-4-31B-it-FP8"],
)
sandbox.wait_for_ready()

understanding = video.understand(
    analyzers=[
        {
            "type": "vlm",
            "name": "scene",
            "config": {
                "model": "google/gemma-4-31B-it-FP8",
                "sandbox_id": sandbox.id,
                "prompt": "Describe each scene in detail.",
                "schema": {
                    "scene_description": "string",
                    "activity": "string",
                    "setting": "string",
                },
            },
        }
    ],
)

understanding.wait_until_complete()
scene = understanding.get_analyzer("scene")

video.index(
    name="scene",
    source=scene,
    use_for=["semantic", "query"],
    fields={
        "semantic": ["scene_description", "activity", "setting"],
        "filter": ["activity", "setting"],
    },
)
```

For object detection, configure the model and sandbox in the analyzer, then choose filter and aggregation fields at indexing time:

```python theme={null}
understanding = video.understand(
    analyzers=[
        {
            "type": "object_detection",
            "name": "objects",
            "config": {
                "model": "rtdetr-v2-r50vd",
                "sandbox_id": sandbox.id,
            },
        }
    ],
)

understanding.wait_until_complete()
objects = understanding.get_analyzer("objects")

video.index(
    name="objects",
    source=objects,
    use_for=["query", "aggregate"],
    fields={
        "filter": ["object_labels", "object_counts"],
        "aggregate": ["object_labels"],
    },
)
```

***

## Use a model in generation APIs

Generation APIs use `model_name` and `sandbox_id`.

```python theme={null}
job = coll.generate_image(
    prompt="A cinematic product photo of a smart camera",
    model_name="black-forest-labs/FLUX.1-dev",
    sandbox_id=sandbox.id,
)

image = job.wait(timeout=900, interval=5)
```

```python theme={null}
job = coll.generate_voice(
    text="Welcome to VideoDB Sandbox Compute.",
    model_name="k2-fsa/OmniVoice",
    sandbox_id=sandbox.id,
)

audio = job.wait(timeout=900, interval=5)
```

***

## Pricing and limits

Sandbox pricing and concurrency limits are based on the sandbox tier, not the individual model. See [Sandbox Compute](/pages/core-concepts/sandbox-compute#pricing-and-limits) for current pricing and limits.

<CardGroup cols={3}>
  <Card title="Sandbox Compute" icon="cpu" href="/pages/core-concepts/sandbox-compute">
    Create, use, and stop sandbox compute.
  </Card>

  <Card title="Understanding Artifacts" icon="eye" href="/pages/understand/indexing-pipelines/understanding-artifacts">
    Configure analyzers and model selection.
  </Card>

  <Card title="Create an Index" icon="layers" href="/pages/understand/indexing-pipelines/create-an-index">
    Index artifacts produced by sandbox models.
  </Card>
</CardGroup>
