# LTX-Video 13B 0.9.8 Distilled · Extend API

> 使用 0.9.8 distilled 13B 模型延伸現有影片，並由文字提示詞引導

延續傳入 `video` 的片段，並由必要的 `prompt` 引導。解析度為 480p 或 720p，`aspect_ratio` 可為 auto、9:16、1:1 或 16:9。`num_frames` 範圍為 9 到 1441。`constant_rate_factor`（0 到 51）會壓縮輸入，使其更符合訓練資料，`loras` 可接受自訂權重。

- Model id: `ltxv-13b-098-distilled/extend`
- Made by: Lightricks
- Category: Video to Video
- Output: video
- Price per second of your output video: from $0.02 / second of output video (cheapest run $0.02 (20 API credits))
- Run: `POST https://api.doitong.ru/v1/run/ltxv-13b-098-distilled/extend`
- Quote: `POST https://api.doitong.ru/v1/quote/ltxv-13b-098-distilled/extend`
- Docs page: https://doitong.com/zh-TW/developers/models/ltxv-13b-098-distilled/extend

## Pricing

Price: **from $0.02 / 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.101 = 101 API credits (5.0417 s output video × $0.02).

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/ltxv-13b-098-distilled/extend` 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 | `auto` | `9:16`, `1:1`, `16:9`, `auto` | 影片長寬比。 |
| `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 的最大壓縮。以此方式壓縮影片動態範圍可提升視覺品質。 |
| `constant_rate_factor` |  | integer | no | `29` | 0 – 51 | 用於輸入壓縮的固定速率因子（CRF），可能透過使提供的媒體更接近模型訓練資料來改善動態品質。 |
| `video` |  | object {video_url, start_frame_num, strength, limit_num_frames, max_num_frames, resample_fps, target_fps, reverse_video} | yes |  |  | 用於延長的來源影片。 |
| `video.video_url` |  | string (video URL) | yes |  |  | 透過 URL 提供的條件影片。 |
| `video.start_frame_num` |  | integer | no | `0` | 0 – 1,440 | 影片中的條件起始位置，以可被 8 整除的影格編號指定。 |
| `video.strength` |  | number | no | `1` | 0 – 1 | 條件強度：0.0 停用條件，1.0 完全套用。 |
| `video.limit_num_frames` |  | boolean | no | `false` |  | 影片影格上限開關：啟用後，`max_num_frames` 會限制從影片取用的影格數。 |
| `video.max_num_frames` |  | integer | no | `1441` | 1 – 1,441 | 影片影格使用上限；None 表示選取整部影片，而非限制影格數。 |
| `video.resample_fps` |  | boolean | no | `false` |  | 影片影格率轉換開關：啟用後，會以 `target_fps` 指定的速率重新取樣影片。 |
| `video.target_fps` |  | integer | no | `24` | 1 – 60 | 重新取樣影格率（FPS），僅在啟用 `resample_fps` 時適用。 |
| `video.reverse_video` |  | boolean | no | `false` |  | 影片順序反轉，適用於需要條件內容依反向影格順序排列的工作。 |

## Example input

Required parameters only:

```json
{
  "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
  "video": {
    "video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
  }
}
```

A fuller example:

```json
{
  "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
  "video": {
    "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/ltxv-13b-098-distilled/extend?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",
    "video": {
      "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/ltxv-13b-098-distilled/extend?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",
    "video": {
      "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 = {
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
    "video": {
        "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/ltxv-13b-098-distilled/extend", 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": "ltxv-13b-098-distilled/extend",
      "input": {
        "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
        "video": {
          "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": "ltxv-13b-098-distilled/extend",
  "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": 101,
    "usd": "0.101",
    "charged": 101,
    "refunded": 0
  },
  "input": {
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
    "video": {
      "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
    },
    "prompt": "Woman walking on a street in Tokyo",
    "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 13B 0.9.8 Distilled](https://doitong.com/developers/models/ltxv-13b-098-distilled.md) (`ltxv-13b-098-distilled`): from $0.02 / second of output video
- [LTX-Video 13B 0.9.8 Distilled · Image to Video](https://doitong.com/developers/models/ltxv-13b-098-distilled/image-to-video.md) (`ltxv-13b-098-distilled/image-to-video`): from $0.02 / second of output video
- [LTX-Video 13B 0.9.8 Distilled · Multiconditioning](https://doitong.com/developers/models/ltxv-13b-098-distilled/multiconditioning.md) (`ltxv-13b-098-distilled/multiconditioning`): from $0.02 / second of output 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/ltxv-13b-098-distilled/extend
- 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=ltxv-13b-098-distilled/extend
- Errors: https://doitong.com/developers/docs/errors
- Model details as JSON: https://api.doitong.ru/v1/models/ltxv-13b-098-distilled/extend
