# Krea 2 Trainer API

> Traenálann sé LoRA saincheaptha Krea 2 ó zip íomhánna, le fotheidealú uathoibríoch roghnach

Miontiúnálann sé LoRA ar .zip íomhánna ag `images_data_url`, le fotheidil .txt roghnacha den ainm céanna agus `trigger_phrase`. Is iad na móid `auto_captioning`: Off, Object/Character, Style agus Custom. Is é `steps` 50 go 10000 (réamhshocrú 100), agus is é `resolution` 768 nó 1024. Aschuir sé meáchain LoRA agus comhad cumraíochta.

- Model id: `krea-2-trainer`
- Made by: Krea
- Category: Training
- Output: file
- Price per run: from $0.30 / run (cheapest run $0.30 (300 API credits))
- Run: `POST https://api.doitong.com/v1/run/krea-2-trainer`
- Quote: `POST https://api.doitong.com/v1/quote/krea-2-trainer`
- Docs page: https://doitong.com/ga/developers/models/krea-2-trainer

## Pricing

Price: **from $0.30 / run** (the lowest tier; the quote prices your exact input). Price per run: 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.30 = 300 API credits (1 run × $0.30).

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/krea-2-trainer` 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 |
|---|---|---|---|---|---|---|
| `images_data_url` |  | string | yes |  |  | URL chuig .zip íomhánna oiliúna ina bhfuil comhaid PNG/JPG/JPEG/WebP; teipeann ar iarratas le 422 má tá íomhá ar bith gan comhad fotheidil ná `trigger_phrase` neamhfholamh. Tá fotheidil roghnach nuair a sholáthraíonn `trigger_phrase` an rogha chúltaca, agus murach sin úsáidtear fréamhacha comhadainmneacha meaitseála: meaitseálann ROOT.EXT le ROOT.txt, mar shampla 001.jpg le 001.txt. |
| `trigger_phrase` |  | string | no | `` |  | Frása samplach i stíl DreamBooth atá riachtanach má tá `auto_captioning` Off agus má tá íomhá ar bith gan comhad fotheidil. Soláthraíonn sé fotheidil nuair atá comhaid .txt ar iarraidh agus tugann sé an téacs tosaigh do na leideanna bailíochtaithe réamhshocraithe. |
| `auto_captioning` |  | enum (string) | no | `Off` | `Off`, `Object/Character`, `Style`, `Custom` | Mód roghnach fotheidil: glaonn Object/Character, Style agus Custom ar dataset-captioner le google/gemma-4-31B-it, agus coinníonn Off an ceanglas reatha go mbeadh fotheideal .txt le gas comhoiriúnach ag gach íomhá nó go n-úsáidfí trigger_phrase mar chúltaca. Maidir le fotheidil ghinte, cuirtear trigger_phrase sa leid fotheidealaithe agus normalófar é sna sidecars dá thoradh de réir choinbhinsiún roghnaithe fotheidealaithe LoRA. |
| `steps` |  | integer | no | `100` | 50 – 10,000 | Líon céimeanna d'oiliúint LoRA. |
| `learning_rate` |  | number | no | `0.0005` | 0.000001 – 0.01 | Ráta foghlama fhachtóir-B LoRA, a chuirtear i bhfeidhm ar A freisin nuair is é `lora_a_lr_multiplier=1`; faoi muon, seasann sé don ráta atá coibhéiseach le AdamW agus é scálaithe le match_rms_adamw. Maidir le sceideal tairiseach, molann Krea an raon 3e-4–7e-4. |
| `resolution` |  | enum (integer) | no | `768` | `768`, `1024` | Taifeach oiliúna, áit a mbíonn an mionsonra is fearr ag 1024 agus oiliúint thart ar 1.7x níos tapúla, úsáid VRAM níos lú agus cáilíocht stíle nach mór mar an gcéanna ag 768. Scálaítear na híomhánna chun an chearnóg sprice a chlúdach, ansin bearrtar sa lár iad. |
| `debug_dataset` |  | boolean | no | `false` |  | Rogha íoslódála an tacair sonraí a nochtann go beacht an méid a úsáideadh san oiliúint, pacáistithe mar chartlann tar éis líonadh na bhfotheideal nó giniúint uathoibríoch fotheideal. |

## Example input

Required parameters only:

```json
{
  "images_data_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
}
```

A fuller example:

```json
{
  "images_data_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
}
```

## 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/krea-2-trainer?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "images_data_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
  }'

# 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/krea-2-trainer?wait=20", {
  method: "POST",
  headers,
  body: JSON.stringify({
    "images_data_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
  }),
});
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 = {
    "images_data_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
}

# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/krea-2-trainer", 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": "krea-2-trainer",
      "input": {
        "images_data_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
      },
      "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": "krea-2-trainer",
  "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": 300,
    "usd": "0.30",
    "charged": 300,
    "refunded": 0
  },
  "input": {
    "images_data_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
  },
  "output": {
    "lora_file": {
      "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
    },
    "config_file": {
      "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
    },
    "prompt_enhancement_system_prompt": "string",
    "debug_dataset": {
      "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": "file",
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_size": 1843200,
      "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 |
|---|---|---|
| `lora_file` | object {url, content_type, file_name, file_size} | URL íoslódála do mheáchain LoRA Krea-2 oilte i bhformáid safetensors. |
| `config_file` | object {url, content_type, file_name, file_size} | Nasc chuig comhad JSON ina bhfuil cumraíocht na hoiliúna/LoRA. |
| `prompt_enhancement_system_prompt` | string \| null | Leid chórais a chuirtear ar ais le `auto_captioning` cumasaithe chun cabhrú le leideanna tátail a scríobh nó a bheachtú ag úsáid an choinbhinsiúin fotheidealaithe chéanna leis na sonraí oiliúna a cuireadh fotheidil orthu go huathoibríoch. |
| `debug_dataset` | object {url, content_type, file_name, file_size} \| null | Íoslódáil sonraí oiliúna a chuirtear ar fáil nuair atá `debug_dataset` cumasaithe: cartlann ina bhfuil an tacar sonraí ullmhaithe agus a fhotheidil a gineadh go huathoibríoch. |

## Related models

- [Krea 2 Text to Image Turbo LoRA](https://doitong.com/developers/models/krea-2/turbo/lora.md) (`krea-2/turbo/lora`): $0.01 / megapixel
- [Krea 2 Turbo](https://doitong.com/developers/models/krea-2/turbo.md) (`krea-2/turbo`): $0.008 / megapixel
- [ERNIE-Image Trainer](https://doitong.com/developers/models/ernie-image-trainer.md) (`ernie-image-trainer`): $0.0012 / step
- [FLUX 2 \[klein\] 9b Base Trainer](https://doitong.com/developers/models/flux-2-klein-9b-base-trainer.md) (`flux-2-klein-9b-base-trainer`): $0.0043 / step
- [Flux 2 Klein 9B Base Trainer](https://doitong.com/developers/models/flux-2-klein-9b-base-trainer/edit.md) (`flux-2-klein-9b-base-trainer/edit`): $0.0139 / step
- [FLUX 2 Trainer](https://doitong.com/developers/models/flux-2-trainer.md) (`flux-2-trainer`): $0.0064 / step
- [FLUX 2 Trainer Edit](https://doitong.com/developers/models/flux-2-trainer/edit.md) (`flux-2-trainer/edit`): $0.0389 / step
- [FLUX 2 Trainer V2](https://doitong.com/developers/models/flux-2-trainer-v2.md) (`flux-2-trainer-v2`): $0.0064 / step

## Links

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