# Ltx 2.3 Quality · Reference Video to Video · LoRA API

> Te whakaputa ataata tohutoro pēnei i te putanga pūtake, engari ka whakamahi tae atu ki te 3 LoRA ritenga

Ka whakaputa ataata mai i tētahi `prompt` me `video_url` tohutoro hei arataki i te nekehanga me te hanganga, ā, me whai hoki `loras`, kia 3 ngā kōnae LoRA, kia 3 GB te rahi mō ia mea. Ko ngā atahanga anga matua tuatahi, waenga me te whakamutunga (`image_url`, `mid_image_url`, `end_image_url`) hei here i te āhua. Ka haere `video_strength` me `strength` mai i te 0 ki te 1, ā, `num_frames` mai i te 9 ki te 481.

- Model id: `ltx-2.3-quality/reference-video-to-video/lora`
- Made by: Lightricks
- Category: Video to Video
- Output: video
- Price per megapixel of your output video: $0.00271 / 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/lora`
- Quote: `POST https://api.doitong.ru/v1/quote/ltx-2.3-quality/reference-video-to-video/lora`
- Docs page: https://doitong.com/mi/developers/models/ltx-2.3-quality/reference-video-to-video/lora

## Pricing

Price: **$0.00271 / 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.304 = 304 API credits (112 MP output video × $0.002708).

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/lora` 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. |
| `loras` |  | array of object {path, scale, transformer} | yes |  | ≤ 3 items | Ngā tāpiritanga LoRA mō LTX-2.3, e herea ana ia mea ki te 3 GB, ā, e 3 ngā urunga mōrahi. Ka utaina anake i muri i te tiki a te downloader haumaru-SSRF o te rēhita i ia ara. |
| `loras[].path` |  | string | yes |  | ≤ 2048 characters | URL HTTP(S) tika mō tētahi kōnae LoRA .safetensors kāore e nui ake i te 3 GB. Ka mua te tiki mā tētahi downloader haumaru-SSRF i te uta. |
| `loras[].scale` |  | number | no | `1` | 0 – 2 | Ka kaha ake te awe o LoRA ki te ataata kua whakaputaina ina piki ake tēnei kaha i roto i te awhe 0.0–2.0. |
| `loras[].transformer` |  | enum (string) | no | `both` | `high`, `low`, `both` | Tohu kōwhiri Transformer: he pai 'both' mō te nuinga o ngā kaiwhakamahi LTX-2.3 nā te mea kotahi anake te transformer o te tauira. Kei reira tēnei tohu hei tautoko i ngā hoahoanga ā muri ake me ngā transformer maha. |

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
{
  "loras": [
    {
      "path": "https://example.com/your-file.safetensors"
    }
  ],
  "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
{
  "loras": [
    {
      "path": "https://example.com/your-file.safetensors"
    }
  ],
  "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/lora?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "loras": [
      {
        "path": "https://example.com/your-file.safetensors"
      }
    ],
    "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/lora?wait=20", {
  method: "POST",
  headers,
  body: JSON.stringify({
    "loras": [
      {
        "path": "https://example.com/your-file.safetensors"
      }
    ],
    "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 = {
    "loras": [
        {
            "path": "https://example.com/your-file.safetensors",
        },
    ],
    "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/lora", 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/lora",
      "input": {
        "loras": [
          {
            "path": "https://example.com/your-file.safetensors"
          }
        ],
        "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/lora",
  "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": 304,
    "usd": "0.304",
    "charged": 304,
    "refunded": 0
  },
  "input": {
    "loras": [
      {
        "path": "https://example.com/your-file.safetensors"
      }
    ],
    "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/lora
- 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/lora
- 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/lora
