# LTX-Video 13B 0.9.8 Distilled · Extend API

> Pinapahaba ang umiiral na video gamit ang 0.9.8 distilled 13B na modelo, na ginagabayan ng teksto prompt

Ipinagpapatuloy ang clip na ipinasa sa `video`, na ginagabayan ng kinakailangang `prompt`. Ang resolution ay 480p o 720p, at maaaring maging auto, 9:16, 1:1 o 16:9 ang `aspect_ratio`. Ang `num_frames` ay mula 9 hanggang 1441. Kino-compress ng `constant_rate_factor` (0 hanggang 51) ang input upang mas tumugma sa training data, at tumatanggap ang `loras` ng custom weights.

- 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/fil/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 |  |  | Mga text instruction na gumagabay sa pagbuo. |
| `negative_prompt` |  | string | no | `worst quality, inconsistent motion, blurry, jittery, distorted` |  | Mga negatibong text instruction para sa pagbuo. |
| `loras` |  | array of object {path, weight_name, scale} | no | `[]` |  | Mga LoRA weight na inilalapat habang bumubuo. |
| `loras[].path` |  | string | yes |  |  | Lokasyon ng LoRA weights, na ibinibigay bilang URL o path. |
| `loras[].weight_name` |  | string \| null | no |  |  | Pangalan ng LoRA weight para pumili sa maraming weight sa isang HuggingFace repository; kailangan lang ito ng mga repository na naglalaman ng maraming weight. Walang epekto ang setting na ito maliban kung tinutukoy ng `path` ang isang HuggingFace repository. |
| `loras[].scale` |  | number | no | `1` | 0 – 4 | Multiplier na nagsa-scale sa LoRA weight habang nilo-load ito. |
| `resolution` |  | enum (string) | no | `720p` | `480p`, `720p` | Resolution ng output video. |
| `aspect_ratio` |  | enum (string) | no | `auto` | `9:16`, `1:1`, `16:9`, `auto` | Aspect ratio ng video. |
| `seed` |  | integer \| null | no |  |  | Seed na kumokontrol sa randomness habang bumubuo. |
| `num_frames` |  | integer | no | `121` | 9 – 1,441 | Kabuuang bilang ng frame para sa video. |
| `first_pass_num_inference_steps` |  | integer | no | `8` | 2 – 12 | Bilang ng inference step para sa unang pass. |
| `second_pass_num_inference_steps` |  | integer | no | `8` | 2 – 12 | Bilang ng inference step para sa ikalawang pass. |
| `second_pass_skip_initial_steps` |  | integer | no | `5` | 1 – 11 | Paunang bilang ng inference step na lalaktawan sa ikalawang pass, upang ituon ang pass sa fine-detail work sa halip na malalaking pagbabago. |
| `frame_rate` |  | integer | no | `24` | 1 – 60 | Frame rate para sa video. |
| `expand_prompt` |  | boolean | no | `false` |  | Pagpapalawak ng prompt sa pamamagitan ng language modelo. |
| `reverse_video` |  | boolean | no | `false` |  | Pagbabaligtad sa playback order ng video. |
| `enable_safety_checker` |  | boolean | no | `true` |  | Switch para sa safety checking na sinusunod ang off setting lamang para sa mga awtorisadong account. Sumasailalim sa safety check ang lahat ng kahilingan na walang ganoong authorization. |
| `enable_detail_pass` |  | boolean | no | `false` |  | Opsyonal na ikalawang refinement pass na nagpapahusay sa detalye ng video kapag pinagana. |
| `temporal_adain_factor` |  | number | no | `0.5` | 0 – 1 | Adaptive instance normalization (AdaIN) strength, na nagbabalanse sa color consistency sa mas mataas na setting laban sa mas malaking color variation sa mas mababang setting. Gumagana ito sa mga nabuong chunk maliban sa una, at nino-normalize ang color distribution sa buong video upang makatulong na kontrahin ang unti-unting pagtaas ng saturation o contrast. |
| `tone_map_compression_ratio` |  | number | no | `0` | 0 – 1 | Tone-mapping compression level, mula sa walang compression sa 0.0 hanggang maximum compression sa 1.0. Pinapahusay ng ganitong compression ng dynamic range ng video ang visual quality. |
| `constant_rate_factor` |  | integer | no | `29` | 0 – 51 | Constant rate factor (CRF) na ginagamit para sa input compression, na maaaring magpahusay sa motion quality sa pamamagitan ng paglapit sa ibinigay na media sa training data ng modelo. |
| `video` |  | object {video_url, start_frame_num, strength, limit_num_frames, max_num_frames, resample_fps, target_fps, reverse_video} | yes |  |  | Source video para sa extension. |
| `video.video_url` |  | string (video URL) | yes |  |  | Conditioning video na ibinibigay sa pamamagitan ng URL. |
| `video.start_frame_num` |  | integer | no | `0` | 0 – 1,440 | Panimulang posisyon ng conditioning sa video, na tinukoy bilang frame number na divisible ng 8. |
| `video.strength` |  | number | no | `1` | 0 – 1 | Conditioning intensity: dini-disable ng 0.0 ang conditioning, habang ganap itong inilalapat ng 1.0. |
| `video.limit_num_frames` |  | boolean | no | `false` |  | Switch para sa limit ng video frame: kapag pinagana, ginagawa nitong cap sa mga frame na kukunin mula sa video ang `max_num_frames`. |
| `video.max_num_frames` |  | integer | no | `1441` | 1 – 1,441 | Cap sa bilang ng frame na gagamitin mula sa video, kung saan pinipili ng None ang buong video sa halip na limitadong bilang ng frame. |
| `video.resample_fps` |  | boolean | no | `false` |  | Switch para sa conversion ng video frame rate: kapag pinagana, nire-resample ang video sa rate na tinukoy ng `target_fps`. |
| `video.target_fps` |  | integer | no | `24` | 1 – 60 | Frame rate ng resampling sa FPS, naaangkop lamang kapag naka-enable ang `resample_fps`. |
| `video.reverse_video` |  | boolean | no | `false` |  | Pagbabaligtad ng order ng video para sa mga task na kailangang sumunod ang conditioning sa mga frame nang paatras. |

## 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} | Video file na ginawa sa pagbuo. |
| `prompt` | string | Prompt na ginamit sa pagbuo ng output. |
| `seed` | integer | Seed value na inilapat sa pagbuo. |

## 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
