# LTX 2.3 Trainer (V2) - Audio-to-Video API

> Trèan LoRA LTX 2.3 a chruthaicheas bhidio bho ìomhaigh tòiseachaidh agus fuaim suidheachaidh

Trèan LoRA airson cruthachadh fuaim-gu-bhidio bho `.zip` ann an `training_data_url`. Tha `rank` eadar 8 agus 128, `number_of_steps` eadar 100 agus 10000, agus `number_of_frames` eadar 9 agus 121. Gabhaidh `validation` ri suas ri 2 inntrigeadh, gach fear le slighe fuaime suidheachaidh. Bheir e a-mach cuideaman LoRA, faidhle config agus ro-shealladh roghainneil.

- Model id: `ltx23-trainer-v2/a2v`
- Made by: Lightricks
- Category: Training
- Output: file
- Price: $0.006 / step (cheapest run $12.00 (12000 API credits))
- Run: `POST https://api.doitong.com/v1/run/ltx23-trainer-v2/a2v`
- Quote: `POST https://api.doitong.com/v1/quote/ltx23-trainer-v2/a2v`
- Docs page: https://doitong.com/gd/developers/models/ltx23-trainer-v2/a2v

## Pricing

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

The full example input below costs $12.00 = 12000 API credits (2000 steps × 6 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-trainer-v2/a2v` 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 airson `.zip` anns a bheil dàta trèanaidh, air a chur air dòigh a rèir a’ mhodh trèanaidh thaghte. Faodaidh caption `.txt` co-cheangailte le bun-ainm co-ionann a bhith aig gach faidhle mheadhanan. |
| `rank` |  | enum (integer) | no | `32` | `8`, `16`, `32`, `64`, `128` | Rang atharrachaidh LoRA, ag iomlaid barrachd caitheamh cuimhne airson comas nas motha mar a dh’èireas an suidheachadh. |
| `number_of_steps` |  | integer | no | `2000` | 100 – 10,000 | Àireamh iomlan de cheumannan trèanaidh. |
| `learning_rate` |  | number | no | `0.0002` | 0.000001 – 1 | Ìre ionnsachaidh optimization. |
| `number_of_frames` |  | integer | no | `89` | 9 – 121 | Àireamh frèam airson gach sampall trèanaidh. Feumaidh roinneadh na h-àireimh le 8 còrr de 1 fhàgail; tha eisimpleirean a’ gabhail a-steach 1, 9, 17, 25, 33, 41, 49, 57, 65, 73, 81, 89, 97. |
| `frame_rate` |  | integer | no | `24` | 8 – 60 | Ìre frèam targaid bhidio trèanaidh ann am frèaman gach diog. Is e an ìre dhùthchasach airson LTX-2.3 24. |
| `resolution` |  | enum (string) | no | `medium` | `low`, `medium`, `high` | Dùmhlachd-bhreacaidh trèanaidh. Le bhith ag àrdachadh na dùmhlachd-bhreacaidh àrdaichear riatanasan cuimhne. |
| `aspect_ratio` |  | enum (string) | no | `1:1` | `16:9`, `1:1`, `9:16` | Co-mheas-taobhan trèanaidh. |
| `trigger_phrase` |  | string | no | `` |  | Abairt gnìomhachaidh stoidhle LoRA, air a cur aig toiseach nan captions rè trèanaidh. |
| `auto_scale_input` |  | boolean | no | `false` |  | Atharrachadh bhidio fèin-obrachail gus a bhith a rèir an FPS agus àireamh frèam a chaidh iarraidh nuair a tha e air; bidh seataichean-dàta ìomhaighe gun atharrachadh. |
| `split_input_into_scenes` |  | boolean | no | `false` |  | Sgaradh sheallaidhean airson bhidiothan trèanaidh sintéiseichte a tha nas fhaide na an stairsneach faid. Nuair a tha e fìor, tachraidh an sgaradh às dèidh ìomhaigh thòiseachaidh agus claisneachd a chur ri chèile. |
| `split_input_duration_threshold` |  | number | no | `30` | 1 – 60 | Trigger sgaradh sheallaidhean air a chur an cèill mar fhad ann an diogan: cha tèid ach bhidiothan nas fhaide na an stairsneach a sgaradh. |
| `debug_dataset` |  | boolean | no | `false` |  | Modh sgrùdaidh ro-ghiullachd airson bhidiothan, ìomhaighean agus captions a dhearbhadh ro ruith trèanaidh iomlan. Le bhith ga chur an comas tillidh an trèanair an seata-dàta trèanaidh giullaichte ann an tasglann a ghabhas luchdadh a-nuas airson sgrùdadh làimhe. |
| `audio_normalize` |  | boolean | no | `true` |  | Normalachadh stùc na claisneachd-conditioning gus ìrean co-sheasmhach a chumail air feadh an t-seata-dàta. |
| `audio_preserve_pitch` |  | boolean | no | `true` |  | Gleidheadh pitch fhad ’s a thathar ag atharrachadh claisneachd gus a bhith a rèir fad a’ bhidio, seach a bearradh no a lìonadh. |
| `validation` |  | array of object {prompt, image_url, audio_url} | no | `[]` | ≤ 2 items | Liosta phrompaidean dearbhaidh a’ paidreachadh gach prompt le slighe claisneachd-conditioning. |
| `validation[].prompt` |  | string | yes |  |  | Prompt a thèid a chleachdadh rè dearbhaidh. |
| `validation[].image_url` |  | string (image URL) | yes |  | ≥ 1 characters | URL ìomhaighe a chleachdas a2v gu dìreach mar a chiad fhrèam, seach an frèam sin a ghineadh. Bidh pròiseas a2v ìomhaigh+claisneachd -> bhidio a’ cleachdadh an dà chuid a’ chlaisneachd agus an ìomhaigh a chaidh a thoirt seachad mar conditioning. |
| `validation[].audio_url` |  | string (audio URL) | yes |  | ≥ 1 characters | URL claisneachd-conditioning a thèid a chleachdadh gus gineadh bhidio a stiùireadh. |
| `validation_negative_prompt` |  | string | no | `blurry, out of focus, overexposed, underexposed, low contrast, washed out colors, excessive noise, grainy texture, poor lighting, flickering, motion blur, distorted proportions, unnatural skin tones, deformed facial features, asymmetrical face, missing facial features, extra limbs, disfigured hands, wrong hand count, artifacts around text, inconsistent perspective, camera shake, incorrect depth of field, background too sharp, background clutter, distracting reflections, harsh shadows, inconsistent lighting direction, color banding, cartoonish rendering, 3D CGI look, unrealistic materials, uncanny valley effect, incorrect ethnicity, wrong gender, exaggerated expressions, wrong gaze direction, mismatched lip sync, silent or muted audio, distorted voice, robotic voice, echo, background noise, off-sync audio, incorrect dialogue, added dialogue, repetitive speech, jittery movement, awkward pauses, incorrect timing, unnatural transitions, inconsistent framing, tilted camera, flat lighting, inconsistent tone, cinematic oversaturation, stylized filters, or AI artifacts.` |  | Prompt àicheil air a chur an sàs rè dearbhaidh, a bhios a’ cleachdadh pròiseas ro-sheallaidh aon-ìre. Leis gu bheil am pròiseas sin a’ dèanamh tuairmse air inference riochdachaidh distilled le dà ìre, tha an stiùireadh agus càileachd an ro-sheallaidh eadar-dhealaichte bho na toraidhean deireannach. |
| `validation_number_of_frames` |  | integer | no | `89` | 9 – 121 | Àireamh frèam airson gach bhidio dearbhaidh. |
| `validation_frame_rate` |  | integer | no | `24` | 8 – 60 | Ìre frèam targaid airson bhidiothan dearbhaidh, ann am frèaman gach diog; tha LTX-2.3 a’ ruith gu dùthchasach aig 24. |
| `validation_resolution` |  | enum (string) | no | `high` | `low`, `medium`, `high` | Dùmhlachd-bhreacaidh a thèid a chleachdadh rè dearbhaidh. |
| `validation_aspect_ratio` |  | enum (string) | no | `1:1` | `16:9`, `1:1`, `9:16` | Co-mheas-taobhan a thèid a chleachdadh rè dearbhaidh. |
| `stg_scale` |  | number | no | `1` | 0 – 3 | Sgèile Spatio-Temporal Guidance (STG), le 1.0 air a mholadh agus 0.0 a’ cur STG dheth. |

## 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-trainer-v2/a2v?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-trainer-v2/a2v?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-trainer-v2/a2v", 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-trainer-v2/a2v",
      "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-trainer-v2/a2v",
  "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": 12000,
    "usd": "12.00",
    "charged": 12000,
    "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
    },
    "audio": {
      "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 | Ro-shealladh bhidio co-mheasgaichte bho dhearbhadh, nuair a tha e ri fhaighinn airson puingean-crìche a chruthaicheas bhidio. |
| `audio` | object {url, content_type, file_name, file_size} \| null | Claisneachd cho-mheasgaichte bho dhearbhadh, air a thoirt seachad mar ro-shealladh nuair a tha e ri fhaighinn airson na slighean claisneachd a-mhàin seo: /audio-inpaint, /audio-extend-suffix, /audio-extend-prefix, /t2a, /a2a, agus /v2a. |
| `lora_file` | object {url, content_type, file_name, file_size} | URL airson cuideaman LoRA trèanaichte ann an cruth .safetensors. |
| `config_file` | object {url, content_type, file_name, file_size} | Rèiteachadh airson suidheachadh puing-crìche inference. |
| `debug_dataset` | object {url, content_type, file_name, file_size} \| null | Às-chur dì-bhugachaidh ri fhaighinn nuair a tha `debug_dataset` air: tasglann a ghabhas luchdadh a-nuas anns a bheil an dàta trèanaidh às dèidh ro-ghiullachd. |

## 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) - 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
- [LTX 2.3 Trainer (V2) - Forward Audio Extension](https://doitong.com/developers/models/ltx23-trainer-v2/audio-extend-prefix.md) (`ltx23-trainer-v2/audio-extend-prefix`): $0.0022 / step

## Links

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