# ID-V2V (`id_v2v`)

> ID-V2V (Eyeline Labs / Netflix research). Restyle a video's scene, lighting and look from an edited first frame while keeping the subjects' identity, expressions, gaze and motion; 480p or 720p, 81 frames (about 5 s) by default, up to 241 via provider_options.fal.num_frames.

- Capability: Video (tool `video`) — Video to video
- Price: from $0.20 per run (1 credit = $0.01). Exact price for a request: POST https://api.varg.ai/v2/estimate
- Typical time: ~5 min
- JSON Schema: https://api.varg.ai/v2/tools/video?model=id_v2v (public, no key)
- Try it: https://varg.ai/dashboard/tools/playground?model=id_v2v

## Call it

REST: `POST https://api.varg.ai/v2/tools/video/call` with `Authorization: Bearer $VARG_API_KEY` (create a key at https://varg.ai/dashboard/api).
It answers `202` with a job right away. Poll `GET /v2/jobs/{id}` until `status` is `completed`, then read `output.outputs[0].url` — or pass `options.webhook_url` and get the finished job POSTed to you.

```bash
curl -X POST https://api.varg.ai/v2/tools/video/call \
  -H "Authorization: Bearer $VARG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "id_v2v",
  "prompt": "An astronaut walking through an autumn forest",
  "files": [
    {
      "url": "https://storage.googleapis.com/falserverless/example_inputs/ltxv-image-input.jpg"
    },
    {
      "url": "https://storage.googleapis.com/falserverless/model_tests/video_models/mmaudio_input.mp4"
    }
  ],
  "resolution": "720p"
}'
```

MCP: the varg server `https://mcp.varg.ai/mcp` (OAuth sign-in, no key) runs it with `call_tool`:

```json
{
  "tool": "video",
  "input": {
    "model": "id_v2v",
    "prompt": "An astronaut walking through an autumn forest",
    "files": [
      {
        "url": "https://storage.googleapis.com/falserverless/example_inputs/ltxv-image-input.jpg"
      },
      {
        "url": "https://storage.googleapis.com/falserverless/model_tests/video_models/mmaudio_input.mp4"
      }
    ],
    "resolution": "720p"
  },
  "wait": true
}
```

## Inputs

| field | type | required | default | allowed | description |
|---|---|---|---|---|---|
| `model` | string | yes | — | `id_v2v` or a route key below | Which model runs the job. |
| `prompt` | string | no | — | — | — |
| `files` | array of { url } | no | — | — | — |
| `aspect_ratio` | string | no | — | e.g. 16:9 \| 9:16 \| 1:1 \| 4:3 \| 3:4 \| 21:9 \| auto | — |
| `resolution` | string | no | — | 480p \| 720p \| 1080p \| 4k | Quality tier. Supported by this model: 480p, 720p. Unsupported tiers fall back to the nearest available. |
| `audio` | boolean | no | — | — | Native audio track request. Not supported by this model — ignored if sent. |
| `duration` | integer | no | — | 1–120 | Length in seconds. Not mapped by this model — ignored if sent. |

Media inputs are URLs. Upload a local file first with `POST /v2/files` and pass the returned URL.

## Provider options

Optional, per provider, under `provider_options.<provider>`. Only the options of the provider that runs the job apply — pin a route to choose it.

### provider_options.fal

| field | type | required | default | allowed | description |
|---|---|---|---|---|---|
| `prompt` | string | no | — | — | The prompt describing the restyled video to generate. |
| `seed` | integer | no | — | -9007199254740991–9007199254740991 | — |
| `image_url` | string (URL) | no | — | — | URL of the restyled first frame. The video is regenerated in this frame's identity/style. |
| `video_url` | string (URL) | no | — | — | URL of the source video whose motion and framing drive the generation. |
| `num_frames` | integer | no | — | 17–241 | Maximum number of output frames. Capped at the source video's frame count. |
| `resolution` | string | no | — | 480p \| 720p | — |
| `vace_scale` | number | no | — | 0–2 | VACE conditioning scale. Controls how strongly the source video's structure constrains the generation. |
| `guidance_scale` | number | no | — | 1–10 | Classifier-free guidance scale. Controls prompt adherence versus creativity. |
| `num_inference_steps` | integer | no | — | 2–40 | Number of diffusion sampling steps per clip. Higher improves quality but is slower. |
| `segmentation_prompt` | string | no | — | — | Text prompt for SAM-3 subject segmentation. The segmented subject's pixels condition the generation; the rest of the frame is regenerated freely. |
| `enable_safety_checker` | boolean | no | — | — | Enable safety checking of inputs and outputs. |

## Routes

`"model": "id_v2v"` picks a route automatically (priority order, then the inputs you send). To pin one, pass its key as `model`.

| model key | provider | modality | price from | typical time |
|---|---|---|---|---|
| `fal:fal-ai/id-v2v` | fal | video-to-video | $0.20 | ~5 min |

---

Catalog version 2026-11-11T12:59:09.901887+00:00. All models: https://varg.ai/models/llms.txt
