# Stable Diffusion with LoRAs · Inpaint API

> Tô lại bằng mô hình cơ sở Stable Diffusion và LoRAs được chọn, định hướng bằng mặt nạ đen trắng

Chỉnh sửa các phần của hình ảnh bằng `image_url` và `mask_url` đen trắng với mô hình Stable Diffusion được đặt trong `model_name`. `noise_strength` nằm trong khoảng từ 0 đến 1. Hỗ trợ LoRAs hợp nhất, embeddings, ControlNets, IP adapters và một số bộ lập lịch, với số bước từ 1 đến 150. Đầu ra là png hoặc jpeg.

- Model id: `lora/inpaint`
- Made by: Open model
- Category: Image Editing
- Output: image
- Estimated price per run: $0.184 / image (cheapest run $0.184 (184 API credits))
- Run: `POST https://api.doitong.ru/v1/run/lora/inpaint`
- Quote: `POST https://api.doitong.ru/v1/quote/lora/inpaint`
- Docs page: https://doitong.com/vi/developers/models/lora/inpaint

## Pricing

Price: **$0.184 / image**. Estimated from the typical cost of one run, per output (`num_images`). The quote is exactly what the run charges.

The full example input below costs $0.184 = 184 API credits (1 image × 184 API credits).

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/lora/inpaint` 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 |
|---|---|---|---|---|---|---|
| `model_name` |  | string | yes |  |  | Mô hình nền để tạo hình ảnh, được xác định bằng URL hoặc ID HuggingFace. |
| `unet_name` |  | string \| null | no |  |  | Lựa chọn U-Net tùy chỉnh để tạo sinh hình ảnh; cung cấp HuggingFace ID hoặc URL của U-Net. |
| `variant` |  | string \| null | no |  |  | Lựa chọn biến thể mô hình HuggingFace; 'fp16' là một ví dụ. |
| `prompt` |  | string | yes |  |  | Mô tả hình ảnh bạn muốn tạo bằng càng nhiều chi tiết càng tốt để đạt kết quả tốt nhất. |
| `negative_prompt` |  | string | no | `` |  | Lời nhắc phủ định chỉ định các chi tiết hình ảnh không mong muốn. Có thể loại màu sắc, vật thể, phong cảnh hoặc các đặc điểm và phẩm chất nhỏ hơn, chẳng hạn như ria mép, mờ hoặc độ phân giải thấp. |
| `prompt_weighting` |  | boolean | no | `false` |  | Bật/tắt trọng số lời nhắc: true loại bỏ giới hạn 77 token thông qua tính trung bình embedding và bật cú pháp trọng số. |
| `image_url` | `image` | string (image URL) \| null | no |  |  | URL hình ảnh nguồn cho tạo sinh image-to-image hoặc inpainting. |
| `mask_url` | `mask` | string (image URL) \| null | no |  |  | URL mặt nạ inpainting trỏ đến hình ảnh đen trắng. |
| `noise_strength` |  | number | no | `0.5` | ≤ 1, > 0 | Kiểm soát nhiễu được thêm vào hình ảnh trên thang đo trong đó 1.0 là nhiễu hoàn toàn và các thiết lập gần 0 là nhiễu tối thiểu. Chỉ áp dụng khi cung cấp image_url. |
| `loras` |  | array of object {path, scale} | no | `[]` |  | Các LoRA có tác động kết hợp tạo ra hình ảnh được tạo, không giới hạn số lượng cung cấp. |
| `loras[].path` |  | string | yes |  |  | Vị trí trọng số LoRA, được chỉ định bằng URL hoặc đường dẫn. |
| `loras[].scale` |  | number | no | `1` | 0 – 4 | Hệ số được áp dụng cho trọng số LoRA trước khi hợp nhất vào mô hình cơ sở. |
| `embeddings` |  | array of object {path, tokens} | no | `[]` |  | Các embedding được áp dụng trong quá trình tạo sinh hình ảnh để ánh xạ token của lời nhắc sang trọng số embedding. Hiện chỉ hỗ trợ một embedding. |
| `embeddings[].path` |  | string | yes |  |  | Trọng số embedding được chỉ định bằng URL hoặc đường dẫn tệp. |
| `embeddings[].tokens` |  | array of string \| null | no |  |  | Các token của lời nhắc được ánh xạ sang trọng số embedding. Bỏ qua chúng sẽ tạo một token cho mỗi vector của tệp embedding, có tên <s0>, <s1>, ...; hãy dùng các token đã ánh xạ trong lời nhắc. |
| `controlnets` |  | array of object {path, config_url, variant, image_url, mask_url, conditioning_scale, start_percentage, end_percentage, ip_adapter_index} | no | `[]` |  | Các ControlNet được lên lịch áp dụng cho hình ảnh tại những timestep đã chỉ định trong quá trình tạo sinh, không giới hạn số lượng cung cấp. |
| `controlnets[].path` |  | string | yes |  |  | Vị trí trọng số ControlNet, được chỉ định dưới dạng URL hoặc đường dẫn. |
| `controlnets[].config_url` |  | string \| null | no |  |  | URL tùy chọn trỏ đến tệp config.json của ControlNet. |
| `controlnets[].variant` |  | string \| null | no |  |  | Biến thể tùy chọn để sử dụng với khóa kho lưu trữ Hugging Face. |
| `controlnets[].image_url` |  | string (image URL) | yes |  |  | URL hình ảnh được cung cấp làm đầu vào ControlNet. |
| `controlnets[].mask_url` |  | string (image URL) \| null | no |  |  | Mặt nạ ControlNet, khi cung cấp phải có cùng kích thước với hình ảnh điều khiển; chiều rộng và chiều cao đều phải chia hết cho 32. |
| `controlnets[].conditioning_scale` |  | number | no | `1` | 0 – 2 | Tỷ lệ áp dụng cho trọng số ControlNet trước khi hợp nhất vào mô hình cơ sở. |
| `controlnets[].start_percentage` |  | number | no | `0` | 0 – 1 | Phần trăm tổng số bước thời gian tại đó ControlNet bắt đầu ảnh hưởng đến quá trình tạo sinh hình ảnh. |
| `controlnets[].end_percentage` |  | number | no | `1` | 0 – 1 | Phần trăm tổng số bước thời gian tại đó ControlNet ngừng ảnh hưởng đến quá trình tạo sinh hình ảnh. |
| `controlnets[].ip_adapter_index` |  | integer \| null | no |  |  | Lựa chọn IP adapter theo chỉ mục cho ControlNet InstantID; các ControlNet khác không cần thiết lập này. |
| `controlnet_guess_mode` |  | boolean | no | `false` |  | Khi true, giới hạn việc áp dụng ControlNet chỉ cho các dự đoán có điều kiện. |
| `ip_adapter` |  | array of object {ip_adapter_image_url, ip_adapter_mask_url, path, model_subfolder, weight_name, insight_face_model_path, scale, scale_json, unconditional_noising_factor, image_projection_shortcut} | no | `[]` |  | Các IP adapter được dùng để tạo sinh hình ảnh. Cung cấp bất kỳ mục nào cũng yêu cầu image_encoder_path. |
| `ip_adapter[].ip_adapter_image_url` |  | string (image URL) \| array of image URL | yes |  |  | URL hình ảnh được cung cấp làm đầu vào IP adapter. |
| `ip_adapter[].ip_adapter_mask_url` |  | string (image URL) \| null | no |  |  | Mặt nạ IP adapter, khi cung cấp phải đáp ứng ràng buộc kích thước: các kích thước phải bằng kích thước của hình ảnh adapter. |
| `ip_adapter[].path` |  | string | yes |  |  | Vị trí trọng số IP adapter, được chỉ định bằng URL hoặc đường dẫn. |
| `ip_adapter[].model_subfolder` |  | string \| null | no |  |  | Vị trí trọng số IP adapter, được chỉ định bằng thư mục con trong thư mục mô hình. |
| `ip_adapter[].weight_name` |  | string \| null | no |  |  | Tên tệp trọng số. |
| `ip_adapter[].insight_face_model_path` |  | string \| null | no |  |  | Vị trí trọng số mô hình InsightFace, được chỉ định bằng URL hoặc đường dẫn. |
| `ip_adapter[].scale` |  | number | no | `1` | ≥ 0 | Hệ số tỷ lệ cho trọng số IP adapter, được áp dụng trước khi hợp nhất vào mô hình cơ sở. |
| `ip_adapter[].scale_json` |  | object \| null | no |  |  | Hệ số tỷ lệ cho trọng số IP adapter, được áp dụng trước khi hợp nhất vào mô hình cơ sở. |
| `ip_adapter[].unconditional_noising_factor` |  | number | no | `0` | 0 – 1 | Hệ số kiểm soát mức nhiễu không điều kiện cho IP adapter. |
| `ip_adapter[].image_projection_shortcut` |  | boolean | no | `true` |  | Thiết lập lối tắt chiếu hình ảnh, mặc định là True. Dùng False cho các mô hình FaceID plus V1 và True cho các mô hình FaceID plus V2. |
| `image_encoder_path` |  | string \| null | no |  |  | Bộ mã hóa hình ảnh được chỉ định bằng URL HTTPS hoặc ID Hugging Face; khả năng tương thích do trọng số IP-Adapter quyết định: SD1.5 dùng image_encoder_subfolder='models/image_encoder', còn h94/IP-Adapter SDXL dùng h94/IP-Adapter và image_encoder_subfolder='sdxl_models/image_encoder'. Luôn cần bộ mã hóa khi ip_adapter chứa một giá trị. |
| `image_encoder_subfolder` |  | string \| null | no |  |  | Thư mục con trong image_encoder_path chứa trọng số bộ mã hóa hình ảnh. |
| `image_encoder_weight_name` |  | string \| null | no | `pytorch_model.bin` |  | Chọn trọng số của bộ mã hóa hình ảnh theo tên để dùng trong quá trình tạo sinh hình ảnh. |
| `ic_light_model_url` |  | string \| null | no |  |  | URL mô hình IC Light được dùng khi tạo sinh hình ảnh. |
| `ic_light_model_background_image_url` |  | string (image URL) \| null | no |  |  | Nền tương thích với mô hình cho quá trình tạo sinh hình ảnh IC Light, được cung cấp dưới dạng URL hình ảnh. |
| `ic_light_image_url` |  | string (image URL) \| null | no |  |  | URL hình ảnh đầu vào để tạo sinh bằng mô hình IC Light. |
| `seed` |  | integer \| null | no |  |  | Seed để tái tạo hình ảnh trong Stable Diffusion. Có thể tái tạo chính xác hình ảnh ở mỗi lần chạy bằng cách giữ nguyên phiên bản mô hình, lời nhắc và seed. |
| `num_inference_steps` |  | integer | no | `30` | 1 – 150 | Kiểm soát số bước tạo sinh mà Stable Diffusion thực hiện; nhiều bước hơn có thể tạo ra hình ảnh cuối chi tiết hơn. |
| `guidance_scale` |  | number | no | `7.5` | 0 – 20 | Mức độ tuân thủ lời nhắc khi chọn hình ảnh, được biểu thị bằng CFG (Classifier Free Guidance). |
| `clip_skip` |  | integer | no | `0` | 0 – 2 | Bỏ qua một phần quá trình tạo sinh hình ảnh để kết xuất nhanh hơn, tạo ra kết quả hơi khác. |
| `scheduler` |  | enum (string) \| null | no |  | `DPM++ 2M`, `DPM++ 2M Karras`, `DPM++ 2M SDE`, `DPM++ 2M SDE Karras`, `Euler`, `Euler A`, `Euler (trailing timesteps)`, `LCM`, `LCM (trailing timesteps)`, `DDIM`, `TCD` | Bộ lập lịch hoặc bộ lấy mẫu dùng để khử nhiễu hình ảnh. |
| `timesteps` |  | object {method, array} | no | `{"array":[],"method":"default"}` |  | Ghi đè lịch timestep khử nhiễu, loại trừ lẫn nhau với sigmas. Nếu không ghi đè—mặc định—scheduler tính timestep từ num_inference_steps; cung cấp lịch tùy chỉnh khiến num_inference_steps không còn tác dụng. Ghi đè yêu cầu scheduler hỗ trợ đối số timesteps cho set_timesteps. |
| `timesteps.method` |  | enum (string) | no | `default` | `default`, `array` | Chọn cách xác định timestep: 'default', thiết lập mặc định, cho phép scheduler dùng `num_inference_steps`. Để tự cung cấp lịch timestep, chọn 'array' và đặt lịch vào trường `array`. |
| `timesteps.array` |  | array of integer | no | `[]` |  | Lịch timestep được áp dụng khi phương thức đã chọn là 'custom'. |
| `sigmas` |  | object {method, array} | no | `{"array":[],"method":"default"}` |  | Ghi đè lịch sigma khử nhiễu, loại trừ lẫn nhau với timesteps. Nếu không ghi đè—mặc định—scheduler tính sigma từ num_inference_steps; cung cấp lịch tùy chỉnh khiến num_inference_steps không còn tác dụng. Ghi đè yêu cầu scheduler hỗ trợ đối số sigmas cho set_sigmas. |
| `sigmas.method` |  | enum (string) | no | `default` | `default`, `array` | Chọn cách xác định sigma: 'default', thiết lập mặc định, dùng các giá trị sigma riêng của scheduler. Để tự cung cấp lịch sigma, chọn 'custom' và đặt lịch vào trường `array`. |
| `sigmas.array` |  | array of number | no | `[]` |  | Lịch sigma được áp dụng khi phương thức đã chọn là 'custom'. |
| `prediction_type` |  | enum (string) | no | `epsilon` | `v_prediction`, `epsilon` | Chọn loại dự đoán để tạo sinh hình ảnh; nếu không chọn khác, `epsilon` sẽ được dùng. |
| `rescale_betas_snr_zero` |  | boolean | no | `false` |  | Kiểm soát việc sampler có bật rescale_betas_snr_zero hay không. |
| `image_format` |  | enum (string) | no | `png` | `jpeg`, `png` | Định dạng tệp của hình ảnh kết quả. |
| `num_images` | `num_outputs` | integer | no | `1` | 1 – 8 | Đặt số lượng hình ảnh mà một yêu cầu tạo ra, cho phép tăng thời gian tạo sinh để xử lý batch lớn hơn. |
| `enable_safety_checker` |  | boolean | no | `false` |  | Kích hoạt trình kiểm tra an toàn; true bật kiểm tra. |
| `tile_width` |  | integer | no | `4096` | 128 – 4,096 | Đặt kích thước mỗi ô trong quá trình tạo sinh hình ảnh. |
| `tile_height` |  | integer | no | `4096` | 128 – 4,096 | Đặt kích thước mỗi ô trong quá trình tạo sinh hình ảnh. |
| `tile_stride_width` |  | integer | no | `2048` | 64 – 2,048 | Đặt khoảng cách giữa các vị trí ô liên tiếp trong quá trình tạo sinh hình ảnh. |
| `tile_stride_height` |  | integer | no | `2048` | 64 – 2,048 | Đặt khoảng cách giữa các vị trí ô liên tiếp trong quá trình tạo sinh hình ảnh. |
| `eta` |  | number | no | `0` | 0 – 1 | Thiết lập Eta dùng khi tạo sinh hình ảnh. |
| `debug_latents` |  | boolean | no | `false` |  | Khi true, lưu latent để gỡ lỗi. |
| `debug_per_pass_latents` |  | boolean | no | `false` |  | Bật gỡ lỗi cho từng lượt bằng cách đặt giá trị này thành true; thao tác này lưu latent của mọi lượt. |

File parameters (`image`, `mask`, `ic_light_model_background_image_url`, `ic_light_image_url`) 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
{
  "model_name": "stabilityai/stable-diffusion-xl-base-1.0",
  "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
}
```

A fuller example:

```json
{
  "model_name": "stabilityai/stable-diffusion-xl-base-1.0",
  "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/lora/inpaint?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model_name": "stabilityai/stable-diffusion-xl-base-1.0",
    "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/lora/inpaint?wait=20", {
  method: "POST",
  headers,
  body: JSON.stringify({
    "model_name": "stabilityai/stable-diffusion-xl-base-1.0",
    "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 = {
    "model_name": "stabilityai/stable-diffusion-xl-base-1.0",
    "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/lora/inpaint", 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": "lora/inpaint",
      "input": {
        "model_name": "stabilityai/stable-diffusion-xl-base-1.0",
        "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": "lora/inpaint",
  "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": 184,
    "usd": "0.184",
    "charged": 184,
    "refunded": 0
  },
  "input": {
    "model_name": "stabilityai/stable-diffusion-xl-base-1.0",
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
  },
  "output": {
    "images": [
      {
        "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
        "content_type": "image/jpeg",
        "file_name": "0-output.jpeg",
        "file_size": 1843200,
        "width": 1024,
        "height": 768
      }
    ],
    "seed": 42,
    "has_nsfw_concepts": [
      false
    ],
    "debug_latents": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_name": "0-output.jpeg",
      "file_size": 1843200
    },
    "debug_per_pass_latents": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_name": "0-output.jpeg",
      "file_size": 1843200
    }
  },
  "outputs": [
    {
      "type": "image",
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_size": 1843200,
      "width": 1024,
      "height": 768,
      "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 |
|---|---|---|
| `images` | array of object {url, content_type, file_name, file_size, width, height} | Thông tin tệp của các hình ảnh được tạo. |
| `seed` | integer | Seed tạo sinh hình ảnh, bao gồm giá trị được chọn ngẫu nhiên nếu đầu vào không cung cấp seed; nếu không, lặp lại giá trị đã cung cấp. |
| `has_nsfw_concepts` | array of boolean | Cho biết các khái niệm NSFW có xuất hiện trong hình ảnh được tạo sinh hay không. |
| `debug_latents` | object {url, content_type, file_name, file_size} \| null | Dữ liệu latent được lưu để gỡ lỗi. |
| `debug_per_pass_latents` | object {url, content_type, file_name, file_size} \| null | Dữ liệu latent theo từng lượt được lưu để gỡ lỗi. |

## Related models

- [Stable Diffusion with LoRAs](https://doitong.com/developers/models/lora.md) (`lora`): $0.057 / image
- [Stable Diffusion with LoRAs · Image to Image](https://doitong.com/developers/models/lora/image-to-image.md) (`lora/image-to-image`): $0.264 / image
- [FLUX.1 Kontext \[pro\]](https://doitong.com/developers/models/flux-pro/kontext.md) (`flux-pro/kontext`): $0.04 / image
- [GPT Image 2.5 Edit](https://doitong.com/developers/models/openai/gpt-image-2.5/flare/edit.md) (`openai/gpt-image-2.5/flare/edit`): from $0.12 / image
- [Nano Banana 2 Edit](https://doitong.com/developers/models/nano-banana-2/edit.md) (`nano-banana-2/edit`): from $0.06 / image
- [Nano Banana Pro Edit](https://doitong.com/developers/models/nano-banana-pro/edit.md) (`nano-banana-pro/edit`): from $0.15 / image
- [Qwen Image 3 Edit](https://doitong.com/developers/models/alibaba/qwen-image-3/edit.md) (`alibaba/qwen-image-3/edit`): from $0.04 / image
- [Seedream 5.0 Pro Edit](https://doitong.com/developers/models/bytedance/seedream/v5/pro/edit.md) (`bytedance/seedream/v5/pro/edit`): from $0.0675 / run of output image

## Links

- HTML page: https://doitong.com/developers/models/lora/inpaint
- 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=lora/inpaint
- Errors: https://doitong.com/developers/docs/errors
- Model details as JSON: https://api.doitong.ru/v1/models/lora/inpaint
