# Ltx 2.3 Quality · Reference Video to Video API

> He whakaputanga e aratakina ana e te tohutohu me te ataata tohutoro, me ngā atahanga anga matua tuatahi, waenga me te whakamutunga hei kōwhiringa

Ka waihanga ataata hou mai i te `prompt` e hiahiatia ana me tētahi `video_url` tohutoro e whakarato ana i te nekehanga me te hanganga. Mā `image_url`, `mid_image_url` me `end_image_url` kōwhiri e here te āhua ki te tīmatanga, waenga me te mutunga. Mā `video_strength` me `strength` (0 ki te 1) e whakahaere te piri, te pupuri rānei ki te pūtake, ā, mā `control_video_url` e tuku he tohu whakahaere kua tātai kē. Kei `resolution` ngā tatūkē aunoa, pūmau hoki, pēnei i te tapawhā me te whakaahua poutū, whakapae rānei 16:9.

- Model id: `ltx-2.3-quality/reference-video-to-video`
- Made by: Lightricks
- Category: Video to Video
- Output: video
- Price per megapixel of your output video: $0.00241 / megapixel of output video (cheapest run $0.003 (3 API credits))
- Run: `POST https://api.doitong.ru/v1/run/ltx-2.3-quality/reference-video-to-video`
- Quote: `POST https://api.doitong.ru/v1/quote/ltx-2.3-quality/reference-video-to-video`
- Docs page: https://doitong.com/mi/developers/models/ltx-2.3-quality/reference-video-to-video

## Pricing

Price: **$0.00241 / megapixel of output video**. Price per megapixel of your output video: the input files are measured before the run (length, resolution, frame rate). The quote measures the same files and is exactly what the run charges.

The full example input below costs $0.27 = 270 API credits (112 MP output video × $0.002408).

Prices are the upstream price in USD, paid from the API balance in API credits (1000 API credits = 1 USD). `POST https://api.doitong.ru/v1/quote/ltx-2.3-quality/reference-video-to-video` with the same JSON body returns the exact price for that input; the quote is exactly what a run charges. Invalid input is never charged and failed or canceled requests are refunded automatically.

## Input parameters

Send either the canonical name or the native field name (not both). Canonical names are the same across models.

| Parameter | Canonical name | Type | Required | Default | Allowed values / range | Description |
|---|---|---|---|---|---|---|
| `prompt` |  | string | yes |  |  | Tohutohu hei ārahi i te whakaputanga. |
| `video_url` | `video` | string (video URL) | yes |  |  | He URL e tohu ana ki tētahi ataata tohutoro hei ārahi i te nekehanga me te hanganga. |
| `control_video_url` |  | string (video URL) \| null | no |  |  | He ataata whakahaere kua tātai kē, ka whakamahia hei whakakapi i te whakatau tata whakahaere ā-roto ina tukuna tahi me `skip_control_preprocess`. Ka noho hei tohu whakahaere tōtika i muri i te whakarahi anō kia ōrite ai ngā rahinga putanga me te tatau anga. Hei tauira, kei roto pea i te ataata he whakakotahitanga hōhonu, tapa, tū rānei kua tāia kē. |
| `skip_control_preprocess` |  | boolean | no | `false` |  | Aratau whakahaere tōtika mā te whakamahi i `control_video_url`, kaua ko te whakatau tata ā-roto i te hōhonu, ngā tapa, te tū rānei; ki te kore taua URL, ka waiho tēnei tautuhinga. I tēnei aratau, ka whai te whakarahi putanga i ngā rahinga kua tohua me te whakahāngai 64 kia ōrite tonu ai ngā ataata RGB me ngā ataata whakahaere, engari ka tango a `auto` i ngā rahinga me te ōwehenga-āhuatanga o te pūtake i roto i ngā here LTX. |
| `preserve_original_video` |  | boolean | no | `false` |  | Aratau pupuri ataata taketake, e wātea ana anake me `skip_control_preprocess`, `video_url`, me `control_video_url`. He mea whakaweto taunoa, ka waiho tonu te tukanga whakahaere paerewa; mā te whakakā ka tīmata te whakaputanga mai i `video_url`, me te pupuri i te arataki hanganga mai i `control_video_url`. Mā te whakakore haruru mā `strength` e whakarite te nui ka puritia, ā, mā ngā tautuhinga iti ka nui ake ngā pika taketake ka mau. |
| `image_url` | `image` | string (image URL) \| null | no |  |  | He kāhua here atahanga, he tuakiri kiripuaki rānei hei anga-matua o te anga tuatahi. |
| `mid_image_url` |  | string (image URL) \| null | no |  |  | He āhua here atahanga kōwhiringa kei te puku o te topenga, hei tāpiri ki te anga-matua `image_url` tuatahi. Ka āwhina kia whai te āhua i te nekehanga o te kāmera, kaua e kotiti; me whai `image_url`. |
| `end_image_url` | `end_image` | string (image URL) \| null | no |  |  | He āhua here atahanga kōwhiringa kei te anga whakamutunga o te topenga. He whaihua ina mutu te nekehanga o te kāmera ki tētahi wāhi rerekē i te atahanga tīmatanga; me whai `image_url`. |
| `video_strength` |  | number | no | `0.6` | 0 – 1 | Mā tēnei kaha whakarite e whakahaere te wātea ki te whakarerekē i te nekehanga me te hanganga mai i te ataata tohutoro: mā ngā tautuhinga iti ka nui ake ngā whakarerekētanga. |
| `strength` |  | number | no | `1` | 0 – 1 | Te whakahaere whakakore haruru mō te tīpako ataata-mai-i-te-ataata tohutoro, ā, ka whakawhirinaki tōna pānga ki `preserve_original_video`. Ina whakaweto taua aratau, ka whakapoto noa i te wātaka whakakore haruru; ina whakakā, ka whakahaere i te panoni o ngā pika pūtake, arā, mā te 1.0 ka whakaputa anō i ngā mea katoa, ā, mā ngā tautuhinga iti ka nui ake ngā mea ka puritia. |
| `num_frames` |  | integer | no | `121` | 9 – 481 | Te tatau anga putanga, kei raro i tētahi pūtea pūmautanga IC-LoRA e tātaihia ana mā te taumira whakareatia ki ngā anga. Ko te whakautu 422 he tohu kua hipa taua pūtea: whakahekea te taumira, te `num_frames` rānei. Ka whakaaetia e te pūtea he tata ki te 150 anga i ngā rahinga taumata-720p, ā, he nui ake i ngā rahinga iti. |
| `resolution` |  | object {width, height} \| enum (string) | no | `auto` | `auto`, `square_hd`, `square`, `portrait_4_3`, `portrait_16_9`, `landscape_4_3`, `landscape_16_9` | Ngā rahinga ataata putanga, e pā ana hoki ki te roanga pūmau: mā ngā rahinga iti ka nui ake ngā anga, ā, mā ngā rahinga nui ka heke te mōrahi. Mā te whakatau tata whakahaere ā-roto e pupuri te rahinga kia tata ki te rerengamahi whakahaere whaimana; engari mā te whakahaere tōtika mā `skip_control_preprocess` me `control_video_url` e whai ngā rahinga kua tohua me te whakahāngai 64px. I te aratau whakahaere tōtika, ka tuku iho a `auto` i ngā rahinga me te ōwehenga-āhuatanga o te pūtake i roto i ngā here LTX. |
| `frames_per_second` |  | number | no | `24` | 1 – 60 | Tere anga ataata putanga, ka inehia ki ngā anga ia hēkona. |
| `num_inference_steps` |  | integer | no | `15` | 8 – 30 | Tautuhia te maha o ngā hīkoi inference hei whakahaere, tae atu ki te 30; ki te waiho kia kore e whakarerekēhia, ka whakamahia te 15. |
| `guidance_scale` |  | number | no | `1` | 1 – 20 | Whakaritea te ārahi classifier-free mā tēnei tauine; ko te whakatikatika taunoa e whāia ana ko te kounga tiketike me te whakaputanga tere. |
| `generate_audio` |  | boolean | no | `true` |  | Whakakā riu ororongo mō te MP4 kua whakahokia: mā te whakaweto ka puta he kōnae ataata anake, ā, mā te whakakā ka whakauru ororongo. |
| `negative_prompt` |  | string | no | `color distortion, overexposure, static, blurry details, subtitles, style, artwork, painting, frame, still, dim overall tone, worst quality, low quality, JPEG compression artifacts, ugly, mutilated, extra fingers, poorly drawn hands, poorly drawn face, deformed, disfigured, malformed limbs, fused fingers, motionless frame, cluttered background, three legs, crowded background, walking backwards` |  | Tohutohu tōraro e tohu ana i ngā mea me karo i te whakaputanga. |
| `seed` |  | integer \| null | no |  |  | Te kākano e taea ai te tārua o te whakaputanga. Mā te tautuhi ki None e kōwhiri matapōkeretia ai he kākano. |
| `enable_prompt_expansion` |  | boolean | no | `true` |  | Ka whakahaere mēnā kua whakahohea te whakawhānui tohutohu. |
| `enable_safety_checker` |  | boolean | no | `true` |  | Ka whakahaere mēnā kua whakakāhia te tirotiro haumaru. |
| `video_quality` |  | enum (string) | no | `high` | `low`, `medium`, `high`, `maximum` | Tatūkē kounga ka whakamahia ki te ataata putanga. |
| `video_write_mode` |  | enum (string) | no | `balanced` | `fast`, `balanced`, `small` | Aratau tuhi mō te ataata ka puta. |

File parameters (`video`, `control_video_url`, `image`, `mid_image_url`, `end_image`) take a public `https://` URL, a `data:` URI up to 10 MB, or the `file_url` of an upload from `POST /files`.

## Example input

Required parameters only:

```json
{
  "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
  "video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
}
```

A fuller example:

```json
{
  "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
  "video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
}
```

## Run it

Set `DOITONG_API_KEY` to a key from https://doitong.com/developers/dashboard#keys. `?wait=20` returns the finished request in the same call when it is ready within 20 seconds; otherwise poll `GET /requests/{id}` (it also accepts `?wait=`), or pass `webhook_url`.

### curl

```bash
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.ru/v1/run/ltx-2.3-quality/reference-video-to-video?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
    "video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.ru/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"
```

### JavaScript

```javascript
const API = "https://api.doitong.ru/v1";
const headers = {
  "Authorization": "Bearer " + process.env.DOITONG_API_KEY,
  "Content-Type": "application/json",
};

// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/ltx-2.3-quality/reference-video-to-video?wait=20", {
  method: "POST",
  headers,
  body: JSON.stringify({
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
    "video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
  }),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);

// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
  res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
  request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
```

### Python

```python
import os
import requests

API = "https://api.doitong.ru/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}

payload = {
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
    "video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
}

# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/ltx-2.3-quality/reference-video-to-video", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
    raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])

# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
    request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
    raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
```

### MCP

The MCP server at `https://api.doitong.ru/v1/mcp` exposes the tools `search_models`, `get_model`, `quote`, `run`, `get_request`, `cancel_request`, `list_requests`, `create_upload` and `get_account`. A `run` call for this model:

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "run",
    "arguments": {
      "model_id": "ltx-2.3-quality/reference-video-to-video",
      "input": {
        "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
        "video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
      },
      "wait_seconds": 20
    }
  }
}
```

## Response

Every call returns a request object. `status` is one of `queued`, `running`, `succeeded`, `failed`, `canceled`. `outputs` lists the generated files with URLs on our storage (kept forever, or 7 days with `?storage=temporary`; `storage` says which); `output` is the model's own result object with the same URLs.

```json
{
  "id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
  "object": "request",
  "model": "ltx-2.3-quality/reference-video-to-video",
  "status": "succeeded",
  "created_at": "2026-10-20T12:00:00Z",
  "started_at": "2026-10-20T12:00:02Z",
  "completed_at": "2026-10-20T12:00:09Z",
  "queue_position": null,
  "cost": {
    "credits": 270,
    "usd": "0.27",
    "charged": 270,
    "refunded": 0
  },
  "input": {
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
    "video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
  },
  "output": {
    "video": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
      "content_type": "video/mp4",
      "file_name": "0-output.mp4",
      "file_size": 1843200
    },
    "seed": 42,
    "prompt": "string"
  },
  "outputs": [
    {
      "type": "video",
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
      "content_type": "video/mp4",
      "file_size": 1843200,
      "width": 1280,
      "height": 720,
      "duration": 5,
      "stored": true
    }
  ],
  "error": null,
  "metrics": {
    "inference_seconds": 6.8
  },
  "urls": {
    "self": "https://api.doitong.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
    "cancel": "https://api.doitong.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
  }
}
```

### Output fields (`output`)

| Field | Type | Description |
|---|---|---|
| `video` | object {url, content_type, file_name, file_size} | Ataata i whakaputaina e te tauira. |
| `seed` | integer | Seed tūturu ka whakamahia i te whakaputanga. |
| `prompt` | string | Tohutohu whakaputanga, tae atu ki ngā whakawhānuitanga i whakamahia i mua i te whakamahinga. |

## Related models

- [Ltx 2.3 Quality · Text to Video](https://doitong.com/developers/models/ltx-2.3-quality/text-to-video.md) (`ltx-2.3-quality/text-to-video`): $0.00241 / megapixel of output video
- [Ltx 2.3 Quality · Text to Video · LoRA](https://doitong.com/developers/models/ltx-2.3-quality/text-to-video/lora.md) (`ltx-2.3-quality/text-to-video/lora`): $0.00271 / megapixel of output video
- [Ltx 2.3 Quality · Image to Video](https://doitong.com/developers/models/ltx-2.3-quality/image-to-video.md) (`ltx-2.3-quality/image-to-video`): $0.00241 / megapixel of output video
- [Ltx 2.3 Quality · Image to Video · LoRA](https://doitong.com/developers/models/ltx-2.3-quality/image-to-video/lora.md) (`ltx-2.3-quality/image-to-video/lora`): $0.00271 / megapixel of output video
- [Ltx 2.3 Quality · Ingredient](https://doitong.com/developers/models/ltx-2.3-quality/ingredient.md) (`ltx-2.3-quality/ingredient`): $0.00241 / megapixel of output video
- [Ltx 2.3 Quality · Clean Plate](https://doitong.com/developers/models/ltx-2.3-quality/clean-plate.md) (`ltx-2.3-quality/clean-plate`): $0.00241 / megapixel of output video
- [Ltx 2.3 Quality · Colorization](https://doitong.com/developers/models/ltx-2.3-quality/colorization.md) (`ltx-2.3-quality/colorization`): $0.00241 / megapixel of output video
- [Ltx 2.3 Quality · Cross Eyed](https://doitong.com/developers/models/ltx-2.3-quality/cross-eyed.md) (`ltx-2.3-quality/cross-eyed`): $0.00241 / megapixel of output video

## Links

- HTML page: https://doitong.com/developers/models/ltx-2.3-quality/reference-video-to-video
- All models and guides for AI agents: https://doitong.com/developers/llms.txt
- OpenAPI 3.1 with this model's typed request body: https://doitong.com/developers/openapi.json?model=ltx-2.3-quality/reference-video-to-video
- Errors: https://doitong.com/developers/docs/errors
- Model details as JSON: https://api.doitong.ru/v1/models/ltx-2.3-quality/reference-video-to-video
