# Ltx 2.3 Quality · Render to Real API

> Biến cảnh quay render 3D, CG hoặc game thành video chân thực, với cường độ có thể chọn

Chuyển bản dựng 3D được cung cấp dưới dạng `video_url` thành diện mạo chân thực hơn. `intensity` có thể là light, strong hoặc strong-v2, từ nhẹ đến mạnh. `image_url` tùy chọn đặt khung hình đầu mang tính chân thực, còn `enable_detail_refine` thêm lượt làm sắc nét thứ hai với `detail_refine_strength` từ 0.3 đến 0.95. Lời nhắc giữ trigger `3DREAL`, đầu ra là 480p hoặc 720p.

- Model id: `ltx-2.3-quality/render-to-real`
- Made by: Lightricks
- Category: Video to Video
- Output: video
- Price per megapixel of your output video: from $0.00241 / megapixel of output video (cheapest run $0.003 (3 API credits))
- Run: `POST https://api.doitong.com/v1/run/ltx-2.3-quality/render-to-real`
- Quote: `POST https://api.doitong.com/v1/quote/ltx-2.3-quality/render-to-real`
- Docs page: https://doitong.com/vi/developers/models/ltx-2.3-quality/render-to-real

## Pricing

Price: **from $0.00241 / megapixel of output video** (the lowest tier; the quote prices your exact input). Price per megapixel 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.

Price by tier:

- base rate: $0.00241 / megapixel of output video
- detail refine: $0.00963 / megapixel of output video

The full example input below costs $0.27 = 270 API credits (112 MP output video × $0.002408).

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/ltx-2.3-quality/render-to-real` 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

Send either the canonical name or the native field name (not both). Canonical names are the same across models.

| Parameter | Canonical name | Type | Required | Default | Allowed values / range | Description |
|---|---|---|---|---|---|---|
| `video_url` | `video` | string (video URL) | yes |  |  | URL trỏ đến video 3D, CG hoặc video kết xuất từ trò chơi để chuyển đổi sang ảnh chân thực. |
| `image_url` | `image` | string (image URL) \| null | no |  |  | Neo hình ảnh tùy chọn cho khung hình 0, xác lập diện mạo chân thực. Nếu không cung cấp, chỉ bản kết xuất hướng dẫn kết quả; khi cung cấp, hình ảnh trở thành khung hình đầu tiên, phù hợp với quá trình huấn luyện ảnh-sang-video của bộ điều hợp. |
| `intensity` |  | enum (string) | no | `light` | `light`, `strong`, `strong-v2` | Mức chuyển đổi sang ảnh chân thực, trong đó `strong-v2` chọn bộ điều hợp cải tiến mới nhất để tăng tính nhất quán giữa các cảnh, âm thanh, nhân vật nói chuyện và chất lượng tổng thể. Với các tùy chọn khác, chọn `light` để giữ nhiều hơn diện mạo và chuyển động của bản kết xuất nguồn, hoặc `strong` để thay đổi mạnh hơn theo hướng chân thực. |
| `enable_detail_refine` |  | boolean | no | `false` |  | Bật giai đoạn tinh chỉnh bổ sung để tăng độ sắc nét và độ phân giải; theo mặc định bị tắt. Sau quá trình tạo sinh cơ bản, bộ nâng cấp không gian phóng to latent video lên 2x, sau đó một lượt tinh chỉnh chi tiết ngắn sẽ cải thiện video bằng mô hình đã chưng cất. |
| `detail_refine_strength` |  | number | no | `0.75` | 0.3 – 0.95 | Cường độ khử nhiễu của bộ tinh chỉnh chi tiết, mặc định là 0.75 và chỉ áp dụng khi đã bật `enable_detail_refine`. Để chỉnh sửa nhẹ hơn và giữ kết quả cơ bản, dùng giá trị thấp hơn; tăng giá trị sẽ tái tạo chi tiết nhiều hơn nhưng có nguy cơ khác biệt lớn hơn. |
| `prompt` |  | string | no | `3DREAL.` |  | Lời nhắc văn bản cho kết quả chân thực mong muốn, được viết sau trình kích hoạt bộ điều hợp `3DREAL` điền sẵn. Xóa lời nhắc hoặc bật mở rộng lời nhắc đều không loại bỏ trình kích hoạt đó; trình kích hoạt luôn được giữ lại. |
| `resolution` |  | enum (string) | no | `720p` | `480p`, `720p` | Chọn độ phân giải cạnh ngắn của đầu ra trong khi giữ nguyên tỷ lệ khung hình nguồn: 480p cho kết quả mềm hơn với clip dài tối đa khoảng 15 giây, còn 720p cho kết quả sắc nét hơn trong tối đa khoảng 6 giây. Chọn 480p cho clip dài hơn vì đường điều khiển IC-LoRA giới hạn tích của độ phân giải và số khung hình; các yêu cầu vượt ngân sách này sẽ bị từ chối với lỗi rõ ràng. Tính thời lượng đầu ra bằng `num_frames` / `frames_per_second`. |
| `num_frames` |  | integer | no | `121` | 9 – 481 | Số khung hình đầu ra, chịu giới hạn ngân sách IC-LoRA trên tích của độ phân giải và số khung hình: khoảng 6 giây ở 720p hoặc 15 giây ở 480p. Vượt ngân sách sẽ trả về 422; hãy giảm `num_frames` hoặc chọn 480p. Thời lượng clip tính bằng giây bằng `num_frames` / `frames_per_second`. |
| `frames_per_second` |  | number | no | `24` | 1 – 60 | Tốc độ khung hình video đầu ra, tính bằng khung hình trên giây. |
| `num_inference_steps` |  | integer | no | `15` | 8 – 30 | Đặt số bước suy luận cần chạy, tối đa 30; giữ nguyên giá trị này sẽ dùng 15. |
| `guidance_scale` |  | number | no | `1` | 1 – 20 | Điều chỉnh classifier-free guidance bằng thang đo này; tinh chỉnh mặc định hướng đến chất lượng cao và tạo sinh nhanh. |
| `generate_audio` |  | boolean | no | `true` |  | Bật/tắt bản âm thanh cho MP4 trả về: tắt tạo tệp chỉ có video, bật sẽ bao gồm âm thanh. |
| `negative_prompt` |  | string | no | `color distortion, overexposure, static, blurry details, subtitles, style, artwork, painting, frame, still, dim overall tone, worst quality, low quality, JPEG compression artifacts, ugly, mutilated, extra fingers, poorly drawn hands, poorly drawn face, deformed, disfigured, malformed limbs, fused fingers, motionless frame, cluttered background, three legs, crowded background, walking backwards` |  | Lời nhắc phủ định chỉ rõ những gì quá trình tạo sinh cần tránh. |
| `enable_prompt_expansion` |  | boolean | no | `false` |  | Làm phong phú lời nhắc tạo sinh bằng AI, theo mặc định bị tắt để nguyên văn của bạn được truyền qua. Đầu ra báo cáo lời nhắc thực sự được sử dụng và luôn giữ `3DREAL`; bật mở rộng cho phép mô hình AI diễn giải chi tiết mô tả trước khi tạo sinh. |
| `seed` |  | integer \| null | no |  |  | Seed giúp quá trình tạo sinh có thể tái lập. Đặt thành None sẽ chọn seed ngẫu nhiên. |
| `enable_safety_checker` |  | boolean | no | `true` |  | Kiểm soát việc bật kiểm tra an toàn. |
| `video_quality` |  | enum (string) | no | `high` | `low`, `medium`, `high`, `maximum` | Thiết lập chất lượng áp dụng cho video đầu ra. |
| `video_write_mode` |  | enum (string) | no | `balanced` | `fast`, `balanced`, `small` | Chế độ ghi của video kết quả. |

File parameters (`video`, `image`) take a public `https://` URL, a `data:` URI up to 10 MB, or the `file_url` of an upload from `POST /files`.

## Example input

Required parameters only:

```json
{
  "video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
}
```

A fuller example:

```json
{
  "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.com/v1/run/ltx-2.3-quality/render-to-real?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "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.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/ltx-2.3-quality/render-to-real?wait=20", {
  method: "POST",
  headers,
  body: JSON.stringify({
    "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.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}

payload = {
    "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/ltx-2.3-quality/render-to-real", 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": "ltx-2.3-quality/render-to-real",
      "input": {
        "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": "ltx-2.3-quality/render-to-real",
  "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": 270,
    "usd": "0.27",
    "charged": 270,
    "refunded": 0
  },
  "input": {
    "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
    },
    "seed": 42,
    "prompt": "string"
  },
  "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.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} | Video do mô hình tạo ra. |
| `seed` | integer | Seed thực tế được áp dụng trong quá trình tạo sinh. |
| `prompt` | string | Lời nhắc tạo sinh, bao gồm mọi phần mở rộng được áp dụng trước khi sử dụng. |

## Related models

- [Ltx 2.3 Quality · Text to Video](https://doitong.com/developers/models/ltx-2.3-quality/text-to-video.md) (`ltx-2.3-quality/text-to-video`): $0.00241 / megapixel of output video
- [Ltx 2.3 Quality · Text to Video · LoRA](https://doitong.com/developers/models/ltx-2.3-quality/text-to-video/lora.md) (`ltx-2.3-quality/text-to-video/lora`): $0.00271 / megapixel of output video
- [Ltx 2.3 Quality · Image to Video](https://doitong.com/developers/models/ltx-2.3-quality/image-to-video.md) (`ltx-2.3-quality/image-to-video`): $0.00241 / megapixel of output video
- [Ltx 2.3 Quality · Image to Video · LoRA](https://doitong.com/developers/models/ltx-2.3-quality/image-to-video/lora.md) (`ltx-2.3-quality/image-to-video/lora`): $0.00271 / megapixel of output video
- [Ltx 2.3 Quality · Ingredient](https://doitong.com/developers/models/ltx-2.3-quality/ingredient.md) (`ltx-2.3-quality/ingredient`): $0.00241 / 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-2.3-quality/render-to-real
- 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-2.3-quality/render-to-real
- Errors: https://doitong.com/developers/docs/errors
- Model details as JSON: https://api.doitong.com/v1/models/ltx-2.3-quality/render-to-real
