# Video Depth

> Turn any video into a depth video, where near is bright and far is dark, with Video Depth Anything or Depth Anything per frame, in grayscale or a colormap.

Source: https://nodaro.ai/docs/nodes/video/video-depth

The **Video Depth** node turns a video into a depth video: near is bright, far is dark. It estimates the depth of every frame and renders the depth as an MP4 of the same clip. Feed the grayscale result into depth-guided generation, relighting or compositing, or choose a colormap for a stylised look.

## When to use it
- You need a depth pass of a clip for compositing, for example to place a layer between the foreground and the background.
- You want a depth video as a guide for another generation or for relighting.
- You want a stylised depth look, such as a Turbo or Inferno colormap, for a title or a social clip.
- You want to compare the original clip and its depth side by side.

## Quick start
### Add the node

Press Tab on the canvas and choose **Video › Continue & Restyle › Video Depth**.

### Connect a video

Drag from the output of a video node, such as [Upload Video](https://nodaro.ai/docs/nodes/video/upload-video) or [Generate Video](https://nodaro.ai/docs/nodes/video/generate-video), to the **Video** input.

### Choose the model and the look

Open the settings panel. Choose a **Provider**, a **Model size** and a **Colormap**. Keep **Grayscale** when the result feeds another node.

### Run it

Click **Run** on the node. The node card shows the depth video, with a caption that names the model, for example "Depth map · Video Depth Anything".

Workflow: An uploaded clip becomes a grayscale depth video, where near is bright and far is dark, and the depth video is saved.

- Upload Video → Video Depth (video)
- Video Depth → Save to Storage

## Inputs
| Input | Accepts | What it does |
| --- | --- | --- |
| **Video** | Video nodes | The clip to turn into a depth video. Required. Its length decides the price, and it must be within the limit of the chosen model. |

## Outputs
| Output | What it carries |
| --- | --- |
| **Video** | The depth video, as an MP4. Near is bright and far is dark in **Grayscale**. With **Side by side** on, the original and the depth are next to each other in one video. |

## Settings
| Setting | Default | What it does |
| --- | --- | --- |
| **Provider** | **Video Depth Anything** | The model. **Video Depth Anything** is consistent from frame to frame. **Depth Anything (per frame)** runs on each frame alone and can flicker. |
| **Model size** | **Large (best)** | **Small (fastest)**, **Base** or **Large (best)**. A larger size gives more detail and runs slower. |
| **Colormap** | **Grayscale** | How the depth is coloured. Video Depth Anything offers **Grayscale**, **Turbo**, **Inferno**, **Magma** and **Viridis**. Depth Anything (per frame) offers **Grayscale** and **Inferno**. |
| **Resolution** | **Auto** | Video Depth Anything only. **Auto**, 360p, 480p, 720p or 1080p. |
| **Side by side** | Off | Video Depth Anything only. Puts the original and the depth next to each other in one video. |

The settings panel shows only the settings the chosen model takes. A setting the model does not take is ignored, and a colormap the model cannot render becomes **Grayscale**. A run is never refused for either, so a model that a field mapping switches still runs.

## Models
| Model | Maker | Modes | Credits | Details |
| --- | --- | --- | --- | --- |
| [Video Depth Anything](https://nodaro.ai/docs/models/video/video-depth-anything) | Depth Anything | Video depth | from 330 | Temporally consistent depth video from any clip. Grayscale or colormapped, up to 2,400 frames or 300 seconds. |
| [Depth Anything (per frame)](https://nodaro.ai/docs/models/video/depth-anything-per-frame) | Depth Anything | Video depth | from 33 | Depth Anything v1 run on each frame. Grayscale or inferno colormap; may flicker between frames. Up to 80 s. |

| Model | Frame to frame | Settings | Longest clip |
| --- | --- | --- | --- |
| [Video Depth Anything](https://nodaro.ai/docs/models/video/video-depth-anything) | Consistent | All five | 2,400 frames and at most 300 seconds |
| [Depth Anything (per frame)](https://nodaro.ai/docs/models/video/depth-anything-per-frame) | Each frame alone, can flicker | **Model size**, and **Colormap** in **Grayscale** or **Inferno** | 80 seconds |

## Credits
The price depends on the model and on the length of the input clip. The length is rounded up to the next tier: 15 seconds, 30 seconds, 1 minute, 2 minutes or 5 minutes.

| Model | 15s | 30s | 1min | 2min | 5min |
| --- | --- | --- | --- | --- | --- |
| [Video Depth Anything](https://nodaro.ai/docs/models/video/video-depth-anything) | 330 | 660 | 1,320 | 2,640 | 6,600 |
| [Depth Anything (per frame)](https://nodaro.ai/docs/models/video/depth-anything-per-frame) | 33 | 66 | 132 | 264 | — |

- **How the tier is chosen.** A 5-second clip and a 15-second clip are both in the 15s tier. A clip of 15.01 seconds is in the 30s tier, and a 61-second clip is in the 2min tier.
- **The clip is measured before the run.** A clip that cannot be read is refused before any credits are reserved. A run is never priced at a guessed length.
- **The price on the node.** Until the length of a connected video is known, the node shows the 15s tier. The price updates once a video with a known length is connected.
- **Depth Anything (per frame).** This model accepts clips up to 80 seconds, so its 2min tier is the most a run can cost.

## Tips
- **Keep Grayscale for other nodes.** Grayscale works best as the input of another node. Colormaps are for viewing.
- **Preview with Small, finish with Large.** Use **Small (fastest)** to check a clip quickly, and **Large (best)** for the final pass.
- **Trim first.** The price follows the length of the input clip. Cut the clip to the part you need with [Trim Video](https://nodaro.ai/docs/nodes/video/trim-video) before Video Depth.
- **Choose Video Depth Anything for moving shots.** Depth Anything (per frame) works on each frame alone, so the depth can flicker between frames.

## Troubleshooting
| Message or problem | Cause and fix |
| --- | --- |
| The clip is refused as too long (`video_too_long`). | The clip is longer than the chosen model accepts. Video Depth Anything accepts up to 2,400 frames and at most 300 seconds, whatever the frame rate. A clip that reports no frame rate is counted at 30 fps. Depth Anything (per frame) accepts up to 80 seconds. Trim the clip and run again. No credits are reserved. |
| The clip is refused as unreadable (`video_unreadable`). | Nodaro could not read the clip to measure its length. Check that the link is a direct link to a video file, or upload the file again. No credits are reserved. |
| The depth flickers between frames. | Depth Anything (per frame) works on each frame alone. Choose **Video Depth Anything**, which is consistent from frame to frame. |
| A colormap you chose is not in the result. | The model cannot render that colormap, so the run used **Grayscale**. Depth Anything (per frame) offers only **Grayscale** and **Inferno**. |

## From the API
`POST /v1/video-depth` takes `videoUrl`, with optional `provider`, `modelSize`, `colormap`, `resolution` and `sideBySide`. `provider` is `video-depth-anything` (the default) or `depth-anything-frames`, and `modelSize` is `small`, `base` or `large` (the default). `colormap` is `grayscale`, `turbo`, `inferno`, `magma` or `viridis`, and `resolution` is `auto`, `360p`, `480p`, `720p` or `1080p`.

```http
POST /v1/video-depth
Content-Type: application/json

{
"videoUrl": "https://example.com/clip.mp4",
"provider": "video-depth-anything",
"modelSize": "large",
"colormap": "grayscale"
}
```

The answer is `{ jobId }`, and the finished job's output is `{ videoUrl, thumbnailUrl }`. A setting the model does not take is ignored, and a colormap it cannot render becomes `grayscale`. A value that is not in the lists above is a `400 validation_error`. The clip is measured before anything is created: `400 video_too_long` and `400 video_unreadable` reserve nothing.

With the SDK, run the node by its type:

```ts
const result = await client.nodes.run("video-depth", {
videoUrl: "https://example.com/clip.mp4",
colormap: "grayscale",
})
```

With the CLI:

```bash
nodaro nodes run video-depth --param videoUrl=https://example.com/clip.mp4 --watch
```

From an AI assistant, the MCP tool is `video_depth`, with `video_url` or `video_asset_id` and the optional `provider`, `model_size`, `colormap`, `resolution` and `side_by_side`. See [Run a single node](https://nodaro.ai/docs/developers/api/nodes), the [SDK nodes reference](https://nodaro.ai/docs/developers/sdk/nodes), the [CLI commands](https://nodaro.ai/docs/developers/cli/commands) and the [MCP tools](https://nodaro.ai/docs/mcp/tools).

## Frequently asked questions

### What does the Video Depth node make?

Video Depth turns a video into a depth video of the same clip. Near objects are bright and far objects are dark. The result is an MP4 that you can feed into other nodes or view as it is.

### Which model should I choose for Video Depth?

Choose Video Depth Anything for most work. It is consistent from frame to frame and offers every setting. Depth Anything (per frame) is cheaper, but it works on each frame alone, so the depth can flicker, and it accepts clips up to 80 seconds.

### How long can the video be?

Video Depth Anything accepts up to 2,400 frames and at most 300 seconds. That is about 80 seconds at 30 fps. Depth Anything (per frame) accepts up to 80 seconds. A longer clip is refused before any credits are reserved.

### How is a Video Depth run priced?

The price depends on the model and on the length of the input clip, rounded up to the next tier of 15 seconds, 30 seconds, 1 minute, 2 minutes or 5 minutes. The clip is measured before the run.

### Should I use grayscale or a colormap?

Keep Grayscale, the default, when the depth video feeds another node. Colormaps such as Turbo or Inferno are for viewing the depth.
