# LTX-2.3 22B Video to Video Trainer API

> Þjálfar LTX-2.3 22B LoRA fyrir umbreytingu myndskeiða eða myndskeiðsskilyrta myndun úr viðmiðunarmyndskeiðum

Þjálfar LoRA á LTX-2.3 22B-líkaninu fyrir umbreytingu myndskeiða, með zip-safni mynda eða myndskeiða (mp4, mov, avi, mkv, png, jpg, jpeg); mælt er með að minnsta kosti um 10 skrám. `number_of_steps` er frá 1 til 20000 (sjálfgefið 2000) og `frame_rate` er sjálfgefið 25. `first_frame_conditioning_p` er sjálfgefið 0.1. Staðfesting tekur við allt að 2 leiðbeiningum með viðmiðunarmyndskeiðum.

- Model id: `ltx23-v2v-trainer`
- Made by: Lightricks
- Category: Training
- Output: file
- Price: $0.0135 / step (cheapest run $27.00 (27000 API credits))
- Run: `POST https://api.doitong.com/v1/run/ltx23-v2v-trainer`
- Quote: `POST https://api.doitong.com/v1/quote/ltx23-v2v-trainer`
- Docs page: https://doitong.com/is/developers/models/ltx23-v2v-trainer

## Pricing

Price: **$0.0135 / step**. Billed per training step (`number_of_steps`).

The full example input below costs $27.00 = 27000 API credits (2000 steps × 13.5 API credits).

Prices are the upstream price in USD, paid from the API balance in API credits (1000 API credits = 1 USD). `POST https://api.doitong.com/v1/quote/ltx23-v2v-trainer` 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

| Parameter | Canonical name | Type | Required | Default | Allowed values / range | Description |
|---|---|---|---|---|---|---|
| `training_data_url` |  | string | yes |  |  | URL ZIP-skjalasafns fyrir gagnasafn sem inniheldur eingöngu myndir eða eingöngu myndbönd; gagnasöfn með blönduðum miðlum eru ekki studd. Stefndu að 10 skrám eða fleiri, helst stærra safni. Samþykktar viðbætur eru .png, .jpg, .jpeg fyrir myndir og .mp4, .mov, .avi, .mkv fyrir myndbönd. Valfrjálsar textaskrár með lýsingum mega fylgja miðlunum, þar sem hver lýsingarskrá ber sama heiti og tengd miðlaskrá. |
| `rank` |  | enum (integer) | no | `32` | `8`, `16`, `32`, `64`, `128` | Aðlögunarstig LoRA, þar sem aukin minnisnotkun fæst gegn meiri getu eftir því sem stillingin hækkar. |
| `number_of_steps` |  | integer | no | `2000` | 1 – 20,000 | Heildarfjöldi þjálfunarskrefa. |
| `learning_rate` |  | number | no | `0.0002` | 0.000001 – 1 | Námshraði bestunar, sem vegur mögulegan hraðaauka í þjálfun á móti hættu á ofþjálfun þegar hann er hækkaður. |
| `number_of_frames` |  | integer | no | `89` | 9 – 121 | Fjöldi ramma í hverju þjálfunarsýni. Deiling fjöldans með 8 verður að skilja eftir afganginn 1; dæmi eru 1, 9, 17, 25, 33, 41, 49, 57, 65, 73, 81, 89, 97. |
| `frame_rate` |  | integer | no | `25` | 8 – 60 | Markrammatíðni myndbands, mæld í römmum á sekúndu. |
| `resolution` |  | enum (string) | no | `medium` | `low`, `medium`, `high` | Þjálfunarupplausn. Hærri upplausn eykur minnisþörf. |
| `aspect_ratio` |  | enum (string) | no | `1:1` | `16:9`, `1:1`, `9:16` | Þjálfunarstærðarhlutfall. |
| `trigger_phrase` |  | string | no | `` |  | LoRA-stílvirkjunarsetning, sett fremst í texta við þjálfun. |
| `auto_scale_input` |  | boolean | no | `false` |  | Sjálfvirk aðlögun myndbands að umbeðinni FPS og rammtölu þegar hún er virk; myndgagnasöfn haldast óbreytt. |
| `split_input_into_scenes` |  | boolean | no | `true` |  | Senuskipting fyrir myndbönd sem fara yfir lengdarþröskuld, virk þegar gildið er true. |
| `split_input_duration_threshold` |  | number | no | `30` | 1 – 60 | Kveikja senuskiptingar gefin upp sem lengd í sekúndum: aðeins myndböndum sem eru lengri en þröskuldurinn er skipt. |
| `debug_dataset` |  | boolean | no | `false` |  | Skoðunarhamur forvinnslu til að yfirfara myndbönd, myndir og texta áður en full þjálfun keyrir. Þegar hann er virkur skilar þjálfarinn unnu þjálfunargagnasafni í skráasafni sem hægt er að hlaða niður til handvirkrar yfirferðar. |
| `first_frame_conditioning_p` |  | number | no | `0.1` | 0 – 1 | Forgangsraða myndbands-í-myndband umbreytingu með því að draga úr tíðni þess að þjálfun noti skilyrðingu fyrsta ramma; þetta gildi stillir þær líkur. |
| `validation` |  | array of object {prompt, reference_video_url} | no | `[]` | ≤ 2 items | Staðfestingarlisti yfir inntak sem inniheldur kvaðningar paraðar við viðmiðunarmyndbönd. |
| `validation[].prompt` |  | string | yes |  |  | Kvaðning notuð við staðfestingu. |
| `validation[].reference_video_url` |  | string (video URL) | yes |  | ≥ 1 characters | Gefðu upp URL myndbandsins sem á að umbreyta við IC-LoRA-staðfestingu. |
| `validation_negative_prompt` |  | string | no | `worst quality, inconsistent motion, blurry, jittery, distorted` |  | Neikvæð kvaðning notuð við staðfestingu. |
| `validation_number_of_frames` |  | integer | no | `89` | 9 – 121 | Fjöldi ramma í hverju staðfestingarmyndbandi. |
| `validation_frame_rate` |  | integer | no | `25` | 8 – 60 | Markrammatíðni staðfestingarmyndbands, mæld í römmum á sekúndu. |
| `validation_resolution` |  | enum (string) | no | `high` | `low`, `medium`, `high` | Upplausn notuð við staðfestingu. |
| `validation_aspect_ratio` |  | enum (string) | no | `1:1` | `16:9`, `1:1`, `9:16` | Stærðarhlutfall notað við staðfestingu. |
| `stg_scale` |  | number | no | `1` | 0 – 3 | Spatio-Temporal Guidance (STG)-kvarði, þar sem mælt er með 1.0 en 0.0 slekkur á STG. |

## Example input

Required parameters only:

```json
{
  "training_data_url": "https://example.com/your-file.zip"
}
```

A fuller example:

```json
{
  "training_data_url": "https://example.com/your-file.zip"
}
```

## 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.com/v1/run/ltx23-v2v-trainer?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "training_data_url": "https://example.com/your-file.zip"
  }'

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

### JavaScript

```javascript
const API = "https://api.doitong.com/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/ltx23-v2v-trainer?wait=20", {
  method: "POST",
  headers,
  body: JSON.stringify({
    "training_data_url": "https://example.com/your-file.zip"
  }),
});
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.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}

payload = {
    "training_data_url": "https://example.com/your-file.zip",
}

# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/ltx23-v2v-trainer", 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.com/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": "ltx23-v2v-trainer",
      "input": {
        "training_data_url": "https://example.com/your-file.zip"
      },
      "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": "ltx23-v2v-trainer",
  "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": 27000,
    "usd": "27.00",
    "charged": 27000,
    "refunded": 0
  },
  "input": {
    "training_data_url": "https://example.com/your-file.zip"
  },
  "output": {
    "video": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_name": "0-output.jpeg",
      "file_size": 1843200
    },
    "lora_file": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_name": "0-output.jpeg",
      "file_size": 1843200
    },
    "config_file": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_name": "0-output.jpeg",
      "file_size": 1843200
    },
    "debug_dataset": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_name": "0-output.jpeg",
      "file_size": 1843200
    }
  },
  "outputs": [
    {
      "type": "file",
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_size": 1843200,
      "stored": true
    }
  ],
  "error": null,
  "metrics": {
    "inference_seconds": 6.8
  },
  "urls": {
    "self": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
    "cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
  }
}
```

### Output fields (`output`)

| Field | Type | Description |
|---|---|---|
| `video` | object {url, content_type, file_name, file_size} \| null | URL allra tiltækra staðfestingarmyndbanda, sýnd samhliða viðmiðunarmyndböndum þeirra. |
| `lora_file` | object {url, content_type, file_name, file_size} | URL þjálfaðrar IC-LoRA-vigtarskrár á .safetensors-sniði. |
| `config_file` | object {url, content_type, file_name, file_size} | Uppsetning fyrir uppsetningu ályktunarendapunkts. |
| `debug_dataset` | object {url, content_type, file_name, file_size} \| null | Hægt að sækja villuleitarsafn, aðeins tiltækt fyrir inntak sem virkja `debug_dataset`; innihald þjálfunargagna hefur verið forunnið og inniheldur myndbönd á afkóðuðu formi. |

## Related models

- [LTX 2.3 Trainer (V2) - Audio Inpainting](https://doitong.com/developers/models/ltx23-trainer-v2/audio-inpaint.md) (`ltx23-trainer-v2/audio-inpaint`): $0.0023 / step
- [LTX 2.3 Trainer (V2) - Audio+Video Reference IC-LoRA](https://doitong.com/developers/models/ltx23-trainer-v2/ic-lora/av2av.md) (`ltx23-trainer-v2/ic-lora/av2av`): $0.0068 / step
- [LTX 2.3 Trainer (V2) - Audio+Video Reference Transformation](https://doitong.com/developers/models/ltx23-trainer-v2/av2av.md) (`ltx23-trainer-v2/av2av`): $0.0068 / step
- [LTX 2.3 Trainer (V2) - Audio-to-Audio](https://doitong.com/developers/models/ltx23-trainer-v2/a2a.md) (`ltx23-trainer-v2/a2a`): $0.0023 / step
- [LTX 2.3 Trainer (V2) - Audio-to-Audio IC-LoRA](https://doitong.com/developers/models/ltx23-trainer-v2/ic-lora/a2a.md) (`ltx23-trainer-v2/ic-lora/a2a`): $0.0023 / step
- [LTX 2.3 Trainer (V2) - Audio-to-Video](https://doitong.com/developers/models/ltx23-trainer-v2/a2v.md) (`ltx23-trainer-v2/a2v`): $0.006 / step
- [LTX 2.3 Trainer (V2) - Backward Audio Extension](https://doitong.com/developers/models/ltx23-trainer-v2/audio-extend-suffix.md) (`ltx23-trainer-v2/audio-extend-suffix`): $0.0023 / step
- [LTX 2.3 Trainer (V2) - Backward Video Extension](https://doitong.com/developers/models/ltx23-trainer-v2/extend-suffix.md) (`ltx23-trainer-v2/extend-suffix`): $0.0061 / step

## Links

- HTML page: https://doitong.com/developers/models/ltx23-v2v-trainer
- 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=ltx23-v2v-trainer
- Errors: https://doitong.com/developers/docs/errors
- Model details as JSON: https://api.doitong.com/v1/models/ltx23-v2v-trainer
