# LTX Video-0.9.7 13B Distilled · Multiconditioning API

> Fideo-i-fideo gyda chyflyru delwedd a fideo, cefnogaeth LoRA a mireinio dau bas gyda bas manylder dewisol

Yn cynhyrchu fideo o `prompt` gofynnol, wedi’i arwain gan fewnbynnau cyflyru yn `images` a `videos`. Gellir pasio LoRA arferol yn `loras`. Mae’r allbwn yn 480p neu 720p, gyda `num_frames` o 9 i 1441 a `frame_rate` o 1 i 60. Mae cyfrifon camau ar wahân ar gyfer y pas cyntaf a’r ail, bas manylder dewisol a rheolyddion lliw fel `temporal_adain_factor` yn caniatáu tiwnio’r canlyniad.

- Model id: `ltx-video-13b-distilled/multiconditioning`
- Made by: Lightricks
- Category: Video to Video
- Output: video
- Price per second of your output video: from $0.04 / second of output video (cheapest run $0.04 (40 API credits))
- Run: `POST https://api.doitong.ru/v1/run/ltx-video-13b-distilled/multiconditioning`
- Quote: `POST https://api.doitong.ru/v1/quote/ltx-video-13b-distilled/multiconditioning`
- Docs page: https://doitong.com/cy/developers/models/ltx-video-13b-distilled/multiconditioning

## Pricing

Price: **from $0.04 / second of output video** (the lowest tier; the quote prices your exact input). Price per second 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.202 = 202 API credits (5.0417 s output video × $0.04).

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-video-13b-distilled/multiconditioning` 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 |
|---|---|---|---|---|---|---|
| `prompt` |  | string | yes |  |  | Cyfarwyddiadau testun sy’n arwain cynhyrchu. |
| `negative_prompt` |  | string | no | `worst quality, inconsistent motion, blurry, jittery, distorted` |  | Cyfarwyddiadau testun negyddol ar gyfer cynhyrchu. |
| `loras` |  | array of object {path, weight_name, scale} | no | `[]` |  | Pwysoliadau LoRA a gymhwysir wrth gynhyrchu. |
| `loras[].path` |  | string | yes |  |  | Lleoliad y pwysoliadau LoRA, wedi’i roi fel URL neu lwybr. |
| `loras[].weight_name` |  | string \| null | no |  |  | Enw pwysau LoRA ar gyfer dewis rhwng pwysau lluosog mewn ystorfa HuggingFace; dim ond ystorfeydd sy'n cynnwys pwysau lluosog sydd ei angen. Nid yw'r gosodiad hwn yn cael effaith oni bai bod `path` yn dynodi ystorfa HuggingFace. |
| `loras[].scale` |  | number | no | `1` | 0 – 4 | Lluosydd sy’n graddio pwysoliad LoRA wrth ei lwytho. |
| `resolution` |  | enum (string) | no | `720p` | `480p`, `720p` | Cydraniad yr allbwn fideo. |
| `aspect_ratio` |  | enum (string) | no | `auto` | `9:16`, `1:1`, `16:9`, `auto` | Cymhareb agwedd y fideo. |
| `seed` |  | integer \| null | no |  |  | Hedyn sy’n rheoli hap wrth gynhyrchu. |
| `num_frames` |  | integer | no | `121` | 9 – 1,441 | Cyfanswm cyfrif fframiau’r fideo. |
| `first_pass_num_inference_steps` |  | integer | no | `8` | 2 – 12 | Cyfrif camau casglu ar gyfer y pas cyntaf. |
| `second_pass_num_inference_steps` |  | integer | no | `8` | 2 – 12 | Cyfrif camau casglu ar gyfer yr ail bas. |
| `second_pass_skip_initial_steps` |  | integer | no | `5` | 1 – 11 | Cyfrif cychwynnol camau casglu i’w hepgor yn ystod yr ail bas, gan symud y pas hwnnw tuag at waith manylder mân yn hytrach na newidiadau ar raddfa fawr. |
| `frame_rate` |  | integer | no | `24` | 1 – 60 | Cyfradd ffrâm y fideo. |
| `expand_prompt` |  | boolean | no | `false` |  | Ehangu anogiad drwy fodel iaith. |
| `reverse_video` |  | boolean | no | `false` |  | Gwrthdroi trefn chwarae’r fideo. |
| `enable_safety_checker` |  | boolean | no | `true` |  | Switsh gwirio diogelwch y caiff ei osodiad diffodd ei barchu ar gyfer cyfrifon awdurdodedig yn unig. Mae pob cais heb yr awdurdodiad hwnnw yn cael gwiriadau diogelwch. |
| `enable_detail_pass` |  | boolean | no | `false` |  | Ail bas mireinio dewisol sy’n gwella manylion fideo pan gaiff ei alluogi. |
| `temporal_adain_factor` |  | number | no | `0.5` | 0 – 1 | Cryfder normaleiddio enghraifft addasol (AdaIN), gan gydbwyso cysondeb lliw ar osodiadau uwch yn erbyn mwy o amrywiad lliw ar osodiadau is. Mae’n gweithredu ar ddarnau a gynhyrchir ac eithrio’r cyntaf, gan normaleiddio dosbarthiadau lliw drwy’r fideo i helpu i wrthbwyso cynnydd graddol mewn dirlawnder neu gyferbyniad. |
| `tone_map_compression_ratio` |  | number | no | `0` | 0 – 1 | Lefel cywasgu mapio tôn, yn amrywio o ddim cywasgu ar 0.0 i gywasgu mwyaf ar 1.0. Mae cywasgu ystod ddeinamig y fideo fel hyn yn gwella ansawdd gweledol. |
| `constant_rate_factor` |  | integer | no | `29` | 0 – 51 | Ffactor cyfradd gyson (CRF) a ddefnyddir ar gyfer cywasgu mewnbwn, a all wella ansawdd symudiad drwy ddod â’r cyfryngau a ddarperir yn nes at ddata hyfforddi’r model. |
| `images` |  | array of object {image_url, start_frame_num, strength} | no | `[]` |  | Delweddau cyflyru a ddarperir drwy URL. |
| `images[].image_url` |  | string (image URL) | yes |  |  | Delwedd gyflyru a ddarperir drwy URL. |
| `images[].start_frame_num` |  | integer | no | `0` | 0 – 1,440 | Safle cychwyn cyflyru delwedd, wedi’i nodi gan ddefnyddio rhif ffrâm sy’n rhanadwy â 8. |
| `images[].strength` |  | number | no | `1` | 0 – 1 | Dwysedd cyflyru: mae 0.0 yn analluogi cyflyru, tra bod 1.0 yn ei gymhwyso’n llawn. |
| `videos` |  | array of object {video_url, conditioning_type, preprocess, start_frame_num, strength, limit_num_frames, max_num_frames, resample_fps, target_fps, reverse_video} | no | `[]` |  | Fideos a ddarperir ar gyfer cyflyru. |
| `videos[].video_url` |  | string (video URL) | yes |  |  | Fideo cyflyru a ddarperir drwy URL. |
| `videos[].conditioning_type` |  | enum (string) \| null | no | `rgb` | `rgb`, `depth`, `pose`, `canny` | Categori cyflyru fideo a ddefnyddir i ddewis y biblinell rhagbrosesu pan fo rhagbrosesu wedi’i alluogi, ac i gymhwyso pwysoliadau LoRA mewn cyd-destun yn gywir. |
| `videos[].preprocess` |  | boolean | no | `false` |  | Galluogi rhagbrosesu i gyd-fynd â math cyflyru’r fideo. Ar gyfer cyflyru RGB, nid yw ei alluogi’n gwneud unrhyw newidiadau. |
| `videos[].start_frame_num` |  | integer | no | `0` | 0 – 1,440 | Safle cychwyn cyflyru yn y fideo, wedi’i nodi fel rhif ffrâm sy’n rhanadwy â 8. |
| `videos[].strength` |  | number | no | `1` | 0 – 1 | Dwysedd cyflyru: mae 0.0 yn analluogi cyflyru, tra bod 1.0 yn ei gymhwyso’n llawn. |
| `videos[].limit_num_frames` |  | boolean | no | `false` |  | Switsh terfyn fframiau fideo: mae ei alluogi’n gwneud `max_num_frames` yn derfyn ar y fframiau a gymerir o’r fideo. |
| `videos[].max_num_frames` |  | integer | no | `1441` | 1 – 1,441 | Terfyn ar y fframiau fideo a ddefnyddir, gyda None yn dewis y fideo cyfan yn hytrach na chyfrif fframiau cyfyngedig. |
| `videos[].resample_fps` |  | boolean | no | `false` |  | Switsh trosi cyfradd ffrâm fideo: mae ei alluogi’n ailddosbarthu’r fideo ar y gyfradd a nodir gan `target_fps`. |
| `videos[].target_fps` |  | integer | no | `24` | 1 – 60 | Cyfradd ffrâm ailddosbarthu mewn FPS, sy’n berthnasol dim ond gyda `resample_fps` wedi’i alluogi. |
| `videos[].reverse_video` |  | boolean | no | `false` |  | Gwrthdroi trefn y fideo ar gyfer tasgau lle mae angen i’r cyflyru ddilyn y fframiau am yn ôl. |

## Example input

Required parameters only:

```json
{
  "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
}
```

A fuller example:

```json
{
  "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
}
```

## 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-video-13b-distilled/multiconditioning?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"
  }'

# 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-video-13b-distilled/multiconditioning?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"
  }),
});
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",
}

# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/ltx-video-13b-distilled/multiconditioning", 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-video-13b-distilled/multiconditioning",
      "input": {
        "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
      },
      "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-video-13b-distilled/multiconditioning",
  "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": 202,
    "usd": "0.202",
    "charged": 202,
    "refunded": 0
  },
  "input": {
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
  },
  "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
    },
    "prompt": "A vibrant, abstract composition featuring a person with outstretched arms, rendered in a kaleidoscope of colors against a deep, dark background. The figure is composed of intricate, swirling patterns reminiscent of a mosaic, with hues of orange, yellow, blue, and green that evoke the style of artists such as Wassily Kandinsky or Bridget Riley. The camera zooms into the face striking portrait of a man, reimagined through the lens of old-school video-game graphics. The subject's face is rendered in a kaleidoscope of colors, with bold blues and reds set against a vibrant yellow backdrop. His dark hair is pulled back, framing his profile in a dramatic pose.",
    "seed": 42
  },
  "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} | Ffeil fideo a gynhyrchir. |
| `prompt` | string | Anogiad a ddefnyddiwyd i gynhyrchu'r allbwn. |
| `seed` | integer | Gwerth hedyn a gymhwysir wrth gynhyrchu. |

## Related models

- [LTX Video-0.9.7 13B Distilled](https://doitong.com/developers/models/ltx-video-13b-distilled.md) (`ltx-video-13b-distilled`): from $0.04 / second of output video
- [LTX Video-0.9.7 13B Distilled · Image to Video](https://doitong.com/developers/models/ltx-video-13b-distilled/image-to-video.md) (`ltx-video-13b-distilled/image-to-video`): from $0.04 / second of output video
- [LTX Video-0.9.7 13B Distilled · Extend](https://doitong.com/developers/models/ltx-video-13b-distilled/extend.md) (`ltx-video-13b-distilled/extend`): $0.04 / video
- [Ltx 2.3](https://doitong.com/developers/models/ltx-2.3/reframe.md) (`ltx-2.3/reframe`): from $0.10 / second of input video
- [LTX 2.3 22B](https://doitong.com/developers/models/ltx-2.3-22b/reference-video-to-video/lora.md) (`ltx-2.3-22b/reference-video-to-video/lora`): $0.00181 / 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-video-13b-distilled/multiconditioning
- 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-video-13b-distilled/multiconditioning
- Errors: https://doitong.com/developers/docs/errors
- Model details as JSON: https://api.doitong.ru/v1/models/ltx-video-13b-distilled/multiconditioning
