# Stable Diffusion with LoRAs API

> Maandishi hadi picha yenye modeli yoyote ya msingi ya Stable Diffusion pamoja na LoRAs, uwakilishi wa vekta, ControlNets na adapta za IP

Huzalisha picha kutoka kwa kidokezo cha maandishi kwa kutumia modeli ya msingi iliyotolewa na URL au Kitambulisho cha HuggingFace katika `model_name`. `loras` kadhaa zinaweza kuunganishwa, na uwakilishi wa vekta, ControlNets, IP adapters na ingizo za IC Light zinaungwa mkono. Chaguo za usampulishaji zinajumuisha vipangaji vingi na hatua kutoka 1 hadi 150. Huzalisha picha 1 hadi 8 katika png au jpeg.

- Model id: `lora`
- Made by: Open model
- Category: Text to Image
- Output: image
- Estimated price per run: $0.057 / image (cheapest run $0.057 (57 API credits))
- Run: `POST https://api.doitong.com/v1/run/lora`
- Quote: `POST https://api.doitong.com/v1/quote/lora`
- Docs page: https://doitong.com/sw/developers/models/lora

## Pricing

Price: **$0.057 / 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.057 = 57 API credits (1 image × 57 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.com/v1/quote/lora` 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 |  |  | Modeli msingi ya kuzalisha picha, inayotambuliwa kwa URL au kitambulisho cha HuggingFace. |
| `unet_name` |  | string \| null | no |  |  | Uteuzi maalum wa U-Net kwa kutengeneza picha; toa ama kitambulisho chake cha HuggingFace au URL yake. |
| `variant` |  | string \| null | no |  |  | Uteuzi wa toleo la modeli ya HuggingFace; 'fp16' ni mfano mmoja. |
| `prompt` |  | string | yes |  |  | Eleza picha unayotaka kuzalisha kwa maelezo mengi iwezekanavyo ili kupata matokeo bora. |
| `negative_prompt` |  | string | no | `` |  | Kidokezo hasi kinachobainisha maelezo ya picha yasiyotakiwa. Kinaweza kuondoa rangi, vitu, mandhari au vipengele na sifa ndogo, kama vile masharubu, ukungu au mwonekano wa chini. |
| `prompt_weighting` |  | boolean | no | `false` |  | Kigeuzi cha uzani wa kidokezo: true huondoa kikomo cha tokeni 77 kupitia wastani wa embedding na kuwezesha sintaksia ya uzani. |
| `loras` |  | array of object {path, scale} | no | `[]` |  | LoRA ambazo athari zake zilizounganishwa huzalisha picha, bila kikomo cha idadi unayoweza kutoa. |
| `loras[].path` |  | string | yes |  |  | Mahali pa uzani wa LoRA, palipobainishwa kama URL au njia. |
| `loras[].scale` |  | number | no | `1` | 0 – 4 | Kizidishi kinachotumika kwenye uzito wa LoRA kabla ya kuunganishwa na modeli msingi. |
| `embeddings` |  | array of object {path, tokens} | no | `[]` |  | Embeddings zinazotumika wakati wa uzalishaji wa picha ili kupanga tokeni za kidokezo na uzani wa embeddings. Kwa sasa, embedding moja pekee inatumika. |
| `embeddings[].path` |  | string | yes |  |  | Uzani wa embedding uliobainishwa kwa URL au njia ya faili. |
| `embeddings[].tokens` |  | array of string \| null | no |  |  | Tokeni za kidokezo zinazopangwa na uzani wa embeddings. Kuziacha huunda tokeni moja kwa kila vekta ya faili ya embedding, zenye majina <s0>, <s1>, ...; tumia tokeni zilizopangwa kwenye vidokezo vyako. |
| `controlnets` |  | array of object {path, config_url, variant, image_url, mask_url, conditioning_scale, start_percentage, end_percentage, ip_adapter_index} | no | `[]` |  | Control nets zitakazotumika kwenye picha katika timesteps zilizobainishwa wakati wa uzalishaji, bila kikomo cha idadi unayoweza kutoa. |
| `controlnets[].path` |  | string | yes |  |  | Mahali pa uzito wa ControlNet, palipotajwa kama URL au njia. |
| `controlnets[].config_url` |  | string \| null | no |  |  | URL ya hiari inayoelekeza kwenye faili ya config.json ya ControlNet. |
| `controlnets[].variant` |  | string \| null | no |  |  | Lahaja ya hiari ya kutumia pamoja na ufunguo wa hazina ya Hugging Face. |
| `controlnets[].image_url` |  | string (image URL) | yes |  |  | URL ya picha iliyotolewa kama ingizo la ControlNet. |
| `controlnets[].mask_url` |  | string (image URL) \| null | no |  |  | Mask ya ControlNet, ambayo lazima ilingane kwa ukubwa na picha ya udhibiti inapotolewa; upana na urefu lazima kila kimoja kigawanyike kwa 32. |
| `controlnets[].conditioning_scale` |  | number | no | `1` | 0 – 2 | Kipimo kinachotumika kwenye uzito wa ControlNet kabla ya kuunganishwa kwenye modeli ya msingi. |
| `controlnets[].start_percentage` |  | number | no | `0` | 0 – 1 | Asilimia ya jumla ya hatua za muda ambapo ControlNet huanza kuathiri uzalishaji wa picha. |
| `controlnets[].end_percentage` |  | number | no | `1` | 0 – 1 | Asilimia ya jumla ya hatua za muda ambapo ControlNet huacha kuathiri uzalishaji wa picha. |
| `controlnets[].ip_adapter_index` |  | integer \| null | no |  |  | Uteuzi wa IP adapter kwa faharasa kwa InstantID ControlNet; ControlNet nyingine hazihitaji mpangilio huu. |
| `controlnet_guess_mode` |  | boolean | no | `false` |  | Huzuia matumizi ya ControlNet kwenye ubashiri wa masharti pekee ikiwa true. |
| `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 | `[]` |  | IP adapters zinazotumika kuzalisha picha. Kutoa ingizo lolote kunahitaji image_encoder_path. |
| `ip_adapter[].ip_adapter_image_url` |  | string (image URL) \| array of image URL | yes |  |  | URL ya picha iliyotolewa kama ingizo la IP adapter. |
| `ip_adapter[].ip_adapter_mask_url` |  | string (image URL) \| null | no |  |  | Mask ya IP adapter, yenye sharti la ukubwa inapotolewa: vipimo vyake lazima vilingane na vya picha ya adapter. |
| `ip_adapter[].path` |  | string | yes |  |  | Mahali pa uzani wa IP adapter, palipoainishwa kama URL au njia. |
| `ip_adapter[].model_subfolder` |  | string \| null | no |  |  | Mahali pa uzani wa IP adapter, palipoainishwa kama folda ndogo ndani ya saraka ya modeli. |
| `ip_adapter[].weight_name` |  | string \| null | no |  |  | Jina la faili la uzani. |
| `ip_adapter[].insight_face_model_path` |  | string \| null | no |  |  | Mahali pa uzani wa modeli ya InsightFace, palipoainishwa kama URL au njia. |
| `ip_adapter[].scale` |  | number | no | `1` | ≥ 0 | Kipengele cha kuongeza au kupunguza uzani wa IP adapter, kinachotumika kabla ya kuunganishwa kwenye modeli msingi. |
| `ip_adapter[].scale_json` |  | object \| null | no |  |  | Kipengele cha kuongeza au kupunguza uzani wa IP adapter, kinachotumika kabla ya kuunganishwa kwenye modeli msingi. |
| `ip_adapter[].unconditional_noising_factor` |  | number | no | `0` | 0 – 1 | Kipengele kinachodhibiti uwekaji wa kelele usio na masharti kwa IP adapter. |
| `ip_adapter[].image_projection_shortcut` |  | boolean | no | `true` |  | Mpangilio wa njia ya mkato ya projection ya picha, ambapo True ndiyo chaguomsingi. Tumia False kwa modeli za FaceID plus V1 na True kwa modeli za FaceID plus V2. |
| `image_encoder_path` |  | string \| null | no |  |  | picha encoder iliyobainishwa kwa URL ya HTTPS au kitambulisho cha Hugging Face, huku uoanifu ukiamuliwa na uzani wa IP-Adapter: SD1.5 hutumia image_encoder_subfolder='models/image_encoder', huku h94/IP-Adapter SDXL ikitumia h94/IP-Adapter na image_encoder_subfolder='sdxl_models/image_encoder'. Encoder inahitajika kila ip_adapter inapokuwa na thamani. |
| `image_encoder_subfolder` |  | string \| null | no |  |  | Saraka ndogo ndani ya image_encoder_path inayohifadhi uzani wa picha encoder. |
| `image_encoder_weight_name` |  | string \| null | no | `pytorch_model.bin` |  | Chagua uzani wa picha encoder kwa jina kwa matumizi katika uzalishaji wa picha. |
| `ic_light_model_url` |  | string \| null | no |  |  | URL ya modeli ya IC Light inayotumika wakati wa kuzalisha picha. |
| `ic_light_model_background_image_url` |  | string (image URL) \| null | no |  |  | Mandharinyuma yanayooana na modeli kwa uzalishaji wa picha wa IC Light, yaliyotolewa kama URL ya picha. |
| `ic_light_image_url` |  | string (image URL) \| null | no |  |  | URL ya picha ya ingizo kwa uzalishaji kwa modeli ya IC Light. |
| `seed` |  | integer \| null | no |  |  | Mbegu ya kurudia picha katika Stable Diffusion. Picha inaweza kurudiwa kwa usahihi kila uendeshaji kwa kuweka toleo la modeli, kidokezo na mbegu bila kubadilika. |
| `image_size` |  | object {width, height} \| enum (string) \| null | no | `square_hd` | `square_hd`, `square`, `portrait_4_3`, `portrait_16_9`, `landscape_4_3`, `landscape_16_9` | Vipimo vya picha ya tokeo, huchaguliwa kutoka kwenye mipangilio iliyowekwa au kubainishwa kama upana na urefu maalum. Vipimo vyote maalum lazima vigawanyike kwa 8. |
| `num_inference_steps` |  | integer | no | `30` | 1 – 150 | Dhibiti idadi ya hatua za uzalishaji zinazofanywa na Stable Diffusion; hatua za ziada zinaweza kutoa picha ya mwisho yenye maelezo zaidi. |
| `guidance_scale` |  | number | no | `7.5` | 0 – 20 | Nguvu ya kufuata kidokezo kwa uteuzi wa picha, iliyoonyeshwa kama CFG (Classifier Free Guidance). |
| `clip_skip` |  | integer | no | `0` | 0 – 2 | Huruka sehemu ya uzalishaji wa picha ili kutoa matokeo kwa kasi zaidi, na kusababisha matokeo tofauti kidogo. |
| `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` | Kiratibu au sampuli inayotumika kuondoa kelele kwenye picha. |
| `timesteps` |  | object {method, array} | no | `{"array":[],"method":"default"}` |  | Ubadilishaji wa ratiba ya timestep za kuondoa kelele, usiochanganyika na sigmas. Bila ubadilishaji—yaani chaguomsingi—scheduler hukokotoa timesteps kutoka num_inference_steps; kutoa ratiba maalum hufanya num_inference_steps isiwe na umuhimu. Ubadilishaji unahitaji scheduler kuunga mkono hoja ya timesteps kwa set_timesteps. |
| `timesteps.method` |  | enum (string) | no | `default` | `default`, `array` | Chagua jinsi timesteps zitakavyobainishwa: 'default', mpangilio chaguomsingi, huruhusu scheduler kutumia `num_inference_steps`. Ili kutoa ratiba ya timestep mwenyewe, chagua 'array' na uweke ratiba hiyo kwenye sehemu ya `array`. |
| `timesteps.array` |  | array of integer | no | `[]` |  | Ratiba ya timestep inayotumika wakati mbinu iliyochaguliwa ni 'custom'. |
| `sigmas` |  | object {method, array} | no | `{"array":[],"method":"default"}` |  | Ubadilishaji wa ratiba ya sigma za kuondoa kelele, usiochanganyika na timesteps. Bila ubadilishaji—yaani chaguomsingi—scheduler hukokotoa sigmas kutoka num_inference_steps; kutoa ratiba maalum hufanya num_inference_steps isiwe na umuhimu. Ubadilishaji unahitaji scheduler kuunga mkono hoja ya sigmas kwa set_sigmas. |
| `sigmas.method` |  | enum (string) | no | `default` | `default`, `array` | Chagua jinsi sigmas zitakavyobainishwa: 'default', mpangilio chaguomsingi, hutumia thamani za sigma za scheduler yenyewe. Ili kutoa ratiba ya sigma mwenyewe, chagua 'custom' na uweke ratiba hiyo kwenye sehemu ya `array`. |
| `sigmas.array` |  | array of number | no | `[]` |  | Ratiba ya sigma inayotumika wakati mbinu iliyochaguliwa ni 'custom'. |
| `prediction_type` |  | enum (string) | no | `epsilon` | `v_prediction`, `epsilon` | Chagua aina ya ubashiri kwa kuzalisha picha; bila uteuzi mwingine, `epsilon` hutumika. |
| `rescale_betas_snr_zero` |  | boolean | no | `false` |  | Hudhibiti ikiwa sampler itawezesha rescale_betas_snr_zero. |
| `image_format` |  | enum (string) | no | `png` | `jpeg`, `png` | Muundo wa faili wa picha inayotokana. |
| `num_images` | `num_outputs` | integer | no | `1` | 1 – 8 | Weka idadi ya picha zinazozalishwa na ombi moja, ukiruhusu muda zaidi wa uzalishaji kwa kundi kubwa. |
| `enable_safety_checker` |  | boolean | no | `false` |  | Uanzishaji wa kikagua usalama; true huanzisha ukaguzi. |
| `tile_width` |  | integer | no | `4096` | 128 – 4,096 | Weka ukubwa wa kila tile wakati wa uzalishaji wa picha. |
| `tile_height` |  | integer | no | `4096` | 128 – 4,096 | Weka ukubwa wa kila tile wakati wa uzalishaji wa picha. |
| `tile_stride_width` |  | integer | no | `2048` | 64 – 2,048 | Weka nafasi kati ya maeneo mfululizo ya tile wakati wa uzalishaji wa picha. |
| `tile_stride_height` |  | integer | no | `2048` | 64 – 2,048 | Weka nafasi kati ya maeneo mfululizo ya tile wakati wa uzalishaji wa picha. |
| `eta` |  | number | no | `0` | 0 – 1 | Mpangilio wa Eta unaotumika wakati wa kuzalisha picha. |
| `debug_latents` |  | boolean | no | `false` |  | Huhifadhi latents kwa utatuzi wa hitilafu ikiwa true. |
| `debug_per_pass_latents` |  | boolean | no | `false` |  | Washa utatuzi wa hitilafu kwa kila pass kwa kuweka true; hii huhifadhi latents kutoka kila pass. |

File parameters (`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.com/v1/run/lora?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.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/lora?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.com/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", 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": "lora",
      "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",
  "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": 57,
    "usd": "0.057",
    "charged": 57,
    "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.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
    "cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
  }
}
```

### Output fields (`output`)

| Field | Type | Description |
|---|---|---|
| `images` | array of object {url, content_type, file_name, file_size, width, height} | Maelezo ya faili za picha zilizozalishwa. |
| `seed` | integer | Seed ya uzalishaji wa picha, ikijumuisha thamani iliyochaguliwa bila mpangilio ikiwa ingizo halikutoa seed; vinginevyo, hurudia thamani iliyotolewa. |
| `has_nsfw_concepts` | array of boolean | Huonyesha ikiwa dhana za NSFW zinaonekana katika picha zilizozalishwa. |
| `debug_latents` | object {url, content_type, file_name, file_size} \| null | Data ya latent iliyohifadhiwa kwa utatuzi wa hitilafu. |
| `debug_per_pass_latents` | object {url, content_type, file_name, file_size} \| null | Data ya latent ya kila pass iliyohifadhiwa kwa utatuzi wa hitilafu. |

## Related models

- [Stable Diffusion with LoRAs · Image to Image](https://doitong.com/developers/models/lora/image-to-image.md) (`lora/image-to-image`): $0.264 / image
- [Stable Diffusion with LoRAs · Inpaint](https://doitong.com/developers/models/lora/inpaint.md) (`lora/inpaint`): $0.184 / image
- [FLUX.1 \[dev\]](https://doitong.com/developers/models/flux/dev.md) (`flux/dev`): $0.025 / megapixel
- [FLUX.1 \[schnell\]](https://doitong.com/developers/models/flux/schnell.md) (`flux/schnell`): $0.003 / megapixel
- [FLUX.2 \[dev\]](https://doitong.com/developers/models/flux-2.md) (`flux-2`): $0.012 / megapixel
- [FLUX.2 \[pro\]](https://doitong.com/developers/models/flux-2-pro.md) (`flux-2-pro`): $0.015 / megapixel of output image
- [GPT Image 2.5 Text to Image](https://doitong.com/developers/models/openai/gpt-image-2.5/flare/text-to-image.md) (`openai/gpt-image-2.5/flare/text-to-image`): from $0.008 / image
- [Ideogram V4.5](https://doitong.com/developers/models/ideogram/v4.5.md) (`ideogram/v4.5`): from $0.03 / image

## Links

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