# LTX Video-0.9.7 13B Distilled API

> 使用較舊的 0.9.7 distilled 13B 模型進行文字轉影片，支援 LoRA 和較長影格數

使用必要的 `prompt`，透過 0.9.7 蒸餾模型產生影片。解析度為 480p 或 720p，長寬比為 9:16、1:1 或 16:9，`num_frames` 可設為 9 到 1441，影格率為 1 到 60 fps。兩次取樣程序各需 2 到 12 個步驟。可選擇使用 `loras`、額外的細節程序和提示詞擴充。

- Model id: `ltx-video-13b-distilled`
- Made by: Lightricks
- Category: Text 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`
- Quote: `POST https://api.doitong.ru/v1/quote/ltx-video-13b-distilled`
- Docs page: https://doitong.com/zh-TW/developers/models/ltx-video-13b-distilled

## 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` 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 |  |  | 引導生成的文字指示。 |
| `negative_prompt` |  | string | no | `worst quality, inconsistent motion, blurry, jittery, distorted` |  | 生成用的負面文字指示。 |
| `loras` |  | array of object {path, weight_name, scale} | no | `[]` |  | 生成期間套用的 LoRA 權重。 |
| `loras[].path` |  | string | yes |  |  | LoRA 權重的位置，以 URL 或路徑提供。 |
| `loras[].weight_name` |  | string \| null | no |  |  | 用於在 HuggingFace 儲存庫的多個權重中選取權重的 LoRA 權重名稱；只有包含多個權重的儲存庫需要此項。除非 `path` 指向 HuggingFace 儲存庫，否則此設定不會生效。 |
| `loras[].scale` |  | number | no | `1` | 0 – 4 | 載入 LoRA 權重時用於縮放權重的乘數。 |
| `resolution` |  | enum (string) | no | `720p` | `480p`, `720p` | 輸出影片的解析度。 |
| `aspect_ratio` |  | enum (string) | no | `16:9` | `9:16`, `1:1`, `16:9` | 生成影片的長寬比。 |
| `seed` |  | integer \| null | no |  |  | 控制生成期間隨機性的種子。 |
| `num_frames` |  | integer | no | `121` | 9 – 1,441 | 影片的總影格數。 |
| `first_pass_num_inference_steps` |  | integer | no | `8` | 2 – 12 | 第一遍的推論步驟數。 |
| `second_pass_num_inference_steps` |  | integer | no | `8` | 2 – 12 | 第二遍的推論步驟數。 |
| `second_pass_skip_initial_steps` |  | integer | no | `5` | 1 – 11 | 第二遍省略的初始推論步驟數，使該遍偏向細節處理，而非大幅變更。 |
| `frame_rate` |  | integer | no | `24` | 1 – 60 | 影片的影格率。 |
| `expand_prompt` |  | boolean | no | `false` |  | 透過語言模型擴展提示詞。 |
| `reverse_video` |  | boolean | no | `false` |  | 反轉影片播放順序。 |
| `enable_safety_checker` |  | boolean | no | `true` |  | 安全檢查開關；關閉設定僅對已授權帳戶有效。所有未獲該授權的請求都會進行安全檢查。 |
| `enable_detail_pass` |  | boolean | no | `false` |  | 啟用後改善影片細節的選用第二精修遍。 |
| `temporal_adain_factor` |  | number | no | `0.5` | 0 – 1 | 自適應實例正規化（AdaIN）強度；較高值平衡色彩一致性，較低值允許更大的色彩變化。它會作用於第一個以外的生成區塊，在整部影片中正規化色彩分布，以協助抑制飽和度或對比度逐步升高。 |
| `tone_map_compression_ratio` |  | number | no | `0` | 0 – 1 | 色調映射壓縮程度，範圍從 0.0 的不壓縮到 1.0 的最大壓縮。以此方式壓縮影片動態範圍可提升視覺品質。 |

## 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?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?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", 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",
      "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",
  "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 cinematic fast-tracking shot follows a vintage, teal camper van as it descends a winding mountain trail. The van, slightly weathered but well-maintained, is the central focus, its retro design emphasized by the motion blur. Medium shot reveals the dusty, ochre trail, edged with vibrant green pine trees. Close-up on the van's tires shows the gravel spraying, highlighting the speed and rugged terrain. Sunlight filters through the trees, casting dappled shadows on the van and the trail. The background is a hazy, majestic mountain range bathed in warm, golden light. The overall mood is adventurous and exhilarating. High resolution 4k movie scene.",
    "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} | 生成產生的影片檔案。 |
| `prompt` | string | 用於生成輸出的提示詞。 |
| `seed` | integer | 生成期間套用的種子值。 |

## Related models

- [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 Video-0.9.7 13B Distilled · Multiconditioning](https://doitong.com/developers/models/ltx-video-13b-distilled/multiconditioning.md) (`ltx-video-13b-distilled/multiconditioning`): from $0.04 / second of output video
- [LTX 2.5 Pro Text to Video](https://doitong.com/developers/models/lightricks/ltx-2.5/text-to-video/pro.md) (`lightricks/ltx-2.5/text-to-video/pro`): from $0.12 / second
- [FLUX 3 Max Text to Video](https://doitong.com/developers/models/blackforestlabs/flux-3-max/text-to-video.md) (`blackforestlabs/flux-3-max/text-to-video`): from $0.0425 / second of output video
- [Grok Imagine Video 1.5 Text to Video](https://doitong.com/developers/models/xai/grok-imagine-video/v1.5/text-to-video.md) (`xai/grok-imagine-video/v1.5/text-to-video`): from $0.08 / second
- [Kling 3.0 Pro Text to Video](https://doitong.com/developers/models/kling-video/v3/pro/text-to-video.md) (`kling-video/v3/pro/text-to-video`): from $0.112 / second
- [MiniMax H3 Text to Video](https://doitong.com/developers/models/minimax/h3/text-to-video.md) (`minimax/h3/text-to-video`): from $0.05 / second

## Links

- HTML page: https://doitong.com/developers/models/ltx-video-13b-distilled
- 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
- Errors: https://doitong.com/developers/docs/errors
- Model details as JSON: https://api.doitong.ru/v1/models/ltx-video-13b-distilled
